@venturekit/infra 0.0.0-dev.20260515022321 → 0.0.0-dev.20260515033511
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/dist/cdk/app-stack.d.ts.map +1 -1
- package/dist/cdk/app-stack.js +1 -1
- package/dist/cdk/app-stack.js.map +1 -1
- package/dist/cdk/index.d.ts +2 -2
- package/dist/cdk/index.d.ts.map +1 -1
- package/dist/cdk/index.js +2 -4
- package/dist/cdk/index.js.map +1 -1
- package/dist/cdk/shared/route-discovery.d.ts +49 -0
- package/dist/cdk/shared/route-discovery.d.ts.map +1 -0
- package/dist/cdk/shared/route-discovery.js +84 -0
- package/dist/cdk/shared/route-discovery.js.map +1 -0
- package/package.json +2 -2
- package/dist/cdk/stack.d.ts +0 -389
- package/dist/cdk/stack.d.ts.map +0 -1
- package/dist/cdk/stack.js +0 -3084
- package/dist/cdk/stack.js.map +0 -1
package/dist/cdk/stack.d.ts
DELETED
|
@@ -1,389 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* VentureStack — CDK Stack for VentureKit applications
|
|
3
|
-
*
|
|
4
|
-
* Translates VentureKit infrastructure intents into CloudFormation resources.
|
|
5
|
-
* This is the single entry point for `vk deploy`.
|
|
6
|
-
*
|
|
7
|
-
* Consumers never see this file — it's invoked by the generated CDK app in .vk/cdk/.
|
|
8
|
-
*/
|
|
9
|
-
import * as cdk from 'aws-cdk-lib';
|
|
10
|
-
import { Construct } from 'constructs';
|
|
11
|
-
import type { VentureIntent, EnvConfig } from '@venturekit/core';
|
|
12
|
-
/**
|
|
13
|
-
* One discovered HTTP route, ready to be wired to a Lambda + HttpRoute.
|
|
14
|
-
*/
|
|
15
|
-
export interface DiscoveredRoute {
|
|
16
|
-
/** HTTP method ('GET' / 'POST' / 'PUT' / 'PATCH' / 'DELETE'). */
|
|
17
|
-
method: string;
|
|
18
|
-
/**
|
|
19
|
-
* API Gateway path with `{param}` segments, e.g. `/users/{id}`.
|
|
20
|
-
* The root route (`src/routes/get.ts`) maps to `/`.
|
|
21
|
-
*/
|
|
22
|
-
apiPath: string;
|
|
23
|
-
/**
|
|
24
|
-
* Stable slug derived from the file path, used for the Lambda's
|
|
25
|
-
* function name and CDK construct id.
|
|
26
|
-
*
|
|
27
|
-
* src/routes/health/get.ts → 'health-get'
|
|
28
|
-
* src/routes/users/[id]/put.ts → 'users-id-put'
|
|
29
|
-
* src/routes/admin/users/[id]/delete.ts → 'admin-users-id-delete'
|
|
30
|
-
*/
|
|
31
|
-
slug: string;
|
|
32
|
-
/** Absolute path to the route handler file (.ts or .js). */
|
|
33
|
-
handlerFile: string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Recursively discover HTTP route files under `src/routes/`.
|
|
37
|
-
*
|
|
38
|
-
* Walks the directory tree applying the same filesystem convention as the
|
|
39
|
-
* local dev server:
|
|
40
|
-
* - File name (without extension) determines the HTTP method via
|
|
41
|
-
* {@link ROUTE_FILENAME_TO_METHOD}. Files whose name doesn't match a
|
|
42
|
-
* known method (e.g. `helpers.ts`, `_middleware.ts`) are silently
|
|
43
|
-
* skipped — they're treated as colocated implementation detail.
|
|
44
|
-
* - Directory `[param]` becomes `{param}` in the API path and `param`
|
|
45
|
-
* in the slug. Plain directories appear verbatim in both.
|
|
46
|
-
* - Test/spec/declaration files (`*.test.ts`, `*.spec.ts`, `*.d.ts`)
|
|
47
|
-
* are skipped.
|
|
48
|
-
*
|
|
49
|
-
* Exported so unit tests can assert the convention without spinning up a
|
|
50
|
-
* full CDK stack, and so external tooling can reuse it.
|
|
51
|
-
*/
|
|
52
|
-
export declare function discoverRouteFiles(routesDir: string): DiscoveredRoute[];
|
|
53
|
-
/**
|
|
54
|
-
* Map a route slug to a nested-stack slot index in `[0, numSlots)`.
|
|
55
|
-
* `numSlots` MUST be a power of two so the bitwise-AND modulo
|
|
56
|
-
* distributes the hash output evenly. Exported for unit tests
|
|
57
|
-
* asserting bucketing stability across route-set changes.
|
|
58
|
-
*/
|
|
59
|
-
export declare function stableSlotFor(slug: string, numSlots: number): number;
|
|
60
|
-
export interface VentureStackProps extends cdk.StackProps {
|
|
61
|
-
projectName: string;
|
|
62
|
-
stage: string;
|
|
63
|
-
routesDir: string;
|
|
64
|
-
/** Directory containing standalone Lambda functions */
|
|
65
|
-
functionsDir?: string;
|
|
66
|
-
/** Directory containing queue consumer handlers */
|
|
67
|
-
queuesDir?: string;
|
|
68
|
-
/** Directory containing cron/scheduled task handlers */
|
|
69
|
-
cronsDir?: string;
|
|
70
|
-
infrastructure?: VentureIntent;
|
|
71
|
-
projectDir: string;
|
|
72
|
-
/** Preset name — when 'free', uses only free-tier AWS resources */
|
|
73
|
-
preset?: string;
|
|
74
|
-
/**
|
|
75
|
-
* Pinned `@venturekit/cli` + `@venturekit/data` version installed by the
|
|
76
|
-
* in-VPC CodeBuild migration runner. Resolved by `cdk-bridge.ts` from the
|
|
77
|
-
* consumer's `node_modules/@venturekit/cli/package.json` so build-time
|
|
78
|
-
* behavior matches what the operator tested locally. Falls back to
|
|
79
|
-
* `'latest'` when unknown (warned at synth time).
|
|
80
|
-
*/
|
|
81
|
-
vkCliVersion?: string;
|
|
82
|
-
/**
|
|
83
|
-
* Fully resolved environment configuration from presets + user overrides.
|
|
84
|
-
* When provided, all resource sizing is driven by this config.
|
|
85
|
-
* When absent, falls back to legacy behavior using `preset` string.
|
|
86
|
-
*/
|
|
87
|
-
envConfig?: EnvConfig;
|
|
88
|
-
/**
|
|
89
|
-
* @internal
|
|
90
|
-
*
|
|
91
|
-
* Tests-only escape hatch that swaps esbuild bundling for an inline
|
|
92
|
-
* Lambda stub, so unit tests can synth a stack containing route /
|
|
93
|
-
* function / queue / cron handlers without invoking esbuild. Never
|
|
94
|
-
* set this in production CDK apps — the resulting Lambdas would
|
|
95
|
-
* respond with the stub body, not your handler code.
|
|
96
|
-
*/
|
|
97
|
-
_skipBundling?: boolean;
|
|
98
|
-
}
|
|
99
|
-
export declare class VentureStack extends cdk.Stack {
|
|
100
|
-
readonly outputs: Record<string, cdk.CfnOutput>;
|
|
101
|
-
/** Resolved environment configuration driving all resource sizing */
|
|
102
|
-
private readonly envConfig;
|
|
103
|
-
/** Data safety configuration for removal policies */
|
|
104
|
-
private readonly dataSafetyConfig;
|
|
105
|
-
/** Whether this is a free-tier deployment */
|
|
106
|
-
private readonly isFreeTier;
|
|
107
|
-
/** Standard tags applied to all taggable resources */
|
|
108
|
-
private readonly standardTags;
|
|
109
|
-
/**
|
|
110
|
-
* Per-project HMAC secret used to sign internal Lambda-to-Lambda calls.
|
|
111
|
-
* Auto-generated on first deploy and preserved across subsequent deploys by
|
|
112
|
-
* CloudFormation. Injected as `VENTURE_INTERNAL_HMAC_SECRET` into every
|
|
113
|
-
* Lambda function the stack creates, so `invoke()` callers and handler
|
|
114
|
-
* receivers share the same key.
|
|
115
|
-
*/
|
|
116
|
-
private readonly internalHmacSecret;
|
|
117
|
-
/** Base environment variables applied to every VentureKit Lambda. */
|
|
118
|
-
private readonly ventureBaseEnv;
|
|
119
|
-
/** @internal — when true, all Lambda code uses an inline stub instead of Docker bundling. Tests only. */
|
|
120
|
-
private readonly skipBundling;
|
|
121
|
-
/**
|
|
122
|
-
* Absolute path to the consumer project's root (the directory that
|
|
123
|
-
* holds `package.json` + `node_modules`). Used as the bundling asset
|
|
124
|
-
* root so esbuild can resolve handler imports against the project's
|
|
125
|
-
* installed dependencies.
|
|
126
|
-
*/
|
|
127
|
-
private readonly projectDir;
|
|
128
|
-
/**
|
|
129
|
-
* Cognito User Pools created by `createAuth`, kept around so the
|
|
130
|
-
* shared Lambda execution role can be granted admin actions on them
|
|
131
|
-
* once the role exists (the role is created later in the constructor,
|
|
132
|
-
* after every infrastructure intent has been processed).
|
|
133
|
-
*/
|
|
134
|
-
private readonly userPools;
|
|
135
|
-
/**
|
|
136
|
-
* Secrets Manager placeholders provisioned by `createAuth` for
|
|
137
|
-
* `AuthIntent.federated` providers (Google / Facebook / Apple OAuth
|
|
138
|
-
* client id + secret). Tracked so the shared Lambda role can be
|
|
139
|
-
* granted `secretsmanager:GetSecretValue` on each one once the role
|
|
140
|
-
* exists. The ARNs are also injected as
|
|
141
|
-
* `COGNITO_FEDERATED_<PROVIDER>_SECRET_ARN` env vars on every Lambda.
|
|
142
|
-
*/
|
|
143
|
-
private readonly federatedAuthSecrets;
|
|
144
|
-
/**
|
|
145
|
-
* S3 buckets created by `createStorage`, kept around so the shared
|
|
146
|
-
* Lambda execution role can be granted `s3:Get*` / `s3:Put*` on them
|
|
147
|
-
* once the role exists, and so the *first* bucket's name can be
|
|
148
|
-
* injected as `VENTURE_STORAGE_BUCKET` for `createStorageClientFromEnv()`.
|
|
149
|
-
* Without this wiring, every Lambda calling `@venturekit/storage` would
|
|
150
|
-
* throw `Storage bucket not configured` at runtime even though the
|
|
151
|
-
* bucket exists in CloudFormation.
|
|
152
|
-
*/
|
|
153
|
-
private readonly storageBuckets;
|
|
154
|
-
/**
|
|
155
|
-
* Notify configurations created by `createNotify`. Tracked so the
|
|
156
|
-
* shared Lambda role can be granted `ses:SendEmail` on the
|
|
157
|
-
* configuration set + identity ARNs once the role exists, and so
|
|
158
|
-
* env vars (`VENTURE_NOTIFY_FROM`, `VENTURE_NOTIFY_CONFIG_SET`, …)
|
|
159
|
-
* land on every Lambda — `@venturekit/notify`'s
|
|
160
|
-
* `createSesEmailProvider` reads them at cold start. Also drives
|
|
161
|
-
* the auto-provisioning of dispatcher + bounce-handler Lambdas
|
|
162
|
-
* after the rest of the stack is wired (we need the shared role
|
|
163
|
-
* + VPC + SG to exist first).
|
|
164
|
-
*/
|
|
165
|
-
private readonly notifyConfigs;
|
|
166
|
-
/**
|
|
167
|
-
* Absolute paths to `migrations/` directories shipped by installed
|
|
168
|
-
* `@venturekit/*` packages (e.g. `@venturekit/notify`,
|
|
169
|
-
* `@venturekit/auth`). Resolved once at the top of the constructor
|
|
170
|
-
* via declarative `vk.migrations` discovery so `createDatabase` can
|
|
171
|
-
* pass the merged list to `MigrationRunner` without re-walking
|
|
172
|
-
* `node_modules` per database.
|
|
173
|
-
*
|
|
174
|
-
* Discovery mirrors the CLI side
|
|
175
|
-
* (`@venturekit/cli`'s `discoverPackageMigrationDirs`) so a `vk deploy`
|
|
176
|
-
* and a local `vk migrate` always materialize the same merged schema.
|
|
177
|
-
* Empty when no installed venturekit package opts in via
|
|
178
|
-
* `"vk": { "migrations": "<dir>" }` in its `package.json`.
|
|
179
|
-
*/
|
|
180
|
-
private readonly packageMigrationsDirs;
|
|
181
|
-
constructor(scope: Construct, id: string, props: VentureStackProps);
|
|
182
|
-
/**
|
|
183
|
-
* Well-Architected: Reliability — RDS with stable logical ID so preset
|
|
184
|
-
* changes (e.g. nano→medium) perform an in-place instance class modify,
|
|
185
|
-
* not a replacement. Data is preserved because the CloudFormation resource
|
|
186
|
-
* identity stays the same.
|
|
187
|
-
*
|
|
188
|
-
* Well-Architected: Security — encrypted at rest, credentials in Secrets Manager
|
|
189
|
-
* Well-Architected: Reliability — automated backups, optional multi-AZ
|
|
190
|
-
* Well-Architected: Performance — instance type driven by intent.size
|
|
191
|
-
* Well-Architected: Operational Excellence — auto minor version upgrades
|
|
192
|
-
*/
|
|
193
|
-
private createDatabase;
|
|
194
|
-
/**
|
|
195
|
-
* Well-Architected: Security — block public access by default, SSE encryption
|
|
196
|
-
* Well-Architected: Reliability — versioning for backups, dataSafety removal policy
|
|
197
|
-
* Well-Architected: Cost — lifecycle rules for logs/backups to reduce storage cost
|
|
198
|
-
* Well-Architected: Sustainability — intelligent tiering for infrequent access
|
|
199
|
-
*/
|
|
200
|
-
private createStorage;
|
|
201
|
-
/**
|
|
202
|
-
* Well-Architected: Security — Cognito with advanced security features,
|
|
203
|
-
* stable logical ID for safe preset upgrades.
|
|
204
|
-
* Well-Architected: Reliability — dataSafety-driven removal policy
|
|
205
|
-
*/
|
|
206
|
-
private createAuth;
|
|
207
|
-
/**
|
|
208
|
-
* Provision SES + outbox infrastructure for one `NotifyIntent`.
|
|
209
|
-
*
|
|
210
|
-
* Resources created here:
|
|
211
|
-
* - One SES email or domain identity (drives DKIM + verified-from).
|
|
212
|
-
* - One SES configuration set with an event destination publishing
|
|
213
|
-
* bounce / complaint / delivery / open / click events to an
|
|
214
|
-
* SNS topic.
|
|
215
|
-
* - The SNS topic itself (`{project}-{stage}-notify-{id}-events`).
|
|
216
|
-
* - A Secrets Manager secret for the WhatsApp Cloud API token,
|
|
217
|
-
* when `'whatsapp'` is in `channels`. The value is left as a
|
|
218
|
-
* placeholder; the operator pastes the Meta token after first
|
|
219
|
-
* deploy via the AWS console (the secret rotation knob would be
|
|
220
|
-
* a Phase 2 enhancement once token rotation is part of the API).
|
|
221
|
-
* - When `domain` AND `hostedZoneId` are both set, Route53 CNAME
|
|
222
|
-
* records for the three SES DKIM tokens, plus an MX + TXT record
|
|
223
|
-
* on the MAIL FROM subdomain. Without `hostedZoneId`, the
|
|
224
|
-
* records are emitted as stack outputs and the operator
|
|
225
|
-
* publishes them manually.
|
|
226
|
-
*
|
|
227
|
-
* Resources NOT created here: dispatcher cron Lambda, bounce-handler
|
|
228
|
-
* Lambda, IAM grants on the shared role. Those need the role + VPC
|
|
229
|
-
* + SG which only exist later in the constructor — see
|
|
230
|
-
* `provisionNotifyHandlers` below.
|
|
231
|
-
*/
|
|
232
|
-
private createNotify;
|
|
233
|
-
/**
|
|
234
|
-
* Auto-provision the dispatcher cron Lambda + the bounce-handler
|
|
235
|
-
* Lambda subscribed to the SES events SNS topic, for every notify
|
|
236
|
-
* intent.
|
|
237
|
-
*
|
|
238
|
-
* Implementation notes:
|
|
239
|
-
*
|
|
240
|
-
* - The Lambdas import a stub shipped inside `@venturekit/notify`
|
|
241
|
-
* (`runtime/dispatcher-stub.ts`, `runtime/bounce-handler-stub.ts`).
|
|
242
|
-
* At synth time we copy the stub into the project's `.vk/` dir
|
|
243
|
-
* alongside a generated `notify-client-import.ts` shim that
|
|
244
|
-
* re-exports the consumer's `notify` instance from
|
|
245
|
-
* `VENTURE_NOTIFY_CLIENT_MODULE` (default `src/lib/notify.ts`).
|
|
246
|
-
* esbuild then bundles the whole closure into the Lambda — the
|
|
247
|
-
* consumer's notify config + every provider + the @venturekit
|
|
248
|
-
* runtime, all in one deploy artefact.
|
|
249
|
-
*
|
|
250
|
-
* - We re-use the shared Lambda role for these handlers. Permissions:
|
|
251
|
-
* - SES + secrets grants are already attached above
|
|
252
|
-
* (`provisionNotifyHandlers` is called from the same block).
|
|
253
|
-
* - SNS topic subscription + invocation perms are added by CDK
|
|
254
|
-
* when we wire `topic.addSubscription(LambdaSubscription)`.
|
|
255
|
-
*
|
|
256
|
-
* - VPC attachment: yes, when the project has a VPC. The dispatcher
|
|
257
|
-
* needs DB access (Postgres outbox + preferences); the bounce
|
|
258
|
-
* handler also writes `notification_event_log`.
|
|
259
|
-
*/
|
|
260
|
-
private provisionNotifyHandlers;
|
|
261
|
-
/**
|
|
262
|
-
* Well-Architected: Reliability — DLQ by default, stable logical ID
|
|
263
|
-
* Well-Architected: Security — encryption at rest with SQS managed keys
|
|
264
|
-
* Well-Architected: Performance — visibility timeout derived from handler timeout
|
|
265
|
-
*/
|
|
266
|
-
private createQueue;
|
|
267
|
-
/**
|
|
268
|
-
* Well-Architected: Security — VPC-only access, SG least-privilege
|
|
269
|
-
* Well-Architected: Performance — cache node type driven by intent.size
|
|
270
|
-
* Well-Architected: Reliability — encrypted in transit, snapshot retention for prod
|
|
271
|
-
*/
|
|
272
|
-
private createCache;
|
|
273
|
-
private createMonitoring;
|
|
274
|
-
private createSecret;
|
|
275
|
-
private createDomain;
|
|
276
|
-
/**
|
|
277
|
-
* Free-tier alternative to RDS: create a DynamoDB table.
|
|
278
|
-
* DynamoDB offers 25 GB + 25 RCU/WCU in the always-free tier.
|
|
279
|
-
*
|
|
280
|
-
* Well-Architected: Security — encryption at rest (default)
|
|
281
|
-
* Well-Architected: Reliability — PITR for strict dataSafety
|
|
282
|
-
* Well-Architected: Cost — PAY_PER_REQUEST for unpredictable workloads
|
|
283
|
-
*/
|
|
284
|
-
private createDynamoDBTable;
|
|
285
|
-
/**
|
|
286
|
-
* Free-tier rate limit table using DynamoDB (always-free tier).
|
|
287
|
-
* Used by createDefaultRateLimiter() from @venturekit/runtime.
|
|
288
|
-
*/
|
|
289
|
-
private createRateLimitTable;
|
|
290
|
-
/**
|
|
291
|
-
* Map ResourceSize to RDS instance type.
|
|
292
|
-
* Uses Graviton (T4G) instances for cost efficiency.
|
|
293
|
-
* Changing size triggers an in-place modify, NOT a replacement.
|
|
294
|
-
*/
|
|
295
|
-
private sizeToInstanceType;
|
|
296
|
-
/**
|
|
297
|
-
* Map ResourceSize to ElastiCache node type.
|
|
298
|
-
* Uses Graviton (T4G) instances for cost efficiency.
|
|
299
|
-
* Changing size triggers an in-place modify, NOT a replacement.
|
|
300
|
-
*/
|
|
301
|
-
private sizeToCacheNodeType;
|
|
302
|
-
/**
|
|
303
|
-
* Convert dataSafety config to CDK RemovalPolicy.
|
|
304
|
-
* Well-Architected: Reliability — prevent accidental data loss.
|
|
305
|
-
*/
|
|
306
|
-
private toRemovalPolicy;
|
|
307
|
-
/**
|
|
308
|
-
* Convert days to CDK logs.RetentionDays enum.
|
|
309
|
-
* Well-Architected: Cost — don't over-retain logs.
|
|
310
|
-
*/
|
|
311
|
-
private toLogRetention;
|
|
312
|
-
/**
|
|
313
|
-
* Resolve Lambda runtime from preset config.
|
|
314
|
-
*/
|
|
315
|
-
private toLambdaRuntime;
|
|
316
|
-
/**
|
|
317
|
-
* Resolve Lambda architecture from preset config.
|
|
318
|
-
*/
|
|
319
|
-
private toLambdaArchitecture;
|
|
320
|
-
/**
|
|
321
|
-
* Recursively discover function files under the functions directory.
|
|
322
|
-
* Returns an array of { name, handlerFile } where name is the
|
|
323
|
-
* dash-delimited path (e.g. `order/create-order.ts` → `order-create-order`).
|
|
324
|
-
*/
|
|
325
|
-
private discoverFunctionFiles;
|
|
326
|
-
/**
|
|
327
|
-
* Build the `lambda.Code` for a handler file.
|
|
328
|
-
*
|
|
329
|
-
* Production path: bundle the handler in-process via esbuild's
|
|
330
|
-
* synchronous API — see `bundleHandlerCodeWithEsbuild` for the
|
|
331
|
-
* rationale (no Docker, native Node module resolution, sub-second
|
|
332
|
-
* per handler).
|
|
333
|
-
*
|
|
334
|
-
* Test path (`_skipBundling: true`): return an inline stub so unit
|
|
335
|
-
* tests can synth Lambdas without invoking esbuild.
|
|
336
|
-
*/
|
|
337
|
-
private bundleHandlerCode;
|
|
338
|
-
/**
|
|
339
|
-
* Create one Lambda + HTTP API integration + HttpRoute for a discovered
|
|
340
|
-
* route file.
|
|
341
|
-
*
|
|
342
|
-
* Function name: `{project}-{stage}-route-{slug}`. Lambda function names
|
|
343
|
-
* are capped at 64 chars; we truncate + append a 6-char content hash if
|
|
344
|
-
* the full name overflows so deeply nested routes
|
|
345
|
-
* (e.g. `promoter/groups/[id]/images/[imageId]/delete.ts`) still fit.
|
|
346
|
-
*
|
|
347
|
-
* Well-Architected: Performance — memory/timeout from preset config
|
|
348
|
-
* Well-Architected: Sustainability — ARM64 Graviton by default
|
|
349
|
-
* Well-Architected: Reliability — VPC-attached when DBs exist so routes
|
|
350
|
-
* can reach RDS without timing out at the API Gateway 30 s deadline
|
|
351
|
-
* Well-Architected: Cost — shared role + SG across all route Lambdas
|
|
352
|
-
* keeps CFN resource count linear in the number of routes
|
|
353
|
-
*/
|
|
354
|
-
private createRouteFunction;
|
|
355
|
-
/**
|
|
356
|
-
* Tiny non-cryptographic 6-char hex hash. Used only to disambiguate
|
|
357
|
-
* Lambda function names that would otherwise overflow the 64-char
|
|
358
|
-
* limit; collision risk is acceptable because the truncated prefix
|
|
359
|
-
* already encodes most of the route path.
|
|
360
|
-
*/
|
|
361
|
-
private shortHash;
|
|
362
|
-
/**
|
|
363
|
-
* Create a standalone Lambda function.
|
|
364
|
-
* Naming convention: {project}-{stage}-fn-{name}
|
|
365
|
-
*
|
|
366
|
-
* Well-Architected: Performance — memory/timeout from preset config
|
|
367
|
-
* Well-Architected: Sustainability — ARM64 Graviton by default
|
|
368
|
-
* Well-Architected: Operational Excellence — structured env vars, log retention from preset
|
|
369
|
-
* Well-Architected: Security — X-Ray tracing from preset config
|
|
370
|
-
*/
|
|
371
|
-
private createStandaloneFunction;
|
|
372
|
-
/**
|
|
373
|
-
* Create a queue consumer Lambda function wired to an SQS queue.
|
|
374
|
-
* Naming convention: {project}-{stage}-queue-{name}
|
|
375
|
-
*
|
|
376
|
-
* Well-Architected: Reliability — DLQ on consumer queue, encrypted
|
|
377
|
-
* Well-Architected: Performance — batch size and visibility timeout
|
|
378
|
-
*/
|
|
379
|
-
private createQueueConsumer;
|
|
380
|
-
/**
|
|
381
|
-
* Create a cron/scheduled task Lambda function wired to an EventBridge rule.
|
|
382
|
-
* Naming convention: {project}-{stage}-cron-{name}
|
|
383
|
-
*
|
|
384
|
-
* Well-Architected: Performance — memory/timeout from preset
|
|
385
|
-
* Well-Architected: Operational Excellence — log retention, tracing from preset
|
|
386
|
-
*/
|
|
387
|
-
private createCronHandler;
|
|
388
|
-
}
|
|
389
|
-
//# sourceMappingURL=stack.d.ts.map
|
package/dist/cdk/stack.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../src/cdk/stack.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AA4BnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,KAAK,EACV,aAAa,EAKb,SAAS,EAMV,MAAM,kBAAkB,CAAC;AAO1B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAoBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAyCvE;AAmBD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,MAAM,WAAW,iBAAkB,SAAQ,GAAG,CAAC,UAAU;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAgUD,qBAAa,YAAa,SAAQ,GAAG,CAAC,KAAK;IACzC,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,CAAM;IAE5D,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuE;IACxG,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IACxD,yGAAyG;IACzG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;IACpE;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAOvB;IAER;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAUtB;IAER;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAgB;gBAE1C,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB;IA88BlE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAuMtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAkLrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA6NlB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO,CAAC,YAAY;IA6OpB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,uBAAuB;IAmK/B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA2DnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,gBAAgB;IAgExB,OAAO,CAAC,YAAY;IA+CpB,OAAO,CAAC,YAAY;IAkGpB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAuD3B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAqD5B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAMvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA4B7B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,mBAAmB;IAyE3B;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAQjB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAkFhC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAqF3B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;CA6F1B"}
|