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,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
+ ```