2019-08-29 14:09:44 -07:00
---
2023-04-11 13:40:50 -07:00
title_tag: "Pulumi Cloud: Project and Stack Management"
meta_desc: Learn how to manage projects and stacks in the Pulumi Cloud, including creating a project and managing stack permissions.
2023-05-15 15:25:28 -07:00
title: "Projects & stacks"
h1: "Projects & stacks"
2023-06-08 16:15:52 -07:00
meta_image: /images/docs/meta-images/docs-meta.png
2021-04-13 10:41:56 -07:00
menu:
2023-05-15 15:25:28 -07:00
pulumicloud:
weight: 3
2021-07-09 10:36:53 -07:00
aliases:
2022-01-14 12:55:13 -08:00
- /docs/intro/console/project-and-stack-management/
2021-07-09 10:36:53 -07:00
- /docs/reference/service/roles-and-access-controls/
- /docs/console/collaboration/stack-permissions/
2022-01-14 12:55:13 -08:00
- /docs/intro/console/stack-permissions/
- /docs/intro/console/projects-and-stacks/
2023-04-11 16:50:51 -07:00
- /docs/intro/pulumi-service/projects-and-stacks/
2023-05-15 15:25:28 -07:00
- /docs/intro/pulumi-cloud/projects-and-stacks/
2019-08-29 14:09:44 -07:00
---
2022-08-27 07:13:21 -07:00
Projects group stacks together and contain a Pulumi.yaml file.
2021-07-09 10:36:53 -07:00
Stacks are isolated, independently configurable instances of a Pulumi program.
Projects can have as many stacks as you need.
2019-08-29 14:09:44 -07:00
2021-06-24 05:58:24 -07:00
## Creating a Project
2019-08-29 14:09:44 -07:00
2021-06-24 05:58:24 -07:00
To create a project:
2019-08-29 14:09:44 -07:00
2022-08-27 07:13:21 -07:00
1. Navigate to **All stacks** .
2021-06-24 05:58:24 -07:00
1. Select **Create project** .
1. Select a cloud and a language and use the **Next** button.
1. Optionally, change your project name and project description.
1. Select **Create project** .
1. Follow the provided CLI command instructions.
2019-08-29 14:09:44 -07:00
2021-07-09 10:36:53 -07:00
## Stack Permissions
2023-04-11 13:40:50 -07:00
The Pulumi Cloud provides fine-grained access controls for stacks. Stack permissions are
2022-09-23 17:56:14 -07:00
based on the member's role within the organization and their team membership.
2021-07-09 10:36:53 -07:00
Additionally, any member who creates a stack is granted admin permissions on that stack.
2022-08-27 07:13:21 -07:00
Organization admins can control the stack default permissions at the organization level from **Settings** > **General** .
2021-07-09 10:36:53 -07:00
There are four types of stack permissions: `None` , `Read` , `Write` , and `Admin` .
2023-05-15 15:25:28 -07:00
[Team permissions ](/docs/pulumi-cloud/access-management/teams#team-permissions ) will expand these default permissions.
2019-08-29 14:09:44 -07:00
2021-07-09 10:36:53 -07:00
Stack permissions allow users to perform the following actions:
2019-08-29 14:09:44 -07:00
2021-07-09 10:36:53 -07:00
| Action | None | Read | Write | Admin |
|--------|------|------|-------|-------|
| View update history | | ✅ | ✅ | ✅ |
| Decrypt secret configuration | | ✅ | ✅ | ✅ |
| Read stack resources | | ✅ | ✅ | ✅ |
| Preview stack changes | | ✅ | ✅ | ✅ |
| Update stack | | | ✅ | ✅ |
| Destroy stack (`pulumi destroy` ) | | | ✅ | ✅ |
| Export stack checkpoint | | ✅ | ✅ | ✅ |
| Import stack checkpoint | | | ✅ | ✅ |
Website updates (#2688)
* Initial homepage redesign pass, hero change + add sections
* bundle
* Add customer quotes to the homepage
* update title spacing, add Skai quote
* add new images for homepage
* spacing fixes
* update customer quotes
* sections + quotes updates, remove PDL logo
* update logo list
* add resource search diagram
adds resource search diagram for updates to product pages
* update diagram
"service" changed to "cloud"
provider count updated
added deployments and insights to diagram
* diagram revision
* Delete duplicate file
* Revision for real
* update images and backgrounds
* update twitter content
* remove unused graphic
* update hero secondary button
* fix community link color
* website updates
* fix logo size Signed-off-by: susanev<susan.ra.evans@gmail.com>
* updates to /product/ and /pulumi-service/
* update pricing and self-hosted pages
* fix formating
Signed-off-by: susanev <susan.ra.evans@gmail.com>
* remove relrefs from pricing
* fix html
Signed-off-by: susanev <susan.ra.evans@gmail.com>
* remove quotes from tweets, correct signup page links, customer logo changes
* update CTA button styles for purple background
* add links to homepage sections
* fix join link clickable area
* pulumi cloud & product changes, add some images
* update AI image to have language tabs
* styling fixes
* update product nav and text tweaks for /product
* fix logos spacing, update header button
* update copy
Co-authored-by: George Huang <george@pulumi.com>
* change Pulumi Cloud URL and add alias for /product/pulumi-service, add newline to product overview title
* update nav links for Pulumi Cloud
* update Pulumi Deployments image
* shorten tweet height for twitter carousel
* fix univision logo
* update community link
* restyle community join link
* edit customer list
* join link styles pt 2
* Update themes/default/layouts/page/pricing.html
* Update themes/default/layouts/page/pricing.html
* Update themes/default/layouts/page/pricing.html
* Update themes/default/layouts/page/pricing.html
* Update themes/default/layouts/page/pricing.html
* update ai graphics
* Search docs (#94)
---------
Co-authored-by: meagancojocar <50200557+meagancojocar@users.noreply.github.com>
Co-authored-by: Luke Hoban <lukehoban@gmail.com>
Co-authored-by: evanboyle <evan@pulumi.com>
* appease the linter
* handle pricing table text-wrap, center cells (keeping left column left-aligned)
* Insights blog post (#101)
Co-authored-by: Eric Rudder <ericrudder@users.noreply.github.com>
Co-authored-by: aaronkao <aaronkao@users.noreply.github.com>
* Add Pulumi AI UI (#95)
* WIP
* Remove WIP text
* Handle over-limit errors
* Refactor the page structure
* Bit of code, CSS, markup cleanup
* Support querystring params
* Layout WIP
* Switch to two-column layout
* Add GPT toggle, hopefully fix highlight bug, glitchy copy buttons
* Fix a little copy button issue
* Fix set-focus glitch, signup URL
* Remove language tooltips and tweak emphasis color
* Mobile and tablet tweaks
* Shorted labels for mobile, leading on outputs
* Extend the pre-highlight wait a bit to allow for slower rendering
* Hard-code the endpoint URL to avoid the extra docs PR for now
* Remove log statement
* Pulumi Insights product page (#91)
* First commit
* Adding subtitles
* A few visual and textual tweaks
* Make edits to AI section
* Added gif
* Updated images
* Added Get Started button to AI section
* Add Pulumi Insights to product nav, alias for /insights
* reorder mobile nav items for product section
* Add search gif
* Corrected formatting error
* Resized images
* Updated gif and added form links
* Added Preview Signup page
* Linted and formatted
* Remove button, fix layout issue on submit, link to forms, show learn-more message
* Signup -> sign up
* Updated anchor links and margins
* Minor edit to lede copy
* fix hover on button
---------
Co-authored-by: Christian Nunciato <cnunciato@work.local>
Co-authored-by: Sarah Hughes <sarah@pulumi.com>
Co-authored-by: Christian Nunciato <chris@nunciato.org>
Co-authored-by: zchase <zachary@pulumi.com>
* mark insights blog as draft (#102)
---------
Signed-off-by: susanev <susan.ra.evans@gmail.com>
Co-authored-by: Sarah Hughes <sarah@pulumi.com>
Co-authored-by: Anita Trimbur <anita@pulumi.com>
Co-authored-by: George Huang <george@pulumi.com>
Co-authored-by: susan evans <susan.ra.evans@gmail.com>
Co-authored-by: GH Action - Upstream Sync <action@github.com>
Co-authored-by: meagancojocar <50200557+meagancojocar@users.noreply.github.com>
Co-authored-by: Bryce Lampe <brycelampe@gmail.com>
Co-authored-by: Luke Hoban <lukehoban@gmail.com>
Co-authored-by: evanboyle <evan@pulumi.com>
Co-authored-by: Eric Rudder <ericrudder@users.noreply.github.com>
Co-authored-by: aaronkao <aaronkao@users.noreply.github.com>
Co-authored-by: Christian Nunciato <c@nunciato.org>
Co-authored-by: Christian Nunciato <cnunciato@work.local>
Co-authored-by: Christian Nunciato <chris@nunciato.org>
2023-04-12 23:15:38 -07:00
| Delete stack (`pulumi stack rm` ) | | | | ✅ |
| Transfer to another organization | | | | ✅ |
| Search stack resources | | ✅ | ✅ | ✅ |
2019-08-29 14:09:44 -07:00
2021-07-09 10:36:53 -07:00
## Viewing Stacks

2019-08-29 14:09:44 -07:00
2021-06-24 05:58:24 -07:00
To view an organization's stacks:
2019-08-29 14:09:44 -07:00
2022-08-27 07:13:21 -07:00
1. Navigate to **All stacks** .
2021-06-24 05:58:24 -07:00
1. Optionally, adjust the grouping by selecting the **Group By** and **Sort By** controls.
2022-09-23 17:56:14 -07:00
1. To view a stack's details, select the stack's name.
2021-06-24 05:58:24 -07:00
1. To view a specific stack update, navigate to **Activity** and select it from the list.
2019-08-29 14:09:44 -07:00
2022-08-27 07:13:21 -07:00
## Stack Favorites
2022-09-23 17:56:14 -07:00
Stack favorites allow you to label specific stacks for quick and easy access. Stack favorites are displayed in the navigation and on your dashboard.
2022-08-27 07:13:21 -07:00

2022-09-23 17:56:14 -07:00
### Favorite a Stack
2022-08-27 07:13:21 -07:00
1. Navigate to the stack.
1. Select the star icon next to the stack name.
2022-05-17 21:44:08 -07:00
### Stack README
To add a README to a stack:
2023-05-15 15:25:28 -07:00
1. Export a [Stack output ](/learn/building-with-pulumi/stack-outputs ) named `readme` that contains your templated Stack README markdown, commonly by reading a file, i.e. `Pulumi.README.md` .
2022-05-17 21:44:08 -07:00
2. Create a README template for the Stack.
3. Run `pulumi up` on that Stack.
2022-08-27 07:13:21 -07:00
4. Navigate to **All stacks** and then select the stack.
5. Navigate to **README** .
2022-05-17 21:44:08 -07:00
Examples for adding the Stack Output `readme` to a Pulumi program:
{{< chooser language " typescript , python , go , csharp , java " / > }}
{{% choosable language typescript %}}
```typescript
import { readFileSync } from "fs";
export const strVar = "foo";
export const arrVar = ["fizz", "buzz"];
// add readme to stack outputs. must be named "readme".
2022-12-06 09:15:30 -08:00
export const readme = readFileSync("./Pulumi.README.md").toString();
2022-05-17 21:44:08 -07:00
```
{{% /choosable %}}
{{% choosable language python %}}
```python
import pulumi
pulumi.export('strVar', 'foo')
pulumi.export('arrVar', ['fizz', 'buzz'])
# open template readme and read contents into stack output
with open('./Pulumi.README.md') as f:
pulumi.export('readme', f.read())
```
{{% /choosable %}}
{{% choosable language go %}}
```go
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
strVar := "foo"
arrVar := []string{"fizz", "buzz"}
readmeBytes, err := ioutil.ReadFile("./Pulumi.README.md")
if err != nil {
return fmt.Errorf("failed to read readme: %w", err)
}
ctx.Export("strVar", pulumi.String(strVar))
ctx.Export("arrVar", pulumi.ToStringArray(arrVar))
ctx.Export("readme", pulumi.String(string(readmeBytes)))
return nil
})
}
```
{{% /choosable %}}
{{% choosable language csharp %}}
```csharp
using Pulumi;
class MyStack : Stack
{
public MyStack()
{
this.StrVar = "foo";
this.ArrVar = new string[] { "fizz", "buzz" };
2022-07-26 16:20:53 -07:00
this.Readme = Output.Create(System.IO.File.ReadAllText("./Pulumi.README.md"));
2022-05-17 21:44:08 -07:00
}
[Output]
public Output< string > StrVar { get; set; }
[Output]
public Output< string [ ] > ArrVar { get; set; }
[Output]
public Output< string > Readme { get; set; }
}
```
{{% /choosable %}}
{{% choosable language java %}}
```java
package stackreadme;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
public class App {
public static void main(String[] args) {
Pulumi.run(ctx -> {
var strVar = "foo";
var arrVar = new String[]{ "fizz", "buzz" };
try {
var readme = Files.readString(Paths.get("./Pulumi.README.md"));
ctx.export("strVar", Output.of(strVar));
ctx.export("arrVar", Output.of(arrVar));
ctx.export("readme", Output.of(readme));
} catch (IOException e) {
throw new RuntimeException(e);
}
});
}
}
```
{{% /choosable %}}
2023-04-11 13:40:50 -07:00
An example of a README file, `Pulumi.README.md` , the template Stack README file for the Pulumi Cloud.
2022-05-17 21:44:08 -07:00
```markdown
2023-04-11 13:40:50 -07:00
# Pulumi Cloud README
2022-05-17 21:44:08 -07:00
[Sign in to AWS to view stack resources! ](https://top-secret-url.com )
## On Call Operations
### Monitor
1. [Cloudwatch Metrics ](https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#dashboards:name=${outputs.dashboardName} ): Monitor holistic metrics tracking overall service health
2. [RDS Performance Metrics ](https://us-west-2.console.aws.amazon.com/rds/home?region=us-west-2#performance-insights-v20206:/resourceId/${database.databaseCluster.id}/resourceName/${outputs.rdsClusterWriterInstance} ): Monitor RDS performance (wait times, top queries)
3. [Cloudwatch Logs ](https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#logStream:group=${outputs.cloudwatchLogGroup} ): Search across service logs
```
2023-04-11 13:40:50 -07:00
Here is how it looks rendered in the [Pulumi Cloud UI ](https://app.pulumi.com ):
2022-05-17 21:44:08 -07:00

2021-03-30 07:39:13 -07:00
### Stack Detailed View
2019-08-29 14:09:44 -07:00
2021-06-24 05:58:24 -07:00
To view a stack's details:
2019-08-29 14:09:44 -07:00
2022-08-27 07:13:21 -07:00
1. Navigate to **All stacks** and then a specific stack.
2021-06-24 05:58:24 -07:00
1. Navigate to **Activity** .
1. Review the stack's outputs, configuration values, and tags.
2019-08-29 14:09:44 -07:00
2021-06-24 05:58:24 -07:00

2019-08-29 14:09:44 -07:00
2023-05-15 15:25:28 -07:00
You can see other details, such as who applied the update, when, and counts of added, updated, and unchanged resources. If your stack is integrated with a CI/CD pipeline, such as [GitHub Actions ](/docs/using-pulumi/continuous-delivery/github-actions/ ), you also see useful links to data like your Git commit hash, mapped branch, and pull request ID.
2020-02-11 08:59:50 -08:00
2021-06-24 05:58:24 -07:00
#### Custom Stack Tags
2020-02-11 08:59:50 -08:00
2021-07-09 10:36:53 -07:00
Custom stack tags can help you group and filter your stacks.
2021-06-24 05:58:24 -07:00
To create a custom tag:
2022-08-27 07:13:21 -07:00
1. Navigate to **All stacks** and then a specific stack.
2021-06-24 05:58:24 -07:00
1. Select **New tag** .
To modify or delete a custom tag:
2022-08-27 07:13:21 -07:00
1. Navigate to **All stacks** and then a specific stack.
2021-06-24 05:58:24 -07:00
1. To modify a custom tag, use the pencil icon.
1. To delete a custom tag, use the trash can icon.
2021-07-09 10:36:53 -07:00
#### Stack Activity
2019-08-29 14:09:44 -07:00
2021-06-24 05:58:24 -07:00
To view stack activity:
2019-08-29 14:09:44 -07:00
2022-08-27 07:13:21 -07:00
1. Navigate to **All stacks** and then a specific stack.
2021-06-24 05:58:24 -07:00
1. Navigate to **Activity** .
1. Review insights and operations that were performed on your stack resources during the update.
1. Navigate to **Changes** , **Timeline** , or **Configuration** for more details.
2021-03-30 07:39:13 -07:00
2021-07-09 10:36:53 -07:00
The **Changes** section of activity lets you toggle between different log views:
2021-03-30 07:39:13 -07:00
2022-09-23 17:56:14 -07:00
* _Summary Log_ lists a summary of changes, counts of affected resources, and update duration
* _Diff Log_ displays a diff of the changes (created, updated, or deleted resources), your stack outputs, and the same counts and update duration shown in the Summary Log view.
* _Diagnostic Log_ displays warning messages or a description of the operations performed during the update (if any).
2021-03-30 07:39:13 -07:00

2021-07-09 10:36:53 -07:00
The **Timeline** section provides a detailed timeline of changes to individual cloud resources. It also includes useful resource links and counts of affected resources.
2019-08-29 14:09:44 -07:00
2021-03-30 07:39:13 -07:00

2019-08-29 14:09:44 -07:00
2022-09-23 17:56:14 -07:00
The **Configuration** section displays the same configuration details found in the Stack view for your update.
2019-08-29 14:09:44 -07:00
2021-07-09 10:36:53 -07:00
#### Stack Resources
2019-08-29 14:09:44 -07:00
2021-06-24 05:58:24 -07:00
To view a stack's resources:
2022-08-27 07:13:21 -07:00
1. Navigate to **All stacks** and then a specific stack.
2021-06-24 05:58:24 -07:00
1. Navigate to **Resources** .
1. Select **List View** or **Graph View** to toggle between a list view and a graph view.
2021-07-09 10:36:53 -07:00
1. Selecting an individual resource from the list or graph view will provide more details.
2019-08-29 14:09:44 -07:00
2022-09-23 17:56:14 -07:00
The list view displays a list of all of the stack's resources, including their type, name,
2021-07-09 10:36:53 -07:00
status, and link to the associated cloud provider.
2019-08-29 14:09:44 -07:00
2021-03-30 07:39:13 -07:00

2019-08-29 14:09:44 -07:00
2021-07-09 10:36:53 -07:00
The graph view displays a graphical representation of the stack's resources and their
dependencies. Select an individual resource to view its list of properties and dependencies.
2019-08-29 14:09:44 -07:00
2021-07-09 10:36:53 -07:00

2019-08-29 14:09:44 -07:00
2021-07-09 10:36:53 -07:00
## Transferring Stacks
2019-08-29 14:09:44 -07:00
2022-11-17 17:05:36 -05:00
Stack admins can transfer individual stacks between personal accounts and organizations or between organizations. Organization admins can transfer stacks in bulk.
2021-07-09 10:36:53 -07:00
If transferring to an organization, the **Allow organization members to create stacks and transfer stacks to this organization**
setting must be turned on from the **Access Management** page in the organization's settings.
2022-11-17 17:05:36 -05:00
To transfer an individual stack:
2021-07-09 10:36:53 -07:00
1. Navigate to the stack, and then the stack's **Settings** .
1. Select **Transfer stack** .
1. Provide the personal account or organization name and select **Transfer** .
2019-08-29 14:09:44 -07:00
2022-11-17 17:05:36 -05:00
To transfer stacks in bulk:
1. Navigate to the **Stacks** page.
2023-07-26 15:32:13 -07:00
2. Select the three dot menu beside **Create project** .
3. Choose **Transfer stacks** from the dropdown.
4. Choose the **Transfer destination** from the dropdown.
5. Tick the stacks you'd like to transfer and select **Transfer stacks** .
2022-11-17 17:05:36 -05:00
2021-07-09 10:36:53 -07:00
## Deleting a Stack
2019-08-29 14:09:44 -07:00
2023-04-11 13:40:50 -07:00
Deleting a stack removes the stack entirely from the Pulumi Cloud, along with all of its update history.
2021-06-24 05:58:24 -07:00
To delete a stack:
2023-07-26 15:32:13 -07:00
1. Navigate to the **Stacks** page and then a specific stack.
2023-02-02 11:51:06 -08:00
1. Navigate to the stack's **Settings** and then **Options** .
1. If you have no resources in the stack use the **Delete stack** button, otherwise use the provided CLI commands.
2019-08-29 14:09:44 -07:00
2023-07-26 15:32:13 -07:00
## Restoring a Stack
{{% notes type="info" %}}
The ability to restore a deleted stack is limited to Enterprise and Business Critical Editions. {{% /notes %}}
2023-10-02 17:40:04 -04:00
Restoring a stack allows you to recover a previously deleted stack, either because it was accidentally deleted or because you want to restore its history. The last 25 stacks deleted in your organization can be restored by an organization admin. Stacks can only be restored if deleted within the last year.
2023-07-26 15:32:13 -07:00
To restore a stack:
1. Navigate to the **Stacks** page.
2. Select the three dot menu beside **Create project** .
3. Choose **Restore deleted stacks** from the dropdown.
4. Use the three dot menu on the stack you want to restore and select **Restore stack** .
2021-04-13 10:41:56 -07:00
## Related Blogs
2019-08-29 14:09:44 -07:00
2022-10-26 07:22:15 -07:00
* [Building New Pulumi Projects and Stacks From Templates ](/blog/building-new-pulumi-projects-and-stacks-from-templates/ )