mirror of
https://github.com/Infisical/infisical.git
synced 2026-01-08 23:18:05 -05:00
150 lines
5.3 KiB
Plaintext
150 lines
5.3 KiB
Plaintext
---
|
|
title: "Project Templates"
|
|
sidebarTitle: "Project Templates"
|
|
description: "Learn how to manage and apply project templates"
|
|
---
|
|
|
|
## Concept
|
|
|
|
Project Templates streamline your ability to set up projects by providing customizable templates to configure projects quickly with a predefined set of environments and roles.
|
|
|
|
<Note>
|
|
Project Templates is a paid feature.
|
|
If you're using Infisical Cloud, then it is available under the **Enterprise Tier**. If you're self-hosting Infisical,
|
|
then you should contact team@infisical.com to purchase an enterprise license to use it.
|
|
</Note>
|
|
|
|
## Workflow
|
|
|
|
The typical workflow for using Project Templates consists of the following steps:
|
|
|
|
1. <strong>Creating a project template:</strong> As part of this step, you will configure a set of environments and roles to be created when applying this template to a project.
|
|
2. <strong>Using a project template:</strong> When creating new projects, optionally specify a project template to provision the project with the configured roles and environments.
|
|
|
|
<Note>
|
|
Note that this workflow can be executed via the Infisical UI or through the API.
|
|
</Note>
|
|
|
|
## Guide to Creating a Project Template
|
|
|
|
In the following steps, we'll explore how to set up a project template.
|
|
|
|
<Tabs>
|
|
<Tab title="Infisical UI">
|
|
<Steps>
|
|
<Step title="Creating a Project Template">
|
|
Navigate to the **Project Templates** tab on the Feature Settings page for the project type you want to create a template for and tap on the **Add Template** button.
|
|

|
|
|
|
Specify your template details. Here's some guidance on each field:
|
|
|
|
- <strong>Name:</strong> A slug-friendly name for the template.
|
|
- <strong>Description:</strong> An optional description of the intended usage of this template.
|
|
|
|

|
|
</Step>
|
|
<Step title="Configuring a Project Template">
|
|
Once your template is created, you'll be directed to the configuration section.
|
|

|
|
|
|
Customize the environments and roles to your needs.
|
|

|
|
|
|
<Note>
|
|
Be sure to save your environment and role changes.
|
|
</Note>
|
|
</Step>
|
|
</Steps>
|
|
</Tab>
|
|
<Tab title="API">
|
|
To create a project template, make an API request to the [Create Project Template](/api-reference/endpoints/project-templates/create) API endpoint.
|
|
|
|
### Sample request
|
|
|
|
```bash Request
|
|
curl --request POST \
|
|
--url https://app.infisical.com/api/v1/project-templates \
|
|
--header 'Content-Type: application/json' \
|
|
--data '{
|
|
"name": "my-project-template",
|
|
"type": "secret-manager",
|
|
"description": "...",
|
|
"environments": "[...]",
|
|
"roles": "[...]",
|
|
}'
|
|
```
|
|
|
|
### Sample response
|
|
|
|
```bash Response
|
|
{
|
|
"projectTemplate": {
|
|
"id": "<template-id>",
|
|
"name": "my-project-template",
|
|
"description": "...",
|
|
"environments": "[...]",
|
|
"roles": "[...]",
|
|
"orgId": "<org-id>",
|
|
"createdAt": "2023-11-07T05:31:56Z",
|
|
"updatedAt": "2023-11-07T05:31:56Z",
|
|
}
|
|
}
|
|
```
|
|
</Tab>
|
|
|
|
</Tabs>
|
|
|
|
## Guide to Using a Project Template
|
|
|
|
In the following steps, we'll explore how to use a project template when creating a project.
|
|
|
|
<Tabs>
|
|
<Tab title="Infisical UI">
|
|
When creating a new project, select the desired template from the dropdown menu in the create project modal.
|
|

|
|
|
|
Your project will be provisioned with the configured template roles and environments.
|
|
</Tab>
|
|
<Tab title="API">
|
|
To use a project template, make an API request to the [Create Project](/api-reference/endpoints/projects/create-project) API endpoint with the specified template name included.
|
|
|
|
### Sample request
|
|
|
|
```bash Request
|
|
curl --request POST \
|
|
--url https://app.infisical.com/api/v1/projects \
|
|
--header 'Authorization: Bearer <token>' \
|
|
--header 'Content-Type: application/json' \
|
|
--data '{
|
|
"projectName": "My Project",
|
|
"template": "<template-name>", // defaults to "default"
|
|
}'
|
|
```
|
|
|
|
### Sample response
|
|
|
|
```bash Response
|
|
{
|
|
"project": {
|
|
"id": "<project-id>",
|
|
"environments": "[...]", // configured environments
|
|
...
|
|
}
|
|
}
|
|
```
|
|
|
|
<Note>
|
|
Note that configured roles are not included in the project response.
|
|
</Note>
|
|
</Tab>
|
|
|
|
</Tabs>
|
|
|
|
## FAQ
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="Do changes to templates propagate to existing projects?">
|
|
No. Project templates only apply at the time of project creation.
|
|
</Accordion>
|
|
</AccordionGroup>
|