stacktape 3.5.7 → 3.6.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/.tsconfig.bun-build.json +1 -0
  2. package/ai-docs/cli-ref/aws-profile-create.md +22 -0
  3. package/ai-docs/cli-ref/aws-profile-delete.md +22 -0
  4. package/ai-docs/cli-ref/aws-profile-list.md +20 -0
  5. package/ai-docs/cli-ref/aws-profile-update.md +22 -0
  6. package/ai-docs/cli-ref/bastion-session.md +29 -0
  7. package/ai-docs/cli-ref/bastion-tunnel.md +30 -0
  8. package/ai-docs/cli-ref/bucket-sync.md +30 -0
  9. package/ai-docs/cli-ref/cf-module-update.md +26 -0
  10. package/ai-docs/cli-ref/cf-rollback.md +28 -0
  11. package/ai-docs/cli-ref/codebuild-deploy.md +34 -0
  12. package/ai-docs/cli-ref/compile-template.md +25 -0
  13. package/ai-docs/cli-ref/container-session.md +30 -0
  14. package/ai-docs/cli-ref/debug-alarms.md +28 -0
  15. package/ai-docs/cli-ref/debug-aws-sdk.md +33 -0
  16. package/ai-docs/cli-ref/debug-container-exec.md +36 -0
  17. package/ai-docs/cli-ref/debug-dynamodb.md +35 -0
  18. package/ai-docs/cli-ref/debug-logs.md +34 -0
  19. package/ai-docs/cli-ref/debug-metrics.md +33 -0
  20. package/ai-docs/cli-ref/debug-opensearch.md +35 -0
  21. package/ai-docs/cli-ref/debug-redis.md +36 -0
  22. package/ai-docs/cli-ref/debug-sql.md +35 -0
  23. package/ai-docs/cli-ref/defaults-configure.md +29 -0
  24. package/ai-docs/cli-ref/defaults-list.md +20 -0
  25. package/ai-docs/cli-ref/delete.md +24 -0
  26. package/ai-docs/cli-ref/deploy.md +25 -0
  27. package/ai-docs/cli-ref/deployment-script-run.md +28 -0
  28. package/ai-docs/cli-ref/dev-stop.md +26 -0
  29. package/ai-docs/cli-ref/dev.md +45 -0
  30. package/ai-docs/cli-ref/domain-add.md +26 -0
  31. package/ai-docs/cli-ref/help.md +18 -0
  32. package/ai-docs/cli-ref/info-operations.md +22 -0
  33. package/ai-docs/cli-ref/info-stack.md +30 -0
  34. package/ai-docs/cli-ref/info-stacks.md +26 -0
  35. package/ai-docs/cli-ref/info-whoami.md +22 -0
  36. package/ai-docs/cli-ref/init.md +30 -0
  37. package/ai-docs/cli-ref/login.md +20 -0
  38. package/ai-docs/cli-ref/logout.md +18 -0
  39. package/ai-docs/cli-ref/mcp-add.md +22 -0
  40. package/ai-docs/cli-ref/mcp.md +20 -0
  41. package/ai-docs/cli-ref/org-create.md +24 -0
  42. package/ai-docs/cli-ref/org-delete.md +24 -0
  43. package/ai-docs/cli-ref/org-list.md +22 -0
  44. package/ai-docs/cli-ref/package-workloads.md +25 -0
  45. package/ai-docs/cli-ref/param-get.md +26 -0
  46. package/ai-docs/cli-ref/preview-changes.md +23 -0
  47. package/ai-docs/cli-ref/project-create.md +22 -0
  48. package/ai-docs/cli-ref/projects-list.md +22 -0
  49. package/ai-docs/cli-ref/rollback.md +28 -0
  50. package/ai-docs/cli-ref/script-run.md +29 -0
  51. package/ai-docs/cli-ref/secret-create.md +28 -0
  52. package/ai-docs/cli-ref/secret-delete.md +26 -0
  53. package/ai-docs/cli-ref/secret-get.md +26 -0
  54. package/ai-docs/cli-ref/upgrade.md +20 -0
  55. package/ai-docs/cli-ref/version.md +18 -0
  56. package/ai-docs/concept/connecting-resources.md +369 -0
  57. package/ai-docs/concept/directives.md +371 -0
  58. package/ai-docs/concept/extending-cloudformation.md +315 -0
  59. package/ai-docs/concept/overrides-and-transforms.md +352 -0
  60. package/ai-docs/concept/stages-and-environments.md +347 -0
  61. package/ai-docs/concept/typescript-config.md +447 -0
  62. package/ai-docs/concept/yaml-config.md +338 -0
  63. package/ai-docs/config-ref/_root.md +142 -0
  64. package/ai-docs/config-ref/application-load-balancer.md +1109 -0
  65. package/ai-docs/config-ref/astro-web.md +115 -0
  66. package/ai-docs/config-ref/aws-cdk-construct.md +68 -0
  67. package/ai-docs/config-ref/bastion.md +93 -0
  68. package/ai-docs/config-ref/batch-job.md +179 -0
  69. package/ai-docs/config-ref/bucket.md +348 -0
  70. package/ai-docs/config-ref/cdn.md +496 -0
  71. package/ai-docs/config-ref/custom-resource.md +80 -0
  72. package/ai-docs/config-ref/deployment-script.md +79 -0
  73. package/ai-docs/config-ref/dynamo-db-table.md +202 -0
  74. package/ai-docs/config-ref/edge-lambda-function.md +87 -0
  75. package/ai-docs/config-ref/efs-filesystem.md +72 -0
  76. package/ai-docs/config-ref/event-bus.md +63 -0
  77. package/ai-docs/config-ref/function.md +409 -0
  78. package/ai-docs/config-ref/hosting-bucket.md +171 -0
  79. package/ai-docs/config-ref/http-api-gateway.md +149 -0
  80. package/ai-docs/config-ref/http-endpoint.md +92 -0
  81. package/ai-docs/config-ref/kinesis-stream.md +97 -0
  82. package/ai-docs/config-ref/mongo-db-atlas-cluster.md +254 -0
  83. package/ai-docs/config-ref/multi-container-workload.md +399 -0
  84. package/ai-docs/config-ref/network-load-balancer.md +118 -0
  85. package/ai-docs/config-ref/nextjs-web.md +147 -0
  86. package/ai-docs/config-ref/nuxt-web.md +81 -0
  87. package/ai-docs/config-ref/open-search.md +206 -0
  88. package/ai-docs/config-ref/private-service.md +75 -0
  89. package/ai-docs/config-ref/redis-cluster.md +223 -0
  90. package/ai-docs/config-ref/relational-database.md +525 -0
  91. package/ai-docs/config-ref/remix-web.md +74 -0
  92. package/ai-docs/config-ref/sns-topic.md +69 -0
  93. package/ai-docs/config-ref/solidstart-web.md +75 -0
  94. package/ai-docs/config-ref/sqs-queue-not-empty.md +405 -0
  95. package/ai-docs/config-ref/sqs-queue.md +232 -0
  96. package/ai-docs/config-ref/state-machine.md +235 -0
  97. package/ai-docs/config-ref/sveltekit-web.md +81 -0
  98. package/ai-docs/config-ref/tanstack-web.md +75 -0
  99. package/ai-docs/config-ref/upstash-redis.md +59 -0
  100. package/ai-docs/config-ref/user-auth-pool.md +876 -0
  101. package/ai-docs/config-ref/web-app-firewall.md +212 -0
  102. package/ai-docs/config-ref/web-service.md +178 -0
  103. package/ai-docs/config-ref/worker-service.md +41 -0
  104. package/ai-docs/getting-started/console.md +232 -0
  105. package/ai-docs/getting-started/deployment.md +434 -0
  106. package/ai-docs/getting-started/dev-mode.md +118 -0
  107. package/ai-docs/getting-started/how-it-works.md +119 -0
  108. package/ai-docs/getting-started/intro.md +157 -0
  109. package/ai-docs/getting-started/using-with-ai.md +228 -0
  110. package/ai-docs/getting-started/workflow.md +197 -0
  111. package/ai-docs/index.json +1514 -0
  112. package/ai-docs/recipe/background-jobs.md +183 -0
  113. package/ai-docs/recipe/database-migrations.md +240 -0
  114. package/ai-docs/recipe/graphql-api.md +211 -0
  115. package/ai-docs/recipe/monorepo-setup.md +183 -0
  116. package/ai-docs/recipe/nextjs-full-stack.md +188 -0
  117. package/ai-docs/recipe/rest-api-with-database.md +156 -0
  118. package/ai-docs/recipe/scheduled-tasks.md +186 -0
  119. package/ai-docs/recipe/static-website.md +241 -0
  120. package/ai-docs/troubleshooting/cloudformation-stack-states.md +189 -0
  121. package/bin/stacktape.js +206 -41
  122. package/package.json +1 -1
  123. package/plain.d.ts +309 -54
