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.
- package/.tsconfig.bun-build.json +1 -0
- package/ai-docs/cli-ref/aws-profile-create.md +22 -0
- package/ai-docs/cli-ref/aws-profile-delete.md +22 -0
- package/ai-docs/cli-ref/aws-profile-list.md +20 -0
- package/ai-docs/cli-ref/aws-profile-update.md +22 -0
- package/ai-docs/cli-ref/bastion-session.md +29 -0
- package/ai-docs/cli-ref/bastion-tunnel.md +30 -0
- package/ai-docs/cli-ref/bucket-sync.md +30 -0
- package/ai-docs/cli-ref/cf-module-update.md +26 -0
- package/ai-docs/cli-ref/cf-rollback.md +28 -0
- package/ai-docs/cli-ref/codebuild-deploy.md +34 -0
- package/ai-docs/cli-ref/compile-template.md +25 -0
- package/ai-docs/cli-ref/container-session.md +30 -0
- package/ai-docs/cli-ref/debug-alarms.md +28 -0
- package/ai-docs/cli-ref/debug-aws-sdk.md +33 -0
- package/ai-docs/cli-ref/debug-container-exec.md +36 -0
- package/ai-docs/cli-ref/debug-dynamodb.md +35 -0
- package/ai-docs/cli-ref/debug-logs.md +34 -0
- package/ai-docs/cli-ref/debug-metrics.md +33 -0
- package/ai-docs/cli-ref/debug-opensearch.md +35 -0
- package/ai-docs/cli-ref/debug-redis.md +36 -0
- package/ai-docs/cli-ref/debug-sql.md +35 -0
- package/ai-docs/cli-ref/defaults-configure.md +29 -0
- package/ai-docs/cli-ref/defaults-list.md +20 -0
- package/ai-docs/cli-ref/delete.md +24 -0
- package/ai-docs/cli-ref/deploy.md +25 -0
- package/ai-docs/cli-ref/deployment-script-run.md +28 -0
- package/ai-docs/cli-ref/dev-stop.md +26 -0
- package/ai-docs/cli-ref/dev.md +45 -0
- package/ai-docs/cli-ref/domain-add.md +26 -0
- package/ai-docs/cli-ref/help.md +18 -0
- package/ai-docs/cli-ref/info-operations.md +22 -0
- package/ai-docs/cli-ref/info-stack.md +30 -0
- package/ai-docs/cli-ref/info-stacks.md +26 -0
- package/ai-docs/cli-ref/info-whoami.md +22 -0
- package/ai-docs/cli-ref/init.md +30 -0
- package/ai-docs/cli-ref/login.md +20 -0
- package/ai-docs/cli-ref/logout.md +18 -0
- package/ai-docs/cli-ref/mcp-add.md +22 -0
- package/ai-docs/cli-ref/mcp.md +20 -0
- package/ai-docs/cli-ref/org-create.md +24 -0
- package/ai-docs/cli-ref/org-delete.md +24 -0
- package/ai-docs/cli-ref/org-list.md +22 -0
- package/ai-docs/cli-ref/package-workloads.md +25 -0
- package/ai-docs/cli-ref/param-get.md +26 -0
- package/ai-docs/cli-ref/preview-changes.md +23 -0
- package/ai-docs/cli-ref/project-create.md +22 -0
- package/ai-docs/cli-ref/projects-list.md +22 -0
- package/ai-docs/cli-ref/rollback.md +28 -0
- package/ai-docs/cli-ref/script-run.md +29 -0
- package/ai-docs/cli-ref/secret-create.md +28 -0
- package/ai-docs/cli-ref/secret-delete.md +26 -0
- package/ai-docs/cli-ref/secret-get.md +26 -0
- package/ai-docs/cli-ref/upgrade.md +20 -0
- package/ai-docs/cli-ref/version.md +18 -0
- package/ai-docs/concept/connecting-resources.md +369 -0
- package/ai-docs/concept/directives.md +371 -0
- package/ai-docs/concept/extending-cloudformation.md +315 -0
- package/ai-docs/concept/overrides-and-transforms.md +352 -0
- package/ai-docs/concept/stages-and-environments.md +347 -0
- package/ai-docs/concept/typescript-config.md +447 -0
- package/ai-docs/concept/yaml-config.md +338 -0
- package/ai-docs/config-ref/_root.md +142 -0
- package/ai-docs/config-ref/application-load-balancer.md +1109 -0
- package/ai-docs/config-ref/astro-web.md +115 -0
- package/ai-docs/config-ref/aws-cdk-construct.md +68 -0
- package/ai-docs/config-ref/bastion.md +93 -0
- package/ai-docs/config-ref/batch-job.md +179 -0
- package/ai-docs/config-ref/bucket.md +348 -0
- package/ai-docs/config-ref/cdn.md +496 -0
- package/ai-docs/config-ref/custom-resource.md +80 -0
- package/ai-docs/config-ref/deployment-script.md +79 -0
- package/ai-docs/config-ref/dynamo-db-table.md +202 -0
- package/ai-docs/config-ref/edge-lambda-function.md +87 -0
- package/ai-docs/config-ref/efs-filesystem.md +72 -0
- package/ai-docs/config-ref/event-bus.md +63 -0
- package/ai-docs/config-ref/function.md +409 -0
- package/ai-docs/config-ref/hosting-bucket.md +171 -0
- package/ai-docs/config-ref/http-api-gateway.md +149 -0
- package/ai-docs/config-ref/http-endpoint.md +92 -0
- package/ai-docs/config-ref/kinesis-stream.md +97 -0
- package/ai-docs/config-ref/mongo-db-atlas-cluster.md +254 -0
- package/ai-docs/config-ref/multi-container-workload.md +399 -0
- package/ai-docs/config-ref/network-load-balancer.md +118 -0
- package/ai-docs/config-ref/nextjs-web.md +147 -0
- package/ai-docs/config-ref/nuxt-web.md +81 -0
- package/ai-docs/config-ref/open-search.md +206 -0
- package/ai-docs/config-ref/private-service.md +75 -0
- package/ai-docs/config-ref/redis-cluster.md +223 -0
- package/ai-docs/config-ref/relational-database.md +525 -0
- package/ai-docs/config-ref/remix-web.md +74 -0
- package/ai-docs/config-ref/sns-topic.md +69 -0
- package/ai-docs/config-ref/solidstart-web.md +75 -0
- package/ai-docs/config-ref/sqs-queue-not-empty.md +405 -0
- package/ai-docs/config-ref/sqs-queue.md +232 -0
- package/ai-docs/config-ref/state-machine.md +235 -0
- package/ai-docs/config-ref/sveltekit-web.md +81 -0
- package/ai-docs/config-ref/tanstack-web.md +75 -0
- package/ai-docs/config-ref/upstash-redis.md +59 -0
- package/ai-docs/config-ref/user-auth-pool.md +876 -0
- package/ai-docs/config-ref/web-app-firewall.md +212 -0
- package/ai-docs/config-ref/web-service.md +178 -0
- package/ai-docs/config-ref/worker-service.md +41 -0
- package/ai-docs/getting-started/console.md +232 -0
- package/ai-docs/getting-started/deployment.md +434 -0
- package/ai-docs/getting-started/dev-mode.md +118 -0
- package/ai-docs/getting-started/how-it-works.md +119 -0
- package/ai-docs/getting-started/intro.md +157 -0
- package/ai-docs/getting-started/using-with-ai.md +228 -0
- package/ai-docs/getting-started/workflow.md +197 -0
- package/ai-docs/index.json +1514 -0
- package/ai-docs/recipe/background-jobs.md +183 -0
- package/ai-docs/recipe/database-migrations.md +240 -0
- package/ai-docs/recipe/graphql-api.md +211 -0
- package/ai-docs/recipe/monorepo-setup.md +183 -0
- package/ai-docs/recipe/nextjs-full-stack.md +188 -0
- package/ai-docs/recipe/rest-api-with-database.md +156 -0
- package/ai-docs/recipe/scheduled-tasks.md +186 -0
- package/ai-docs/recipe/static-website.md +241 -0
- package/ai-docs/troubleshooting/cloudformation-stack-states.md +189 -0
- package/bin/stacktape.js +206 -41
- package/package.json +1 -1
- package/plain.d.ts +309 -54
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
docType: config-ref
|
|
3
|
+
title: Http Api Gateway
|
|
4
|
+
resourceType: http-api-gateway
|
|
5
|
+
tags:
|
|
6
|
+
- http-api-gateway
|
|
7
|
+
- api-gateway
|
|
8
|
+
- apigateway
|
|
9
|
+
- gateway
|
|
10
|
+
- api
|
|
11
|
+
source: types/stacktape-config/http-api-gateways.d.ts
|
|
12
|
+
priority: 1
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Http Api Gateway
|
|
16
|
+
|
|
17
|
+
Serverless HTTP API with pay-per-request pricing (~$1/million requests).
|
|
18
|
+
|
|
19
|
+
Routes HTTP requests to Lambda functions, containers, or other backends.
|
|
20
|
+
No servers to manage. Includes built-in throttling, CORS, and TLS.
|
|
21
|
+
|
|
22
|
+
Resource type: `http-api-gateway`
|
|
23
|
+
|
|
24
|
+
## TypeScript Definition
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
/**
|
|
28
|
+
* #### Serverless HTTP API with pay-per-request pricing (~$1/million requests).
|
|
29
|
+
*
|
|
30
|
+
* ---
|
|
31
|
+
*
|
|
32
|
+
* Routes HTTP requests to Lambda functions, containers, or other backends.
|
|
33
|
+
* No servers to manage. Includes built-in throttling, CORS, and TLS.
|
|
34
|
+
*/
|
|
35
|
+
interface HttpApiGateway {
|
|
36
|
+
type: 'http-api-gateway';
|
|
37
|
+
properties?: HttpApiGatewayProps;
|
|
38
|
+
overrides?: ResourceOverrides;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
interface HttpApiGatewayProps {
|
|
42
|
+
/**
|
|
43
|
+
* #### Lambda event payload format. `2.0` is simpler and recommended for new projects.
|
|
44
|
+
*
|
|
45
|
+
* ---
|
|
46
|
+
*
|
|
47
|
+
* Only used if not overridden at the integration level.
|
|
48
|
+
*/
|
|
49
|
+
payloadFormat?: '1.0' | '2.0';
|
|
50
|
+
/**
|
|
51
|
+
* #### CORS settings. Overrides any CORS headers from your application code.
|
|
52
|
+
*/
|
|
53
|
+
cors?: HttpApiCorsConfig;
|
|
54
|
+
/**
|
|
55
|
+
* #### Access logging (request ID, IP, method, status, etc.). Viewable with `stacktape logs`.
|
|
56
|
+
*/
|
|
57
|
+
logging?: HttpApiAccessLogsConfig;
|
|
58
|
+
/**
|
|
59
|
+
* #### Custom domains (e.g., `api.example.com`). Stacktape auto-creates DNS records and TLS certificates.
|
|
60
|
+
*
|
|
61
|
+
* ---
|
|
62
|
+
*
|
|
63
|
+
* Your domain must be added as a Route53 hosted zone in your AWS account first.
|
|
64
|
+
*/
|
|
65
|
+
customDomains?: DomainConfiguration[];
|
|
66
|
+
/**
|
|
67
|
+
* #### Put a CDN (CloudFront) in front of this API for caching and lower latency worldwide.
|
|
68
|
+
*/
|
|
69
|
+
cdn?: CdnConfiguration;
|
|
70
|
+
/**
|
|
71
|
+
* #### Alarms for this API Gateway (merged with global alarms from the Stacktape Console).
|
|
72
|
+
*/
|
|
73
|
+
alarms?: HttpApiGatewayAlarm[];
|
|
74
|
+
/**
|
|
75
|
+
* #### Global alarm names to exclude from this API Gateway.
|
|
76
|
+
*/
|
|
77
|
+
disabledGlobalAlarms?: string[];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
interface HttpApiAccessLogsConfig extends LogForwardingBase {
|
|
81
|
+
/**
|
|
82
|
+
* #### Disable access logging.
|
|
83
|
+
* @default false
|
|
84
|
+
*/
|
|
85
|
+
disabled?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* #### Log format. Logs include: requestId, IP, method, status, protocol, responseLength.
|
|
88
|
+
* @default JSON
|
|
89
|
+
*/
|
|
90
|
+
format?: 'CLF' | 'JSON' | 'XML' | 'CSV';
|
|
91
|
+
/**
|
|
92
|
+
* #### How many days to keep logs.
|
|
93
|
+
* @default 30
|
|
94
|
+
*/
|
|
95
|
+
retentionDays?: 1 | 3 | 5 | 7 | 14 | 30 | 60 | 90 | 120 | 150 | 180 | 365 | 400 | 545 | 731 | 1827 | 3653;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS' | '*';
|
|
99
|
+
|
|
100
|
+
interface HttpApiCorsConfig {
|
|
101
|
+
/**
|
|
102
|
+
* #### Enable CORS. With no other options, uses permissive defaults (`*` origins, common headers).
|
|
103
|
+
* @default false
|
|
104
|
+
*/
|
|
105
|
+
enabled: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* #### Allowed origins (e.g., `https://myapp.com`). Use `*` for any origin.
|
|
108
|
+
* @default ["*"]
|
|
109
|
+
*/
|
|
110
|
+
allowedOrigins?: string[];
|
|
111
|
+
/**
|
|
112
|
+
* #### Allowed request headers in CORS preflight.
|
|
113
|
+
*/
|
|
114
|
+
allowedHeaders?: string[];
|
|
115
|
+
/**
|
|
116
|
+
* #### Allowed HTTP methods. Auto-detected from integrations if not set.
|
|
117
|
+
*/
|
|
118
|
+
allowedMethods?: HttpMethod[];
|
|
119
|
+
/**
|
|
120
|
+
* #### Allow cookies/auth headers in cross-origin requests.
|
|
121
|
+
*/
|
|
122
|
+
allowCredentials?: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* #### Response headers accessible to browser JavaScript.
|
|
125
|
+
*/
|
|
126
|
+
exposedResponseHeaders?: string[];
|
|
127
|
+
/**
|
|
128
|
+
* #### How long (seconds) browsers can cache preflight responses.
|
|
129
|
+
*/
|
|
130
|
+
maxAge?: number;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
type HttpApiGatewayReferencableParam =
|
|
134
|
+
| 'domain'
|
|
135
|
+
| 'customDomains'
|
|
136
|
+
| 'url'
|
|
137
|
+
| 'customDomainUrl'
|
|
138
|
+
| 'customDomainUrls'
|
|
139
|
+
| 'canonicalDomain'
|
|
140
|
+
| CdnReferenceableParam;
|
|
141
|
+
|
|
142
|
+
type HttpApiGatewayOutputs = {
|
|
143
|
+
integrations: {
|
|
144
|
+
url: string | IntrinsicFunction;
|
|
145
|
+
method: string;
|
|
146
|
+
resourceName: string;
|
|
147
|
+
}[];
|
|
148
|
+
};
|
|
149
|
+
```
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
docType: config-ref
|
|
3
|
+
title: Log Forwarding Base
|
|
4
|
+
resourceType: http-endpoint
|
|
5
|
+
tags:
|
|
6
|
+
- http-endpoint
|
|
7
|
+
source: types/stacktape-config/log-forwarding.d.ts
|
|
8
|
+
priority: 1
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Log Forwarding Base
|
|
12
|
+
|
|
13
|
+
Resource type: `http-endpoint`
|
|
14
|
+
|
|
15
|
+
## TypeScript Definition
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
interface LogForwardingBase {
|
|
19
|
+
/**
|
|
20
|
+
* #### Forward logs to an external service (Datadog, Highlight.io, or any HTTP endpoint).
|
|
21
|
+
*
|
|
22
|
+
* ---
|
|
23
|
+
*
|
|
24
|
+
* Uses Kinesis Data Firehose (~$0.03/GB). Failed deliveries go to a backup S3 bucket.
|
|
25
|
+
*/
|
|
26
|
+
logForwarding?: HttpEndpointLogForwarding | HighlightLogForwarding | DatadogLogForwarding;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
interface HttpEndpointLogForwarding {
|
|
30
|
+
type: 'http-endpoint';
|
|
31
|
+
properties: HttpEndpointLogForwardingProps;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
interface HttpEndpointLogForwardingProps {
|
|
35
|
+
/**
|
|
36
|
+
* #### HTTPS endpoint URL where logs are sent.
|
|
37
|
+
*/
|
|
38
|
+
endpointUrl: string;
|
|
39
|
+
/**
|
|
40
|
+
* #### Compress request body with GZIP to reduce transfer costs.
|
|
41
|
+
* @default false
|
|
42
|
+
*/
|
|
43
|
+
gzipEncodingEnabled?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* #### Extra metadata sent in the `X-Amz-Firehose-Common-Attributes` header.
|
|
46
|
+
*/
|
|
47
|
+
parameters?: { [paramName: string]: string };
|
|
48
|
+
/**
|
|
49
|
+
* #### Total retry time (seconds) before sending failed logs to a backup S3 bucket.
|
|
50
|
+
* @default 300
|
|
51
|
+
*/
|
|
52
|
+
retryDuration?: number;
|
|
53
|
+
/**
|
|
54
|
+
* #### Auth credential sent in `X-Amz-Firehose-Access-Key` header. Store as `$Secret()` for security.
|
|
55
|
+
*/
|
|
56
|
+
accessKey?: string;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
interface HighlightLogForwarding {
|
|
60
|
+
type: 'highlight';
|
|
61
|
+
properties: HighlightLogForwardingProps;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface HighlightLogForwardingProps {
|
|
65
|
+
/**
|
|
66
|
+
* #### Your Highlight.io project ID (from the Highlight console).
|
|
67
|
+
*/
|
|
68
|
+
projectId: string;
|
|
69
|
+
/**
|
|
70
|
+
* #### Highlight.io endpoint. Override for self-hosted or regional endpoints.
|
|
71
|
+
* @default "https://pub.highlight.io/v1/logs/firehose"
|
|
72
|
+
*/
|
|
73
|
+
endpointUrl?: string;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
interface DatadogLogForwarding {
|
|
77
|
+
type: 'datadog';
|
|
78
|
+
properties: DatadogLogForwardingProps;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
interface DatadogLogForwardingProps {
|
|
82
|
+
/**
|
|
83
|
+
* #### Your Datadog API key. Store as `$Secret()` for security.
|
|
84
|
+
*/
|
|
85
|
+
apiKey: string;
|
|
86
|
+
/**
|
|
87
|
+
* #### Datadog endpoint. Use the EU URL if your account is in the EU region.
|
|
88
|
+
* @default "https://aws-kinesis-http-intake.logs.datadoghq.com/v1/input"
|
|
89
|
+
*/
|
|
90
|
+
endpointUrl?: string;
|
|
91
|
+
}
|
|
92
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
docType: config-ref
|
|
3
|
+
title: Kinesis Stream
|
|
4
|
+
resourceType: kinesis-stream
|
|
5
|
+
tags:
|
|
6
|
+
- kinesis-stream
|
|
7
|
+
- kinesis
|
|
8
|
+
- streaming
|
|
9
|
+
source: types/stacktape-config/kinesis-streams.d.ts
|
|
10
|
+
priority: 1
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Kinesis Stream
|
|
14
|
+
|
|
15
|
+
Real-time data stream for ingesting high-volume events (logs, clickstreams, IoT, analytics).
|
|
16
|
+
|
|
17
|
+
Continuously captures data from many producers. Consumers (Lambda functions, etc.) process records in order.
|
|
18
|
+
Use when you need real-time processing with sub-second latency, not just async messaging (use SQS for that).
|
|
19
|
+
|
|
20
|
+
Resource type: `kinesis-stream`
|
|
21
|
+
|
|
22
|
+
## TypeScript Definition
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
/**
|
|
26
|
+
* #### Real-time data stream for ingesting high-volume events (logs, clickstreams, IoT, analytics).
|
|
27
|
+
*
|
|
28
|
+
* ---
|
|
29
|
+
*
|
|
30
|
+
* Continuously captures data from many producers. Consumers (Lambda functions, etc.) process records in order.
|
|
31
|
+
* Use when you need real-time processing with sub-second latency, not just async messaging (use SQS for that).
|
|
32
|
+
*/
|
|
33
|
+
interface KinesisStream {
|
|
34
|
+
type: 'kinesis-stream';
|
|
35
|
+
properties?: KinesisStreamProps;
|
|
36
|
+
overrides?: ResourceOverrides;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
interface KinesisStreamProps {
|
|
40
|
+
/**
|
|
41
|
+
* #### How the stream scales.
|
|
42
|
+
*
|
|
43
|
+
* ---
|
|
44
|
+
*
|
|
45
|
+
* - **`ON_DEMAND`**: Auto-scales, pay per GB. Recommended for most use cases.
|
|
46
|
+
* - **`PROVISIONED`**: You choose a fixed number of shards (1 MB/s write, 2 MB/s read each). More predictable costs.
|
|
47
|
+
*
|
|
48
|
+
* @default "ON_DEMAND"
|
|
49
|
+
*/
|
|
50
|
+
capacityMode?: 'ON_DEMAND' | 'PROVISIONED';
|
|
51
|
+
/**
|
|
52
|
+
* #### Number of shards. Only used when `capacityMode` is `PROVISIONED`.
|
|
53
|
+
*
|
|
54
|
+
* ---
|
|
55
|
+
*
|
|
56
|
+
* Each shard: 1 MB/s write (1,000 records/s), 2 MB/s read (shared across consumers).
|
|
57
|
+
*
|
|
58
|
+
* @default 1
|
|
59
|
+
*/
|
|
60
|
+
shardCount?: number;
|
|
61
|
+
/**
|
|
62
|
+
* #### How long records stay in the stream (hours). Range: 24–8,760 (365 days). Beyond 24h costs extra.
|
|
63
|
+
*
|
|
64
|
+
* @default 24
|
|
65
|
+
*/
|
|
66
|
+
retentionPeriodHours?: number;
|
|
67
|
+
/**
|
|
68
|
+
* #### Encrypt data at rest using a KMS key.
|
|
69
|
+
*/
|
|
70
|
+
encryption?: KinesisStreamEncryption;
|
|
71
|
+
/**
|
|
72
|
+
* #### Give each consumer its own dedicated 2 MB/s read throughput (instead of sharing).
|
|
73
|
+
*
|
|
74
|
+
* ---
|
|
75
|
+
*
|
|
76
|
+
* Use when you have multiple consumers reading from the same stream and need low latency.
|
|
77
|
+
* Enhanced fan-out consumers are auto-created when a Lambda uses `autoCreateConsumer: true`.
|
|
78
|
+
*
|
|
79
|
+
* @default false
|
|
80
|
+
*/
|
|
81
|
+
enableEnhancedFanOut?: boolean;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
interface KinesisStreamEncryption {
|
|
85
|
+
/**
|
|
86
|
+
* #### Enable server-side encryption.
|
|
87
|
+
* @default false
|
|
88
|
+
*/
|
|
89
|
+
enabled: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* #### ARN of your own KMS key. If omitted, uses the AWS-managed `alias/aws/kinesis` key (no extra cost).
|
|
92
|
+
*/
|
|
93
|
+
kmsKeyArn?: string;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
type KinesisStreamReferencableParam = 'arn' | 'name';
|
|
97
|
+
```
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
---
|
|
2
|
+
docType: config-ref
|
|
3
|
+
title: Mongo Db Atlas Cluster
|
|
4
|
+
resourceType: mongo-db-atlas-cluster
|
|
5
|
+
tags:
|
|
6
|
+
- mongo-db-atlas-cluster
|
|
7
|
+
- mongodb
|
|
8
|
+
- mongo
|
|
9
|
+
source: types/stacktape-config/mongo-db-atlas-clusters.d.ts
|
|
10
|
+
priority: 1
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Mongo Db Atlas Cluster
|
|
14
|
+
|
|
15
|
+
Managed MongoDB database (Atlas) deployed into your AWS account and managed within your stack.
|
|
16
|
+
|
|
17
|
+
Document database with flexible schemas — great for content management, user profiles, catalogs, and apps
|
|
18
|
+
where your data model evolves. Starts at M2 (shared, ~$9/month) or M10 (dedicated, ~$57/month).
|
|
19
|
+
|
|
20
|
+
Resource type: `mongo-db-atlas-cluster`
|
|
21
|
+
|
|
22
|
+
## TypeScript Definition
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
/**
|
|
26
|
+
* #### Managed MongoDB database (Atlas) deployed into your AWS account and managed within your stack.
|
|
27
|
+
*
|
|
28
|
+
* ---
|
|
29
|
+
*
|
|
30
|
+
* Document database with flexible schemas — great for content management, user profiles, catalogs, and apps
|
|
31
|
+
* where your data model evolves. Starts at M2 (shared, ~$9/month) or M10 (dedicated, ~$57/month).
|
|
32
|
+
*/
|
|
33
|
+
interface MongoDbAtlasCluster {
|
|
34
|
+
type: 'mongo-db-atlas-cluster';
|
|
35
|
+
properties: MongoDbAtlasClusterProps;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
interface MongoDbAtlasClusterProps {
|
|
39
|
+
/**
|
|
40
|
+
* #### Disk size in GB. Not available for shared tiers (M2/M5). M10+ auto-scales storage by default.
|
|
41
|
+
*/
|
|
42
|
+
diskSizeGB?: number;
|
|
43
|
+
/**
|
|
44
|
+
* #### Instance size. M2/M5 = shared (cheapest). M10+ = dedicated (more features, auto-scaling, backups).
|
|
45
|
+
*/
|
|
46
|
+
clusterTier:
|
|
47
|
+
| 'M2'
|
|
48
|
+
| 'M5'
|
|
49
|
+
| 'M10'
|
|
50
|
+
| 'M20'
|
|
51
|
+
| 'M30'
|
|
52
|
+
| 'M40'
|
|
53
|
+
| 'M40 Low-CPU (R40)'
|
|
54
|
+
| 'M40_NVME'
|
|
55
|
+
| 'M50'
|
|
56
|
+
| 'M50 Low-CPU (R50)'
|
|
57
|
+
| 'M50_NVME'
|
|
58
|
+
| 'M60'
|
|
59
|
+
| 'M60 Low-CPU (R60)'
|
|
60
|
+
| 'M60_NVME'
|
|
61
|
+
| 'M80'
|
|
62
|
+
| 'M80 Low-CPU (R80)'
|
|
63
|
+
| 'M80_NVME'
|
|
64
|
+
| 'M100'
|
|
65
|
+
| 'M140'
|
|
66
|
+
| 'M200'
|
|
67
|
+
| 'M200 Low-CPU (R200)'
|
|
68
|
+
| 'M200_NVME'
|
|
69
|
+
| 'M300'
|
|
70
|
+
| 'M300 Low-CPU (R300)'
|
|
71
|
+
| 'M400'
|
|
72
|
+
| 'M400 Low-CPU (R400)'
|
|
73
|
+
| 'M400_NVME'
|
|
74
|
+
| 'M700'
|
|
75
|
+
| 'M700 Low-CPU (R700)';
|
|
76
|
+
/**
|
|
77
|
+
* #### MongoDB engine version.
|
|
78
|
+
* @default "7.0"
|
|
79
|
+
*/
|
|
80
|
+
version?: '5.0' | '6.0' | '7.0';
|
|
81
|
+
/**
|
|
82
|
+
* #### Number of shards. More than 1 enables sharded mode for horizontal scaling. Requires M30+.
|
|
83
|
+
* @default 1
|
|
84
|
+
*/
|
|
85
|
+
numShards?: number;
|
|
86
|
+
/**
|
|
87
|
+
* #### Node count configuration: electable, read-only, and analytics nodes. Default: 3 electable nodes.
|
|
88
|
+
*/
|
|
89
|
+
replication?: MongoDbReplication;
|
|
90
|
+
/**
|
|
91
|
+
* #### Enable daily snapshots (18:00 UTC). M10+ only — M2/M5 get automatic snapshots with different rules.
|
|
92
|
+
*/
|
|
93
|
+
enableBackups?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* #### Restore to any second within the last 7 days. Requires `enableBackups: true` and M10+.
|
|
96
|
+
*/
|
|
97
|
+
enablePointInTimeRecovery?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* #### BI Connector for SQL-based access to MongoDB data. CPU-intensive — may degrade M10/M20 performance.
|
|
100
|
+
*/
|
|
101
|
+
biConnector?: MongoDbBiConnector;
|
|
102
|
+
/**
|
|
103
|
+
* #### Auto-scale tier and/or storage based on CPU/memory usage. Set min/max tier to control costs.
|
|
104
|
+
*
|
|
105
|
+
* ---
|
|
106
|
+
*
|
|
107
|
+
* Scales up when CPU or memory exceeds 75% for 1 hour. Scales down when both are below 50% for 24 hours.
|
|
108
|
+
*/
|
|
109
|
+
autoScaling?: MongoDbAutoScaling;
|
|
110
|
+
/**
|
|
111
|
+
* #### Admin user for direct database access (e.g., from your local machine or admin tools).
|
|
112
|
+
*
|
|
113
|
+
* ---
|
|
114
|
+
*
|
|
115
|
+
* Not required for app-to-database access via `connectTo` — that's handled automatically.
|
|
116
|
+
*/
|
|
117
|
+
adminUserCredentials?: MongoDbAdminUserCredentials;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
interface MongoDbReplication {
|
|
121
|
+
/**
|
|
122
|
+
* #### Read-only nodes for long-running analytics queries. Prevents impact on primary workload performance.
|
|
123
|
+
*/
|
|
124
|
+
numAnalyticsNodes?: number;
|
|
125
|
+
/**
|
|
126
|
+
* #### Nodes that can become primary. More = better redundancy. Must be odd.
|
|
127
|
+
* @default 3
|
|
128
|
+
*/
|
|
129
|
+
numElectableNodes?: 3 | 5 | 7;
|
|
130
|
+
/**
|
|
131
|
+
* #### Read-only replica nodes for scaling read throughput.
|
|
132
|
+
*/
|
|
133
|
+
numReadOnlyNodes?: number;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
interface MongoDbBiConnector {
|
|
137
|
+
/**
|
|
138
|
+
* #### Which node type the BI Connector reads from. Use `analytics` to avoid impacting production queries.
|
|
139
|
+
*/
|
|
140
|
+
readPreference?: 'primary' | 'secondary' | 'analytics';
|
|
141
|
+
/**
|
|
142
|
+
* #### Enable the BI Connector for SQL-based access.
|
|
143
|
+
* @default false
|
|
144
|
+
*/
|
|
145
|
+
enabled: boolean;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
interface MongoDbAutoScaling {
|
|
149
|
+
/**
|
|
150
|
+
* #### Lowest tier the cluster can scale down to. Prevents unexpected cost increases from always scaling up.
|
|
151
|
+
*/
|
|
152
|
+
minClusterTier?:
|
|
153
|
+
| 'M10'
|
|
154
|
+
| 'M20'
|
|
155
|
+
| 'M30'
|
|
156
|
+
| 'M40'
|
|
157
|
+
| 'M40 Low-CPU (R40)'
|
|
158
|
+
| 'M40_NVME'
|
|
159
|
+
| 'M50'
|
|
160
|
+
| 'M50 Low-CPU (R50)'
|
|
161
|
+
| 'M50_NVME'
|
|
162
|
+
| 'M60'
|
|
163
|
+
| 'M60 Low-CPU (R60)'
|
|
164
|
+
| 'M60_NVME'
|
|
165
|
+
| 'M80'
|
|
166
|
+
| 'M80 Low-CPU (R80)'
|
|
167
|
+
| 'M80_NVME'
|
|
168
|
+
| 'M100'
|
|
169
|
+
| 'M140'
|
|
170
|
+
| 'M200'
|
|
171
|
+
| 'M200 Low-CPU (R200)'
|
|
172
|
+
| 'M200_NVME'
|
|
173
|
+
| 'M300'
|
|
174
|
+
| 'M300 Low-CPU (R300)'
|
|
175
|
+
| 'M400 Low-CPU (R400)'
|
|
176
|
+
| 'M400_NVME'
|
|
177
|
+
| 'M700 Low-CPU (R700)';
|
|
178
|
+
/**
|
|
179
|
+
* #### Highest tier the cluster can scale up to. Set a ceiling to control maximum costs.
|
|
180
|
+
*/
|
|
181
|
+
maxClusterTier?:
|
|
182
|
+
| 'M10'
|
|
183
|
+
| 'M20'
|
|
184
|
+
| 'M30'
|
|
185
|
+
| 'M40'
|
|
186
|
+
| 'M40 Low-CPU (R40)'
|
|
187
|
+
| 'M40_NVME'
|
|
188
|
+
| 'M50'
|
|
189
|
+
| 'M50 Low-CPU (R50)'
|
|
190
|
+
| 'M50_NVME'
|
|
191
|
+
| 'M60'
|
|
192
|
+
| 'M60 Low-CPU (R60)'
|
|
193
|
+
| 'M60_NVME'
|
|
194
|
+
| 'M80'
|
|
195
|
+
| 'M80 Low-CPU (R80)'
|
|
196
|
+
| 'M80_NVME'
|
|
197
|
+
| 'M100'
|
|
198
|
+
| 'M140'
|
|
199
|
+
| 'M200'
|
|
200
|
+
| 'M200 Low-CPU (R200)'
|
|
201
|
+
| 'M200_NVME'
|
|
202
|
+
| 'M300'
|
|
203
|
+
| 'M300 Low-CPU (R300)'
|
|
204
|
+
| 'M400 Low-CPU (R400)'
|
|
205
|
+
| 'M400_NVME'
|
|
206
|
+
| 'M700 Low-CPU (R700)';
|
|
207
|
+
/**
|
|
208
|
+
* #### Prevent automatic disk expansion. By default, storage grows when usage hits 90%. Storage never scales down.
|
|
209
|
+
*/
|
|
210
|
+
disableDiskScaling?: boolean;
|
|
211
|
+
/**
|
|
212
|
+
* #### Prevent automatic scale-down. The cluster can only scale up, never back down to a smaller tier.
|
|
213
|
+
*/
|
|
214
|
+
disableScaleDown?: boolean;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
interface MongoDbAdminUserCredentials {
|
|
218
|
+
/**
|
|
219
|
+
* #### Name of the admin user
|
|
220
|
+
*/
|
|
221
|
+
userName: string;
|
|
222
|
+
/**
|
|
223
|
+
* #### Password for the admin user
|
|
224
|
+
*/
|
|
225
|
+
password: string;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
interface MongoDbAtlasAccessibility {
|
|
229
|
+
/**
|
|
230
|
+
* #### Network access mode.
|
|
231
|
+
*
|
|
232
|
+
* ---
|
|
233
|
+
*
|
|
234
|
+
* - **`internet`**: Accessible from anywhere (credentials still required).
|
|
235
|
+
* - **`vpc`**: Only from resources in your VPC + any `whitelistedIps`.
|
|
236
|
+
* - **`scoping-workloads-in-vpc`**: Like `vpc`, but also requires security-group access via `connectTo`.
|
|
237
|
+
* - **`whitelisted-ips-only`**: Only from IP addresses listed in `whitelistedIps`.
|
|
238
|
+
*
|
|
239
|
+
* @default internet
|
|
240
|
+
*/
|
|
241
|
+
accessibilityMode: 'internet' | 'vpc' | 'scoping-workloads-in-vpc' | 'whitelisted-ips-only';
|
|
242
|
+
/**
|
|
243
|
+
* #### IP addresses or CIDR ranges allowed to access the cluster (e.g., your office IP).
|
|
244
|
+
*
|
|
245
|
+
* ---
|
|
246
|
+
*
|
|
247
|
+
* No effect in `internet` mode. In `vpc`/`scoping-workloads-in-vpc`, adds access for IPs outside the VPC.
|
|
248
|
+
* In `whitelisted-ips-only`, these are the only IPs that can connect.
|
|
249
|
+
*/
|
|
250
|
+
whitelistedIps?: string[];
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
type MongoDbAtlasClusterReferencableParam = 'connectionString';
|
|
254
|
+
```
|