@venturekit/infra 0.0.0-dev.20260522121000 → 0.0.0-dev.20260525024212
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 +18 -0
- package/dist/cdk/app-stack.d.ts.map +1 -1
- package/dist/cdk/app-stack.js +43 -0
- package/dist/cdk/app-stack.js.map +1 -1
- package/dist/cdk/shared/websocket-construct.d.ts +151 -0
- package/dist/cdk/shared/websocket-construct.d.ts.map +1 -0
- package/dist/cdk/shared/websocket-construct.js +230 -0
- package/dist/cdk/shared/websocket-construct.js.map +1 -0
- package/dist/cdk/shared/ws-discovery.d.ts +61 -0
- package/dist/cdk/shared/ws-discovery.d.ts.map +1 -0
- package/dist/cdk/shared/ws-discovery.js +74 -0
- package/dist/cdk/shared/ws-discovery.js.map +1 -0
- package/dist/venture.d.ts +7 -0
- package/dist/venture.d.ts.map +1 -1
- package/dist/venture.js +1 -0
- package/dist/venture.js.map +1 -1
- package/package.json +2 -2
package/dist/cdk/app-stack.d.ts
CHANGED
|
@@ -71,6 +71,7 @@ import * as apigatewayv2 from 'aws-cdk-lib/aws-apigatewayv2';
|
|
|
71
71
|
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
|
|
72
72
|
import { Construct } from 'constructs';
|
|
73
73
|
import { type EnvConfig, type VentureIntent } from '@venturekit/core';
|
|
74
|
+
import { type WebSocketAttachment } from './shared/websocket-construct.js';
|
|
74
75
|
/**
|
|
75
76
|
* Imported cross-stack refs the CLI generator passes in. Every field
|
|
76
77
|
* is optional because not every project declares every tier — a free-
|
|
@@ -231,6 +232,16 @@ export interface VentureAppStackProps extends cdk.StackProps {
|
|
|
231
232
|
* before the intent declaration.
|
|
232
233
|
*/
|
|
233
234
|
functionsDir?: string;
|
|
235
|
+
/**
|
|
236
|
+
* WebSocket handlers directory. Defaults to `src/ws`. Discovered files
|
|
237
|
+
* (`connect.ts` / `disconnect.ts` / `default.ts`) become the
|
|
238
|
+
* `$connect` / `$disconnect` / `$default` integrations on a managed
|
|
239
|
+
* API Gateway WebSocket API. Only consulted when
|
|
240
|
+
* `envConfig.websocket.enabled` is true; otherwise the directory is
|
|
241
|
+
* ignored even if it exists. See `shared/websocket-construct.ts` for
|
|
242
|
+
* the full wiring.
|
|
243
|
+
*/
|
|
244
|
+
wsDir?: string;
|
|
234
245
|
/**
|
|
235
246
|
* @internal Test-only flag: when true, every Lambda uses an inline
|
|
236
247
|
* stub instead of Docker bundling. Cuts test runtimes from minutes
|
|
@@ -291,6 +302,13 @@ export declare class VentureAppStack extends cdk.Stack {
|
|
|
291
302
|
readonly notifyDispatcherLambdas: Map<string, lambda.Function>;
|
|
292
303
|
/** Notify bounce-handler Lambdas keyed by notify intent id. */
|
|
293
304
|
readonly notifyBounceLambdas: Map<string, lambda.Function>;
|
|
305
|
+
/**
|
|
306
|
+
* WebSocket attachment when `envConfig.websocket.enabled` is true
|
|
307
|
+
* AND `src/ws/` contains at least one handler. Undefined otherwise.
|
|
308
|
+
* Exposed publicly so tests and observability tooling can inspect
|
|
309
|
+
* the connections table / WS API without re-discovering them.
|
|
310
|
+
*/
|
|
311
|
+
readonly websocket?: WebSocketAttachment;
|
|
294
312
|
private readonly isStrictRetain;
|
|
295
313
|
private readonly projectName;
|
|
296
314
|
private readonly stage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-stack.d.ts","sourceRoot":"","sources":["../../src/cdk/app-stack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAKH,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAMjD,OAAO,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAI7D,OAAO,KAAK,cAAc,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"app-stack.d.ts","sourceRoot":"","sources":["../../src/cdk/app-stack.ts"],"names":[],"mappings":"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"}
|
package/dist/cdk/app-stack.js
CHANGED
|
@@ -86,6 +86,8 @@ import { readSsmString } from './shared/cross-stack-refs.js';
|
|
|
86
86
|
import { networkKeys, edgeKeys } from './shared/ssm-keys.js';
|
|
87
87
|
import { bundleHandlerCodeWithEsbuild, inlineStubLambdaCode, toLambdaArchitecture, toLambdaRuntime, toLogRetention, clampLambdaFunctionName, discoverFunctionFiles, } from './shared/lambda-helpers.js';
|
|
88
88
|
import { discoverRouteFiles, } from './shared/route-discovery.js';
|
|
89
|
+
import { discoverWsRoutes } from './shared/ws-discovery.js';
|
|
90
|
+
import { attachWebSocketApi, } from './shared/websocket-construct.js';
|
|
89
91
|
/**
|
|
90
92
|
* Convert an intent id (e.g. `user-uploads`) to upper-snake-case
|
|
91
93
|
* (`USER_UPLOADS`) suitable for use in env-var names. Without this,
|
|
@@ -169,6 +171,13 @@ export class VentureAppStack extends cdk.Stack {
|
|
|
169
171
|
notifyDispatcherLambdas = new Map();
|
|
170
172
|
/** Notify bounce-handler Lambdas keyed by notify intent id. */
|
|
171
173
|
notifyBounceLambdas = new Map();
|
|
174
|
+
/**
|
|
175
|
+
* WebSocket attachment when `envConfig.websocket.enabled` is true
|
|
176
|
+
* AND `src/ws/` contains at least one handler. Undefined otherwise.
|
|
177
|
+
* Exposed publicly so tests and observability tooling can inspect
|
|
178
|
+
* the connections table / WS API without re-discovering them.
|
|
179
|
+
*/
|
|
180
|
+
websocket;
|
|
172
181
|
isStrictRetain;
|
|
173
182
|
projectName;
|
|
174
183
|
stage;
|
|
@@ -410,6 +419,40 @@ export class VentureAppStack extends cdk.Stack {
|
|
|
410
419
|
// because the alternative (one role per Lambda) blows past
|
|
411
420
|
// CFN's 500-resource limit on large projects.
|
|
412
421
|
this.applyImportedGrants(imports);
|
|
422
|
+
// ─── WebSocket API (optional) ─────────────────────────────
|
|
423
|
+
// Wired BEFORE the baseEnvVars freeze so the env vars
|
|
424
|
+
// returned by attachWebSocketApi (`CONNECTIONS_TABLE`,
|
|
425
|
+
// `VENTURE_WS_*`) reach every HTTP-route / queue-consumer /
|
|
426
|
+
// cron Lambda created later. Gated on
|
|
427
|
+
// `envConfig.websocket.enabled` AND a non-empty `src/ws/`
|
|
428
|
+
// directory; either being absent skips wiring entirely so
|
|
429
|
+
// legacy projects pay zero cost.
|
|
430
|
+
if (envConfig.websocket.enabled && props.projectDir) {
|
|
431
|
+
const resolvedWsDir = path.resolve(props.projectDir, props.wsDir ?? 'src/ws');
|
|
432
|
+
const wsRoutes = discoverWsRoutes(resolvedWsDir);
|
|
433
|
+
if (wsRoutes.length > 0) {
|
|
434
|
+
this.websocket = attachWebSocketApi(this, {
|
|
435
|
+
projectName,
|
|
436
|
+
stage,
|
|
437
|
+
envConfig,
|
|
438
|
+
lambdaRole: this.lambdaRole,
|
|
439
|
+
lambdaSecurityGroup: this.lambdaSecurityGroup,
|
|
440
|
+
vpc: this.vpc,
|
|
441
|
+
baseEnvVars: this.baseEnvVars,
|
|
442
|
+
skipBundling: this.skipBundling,
|
|
443
|
+
bundleHandlerCode: (file) => this.bundleHandlerCode(file),
|
|
444
|
+
routes: wsRoutes,
|
|
445
|
+
isStrictRetain: this.isStrictRetain,
|
|
446
|
+
});
|
|
447
|
+
// Merge ws env vars into baseEnvVars so EVERY other Lambda
|
|
448
|
+
// (HTTP routes, queue consumers, crons) sees them — not just
|
|
449
|
+
// the ws Lambdas themselves. This is what enables a regular
|
|
450
|
+
// POST /messages handler to call `sendToUser(domain, stage, …)`.
|
|
451
|
+
for (const [key, value] of Object.entries(this.websocket.envVars)) {
|
|
452
|
+
this.baseEnvVars[key] = value;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
413
456
|
// Freeze base env-vars after all per-intent injection. Any
|
|
414
457
|
// post-construct mutation by a third-party extender (or a
|
|
415
458
|
// future sub-step that forgets to run before freeze) throws
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-stack.js","sourceRoot":"","sources":["../../src/cdk/app-stack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-stack.js","sourceRoot":"","sources":["../../src/cdk/app-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket API construct — wires the three resources every realtime
|
|
3
|
+
* VentureKit app needs:
|
|
4
|
+
*
|
|
5
|
+
* 1. A DynamoDB `Connections` table (TTL-driven, two GSIs:
|
|
6
|
+
* `userId-index` and `tenantId-index`) backing
|
|
7
|
+
* `@venturekit/runtime/ws`'s `connectionStore`.
|
|
8
|
+
*
|
|
9
|
+
* 2. An API Gateway WebSocket API with `$connect`, `$disconnect`,
|
|
10
|
+
* and `$default` Lambda integrations bundled from the project's
|
|
11
|
+
* `src/ws/` directory via {@link DiscoveredWsRoute}s.
|
|
12
|
+
*
|
|
13
|
+
* 3. IAM grants on the caller's shared Lambda role:
|
|
14
|
+
* - DynamoDB CRUD on the connections table.
|
|
15
|
+
* - `execute-api:ManageConnections` on the WebSocket API so any
|
|
16
|
+
* HTTP-route Lambda can post to a connection via
|
|
17
|
+
* `connectionStore.postToConnection()`.
|
|
18
|
+
*
|
|
19
|
+
* # Why a separate construct (not inlined in app-stack)
|
|
20
|
+
*
|
|
21
|
+
* The app stack is already 1500+ lines; the websocket wiring is
|
|
22
|
+
* self-contained and stable (no per-intent merging, no cross-tier
|
|
23
|
+
* imports). Keeping it in its own module makes the surface auditable
|
|
24
|
+
* and lets the test suite assert the contract in isolation.
|
|
25
|
+
*
|
|
26
|
+
* # Lifecycle
|
|
27
|
+
*
|
|
28
|
+
* Every resource here is **app-tier** (DESTROY-on-delete). The
|
|
29
|
+
* connections table is intentionally ephemeral — rows carry a TTL
|
|
30
|
+
* (≤ 2h, set by the runtime) and the operator never queries this
|
|
31
|
+
* table for post-mortems. Retaining it across stack deletes would
|
|
32
|
+
* leak orphan rows + cost.
|
|
33
|
+
*
|
|
34
|
+
* # What this construct does NOT do
|
|
35
|
+
*
|
|
36
|
+
* - **No custom routes.** Only `$connect`, `$disconnect`, `$default`
|
|
37
|
+
* are wired. Custom action routes (`{ "action": "subscribe", … }`)
|
|
38
|
+
* are dispatched by the project's `$default` handler in user
|
|
39
|
+
* code — the runtime's two-phase auth model assumes this.
|
|
40
|
+
*
|
|
41
|
+
* - **No domain mapping.** API Gateway WebSocket custom domains exist
|
|
42
|
+
* but require a separate `WebSocketApiMapping` + ACM cert in
|
|
43
|
+
* `us-east-1`-or-region-local depending on the edge mode. Out of
|
|
44
|
+
* scope for v1 — the default `wss://<api-id>.execute-api.<region>.amazonaws.com/<stage>`
|
|
45
|
+
* endpoint is exposed via `VENTURE_WS_*` env vars on every Lambda.
|
|
46
|
+
*/
|
|
47
|
+
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
48
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
49
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
50
|
+
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
|
|
51
|
+
import * as apigatewayv2 from 'aws-cdk-lib/aws-apigatewayv2';
|
|
52
|
+
import { Construct } from 'constructs';
|
|
53
|
+
import type { EnvConfig } from '@venturekit/core';
|
|
54
|
+
import { type DiscoveredWsRoute } from './ws-discovery.js';
|
|
55
|
+
/**
|
|
56
|
+
* Result returned by {@link attachWebSocketApi} so the caller can
|
|
57
|
+
* inject env vars into other Lambdas (HTTP routes, queue consumers)
|
|
58
|
+
* that need to post to ws connections.
|
|
59
|
+
*/
|
|
60
|
+
export interface WebSocketAttachment {
|
|
61
|
+
/** The DynamoDB table backing the connection store. */
|
|
62
|
+
table: dynamodb.Table;
|
|
63
|
+
/** The API Gateway WebSocket API. */
|
|
64
|
+
api: apigatewayv2.WebSocketApi;
|
|
65
|
+
/** Stage exposed at `wss://<api>.execute-api.<region>.amazonaws.com/<stageName>`. */
|
|
66
|
+
stage: apigatewayv2.WebSocketStage;
|
|
67
|
+
/**
|
|
68
|
+
* Env vars to merge into every Lambda's environment block so the
|
|
69
|
+
* runtime's `connectionStore` can resolve the table name and so
|
|
70
|
+
* application code can post via `postToConnection()`. Keys:
|
|
71
|
+
*
|
|
72
|
+
* - `CONNECTIONS_TABLE` — table name (read by `connectionStore`).
|
|
73
|
+
* - `VENTURE_WS_API_ID` — API Gateway WS API id.
|
|
74
|
+
* - `VENTURE_WS_STAGE` — stage name (e.g. 'dev', 'prod').
|
|
75
|
+
* - `VENTURE_WS_DOMAIN` — management-API hostname,
|
|
76
|
+
* `<api-id>.execute-api.<region>.amazonaws.com`.
|
|
77
|
+
* - `VENTURE_WS_CALLBACK_URL` — `https://<domain>/<stage>` — full
|
|
78
|
+
* URL `ApiGatewayManagementApiClient` needs as `endpoint`.
|
|
79
|
+
*/
|
|
80
|
+
envVars: Record<string, string>;
|
|
81
|
+
/** The three Lambda functions, keyed by `routeKey`. */
|
|
82
|
+
lambdasByRouteKey: Map<string, lambda.Function>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Inputs to {@link attachWebSocketApi}. The caller owns the shared
|
|
86
|
+
* Lambda role + (optional) SG + the env-config; this construct only
|
|
87
|
+
* borrows them to build the ws Lambdas with the same identity / VPC
|
|
88
|
+
* attachment as the rest of the app-stack's Lambdas.
|
|
89
|
+
*/
|
|
90
|
+
export interface AttachWebSocketApiProps {
|
|
91
|
+
/** Project name used in physical resource names. */
|
|
92
|
+
projectName: string;
|
|
93
|
+
/** Deploy stage (e.g. `dev`, `prod`) used in physical resource names. */
|
|
94
|
+
stage: string;
|
|
95
|
+
/**
|
|
96
|
+
* Resolved env config — supplies Lambda runtime / arch / memory /
|
|
97
|
+
* log retention. The caller has already validated
|
|
98
|
+
* `envConfig.websocket.enabled === true` before invoking this fn;
|
|
99
|
+
* we don't re-check here.
|
|
100
|
+
*/
|
|
101
|
+
envConfig: EnvConfig;
|
|
102
|
+
/** Shared Lambda execution role. The ws Lambdas attach to this. */
|
|
103
|
+
lambdaRole: iam.Role;
|
|
104
|
+
/** Shared Lambda SG when a VPC is imported; otherwise undefined. */
|
|
105
|
+
lambdaSecurityGroup?: ec2.ISecurityGroup;
|
|
106
|
+
/** Imported VPC; ws Lambdas attach to the same private subnets. */
|
|
107
|
+
vpc?: ec2.IVpc;
|
|
108
|
+
/**
|
|
109
|
+
* Frozen base env vars from the parent app-stack — merged into each
|
|
110
|
+
* ws Lambda's environment block. Frozen by the time this runs, so
|
|
111
|
+
* the caller must have decided env-var injection order before
|
|
112
|
+
* calling.
|
|
113
|
+
*/
|
|
114
|
+
baseEnvVars: Record<string, string>;
|
|
115
|
+
/**
|
|
116
|
+
* Whether to wrap Lambda code in an inline stub instead of esbuild
|
|
117
|
+
* bundling. Test-only flag forwarded from app-stack.
|
|
118
|
+
*/
|
|
119
|
+
skipBundling: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Bundler used to turn each ws handler file into a `lambda.Code`.
|
|
122
|
+
* Defaults to esbuild on the production path; tests inject the
|
|
123
|
+
* inline-stub bundler. Passed in (vs imported) so the caller's
|
|
124
|
+
* project-dir resolution stays in one place.
|
|
125
|
+
*/
|
|
126
|
+
bundleHandlerCode: (handlerFile: string) => lambda.Code;
|
|
127
|
+
/**
|
|
128
|
+
* Discovered ws handlers from `discoverWsRoutes(wsDir)`. Must
|
|
129
|
+
* include at least one of `$connect` / `$disconnect` / `$default`
|
|
130
|
+
* — passing an empty list throws because a websocket API with zero
|
|
131
|
+
* routes can't accept any traffic.
|
|
132
|
+
*/
|
|
133
|
+
routes: DiscoveredWsRoute[];
|
|
134
|
+
/**
|
|
135
|
+
* Whether the env config's `dataSafety` is `'strict'`. Controls
|
|
136
|
+
* LogGroup removal policy for the ws Lambdas. The connections
|
|
137
|
+
* table itself is always DESTROY (see file header).
|
|
138
|
+
*/
|
|
139
|
+
isStrictRetain: boolean;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Attach a WebSocket API + connections table + 3 ws Lambdas to the
|
|
143
|
+
* caller's stack. Returns the env vars the caller should merge into
|
|
144
|
+
* every Lambda's environment.
|
|
145
|
+
*
|
|
146
|
+
* **Call site invariant.** Must be invoked BEFORE the caller freezes
|
|
147
|
+
* its `baseEnvVars`, otherwise the env vars this returns won't reach
|
|
148
|
+
* the HTTP-route Lambdas created later.
|
|
149
|
+
*/
|
|
150
|
+
export declare function attachWebSocketApi(scope: Construct, props: AttachWebSocketApiProps): WebSocketAttachment;
|
|
151
|
+
//# sourceMappingURL=websocket-construct.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-construct.d.ts","sourceRoot":"","sources":["../../../src/cdk/shared/websocket-construct.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAGH,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAEjD,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAOlD,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7E;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;IAEtB,qCAAqC;IACrC,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC;IAE/B,qFAAqF;IACrF,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC;IAEnC;;;;;;;;;;;;OAYG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,uDAAuD;IACvD,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;CACjD;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IAEpB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,SAAS,EAAE,SAAS,CAAC;IAErB,mEAAmE;IACnE,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC;IAErB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC;IAEzC,mEAAmE;IACnE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC;IAEf;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC;IAExD;;;;;OAKG;IACH,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAE5B;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,uBAAuB,GAC7B,mBAAmB,CAuMrB"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket API construct — wires the three resources every realtime
|
|
3
|
+
* VentureKit app needs:
|
|
4
|
+
*
|
|
5
|
+
* 1. A DynamoDB `Connections` table (TTL-driven, two GSIs:
|
|
6
|
+
* `userId-index` and `tenantId-index`) backing
|
|
7
|
+
* `@venturekit/runtime/ws`'s `connectionStore`.
|
|
8
|
+
*
|
|
9
|
+
* 2. An API Gateway WebSocket API with `$connect`, `$disconnect`,
|
|
10
|
+
* and `$default` Lambda integrations bundled from the project's
|
|
11
|
+
* `src/ws/` directory via {@link DiscoveredWsRoute}s.
|
|
12
|
+
*
|
|
13
|
+
* 3. IAM grants on the caller's shared Lambda role:
|
|
14
|
+
* - DynamoDB CRUD on the connections table.
|
|
15
|
+
* - `execute-api:ManageConnections` on the WebSocket API so any
|
|
16
|
+
* HTTP-route Lambda can post to a connection via
|
|
17
|
+
* `connectionStore.postToConnection()`.
|
|
18
|
+
*
|
|
19
|
+
* # Why a separate construct (not inlined in app-stack)
|
|
20
|
+
*
|
|
21
|
+
* The app stack is already 1500+ lines; the websocket wiring is
|
|
22
|
+
* self-contained and stable (no per-intent merging, no cross-tier
|
|
23
|
+
* imports). Keeping it in its own module makes the surface auditable
|
|
24
|
+
* and lets the test suite assert the contract in isolation.
|
|
25
|
+
*
|
|
26
|
+
* # Lifecycle
|
|
27
|
+
*
|
|
28
|
+
* Every resource here is **app-tier** (DESTROY-on-delete). The
|
|
29
|
+
* connections table is intentionally ephemeral — rows carry a TTL
|
|
30
|
+
* (≤ 2h, set by the runtime) and the operator never queries this
|
|
31
|
+
* table for post-mortems. Retaining it across stack deletes would
|
|
32
|
+
* leak orphan rows + cost.
|
|
33
|
+
*
|
|
34
|
+
* # What this construct does NOT do
|
|
35
|
+
*
|
|
36
|
+
* - **No custom routes.** Only `$connect`, `$disconnect`, `$default`
|
|
37
|
+
* are wired. Custom action routes (`{ "action": "subscribe", … }`)
|
|
38
|
+
* are dispatched by the project's `$default` handler in user
|
|
39
|
+
* code — the runtime's two-phase auth model assumes this.
|
|
40
|
+
*
|
|
41
|
+
* - **No domain mapping.** API Gateway WebSocket custom domains exist
|
|
42
|
+
* but require a separate `WebSocketApiMapping` + ACM cert in
|
|
43
|
+
* `us-east-1`-or-region-local depending on the edge mode. Out of
|
|
44
|
+
* scope for v1 — the default `wss://<api-id>.execute-api.<region>.amazonaws.com/<stage>`
|
|
45
|
+
* endpoint is exposed via `VENTURE_WS_*` env vars on every Lambda.
|
|
46
|
+
*/
|
|
47
|
+
import * as cdk from 'aws-cdk-lib';
|
|
48
|
+
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
49
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
50
|
+
import * as logs from 'aws-cdk-lib/aws-logs';
|
|
51
|
+
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
|
|
52
|
+
import * as apigatewayv2 from 'aws-cdk-lib/aws-apigatewayv2';
|
|
53
|
+
import * as apigatewayv2Integrations from 'aws-cdk-lib/aws-apigatewayv2-integrations';
|
|
54
|
+
import { toLambdaArchitecture, toLambdaRuntime, toLogRetention, clampLambdaFunctionName, } from './lambda-helpers.js';
|
|
55
|
+
/**
|
|
56
|
+
* Attach a WebSocket API + connections table + 3 ws Lambdas to the
|
|
57
|
+
* caller's stack. Returns the env vars the caller should merge into
|
|
58
|
+
* every Lambda's environment.
|
|
59
|
+
*
|
|
60
|
+
* **Call site invariant.** Must be invoked BEFORE the caller freezes
|
|
61
|
+
* its `baseEnvVars`, otherwise the env vars this returns won't reach
|
|
62
|
+
* the HTTP-route Lambdas created later.
|
|
63
|
+
*/
|
|
64
|
+
export function attachWebSocketApi(scope, props) {
|
|
65
|
+
const { projectName, stage, envConfig, lambdaRole, lambdaSecurityGroup, vpc, baseEnvVars, bundleHandlerCode, routes, isStrictRetain, } = props;
|
|
66
|
+
if (routes.length === 0) {
|
|
67
|
+
throw new Error(`[venturekit] websocket: envConfig.websocket.enabled is true but no ` +
|
|
68
|
+
`handlers were discovered under src/ws/. Create at least one of ` +
|
|
69
|
+
`src/ws/connect.ts, src/ws/disconnect.ts, src/ws/default.ts.`);
|
|
70
|
+
}
|
|
71
|
+
// ─── Connections DynamoDB table ────────────────────────────────
|
|
72
|
+
// Partition key: connectionId — every read path keys off this.
|
|
73
|
+
// GSI userId-index: drives `connectionStore.getByUser` / `sendToUser`.
|
|
74
|
+
// GSI tenantId-index: drives `connectionStore.sendToTenant` for
|
|
75
|
+
// multi-tenant broadcast. Projection: ALL so the consumer doesn't
|
|
76
|
+
// need a follow-up GetItem to read `connectionId` for the post call.
|
|
77
|
+
//
|
|
78
|
+
// Billing: PAY_PER_REQUEST. Connection load is bursty (every page
|
|
79
|
+
// navigation opens a fresh connection on reload) and the per-month
|
|
80
|
+
// baseline is far below provisioned capacity's break-even. Operators
|
|
81
|
+
// who outgrow this can flip to provisioned in their own follow-up.
|
|
82
|
+
//
|
|
83
|
+
// TTL attribute: `ttl` — matches the runtime's `connectionStore.save()`
|
|
84
|
+
// which sets `ttl = floor(now/1000) + 30s` for unauthenticated
|
|
85
|
+
// connections and 2h for authenticated ones. Without the TTL
|
|
86
|
+
// attribute set, dead rows would accumulate forever.
|
|
87
|
+
const table = new dynamodb.Table(scope, 'WsConnectionsTable', {
|
|
88
|
+
tableName: `${projectName}-${stage}-ws-connections`,
|
|
89
|
+
partitionKey: {
|
|
90
|
+
name: 'connectionId',
|
|
91
|
+
type: dynamodb.AttributeType.STRING,
|
|
92
|
+
},
|
|
93
|
+
billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
|
|
94
|
+
timeToLiveAttribute: 'ttl',
|
|
95
|
+
// Connections table is INTENTIONALLY ephemeral — see file header.
|
|
96
|
+
// Even under strict dataSafety we destroy on stack delete because
|
|
97
|
+
// the rows are TTL-driven (≤ 2h lifetime) and never queried for
|
|
98
|
+
// audit purposes. Retaining would leak orphan rows + cost.
|
|
99
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
100
|
+
// Point-in-time recovery would be wasted: every row dies within
|
|
101
|
+
// hours anyway. Saves the 25% PITR markup.
|
|
102
|
+
pointInTimeRecovery: false,
|
|
103
|
+
});
|
|
104
|
+
table.addGlobalSecondaryIndex({
|
|
105
|
+
indexName: 'userId-index',
|
|
106
|
+
partitionKey: { name: 'userId', type: dynamodb.AttributeType.STRING },
|
|
107
|
+
// ALL projection: `connectionStore.sendToUser` reads the whole
|
|
108
|
+
// record (connectionId + authenticated flag) without a follow-up
|
|
109
|
+
// GetItem. KEYS_ONLY would force a second round-trip per
|
|
110
|
+
// connection on every send — 2× the DDB cost.
|
|
111
|
+
projectionType: dynamodb.ProjectionType.ALL,
|
|
112
|
+
});
|
|
113
|
+
table.addGlobalSecondaryIndex({
|
|
114
|
+
indexName: 'tenantId-index',
|
|
115
|
+
partitionKey: { name: 'tenantId', type: dynamodb.AttributeType.STRING },
|
|
116
|
+
projectionType: dynamodb.ProjectionType.ALL,
|
|
117
|
+
});
|
|
118
|
+
// Grant the shared Lambda role full CRUD on the connections table.
|
|
119
|
+
// Every ws handler (connect/disconnect/default) AND every HTTP
|
|
120
|
+
// handler that calls `connectionStore.sendToUser(...)` needs this.
|
|
121
|
+
// No way to scope tighter without per-Lambda roles — same trade-off
|
|
122
|
+
// documented in app-stack.ts's `applyImportedGrants`.
|
|
123
|
+
table.grantReadWriteData(lambdaRole);
|
|
124
|
+
// ─── WebSocket API + stage ─────────────────────────────────────
|
|
125
|
+
// routeSelectionExpression is fixed at `$request.body.action` —
|
|
126
|
+
// matches the runtime's two-phase auth contract where the client
|
|
127
|
+
// sends `{ action: "auth", token: "<jwt>" }` over the encrypted
|
|
128
|
+
// channel. Custom action dispatch (e.g. `{ action: "subscribe" }`)
|
|
129
|
+
// is handled by the project's `$default` Lambda in user code.
|
|
130
|
+
const api = new apigatewayv2.WebSocketApi(scope, 'WsApi', {
|
|
131
|
+
apiName: `${projectName}-${stage}-ws`,
|
|
132
|
+
description: `${projectName} ${stage} realtime WebSocket API`,
|
|
133
|
+
routeSelectionExpression: envConfig.websocket.routeSelectionExpression,
|
|
134
|
+
});
|
|
135
|
+
const wsStage = new apigatewayv2.WebSocketStage(scope, 'WsStage', {
|
|
136
|
+
webSocketApi: api,
|
|
137
|
+
stageName: stage,
|
|
138
|
+
autoDeploy: true,
|
|
139
|
+
// No throttle override here — API Gateway's account-level limits
|
|
140
|
+
// are picked up by default, and per-stage throttling lives in
|
|
141
|
+
// `envConfig.websocket.throttleRateLimit/throttleBurstLimit` which
|
|
142
|
+
// a future enhancement can wire via CFN escape hatch (the L2
|
|
143
|
+
// construct doesn't expose `defaultRouteSettings` yet).
|
|
144
|
+
});
|
|
145
|
+
// Grant ManageConnections so any Lambda on the shared role can
|
|
146
|
+
// post to a connection via the API Gateway Management API. This is
|
|
147
|
+
// what `connectionStore.postToConnection()` needs at runtime.
|
|
148
|
+
api.grantManageConnections(lambdaRole);
|
|
149
|
+
// ─── Per-route Lambdas + WebSocketRoute integrations ──────────
|
|
150
|
+
const lambdasByRouteKey = new Map();
|
|
151
|
+
const lambdaConfig = envConfig.lambda;
|
|
152
|
+
for (const route of routes) {
|
|
153
|
+
const resourceId = route.slug;
|
|
154
|
+
const functionName = clampLambdaFunctionName(`${projectName}-${stage}-${route.slug}`);
|
|
155
|
+
const fn = new lambda.Function(scope, resourceId, {
|
|
156
|
+
functionName,
|
|
157
|
+
runtime: toLambdaRuntime(envConfig),
|
|
158
|
+
architecture: toLambdaArchitecture(envConfig),
|
|
159
|
+
handler: 'index.main',
|
|
160
|
+
code: bundleHandlerCode(route.handlerFile),
|
|
161
|
+
memorySize: lambdaConfig.memoryMb,
|
|
162
|
+
timeout: cdk.Duration.seconds(lambdaConfig.timeoutSec),
|
|
163
|
+
description: `WebSocket ${route.routeKey} handler`,
|
|
164
|
+
environment: {
|
|
165
|
+
...baseEnvVars,
|
|
166
|
+
...lambdaConfig.environmentVariables,
|
|
167
|
+
// baseEnvVars at this call site MAY not yet contain
|
|
168
|
+
// CONNECTIONS_TABLE etc. — those keys are merged in by the
|
|
169
|
+
// caller AFTER attachWebSocketApi returns. Explicitly set
|
|
170
|
+
// them on the ws Lambdas so they boot even if the caller
|
|
171
|
+
// doesn't merge (they always need it).
|
|
172
|
+
CONNECTIONS_TABLE: table.tableName,
|
|
173
|
+
VENTURE_WS_API_ID: api.apiId,
|
|
174
|
+
VENTURE_WS_STAGE: wsStage.stageName,
|
|
175
|
+
},
|
|
176
|
+
logGroup: new logs.LogGroup(scope, `${resourceId}-logs`, {
|
|
177
|
+
logGroupName: `/aws/lambda/${functionName}`,
|
|
178
|
+
retention: toLogRetention(lambdaConfig.logRetentionDays),
|
|
179
|
+
removalPolicy: isStrictRetain
|
|
180
|
+
? cdk.RemovalPolicy.RETAIN
|
|
181
|
+
: cdk.RemovalPolicy.DESTROY,
|
|
182
|
+
}),
|
|
183
|
+
tracing: lambdaConfig.tracingEnabled
|
|
184
|
+
? lambda.Tracing.ACTIVE
|
|
185
|
+
: lambda.Tracing.DISABLED,
|
|
186
|
+
reservedConcurrentExecutions: lambdaConfig.reservedConcurrency,
|
|
187
|
+
role: lambdaRole,
|
|
188
|
+
...(vpc && lambdaSecurityGroup
|
|
189
|
+
? {
|
|
190
|
+
vpc,
|
|
191
|
+
vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },
|
|
192
|
+
securityGroups: [lambdaSecurityGroup],
|
|
193
|
+
}
|
|
194
|
+
: {}),
|
|
195
|
+
});
|
|
196
|
+
lambdasByRouteKey.set(route.routeKey, fn);
|
|
197
|
+
// `WebSocketLambdaIntegration` automatically adds the
|
|
198
|
+
// `lambda:InvokeFunction` resource policy granting the WS API
|
|
199
|
+
// permission to invoke this Lambda — same model as the HTTP API
|
|
200
|
+
// Gateway integration on routes.
|
|
201
|
+
const integration = new apigatewayv2Integrations.WebSocketLambdaIntegration(`${resourceId}-integration`, fn);
|
|
202
|
+
// Map reserved route keys to the L2 construct's slot names.
|
|
203
|
+
// Each `addRoute(routeKey, options)` returns a `WebSocketRoute`
|
|
204
|
+
// — we don't keep the reference; CDK tracks it via the parent
|
|
205
|
+
// WebSocketApi.
|
|
206
|
+
api.addRoute(route.routeKey, { integration });
|
|
207
|
+
}
|
|
208
|
+
// ─── Env vars to forward to every other Lambda ────────────────
|
|
209
|
+
// The runtime's `connectionStore.postToConnection(domain, stage, ...)`
|
|
210
|
+
// takes `domain` + `stage` separately, so we expose both. The
|
|
211
|
+
// CALLBACK_URL convenience var matches the format expected by
|
|
212
|
+
// `ApiGatewayManagementApiClient`'s `endpoint` config.
|
|
213
|
+
const region = cdk.Stack.of(scope).region;
|
|
214
|
+
const domain = `${api.apiId}.execute-api.${region}.amazonaws.com`;
|
|
215
|
+
const envVars = {
|
|
216
|
+
CONNECTIONS_TABLE: table.tableName,
|
|
217
|
+
VENTURE_WS_API_ID: api.apiId,
|
|
218
|
+
VENTURE_WS_STAGE: wsStage.stageName,
|
|
219
|
+
VENTURE_WS_DOMAIN: domain,
|
|
220
|
+
VENTURE_WS_CALLBACK_URL: `https://${domain}/${wsStage.stageName}`,
|
|
221
|
+
};
|
|
222
|
+
return {
|
|
223
|
+
table,
|
|
224
|
+
api,
|
|
225
|
+
stage: wsStage,
|
|
226
|
+
envVars,
|
|
227
|
+
lambdasByRouteKey,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=websocket-construct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-construct.js","sourceRoot":"","sources":["../../../src/cdk/shared/websocket-construct.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket handler discovery — walks `src/ws/` and produces one
|
|
3
|
+
* `DiscoveredWsRoute` per API Gateway WebSocket route. The convention
|
|
4
|
+
* mirrors `route-discovery.ts` for HTTP routes:
|
|
5
|
+
*
|
|
6
|
+
* src/ws/connect.ts → $connect
|
|
7
|
+
* src/ws/disconnect.ts → $disconnect
|
|
8
|
+
* src/ws/default.ts → $default
|
|
9
|
+
*
|
|
10
|
+
* No custom routes (e.g. `src/ws/subscribe.ts` → `subscribe` action) in
|
|
11
|
+
* this version: the runtime's two-phase auth flow funnels every client
|
|
12
|
+
* message through `$default` which dispatches by `body.action` itself.
|
|
13
|
+
* Adding custom-route discovery is a strict superset of the current
|
|
14
|
+
* convention and can land later without breaking existing projects.
|
|
15
|
+
*
|
|
16
|
+
* Shared between the app-tier stack (which materialises each route as
|
|
17
|
+
* a Lambda + WebSocketRoute) and any other consumer that needs to
|
|
18
|
+
* enumerate ws handlers without spinning up the full CDK app (CLI dev
|
|
19
|
+
* server, tests, external tooling).
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* One discovered WebSocket route, ready to be wired to a Lambda +
|
|
23
|
+
* WebSocketRoute integration.
|
|
24
|
+
*/
|
|
25
|
+
export interface DiscoveredWsRoute {
|
|
26
|
+
/**
|
|
27
|
+
* The route key as understood by API Gateway WebSocket APIs. One of
|
|
28
|
+
* the three reserved keys (`$connect`, `$disconnect`, `$default`).
|
|
29
|
+
* Reserved keys carry the `$` sigil verbatim — API Gateway rejects
|
|
30
|
+
* unprefixed names like `connect` for these slots.
|
|
31
|
+
*/
|
|
32
|
+
routeKey: '$connect' | '$disconnect' | '$default';
|
|
33
|
+
/**
|
|
34
|
+
* Stable slug used for the Lambda's function name and CDK construct
|
|
35
|
+
* id. The `$` is stripped because CFN logical ids can't contain it,
|
|
36
|
+
* and `connect`/`disconnect`/`default` collide with no other route
|
|
37
|
+
* shape in the venture (HTTP routes always carry a method suffix
|
|
38
|
+
* like `health-get`).
|
|
39
|
+
*
|
|
40
|
+
* $connect → 'ws-connect'
|
|
41
|
+
* $disconnect → 'ws-disconnect'
|
|
42
|
+
* $default → 'ws-default'
|
|
43
|
+
*/
|
|
44
|
+
slug: string;
|
|
45
|
+
/** Absolute path to the route handler file (.ts or .js). */
|
|
46
|
+
handlerFile: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Discover WebSocket handlers under `src/ws/`. Non-recursive on purpose:
|
|
50
|
+
* the three reserved keys are the only handlers the convention
|
|
51
|
+
* supports, and a subfolder would imply nested routing API Gateway WS
|
|
52
|
+
* doesn't have. Files whose basename doesn't match a reserved key
|
|
53
|
+
* (`helpers.ts`, `auth.ts`, `_middleware.ts`, …) are silently skipped
|
|
54
|
+
* and remain available as colocated implementation detail.
|
|
55
|
+
*
|
|
56
|
+
* Returns an empty array when `wsDir` doesn't exist — projects without
|
|
57
|
+
* realtime features have no `src/ws/` directory and the app stack just
|
|
58
|
+
* skips the websocket section.
|
|
59
|
+
*/
|
|
60
|
+
export declare function discoverWsRoutes(wsDir: string): DiscoveredWsRoute[];
|
|
61
|
+
//# sourceMappingURL=ws-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-discovery.d.ts","sourceRoot":"","sources":["../../../src/cdk/shared/ws-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,QAAQ,EAAE,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;IAElD;;;;;;;;;;OAUG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;CACrB;AAgBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,CA0BnE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebSocket handler discovery — walks `src/ws/` and produces one
|
|
3
|
+
* `DiscoveredWsRoute` per API Gateway WebSocket route. The convention
|
|
4
|
+
* mirrors `route-discovery.ts` for HTTP routes:
|
|
5
|
+
*
|
|
6
|
+
* src/ws/connect.ts → $connect
|
|
7
|
+
* src/ws/disconnect.ts → $disconnect
|
|
8
|
+
* src/ws/default.ts → $default
|
|
9
|
+
*
|
|
10
|
+
* No custom routes (e.g. `src/ws/subscribe.ts` → `subscribe` action) in
|
|
11
|
+
* this version: the runtime's two-phase auth flow funnels every client
|
|
12
|
+
* message through `$default` which dispatches by `body.action` itself.
|
|
13
|
+
* Adding custom-route discovery is a strict superset of the current
|
|
14
|
+
* convention and can land later without breaking existing projects.
|
|
15
|
+
*
|
|
16
|
+
* Shared between the app-tier stack (which materialises each route as
|
|
17
|
+
* a Lambda + WebSocketRoute) and any other consumer that needs to
|
|
18
|
+
* enumerate ws handlers without spinning up the full CDK app (CLI dev
|
|
19
|
+
* server, tests, external tooling).
|
|
20
|
+
*/
|
|
21
|
+
import * as fs from 'fs';
|
|
22
|
+
import * as path from 'path';
|
|
23
|
+
/**
|
|
24
|
+
* Filename → WebSocket route key mapping. Symmetric with
|
|
25
|
+
* `ROUTE_FILENAME_TO_METHOD` in `route-discovery.ts` — the local dev
|
|
26
|
+
* server and the deploy synth pick up the same files.
|
|
27
|
+
*/
|
|
28
|
+
const WS_FILENAME_TO_ROUTE_KEY = {
|
|
29
|
+
connect: '$connect',
|
|
30
|
+
disconnect: '$disconnect',
|
|
31
|
+
default: '$default',
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Discover WebSocket handlers under `src/ws/`. Non-recursive on purpose:
|
|
35
|
+
* the three reserved keys are the only handlers the convention
|
|
36
|
+
* supports, and a subfolder would imply nested routing API Gateway WS
|
|
37
|
+
* doesn't have. Files whose basename doesn't match a reserved key
|
|
38
|
+
* (`helpers.ts`, `auth.ts`, `_middleware.ts`, …) are silently skipped
|
|
39
|
+
* and remain available as colocated implementation detail.
|
|
40
|
+
*
|
|
41
|
+
* Returns an empty array when `wsDir` doesn't exist — projects without
|
|
42
|
+
* realtime features have no `src/ws/` directory and the app stack just
|
|
43
|
+
* skips the websocket section.
|
|
44
|
+
*/
|
|
45
|
+
export function discoverWsRoutes(wsDir) {
|
|
46
|
+
if (!fs.existsSync(wsDir))
|
|
47
|
+
return [];
|
|
48
|
+
const routes = [];
|
|
49
|
+
for (const entry of fs.readdirSync(wsDir, { withFileTypes: true })) {
|
|
50
|
+
if (!entry.isFile())
|
|
51
|
+
continue;
|
|
52
|
+
if (!/\.(ts|js)$/.test(entry.name))
|
|
53
|
+
continue;
|
|
54
|
+
if (entry.name.endsWith('.d.ts'))
|
|
55
|
+
continue;
|
|
56
|
+
const baseName = entry.name.replace(/\.(ts|js)$/, '');
|
|
57
|
+
if (baseName.endsWith('.test') || baseName.endsWith('.spec'))
|
|
58
|
+
continue;
|
|
59
|
+
const routeKey = WS_FILENAME_TO_ROUTE_KEY[baseName.toLowerCase()];
|
|
60
|
+
if (!routeKey)
|
|
61
|
+
continue;
|
|
62
|
+
routes.push({
|
|
63
|
+
routeKey,
|
|
64
|
+
slug: `ws-${baseName.toLowerCase()}`,
|
|
65
|
+
handlerFile: path.join(wsDir, entry.name),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// Sort by slug for deterministic synth order — matches the HTTP
|
|
69
|
+
// route convention so CDK construct ids land in the same order on
|
|
70
|
+
// every machine regardless of `readdirSync` ordering.
|
|
71
|
+
routes.sort((a, b) => (a.slug < b.slug ? -1 : a.slug > b.slug ? 1 : 0));
|
|
72
|
+
return routes;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=ws-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-discovery.js","sourceRoot":"","sources":["../../../src/cdk/shared/ws-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAgC7B;;;;GAIG;AACH,MAAM,wBAAwB,GAG1B;IACF,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,SAAS;QAEvE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ;YACR,IAAI,EAAE,MAAM,QAAQ,CAAC,WAAW,EAAE,EAAE;YACpC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,gEAAgE;IAChE,kEAAkE;IAClE,sDAAsD;IACtD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/venture.d.ts
CHANGED
|
@@ -40,6 +40,12 @@ export interface VentureDefinition {
|
|
|
40
40
|
queuesDir?: string;
|
|
41
41
|
/** Path to cron/scheduled task handlers directory (relative to project root) - default: 'src/crons' */
|
|
42
42
|
cronsDir?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Path to WebSocket handler files (relative to project root) — default: 'src/ws'.
|
|
45
|
+
* Only consulted when at least one env's `websocket.enabled` is true. See
|
|
46
|
+
* `@venturekit/infra`'s `shared/websocket-construct.ts` for the wiring.
|
|
47
|
+
*/
|
|
48
|
+
wsDir?: string;
|
|
43
49
|
/** Databases — shared definitions (name, type) */
|
|
44
50
|
databases?: DatabaseIntent[];
|
|
45
51
|
/** Storage buckets — shared definitions (purpose, id) */
|
|
@@ -87,6 +93,7 @@ export declare function defineVenture(definition: VentureDefinition): {
|
|
|
87
93
|
_functionsDir: string;
|
|
88
94
|
_queuesDir: string;
|
|
89
95
|
_cronsDir: string;
|
|
96
|
+
_wsDir: string;
|
|
90
97
|
_resolveInfrastructure: (stage: string) => VentureIntent | undefined;
|
|
91
98
|
_definition: VentureDefinition;
|
|
92
99
|
app(input: {
|
package/dist/venture.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"venture.d.ts","sourceRoot":"","sources":["../src/venture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EAEd,cAAc,EAKf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACb,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,IAAI,EAAE,UAAU,CAAC;IAEjB,+CAA+C;IAC/C,QAAQ,EAAE,cAAc,CAAC;IAEzB;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG;QACrC,GAAG,CAAC,EAAE,cAAc,CAAC;QACrB,KAAK,CAAC,EAAE,cAAc,CAAC;QACvB,IAAI,CAAC,EAAE,cAAc,CAAC;KACvB,CAAC;IAEF,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mGAAmG;IACnG,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uGAAuG;IACvG,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"venture.d.ts","sourceRoot":"","sources":["../src/venture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EAEd,cAAc,EAKf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACb,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,IAAI,EAAE,UAAU,CAAC;IAEjB,+CAA+C;IAC/C,QAAQ,EAAE,cAAc,CAAC;IAEzB;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG;QACrC,GAAG,CAAC,EAAE,cAAc,CAAC;QACrB,KAAK,CAAC,EAAE,cAAc,CAAC;QACvB,IAAI,CAAC,EAAE,cAAc,CAAC;KACvB,CAAC;IAEF,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mGAAmG;IACnG,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uGAAuG;IACvG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAKf,kDAAkD;IAClD,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAE7B,yDAAyD;IACzD,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAE1B,gDAAgD;IAChD,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IAEpB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IAEvB,kCAAkC;IAClC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IAEvB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAE7B,uDAAuD;IACvD,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAE7B,sCAAsC;IACtC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEhC,mCAAmC;IACnC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAE1B,qDAAqD;IACrD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE;QACT,GAAG,EAAE;YACH,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;KACH,CAAC;CACH;AAmDD,wBAAgB,aAAa,CAAC,UAAU,EAAE,iBAAiB;;;;;;oCAY5B,MAAM,KAAG,aAAa,GAAG,SAAS;;eAsClD;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;;;;;;;;EAY/B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,cAAc,GACvB,cAAc,CAMhB"}
|
package/dist/venture.js
CHANGED
|
@@ -103,6 +103,7 @@ export function defineVenture(definition) {
|
|
|
103
103
|
_functionsDir: definition.functionsDir || 'src/functions',
|
|
104
104
|
_queuesDir: definition.queuesDir || 'src/queues',
|
|
105
105
|
_cronsDir: definition.cronsDir || 'src/crons',
|
|
106
|
+
_wsDir: definition.wsDir || 'src/ws',
|
|
106
107
|
_resolveInfrastructure: resolveInfra,
|
|
107
108
|
_definition: definition,
|
|
108
109
|
app(input) {
|
package/dist/venture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"venture.js","sourceRoot":"","sources":["../src/venture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAML,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,GACZ,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"venture.js","sourceRoot":"","sources":["../src/venture.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venturekit/infra",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.20260525024212",
|
|
4
4
|
"description": "VentureKit infrastructure - AWS CDK constructs",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
],
|
|
38
38
|
"license": "Apache-2.0",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@venturekit/core": "0.0.0-dev.
|
|
40
|
+
"@venturekit/core": "0.0.0-dev.20260525024212",
|
|
41
41
|
"aws-cdk-lib": "^2.251.0",
|
|
42
42
|
"constructs": "^10.6.0",
|
|
43
43
|
"esbuild": "^0.24.0"
|