@@ -0,0 +1,212 @@
1
+ ---
2
+ docType: config-ref
3
+ title: Web App Firewall
4
+ resourceType: web-app-firewall
5
+ tags:
6
+ - web-app-firewall
7
+ - waf
8
+ - firewall
9
+ source: types/stacktape-config/web-app-firewall.d.ts
10
+ priority: 1
11
+ ---
12
+
13
+ # Web App Firewall
14
+
15
+ Protects your APIs and websites from common attacks (SQL injection, XSS, bots, DDoS).
16
+
17
+ Attach to an HTTP API Gateway, Application Load Balancer, or CDN. Comes with AWS-managed rule sets
18
+ by default. Costs ~$5/month base + $1/million requests inspected.
19
+
20
+ Resource type: `web-app-firewall`
21
+
22
+ ## TypeScript Definition
23
+
24
+ ```typescript
25
+ /**
26
+ * #### Protects your APIs and websites from common attacks (SQL injection, XSS, bots, DDoS).
27
+ *
28
+ * ---
29
+ *
30
+ * Attach to an HTTP API Gateway, Application Load Balancer, or CDN. Comes with AWS-managed rule sets
31
+ * by default. Costs ~$5/month base + $1/million requests inspected.
32
+ */
33
+ interface WebAppFirewall {
34
+ type: 'web-app-firewall';
35
+ properties?: WebAppFirewallProps;
36
+ overrides?: ResourceOverrides;
37
+ }
38
+
39
+ interface WebAppFirewallProps {
40
+ /**
41
+ * #### `cdn` for CloudFront-attached resources, `regional` for ALBs, User Pools, or direct API Gateways.
42
+ */
43
+ scope: 'regional' | 'cdn';
44
+ /**
45
+ * #### What happens when no rule matches a request.
46
+ *
47
+ * ---
48
+ *
49
+ * - **`Allow`** (recommended): Allow all traffic, block only what rules catch.
50
+ * - **`Block`**: Block all traffic, allow only what rules explicitly permit (returns 403).
51
+ *
52
+ * @default Allow
53
+ */
54
+ defaultAction?: 'Allow' | 'Block';
55
+ /**
56
+ * #### Firewall rules: managed rule groups (AWS presets), custom rule groups, or rate-based rules.
57
+ *
58
+ * ---
59
+ *
60
+ * If omitted, Stacktape uses `AWSManagedRulesCommonRuleSet` + `AWSManagedRulesKnownBadInputsRuleSet` by default.
61
+ */
62
+ rules?: (ManagedRuleGroup | CustomRuleGroup | RateBasedStatement)[];
63
+ /**
64
+ * #### Custom response bodies for `Block` actions. Map of key → content type + body.
65
+ */
66
+ customResponseBodies?: CustomResponseBodies;
67
+ /**
68
+ * #### Seconds a solved CAPTCHA stays valid before requiring re-verification.
69
+ * @default 300
70
+ */
71
+ captchaImmunityTime?: number;
72
+ /**
73
+ * #### Seconds a solved challenge stays valid before requiring re-verification.
74
+ * @default 300
75
+ */
76
+ challengeImmunityTime?: number;
77
+ /**
78
+ * #### Domains accepted in WAF tokens. Enables token sharing across multiple protected websites.
79
+ */
80
+ tokenDomains?: string[];
81
+ /**
82
+ * #### Disable CloudWatch metrics for the firewall.
83
+ * @default false
84
+ */
85
+ disableMetrics?: boolean;
86
+ /**
87
+ * #### Save samples of matched requests for inspection in the AWS WAF console.
88
+ * @default false
89
+ */
90
+ sampledRequestsEnabled?: boolean;
91
+ }
92
+
93
+ interface CommonRuleProps {
94
+ /**
95
+ * #### Evaluation order. Lower = evaluated first. Must be unique across all rules.
96
+ */
97
+ priority: number;
98
+ /*
99
+ * #### The name of the rule.
100
+ *
101
+ * ---
102
+ *
103
+ * - For a `managed-rule-group`, this is the name of the rule group used along with the `vendorName`.
104
+ * - For other rule types, this is an arbitrary value used to identify the rule.
105
+ */
106
+ name: string;
107
+ /**
108
+ * #### Disable CloudWatch metrics for this rule.
109
+ * @default false
110
+ */
111
+ disableMetrics?: boolean;
112
+ /**
113
+ * #### Save samples of requests matching this rule for inspection in the WAF console.
114
+ * @default false
115
+ */
116
+ sampledRequestsEnabled?: boolean;
117
+ }
118
+
119
+ interface ManagedRuleGroup {
120
+ type: 'managed-rule-group';
121
+ properties: ManagedRuleGroupProps;
122
+ }
123
+
124
+ interface ManagedRuleGroupProps extends CommonRuleProps {
125
+ /**
126
+ * #### Vendor name (e.g., `AWS` for AWS-managed rules).
127
+ */
128
+ vendorName: string;
129
+ /**
130
+ * #### Rules within this group to skip (by rule name). Useful for disabling false positives.
131
+ */
132
+ excludedRules?: string[];
133
+ /**
134
+ * #### `None` = apply normally, `Count` = log matches without blocking (dry-run mode).
135
+ */
136
+ overrideAction?: 'None' | 'Count';
137
+ }
138
+
139
+ interface CustomRuleGroup {
140
+ type: 'custom-rule-group';
141
+ properties: CustomRuleGroupProps;
142
+ }
143
+
144
+ interface CustomRuleGroupProps extends CommonRuleProps {
145
+ /**
146
+ * #### ARN of the custom WAF rule group.
147
+ */
148
+ arn: string;
149
+ /**
150
+ * #### `None` = apply normally, `Count` = log matches without blocking (dry-run mode).
151
+ */
152
+ overrideAction?: 'None' | 'Count';
153
+ }
154
+
155
+ interface RateBasedStatement {
156
+ type: 'rate-based-rule';
157
+ properties: RateBasedStatementProps;
158
+ }
159
+
160
+ interface RateBasedStatementProps extends CommonRuleProps {
161
+ /**
162
+ * #### Max requests per IP in a 5-minute window. Range: 100–20,000,000. Exceeding triggers the `action`.
163
+ */
164
+ limit: number;
165
+ /**
166
+ * #### `IP` = direct client IP, `FORWARDED_IP` = IP from a header (e.g., `X-Forwarded-For` behind a proxy).
167
+ */
168
+ aggregateBasedOn?: 'IP' | 'FORWARDED_IP';
169
+ /**
170
+ * #### Header and fallback settings when using `FORWARDED_IP` aggregation.
171
+ */
172
+ forwardedIPConfig?: ForwardedIPConfig;
173
+ /**
174
+ * #### What to do when the rate limit is exceeded.
175
+ *
176
+ * ---
177
+ *
178
+ * - `Block`: Return 403 (most common for rate limiting).
179
+ * - `Count`: Log only, don't block (useful for testing thresholds).
180
+ * - `Captcha`/`Challenge`: Verify the client is human.
181
+ *
182
+ * @default Block
183
+ */
184
+ action?: 'Allow' | 'Block' | 'Count' | 'Captcha' | 'Challenge';
185
+ }
186
+
187
+ interface ForwardedIPConfig {
188
+ /**
189
+ * #### What to do when the header is missing. `MATCH` = apply rule action, `NO_MATCH` = skip.
190
+ */
191
+ fallbackBehavior: 'MATCH' | 'NO_MATCH';
192
+ /**
193
+ * #### HTTP header containing the client IP (e.g., `X-Forwarded-For`).
194
+ */
195
+ headerName: string;
196
+ }
197
+
198
+ interface CustomResponseBodies {
199
+ [key: string]: {
200
+ /**
201
+ * #### MIME type: `application/json`, `text/plain`, or `text/html`.
202
+ */
203
+ contentType: string;
204
+ /**
205
+ * #### Response body content.
206
+ */
207
+ content: string;
208
+ };
209
+ }
210
+
211
+ type WebAppFirewallReferencableParams = 'arn' | 'scope';
212
+ ```
@@ -0,0 +1,178 @@
1
+ ---
2
+ docType: config-ref
3
+ title: Web Service
4
+ resourceType: web-service
5
+ tags:
6
+ - web-service
7
+ - container
8
+ - docker
9
+ - ecs
10
+ - fargate
11
+ - http-service
12
+ source: types/stacktape-config/web-services.d.ts
13
+ priority: 1
14
+ ---
15
+
16
+ # Web Service
17
+
18
+ A container running 24/7 with a public HTTPS URL.
19
+
20
+ Use for APIs, web apps, and any service that needs to be always-on and reachable from the internet.
21
+ Includes TLS/SSL, auto-scaling, health checks, and zero-downtime deployments.
22
+
23
+ Resource type: `web-service`
24
+
25
+ ## TypeScript Definition
26
+
27
+ ```typescript
28
+ /**
29
+ * #### A container running 24/7 with a public HTTPS URL.
30
+ *
31
+ * ---
32
+ *
33
+ * Use for APIs, web apps, and any service that needs to be always-on and reachable from the internet.
34
+ * Includes TLS/SSL, auto-scaling, health checks, and zero-downtime deployments.
35
+ */
36
+ interface WebService {
37
+ type: 'web-service';
38
+ properties: WebServiceProps;
39
+ overrides?: ResourceOverrides;
40
+ }
41
+
42
+ interface WebServiceProps extends SimpleServiceContainer {
43
+ /**
44
+ * #### CORS settings. Overrides any CORS headers from your application.
45
+ *
46
+ * ---
47
+ *
48
+ * Only works with `http-api-gateway` load balancing (the default).
49
+ */
50
+ cors?: HttpApiCorsConfig;
51
+ /**
52
+ * #### Custom domains (e.g., `api.example.com`). Stacktape auto-creates DNS records and TLS certificates.
53
+ *
54
+ * ---
55
+ *
56
+ * Your domain must be added as a Route53 hosted zone in your AWS account first.
57
+ */
58
+ customDomains?: DomainConfiguration[];
59
+ /**
60
+ * #### How traffic reaches your containers. Affects pricing, features, and protocol support.
61
+ *
62
+ * ---
63
+ *
64
+ * - **`http-api-gateway`** (default): Pay-per-request (~$1/million requests). Best for most apps.
65
+ * Cheapest at low traffic, but costs grow with volume.
66
+ *
67
+ * - **`application-load-balancer`**: Flat ~$18/month + usage. Required for gradual deployments
68
+ * (`deployment`), firewalls (`useFirewall`), and WebSocket support.
69
+ * More cost-effective above ~500k requests/day. AWS Free Tier eligible.
70
+ *
71
+ * - **`network-load-balancer`**: For non-HTTP traffic (TCP/TLS) like MQTT, game servers, or custom protocols.
72
+ * Requires explicit `ports` configuration. Does not support CDN, firewall, or gradual deployments.
73
+ */
74
+ loadBalancing?: WebServiceHttpApiGatewayLoadBalancing | WebServiceAlbLoadBalancing | WebServiceNlbLoadBalancing;
75
+ /**
76
+ * #### Put a CDN (CloudFront) in front of this service for caching and lower latency worldwide.
77
+ */
78
+ cdn?: CdnConfiguration;
79
+ /**
80
+ * #### Alarms for this service (merged with global alarms from the Stacktape Console).
81
+ */
82
+ alarms?: (HttpApiGatewayAlarm | ApplicationLoadBalancerAlarm)[];
83
+ /**
84
+ * #### Global alarm names to exclude from this service.
85
+ */
86
+ disabledGlobalAlarms?: string[];
87
+ /**
88
+ * #### Gradual traffic shifting for safe deployments (canary, linear, or all-at-once).
89
+ *
90
+ * ---
91
+ *
92
+ * Requires `loadBalancing` type `application-load-balancer`.
93
+ */
94
+ deployment?: ContainerWorkloadDeploymentConfig;
95
+ /**
96
+ * #### Name of a `web-app-firewall` resource to protect this service from common web exploits.
97
+ */
98
+ useFirewall?: string;
99
+ }
100
+
101
+ type WebServiceReferencableParam = HttpApiGatewayReferencableParam | ContainerWorkloadReferencableParam;
102
+
103
+ interface WebServiceHttpApiGatewayLoadBalancing {
104
+ type: HttpApiGateway['type'];
105
+ }
106
+
107
+ interface WebServiceAlbLoadBalancing {
108
+ type: ApplicationLoadBalancer['type'];
109
+ properties?: WebServiceAlbLoadBalancingProps;
110
+ }
111
+
112
+ interface WebServiceAlbLoadBalancingProps {
113
+ /**
114
+ * #### Path the load balancer pings to check container health.
115
+ * @default /
116
+ */
117
+ healthcheckPath?: string;
118
+ /**
119
+ * #### Seconds between health checks.
120
+ * @default 5
121
+ */
122
+ healthcheckInterval?: number;
123
+ /**
124
+ * #### Seconds before a health check is considered failed.
125
+ * @default 4
126
+ */
127
+ healthcheckTimeout?: number;
128
+ }
129
+
130
+ interface WebServiceNlbLoadBalancing {
131
+ type: NetworkLoadBalancer['type'];
132
+ properties: WebServiceNlbLoadBalancingProps;
133
+ }
134
+
135
+ interface WebServiceNlbLoadBalancingProps {
136
+ /**
137
+ * #### Health check path (only used when `healthCheckProtocol` is `HTTP`).
138
+ * @default /
139
+ */
140
+ healthcheckPath?: string;
141
+ /**
142
+ * #### Seconds between health checks (5-300).
143
+ * @default 5
144
+ */
145
+ healthcheckInterval?: number;
146
+ /**
147
+ * #### Seconds before a health check is considered failed (2-120).
148
+ * @default 4
149
+ */
150
+ healthcheckTimeout?: number;
151
+ /**
152
+ * #### Health check protocol: `TCP` (port check) or `HTTP` (path check).
153
+ * @default TCP
154
+ */
155
+ healthCheckProtocol?: 'HTTP' | 'TCP';
156
+ /**
157
+ * #### Health check port. Defaults to the traffic port.
158
+ */
159
+ healthCheckPort?: number;
160
+ ports: WebServiceNlbLoadBalancingPort[];
161
+ }
162
+
163
+ interface WebServiceNlbLoadBalancingPort {
164
+ /**
165
+ * #### Public port exposed by the load balancer.
166
+ */
167
+ port: number;
168
+ /**
169
+ * #### Protocol: `TLS` (encrypted) or `TCP` (raw).
170
+ * @default TLS
171
+ */
172
+ protocol?: 'TCP' | 'TLS';
173
+ /**
174
+ * #### Port on the container that receives the traffic. Defaults to `port`.
175
+ */
176
+ containerPort?: number;
177
+ }
178
+ ```
@@ -0,0 +1,41 @@
1
+ ---
2
+ docType: config-ref
3
+ title: Worker Service
4
+ resourceType: worker-service
5
+ tags:
6
+ - worker-service
7
+ - background
8
+ - worker
9
+ - async-worker
10
+ source: types/stacktape-config/worker-services.d.ts
11
+ priority: 1
12
+ ---
13
+
14
+ # Worker Service
15
+
16
+ Always-on container with no public URL. For background workers, queue processors, and internal tasks.
17
+
18
+ Runs 24/7 inside your VPC. Not reachable from the internet. Can connect to databases, queues, and other resources.
19
+
20
+ Resource type: `worker-service`
21
+
22
+ ## TypeScript Definition
23
+
24
+ ```typescript
25
+ /**
26
+ * #### Always-on container with no public URL. For background workers, queue processors, and internal tasks.
27
+ *
28
+ * ---
29
+ *
30
+ * Runs 24/7 inside your VPC. Not reachable from the internet. Can connect to databases, queues, and other resources.
31
+ */
32
+ interface WorkerService {
33
+ type: 'worker-service';
34
+ properties: WorkerServiceProps;
35
+ overrides?: ResourceOverrides;
36
+ }
37
+
38
+ interface WorkerServiceProps extends SimpleServiceContainer {}
39
+
40
+ type WorkerServiceReferencableParams = ContainerWorkloadReferencableParam;
41
+ ```
@@ -0,0 +1,232 @@
1
+ ---
2
+ docType: getting-started
3
+ title: Console
4
+ tags:
5
+ - console
6
+ - getting-started
7
+ source: docs/_curated-docs/getting-started/console.mdx
8
+ priority: 2
9
+ ---
10
+
11
+ # Console
12
+
13
+ The Stacktape Console is a web-based interface for managing your infrastructure. It complements the CLI with visual tools for deployments, monitoring, and team collaboration.
14
+
15
+ **URL:** [console.stacktape.com](https://console.stacktape.com)
16
+
17
+ ## Key Features
18
+
19
+ ### GitOps Deployments
20
+
21
+ Connect your GitHub, GitLab, or Bitbucket repository and deploy automatically:
22
+
23
+ - **Push-to-deploy**: Automatically deploy when you push to a branch
24
+ - **Preview environments**: Create temporary environments for pull requests
25
+ - **PR comments**: Deployment status and links posted directly to your PRs
26
+
27
+ `[IMAGE PLACEHOLDER: console-gitops-setup]`
28
+
29
+ ### Live Deployment Logs
30
+
31
+ Watch your deployments in real-time with streaming logs from AWS CodeBuild or EC2 runners.
32
+
33
+ `[IMAGE PLACEHOLDER: console-deployment-logs]`
34
+
35
+ ### Logs Browser
36
+
37
+ Browse and search CloudWatch logs with an intuitive interface:
38
+
39
+ - Filter by time range
40
+ - Search with patterns
41
+ - Live tail for real-time debugging
42
+
43
+ `[IMAGE PLACEHOLDER: console-logs-browser]`
44
+
45
+ ### Metrics Dashboard
46
+
47
+ Visualize metrics for all your resources:
48
+
49
+ - Lambda invocations, duration, errors
50
+ - ECS CPU and memory utilization
51
+ - RDS connections, IOPS, latency
52
+ - API Gateway requests and latency
53
+ - And more...
54
+
55
+ `[IMAGE PLACEHOLDER: console-metrics-dashboard]`
56
+
57
+ ### Cost Management
58
+
59
+ Track AWS spending across all your stacks:
60
+
61
+ - Per-stack cost breakdown
62
+ - Monthly trends and comparisons
63
+ - Service-level cost attribution
64
+ - Multi-account aggregation
65
+
66
+ `[IMAGE PLACEHOLDER: console-costs-page]`
67
+
68
+ ### S3 File Browser
69
+
70
+ Browse, upload, and manage files in your S3 buckets directly from the console:
71
+
72
+ - Folder navigation
73
+ - File upload and download
74
+ - In-browser text editor
75
+ - Delete operations
76
+
77
+ `[IMAGE PLACEHOLDER: console-s3-browser]`
78
+
79
+ ### Remote Sessions
80
+
81
+ Open a terminal inside your running containers without SSH keys:
82
+
83
+ - Secure SSM-based connections
84
+ - No port exposure required
85
+ - Works with private containers
86
+
87
+ `[IMAGE PLACEHOLDER: console-remote-session]`
88
+
89
+ ### Secrets Management
90
+
91
+ Create and manage secrets stored in AWS Secrets Manager:
92
+
93
+ - Create, view, and delete secrets
94
+ - Works across all connected AWS accounts
95
+ - Reference secrets in your configurations with `$Secret('name')`
96
+
97
+ `[IMAGE PLACEHOLDER: console-secrets-manager]`
98
+
99
+ ### Monitoring & Alarms
100
+
101
+ Set up alerts for your infrastructure:
102
+
103
+ - Lambda error rate thresholds
104
+ - Database CPU and storage alerts
105
+ - API latency warnings
106
+ - Notifications via Slack, Teams, or email
107
+
108
+ ## Getting Started with the Console
109
+
110
+ ### Step 1: Create an Account
111
+
112
+ Visit [console.stacktape.com](https://console.stacktape.com) and sign up with:
113
+
114
+ - Email and password
115
+ - GitHub OAuth
116
+ - Google OAuth
117
+
118
+ ### Step 2: Connect Your AWS Account
119
+
120
+ The console needs access to your AWS account to deploy and manage resources.
121
+
122
+ 1. Go to **Settings** → **AWS Accounts**
123
+ 2. Click **Connect AWS Account**
124
+ 3. You'll be redirected to AWS to create a CloudFormation stack
125
+ 4. This stack creates:
126
+ - An IAM role for Stacktape to assume
127
+ - An S3 bucket for cost reports
128
+ 5. Wait about 1 minute for the stack to complete
129
+ 6. Your account shows as "Active"
130
+
131
+ `[IMAGE PLACEHOLDER: console-aws-account-connection]`
132
+
133
+ ### Step 3: Create Your First Project
134
+
135
+ 1. Click **New Project**
136
+ 2. Choose your deployment source:
137
+ - **From Git repository**: Connect to GitHub, GitLab, or Bitbucket
138
+ - **From template**: Start with a pre-built example
139
+ 3. Configure your project settings:
140
+ - Project name
141
+ - Default stage and region
142
+ - Build settings
143
+
144
+ ### Step 4: Deploy
145
+
146
+ For Git-connected projects:
147
+
148
+ 1. Push code to your repository
149
+ 2. The console automatically detects changes
150
+ 3. Watch the deployment progress in real-time
151
+
152
+ Or trigger a manual deployment from the console.
153
+
154
+ ## Console vs CLI
155
+
156
+ Both tools deploy to the same infrastructure. Choose based on your workflow:
157
+
158
+ | Feature | CLI | Console |
159
+ | ------------------------- | ------------------ | ----------- |
160
+ | Local development | ✅ | ❌ |
161
+ | GitOps/CI-CD | Via GitHub Actions | ✅ Built-in |
162
+ | Log browsing | Basic | ✅ Advanced |
163
+ | Metrics visualization | ❌ | ✅ |
164
+ | Cost tracking | ❌ | ✅ |
165
+ | Team collaboration | ❌ | ✅ |
166
+ | S3 file management | ❌ | ✅ |
167
+ | Remote container sessions | ✅ | ✅ |
168
+
169
+ **Typical workflow:**
170
+
171
+ - Use the **CLI** for local development and quick iterations
172
+ - Use the **Console** for production deployments, monitoring, and team collaboration
173
+
174
+ ## Pricing
175
+
176
+ The Stacktape CLI is **free and open source**. The Console has the following tiers:
177
+
178
+ | Feature | Free | Flexible | Enterprise |
179
+ | -------------------- | --------- | --------- | ---------------------------- |
180
+ | CLI deployments | ✅ | ✅ | ✅ |
181
+ | Console deployments | Limited | ✅ | ✅ |
182
+ | GitOps | ❌ | ✅ | ✅ |
183
+ | Preview environments | ❌ | ✅ | ✅ |
184
+ | Logs browser | Limited | ✅ | ✅ |
185
+ | Metrics | Limited | ✅ | ✅ |
186
+ | Cost tracking | ❌ | ✅ | ✅ |
187
+ | Team members | 1 | Unlimited | Unlimited |
188
+ | Support | Community | Standard | Premium (8-min avg response) |
189
+
190
+ See [stacktape.com/pricing](https://stacktape.com/pricing) for current pricing.
191
+
192
+ ## Team Collaboration
193
+
194
+ ### Invite Team Members
195
+
196
+ 1. Go to **Settings** → **Team**
197
+ 2. Click **Invite Member**
198
+ 3. Enter their email address
199
+ 4. Choose a role:
200
+ - **Owner**: Full access, billing management
201
+ - **Admin**: Full access, no billing
202
+ - **Member**: Deploy and view access
203
+
204
+ ### Multi-Factor Authentication
205
+
206
+ Enable MFA for additional security:
207
+
208
+ 1. Go to your profile settings
209
+ 2. Enable MFA
210
+ 3. Choose TOTP (authenticator app) or SMS
211
+
212
+ ## API Keys
213
+
214
+ Generate API keys for programmatic access:
215
+
216
+ ```bash
217
+ # Set your API key for CLI authentication
218
+ stacktape login --apiKey YOUR_API_KEY
219
+ ```
220
+
221
+ Or use in CI/CD environments:
222
+
223
+ ```bash
224
+ export STACKTAPE_API_KEY=your-api-key
225
+ stacktape deploy --stage production --region us-east-1
226
+ ```
227
+
228
+ ## Next steps
229
+
230
+ - [Intro](/getting-started/intro) - Get started with Stacktape
231
+ - [Workflow](/getting-started/workflow) - Understand the development workflow
232
+ - [Dev Mode](/getting-started/dev-mode) - Local development