@venturekit/infra 0.0.0-dev.20260427225816 → 0.0.0-dev.20260429113801

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/README.md CHANGED
@@ -84,6 +84,55 @@ VENTURE_STAGE=stage vk deploy # Uses stage config
84
84
  vk dev # Defaults to dev
85
85
  ```
86
86
 
87
+ ## Database migrations on deploy
88
+
89
+ When `infrastructure.databases` declares a Postgres database and the
90
+ project has at least one `.sql` file in `db/migrations/`, VentureKit
91
+ provisions an in-VPC AWS CodeBuild project alongside the RDS instance
92
+ and invokes it via a CloudFormation custom resource on every stack
93
+ update. The buildspec literally runs `vk migrate --seed` — the same
94
+ command operators use locally — so what's tested in development is
95
+ what runs on deploy.
96
+
97
+ ```
98
+ project/
99
+ ├── db/
100
+ │ ├── migrations/ ← auto-applied (tracked in __vk_migrations)
101
+ │ │ └── 0001_init.sql
102
+ │ └── seeds/ ← auto-applied alongside migrations (tracked in __vk_seeds)
103
+ │ └── 0001_seed.sql
104
+ └── vk.config.ts ← databases: [{ id: 'main', type: 'postgres', name: 'mydb' }]
105
+ ```
106
+
107
+ The runner:
108
+
109
+ - Lives in the same VPC + private subnets as the DB. The DB SG accepts
110
+ ingress on the engine port from the runner SG only.
111
+ - Reads DB credentials fresh from the auto-generated Secrets Manager
112
+ secret on each build, so password rotation doesn't require a redeploy.
113
+ - Installs the same `@venturekit/cli` version the operator has locally
114
+ (resolved from `node_modules/@venturekit/cli/package.json`).
115
+ - Serializes concurrent deploys via `concurrentBuildLimit: 1` to prevent
116
+ builds racing on the `__vk_migrations` tracking table.
117
+ - Throws on `FAILED` / `STOPPED` / `TIMED_OUT` with the build's
118
+ CloudWatch log stream URL in the error message → CFN rolls the entire
119
+ stack back, making migrations atomic with `vk deploy`.
120
+
121
+ ### When the runner is *not* provisioned
122
+
123
+ - Free-tier preset (`preset: 'free'`) — uses DynamoDB instead of RDS, no
124
+ SQL migrations needed.
125
+ - `db/migrations/` is missing or contains no `.sql` files.
126
+ - `databases[i].type === 'mysql'` — `@venturekit/data` doesn't ship a
127
+ MySQL runner yet; a synth-time `console.warn` reminds you to run
128
+ migrations manually until that lands.
129
+
130
+ ### Inspecting a failed build
131
+
132
+ CloudWatch log group: `/venturekit/<projectName>/<stage>/migrate-<dbId>`.
133
+ The custom resource's failure message contains a deep link straight to
134
+ the failing build's log stream — copy-paste it into the AWS console.
135
+
87
136
  ## API
88
137
 
89
138
  ### `defineVenture(definition)`
@@ -5,4 +5,6 @@
5
5
  */
6
6
  export { VentureStack } from './stack.js';
7
7
  export type { VentureStackProps } from './stack.js';
8
+ export { MigrationRunner, hasMigrations } from './migration-runner.js';
9
+ export type { MigrationRunnerProps } from './migration-runner.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/cdk/index.js CHANGED
@@ -4,4 +4,5 @@
4
4
  * Exported for use by the generated CDK app in .vk/cdk/.
5
5
  */
6
6
  export { VentureStack } from './stack.js';
7
+ export { MigrationRunner, hasMigrations } from './migration-runner.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * MigrationRunner — runs `vk migrate --seed` against a private-VPC RDS as
3
+ * part of the CDK deploy.
4
+ *
5
+ * The problem this solves: `vk deploy` puts RDS in `PRIVATE_ISOLATED` /
6
+ * `PRIVATE_WITH_EGRESS` subnets, so public CI runners can't reach it
7
+ * without a tunnel. The historical workaround was "run `vk migrate` from
8
+ * your laptop after every deploy" (documented in
9
+ * `venturekit-cms/.github/workflows/deploy-api.yml`'s comment block and
10
+ * `docs/AMPLIFY_DEPLOY.md` §3). This construct closes that gap by
11
+ * provisioning a CodeBuild project inside the same VPC as the database
12
+ * and invoking it via a CFN custom resource on every stack update —
13
+ * making migrations atomic with the deploy.
14
+ *
15
+ * ### Architecture
16
+ *
17
+ * 1. `s3_assets.Asset` from the project's `db/` directory. CDK uploads
18
+ * it to the bootstrap bucket on every `cdk deploy`; the asset hash
19
+ * flips whenever a `.sql` file content changes.
20
+ * 2. `codebuild.Project` in the same VPC + private subnets as the DB,
21
+ * with a dedicated SG. The DB SG gets ingress on TCP 5432 from the
22
+ * runner SG. Source = the asset above. Buildspec is **inline**
23
+ * (not shipped in the asset) and literally runs
24
+ * `npx vk migrate --seed`.
25
+ * 3. `cr.Provider` with two tiny inline-JS Lambdas:
26
+ * - `onEvent` calls `codebuild:StartBuild`,
27
+ * - `isComplete` polls `codebuild:BatchGetBuilds` until the build
28
+ * is in a terminal state, throwing on FAILED/STOPPED/TIMED_OUT
29
+ * with the build's CW log stream URL in the message.
30
+ * The provider Lambdas run in the public AWS network — they only
31
+ * hit control-plane APIs and don't need VPC access.
32
+ * 4. `CustomResource` with `AssetHash` + `DeployTimestamp` properties.
33
+ * AssetHash forces an update when migration files change;
34
+ * DeployTimestamp forces re-fire on every `vk deploy` (a no-op when
35
+ * nothing is pending — the runner is sha-tracked and idempotent).
36
+ *
37
+ * ### Why CodeBuild and not Lambda
38
+ *
39
+ * CodeBuild reuses `vk migrate` verbatim, so when we wire up the
40
+ * drizzle/flyway/prisma runners (currently throwing
41
+ * `MigrationToolNotImplementedError`) they'll Just Work here too — no
42
+ * per-tool Lambda bundling story. The 30-60s cold start vs Lambda's
43
+ * 1-3s and the ~$0.005-0.02 per build don't matter for a once-per-deploy
44
+ * operation.
45
+ */
46
+ import * as cdk from 'aws-cdk-lib';
47
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
48
+ import * as rds from 'aws-cdk-lib/aws-rds';
49
+ import * as codebuild from 'aws-cdk-lib/aws-codebuild';
50
+ import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
51
+ import { Construct } from 'constructs';
52
+ export interface MigrationRunnerProps {
53
+ /** Project name — used for resource naming. */
54
+ projectName: string;
55
+ /** Deployment stage (dev/stage/prod). */
56
+ stage: string;
57
+ /** Stable identifier for this DB (matches `DatabaseIntent.id`). */
58
+ dbId: string;
59
+ /** VPC the DB lives in — runner is placed in the same VPC. */
60
+ vpc: ec2.IVpc;
61
+ /** RDS instance. We `connections.allowFrom` the runner SG to it. */
62
+ dbInstance: rds.IDatabaseInstance;
63
+ /** Auto-generated DB credentials secret. Runner reads it at build time. */
64
+ dbSecret: secretsmanager.ISecret;
65
+ /** Database name (from `DatabaseIntent.name || .id`). */
66
+ dbName: string;
67
+ /**
68
+ * Absolute path to the project's `db/` directory. Should contain
69
+ * `migrations/` and optionally `seeds/`. If `migrations/` is missing,
70
+ * the construct caller should skip instantiation.
71
+ */
72
+ dbDir: string;
73
+ /**
74
+ * Pinned `@venturekit/cli` + `@venturekit/data` version installed in
75
+ * the build. Resolved by `cdk-bridge.ts` from the consumer's
76
+ * `node_modules/@venturekit/cli/package.json` so build-time behavior
77
+ * matches what the operator tested locally.
78
+ */
79
+ vkCliVersion: string;
80
+ /** Log retention for the runner's CodeBuild log group. */
81
+ logRetentionDays: number;
82
+ }
83
+ /**
84
+ * Returns true when the project has at least a `db/migrations/` directory
85
+ * with one or more `.sql` files. Callers use this to decide whether to
86
+ * instantiate the construct at all (no point provisioning a runner for a
87
+ * project with no migrations).
88
+ */
89
+ export declare function hasMigrations(dbDir: string): boolean;
90
+ export declare class MigrationRunner extends Construct {
91
+ /** Security group attached to the CodeBuild project. */
92
+ readonly securityGroup: ec2.SecurityGroup;
93
+ /** CodeBuild project that runs `vk migrate --seed`. */
94
+ readonly project: codebuild.Project;
95
+ /** Custom resource that triggers a build on every stack update. */
96
+ readonly trigger: cdk.CustomResource;
97
+ constructor(scope: Construct, id: string, props: MigrationRunnerProps);
98
+ }
99
+ //# sourceMappingURL=migration-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-runner.d.ts","sourceRoot":"","sources":["../../src/cdk/migration-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AACvD,OAAO,KAAK,cAAc,MAAM,gCAAgC,CAAC;AAMjE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACd,oEAAoE;IACpE,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC;IACjC,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQpD;AAED,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,wDAAwD;IACxD,SAAgB,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC;IACjD,uDAAuD;IACvD,SAAgB,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC;IAC3C,mEAAmE;IACnE,SAAgB,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC;gBAEhC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB;CAqNtE"}
@@ -0,0 +1,369 @@
1
+ /**
2
+ * MigrationRunner — runs `vk migrate --seed` against a private-VPC RDS as
3
+ * part of the CDK deploy.
4
+ *
5
+ * The problem this solves: `vk deploy` puts RDS in `PRIVATE_ISOLATED` /
6
+ * `PRIVATE_WITH_EGRESS` subnets, so public CI runners can't reach it
7
+ * without a tunnel. The historical workaround was "run `vk migrate` from
8
+ * your laptop after every deploy" (documented in
9
+ * `venturekit-cms/.github/workflows/deploy-api.yml`'s comment block and
10
+ * `docs/AMPLIFY_DEPLOY.md` §3). This construct closes that gap by
11
+ * provisioning a CodeBuild project inside the same VPC as the database
12
+ * and invoking it via a CFN custom resource on every stack update —
13
+ * making migrations atomic with the deploy.
14
+ *
15
+ * ### Architecture
16
+ *
17
+ * 1. `s3_assets.Asset` from the project's `db/` directory. CDK uploads
18
+ * it to the bootstrap bucket on every `cdk deploy`; the asset hash
19
+ * flips whenever a `.sql` file content changes.
20
+ * 2. `codebuild.Project` in the same VPC + private subnets as the DB,
21
+ * with a dedicated SG. The DB SG gets ingress on TCP 5432 from the
22
+ * runner SG. Source = the asset above. Buildspec is **inline**
23
+ * (not shipped in the asset) and literally runs
24
+ * `npx vk migrate --seed`.
25
+ * 3. `cr.Provider` with two tiny inline-JS Lambdas:
26
+ * - `onEvent` calls `codebuild:StartBuild`,
27
+ * - `isComplete` polls `codebuild:BatchGetBuilds` until the build
28
+ * is in a terminal state, throwing on FAILED/STOPPED/TIMED_OUT
29
+ * with the build's CW log stream URL in the message.
30
+ * The provider Lambdas run in the public AWS network — they only
31
+ * hit control-plane APIs and don't need VPC access.
32
+ * 4. `CustomResource` with `AssetHash` + `DeployTimestamp` properties.
33
+ * AssetHash forces an update when migration files change;
34
+ * DeployTimestamp forces re-fire on every `vk deploy` (a no-op when
35
+ * nothing is pending — the runner is sha-tracked and idempotent).
36
+ *
37
+ * ### Why CodeBuild and not Lambda
38
+ *
39
+ * CodeBuild reuses `vk migrate` verbatim, so when we wire up the
40
+ * drizzle/flyway/prisma runners (currently throwing
41
+ * `MigrationToolNotImplementedError`) they'll Just Work here too — no
42
+ * per-tool Lambda bundling story. The 30-60s cold start vs Lambda's
43
+ * 1-3s and the ~$0.005-0.02 per build don't matter for a once-per-deploy
44
+ * operation.
45
+ */
46
+ import * as cdk from 'aws-cdk-lib';
47
+ import * as ec2 from 'aws-cdk-lib/aws-ec2';
48
+ import * as codebuild from 'aws-cdk-lib/aws-codebuild';
49
+ import * as s3assets from 'aws-cdk-lib/aws-s3-assets';
50
+ import * as iam from 'aws-cdk-lib/aws-iam';
51
+ import * as lambda from 'aws-cdk-lib/aws-lambda';
52
+ import * as logs from 'aws-cdk-lib/aws-logs';
53
+ import * as cr from 'aws-cdk-lib/custom-resources';
54
+ import { Construct } from 'constructs';
55
+ import * as path from 'path';
56
+ import * as fs from 'fs';
57
+ /**
58
+ * Returns true when the project has at least a `db/migrations/` directory
59
+ * with one or more `.sql` files. Callers use this to decide whether to
60
+ * instantiate the construct at all (no point provisioning a runner for a
61
+ * project with no migrations).
62
+ */
63
+ export function hasMigrations(dbDir) {
64
+ const migrationsDir = path.join(dbDir, 'migrations');
65
+ if (!fs.existsSync(migrationsDir))
66
+ return false;
67
+ try {
68
+ return fs.readdirSync(migrationsDir).some((f) => f.endsWith('.sql'));
69
+ }
70
+ catch {
71
+ return false;
72
+ }
73
+ }
74
+ export class MigrationRunner extends Construct {
75
+ /** Security group attached to the CodeBuild project. */
76
+ securityGroup;
77
+ /** CodeBuild project that runs `vk migrate --seed`. */
78
+ project;
79
+ /** Custom resource that triggers a build on every stack update. */
80
+ trigger;
81
+ constructor(scope, id, props) {
82
+ super(scope, id);
83
+ // --- 1. Asset ----------------------------------------------------
84
+ // Upload the project's `db/` directory (migrations + optional seeds)
85
+ // to the CDK bootstrap bucket. Asset hash flips whenever any `.sql`
86
+ // file content changes, which is what drives the custom-resource
87
+ // update detection below.
88
+ const asset = new s3assets.Asset(this, 'DbAsset', {
89
+ path: props.dbDir,
90
+ });
91
+ // --- 2. Security group + DB ingress ------------------------------
92
+ this.securityGroup = new ec2.SecurityGroup(this, 'RunnerSg', {
93
+ vpc: props.vpc,
94
+ description: `VentureKit migration runner SG for ${props.projectName}-${props.dbId}`,
95
+ // Runner needs egress to the DB (private) and to the public AWS
96
+ // control plane (Secrets Manager, CodeBuild, CW Logs). Restricting
97
+ // egress here would just trade one footgun for another;
98
+ // least-privilege ingress on the DB SG (below) is what matters.
99
+ allowAllOutbound: true,
100
+ });
101
+ // Allow the runner to reach the DB on its default Postgres port.
102
+ // `connections.allowDefaultPortFrom` is the right primitive — it
103
+ // looks up the engine's port (5432 for Postgres) automatically.
104
+ props.dbInstance.connections.allowDefaultPortFrom(this.securityGroup, 'Allow VentureKit migration runner to reach the DB');
105
+ // --- 3. CodeBuild project ----------------------------------------
106
+ // Uses the same private subnets the DB sits in. ARM small compute
107
+ // is plenty for a migration run; it's also the cheapest billable
108
+ // option on CodeBuild.
109
+ const subnetType = props.vpc.isolatedSubnets?.length
110
+ ? ec2.SubnetType.PRIVATE_ISOLATED
111
+ : ec2.SubnetType.PRIVATE_WITH_EGRESS;
112
+ // CodeBuild in PRIVATE_ISOLATED can't reach `npmjs.com` to install
113
+ // `@venturekit/cli`. If the DB is in isolated subnets, drop the
114
+ // runner into PRIVATE_WITH_EGRESS instead — same VPC, still private,
115
+ // but with a NAT-egress path for the npm install. The DB SG only
116
+ // accepts traffic from the runner SG, so the network boundary is
117
+ // unchanged.
118
+ const runnerSubnetType = props.vpc.privateSubnets.length
119
+ ? ec2.SubnetType.PRIVATE_WITH_EGRESS
120
+ : subnetType;
121
+ this.project = new codebuild.Project(this, 'Project', {
122
+ projectName: `${props.projectName}-${props.stage}-migrate-${props.dbId}`,
123
+ description: `Runs vk migrate --seed against ${props.projectName}-${props.dbId} on every deploy`,
124
+ vpc: props.vpc,
125
+ subnetSelection: { subnetType: runnerSubnetType },
126
+ securityGroups: [this.securityGroup],
127
+ // Serialize concurrent deploys: prevents two builds racing on the
128
+ // `__vk_migrations` tracking table. The DB-level PK on `version`
129
+ // is a second safety net if this ever fails.
130
+ concurrentBuildLimit: 1,
131
+ environment: {
132
+ buildImage: codebuild.LinuxArmBuildImage.AMAZON_LINUX_2_STANDARD_3_0,
133
+ computeType: codebuild.ComputeType.SMALL,
134
+ },
135
+ source: codebuild.Source.s3({
136
+ bucket: asset.bucket,
137
+ path: asset.s3ObjectKey,
138
+ }),
139
+ timeout: cdk.Duration.minutes(60),
140
+ logging: {
141
+ cloudWatch: {
142
+ enabled: true,
143
+ logGroup: new logs.LogGroup(this, 'LogGroup', {
144
+ logGroupName: `/venturekit/${props.projectName}/${props.stage}/migrate-${props.dbId}`,
145
+ retention: toLogRetention(props.logRetentionDays),
146
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
147
+ }),
148
+ },
149
+ },
150
+ environmentVariables: {
151
+ VK_VERSION: { value: props.vkCliVersion },
152
+ DB_SECRET_ARN: { value: props.dbSecret.secretArn },
153
+ DB_NAME_VAR: { value: props.dbName },
154
+ },
155
+ buildSpec: codebuild.BuildSpec.fromObject({
156
+ version: '0.2',
157
+ phases: {
158
+ install: {
159
+ 'runtime-versions': { nodejs: 20 },
160
+ commands: [
161
+ // Install the same CLI version the operator has locally —
162
+ // pinned via `cdk-bridge.ts`. Both packages are public on
163
+ // npm so no auth token is needed.
164
+ 'npm install -g @venturekit/cli@$VK_VERSION @venturekit/data@$VK_VERSION',
165
+ ],
166
+ },
167
+ pre_build: {
168
+ commands: [
169
+ // Resolve the DB credentials freshly on every build. This
170
+ // avoids stale env baked at synth time and naturally picks
171
+ // up rotated passwords.
172
+ 'echo "Fetching DB credentials from Secrets Manager"',
173
+ 'SECRET=$(aws secretsmanager get-secret-value --secret-id "$DB_SECRET_ARN" --query SecretString --output text)',
174
+ 'export DB_HOST=$(echo "$SECRET" | jq -r .host)',
175
+ 'export DB_PORT=$(echo "$SECRET" | jq -r .port)',
176
+ 'export DB_USER=$(echo "$SECRET" | jq -r .username)',
177
+ 'export DB_PASSWORD=$(echo "$SECRET" | jq -r .password)',
178
+ 'export DB_NAME="$DB_NAME_VAR"',
179
+ 'export DB_SSL=true',
180
+ ],
181
+ },
182
+ build: {
183
+ commands: [
184
+ // Same command operators run locally. Idempotent: already-
185
+ // applied files are skipped via `__vk_migrations` /
186
+ // `__vk_seeds` tracking tables.
187
+ 'vk migrate --seed',
188
+ ],
189
+ },
190
+ },
191
+ }),
192
+ });
193
+ // The runner needs to fetch the DB password from Secrets Manager.
194
+ // Scope to the specific secret — no `*` resource. The CDK helper
195
+ // grants `secretsmanager:GetSecretValue` + `DescribeSecret`.
196
+ props.dbSecret.grantRead(this.project);
197
+ // --- 4. Trigger Lambdas (out of VPC) -----------------------------
198
+ // Two tiny inline Lambdas back the cr.Provider:
199
+ // - onEvent: starts the build, returns the build id
200
+ // - isComplete: polls until the build reaches a terminal state
201
+ // They live in the AWS public network because they only call
202
+ // control-plane APIs (codebuild:StartBuild, codebuild:BatchGetBuilds)
203
+ // — putting them in the VPC would just add cold-start latency for
204
+ // no security benefit.
205
+ const onEventHandler = new lambda.Function(this, 'OnEvent', {
206
+ runtime: lambda.Runtime.NODEJS_20_X,
207
+ handler: 'index.handler',
208
+ timeout: cdk.Duration.minutes(2),
209
+ code: lambda.Code.fromInline(ON_EVENT_HANDLER_SRC),
210
+ logGroup: new logs.LogGroup(this, 'OnEventLogs', {
211
+ retention: toLogRetention(props.logRetentionDays),
212
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
213
+ }),
214
+ });
215
+ const isCompleteHandler = new lambda.Function(this, 'IsComplete', {
216
+ runtime: lambda.Runtime.NODEJS_20_X,
217
+ handler: 'index.handler',
218
+ timeout: cdk.Duration.minutes(2),
219
+ code: lambda.Code.fromInline(IS_COMPLETE_HANDLER_SRC),
220
+ logGroup: new logs.LogGroup(this, 'IsCompleteLogs', {
221
+ retention: toLogRetention(props.logRetentionDays),
222
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
223
+ }),
224
+ });
225
+ // Both handlers need to interact with this specific CodeBuild
226
+ // project. Scoped to the project's ARN so a compromise of either
227
+ // Lambda can't kick off arbitrary builds.
228
+ onEventHandler.addToRolePolicy(new iam.PolicyStatement({
229
+ actions: ['codebuild:StartBuild'],
230
+ resources: [this.project.projectArn],
231
+ }));
232
+ isCompleteHandler.addToRolePolicy(new iam.PolicyStatement({
233
+ actions: ['codebuild:BatchGetBuilds'],
234
+ // BatchGetBuilds requires `*` for resource — it accepts build
235
+ // IDs as input, not ARNs. AWS-side the API is read-only and
236
+ // scoped by the build ID we pass in, so this is acceptable.
237
+ resources: ['*'],
238
+ }));
239
+ // --- 5. Provider + custom resource -------------------------------
240
+ const provider = new cr.Provider(this, 'Provider', {
241
+ onEventHandler,
242
+ isCompleteHandler,
243
+ // Build typically completes in 30s-3min. 15s polling keeps us
244
+ // responsive without spamming the API.
245
+ queryInterval: cdk.Duration.seconds(15),
246
+ // Generous; matches the CodeBuild project timeout above.
247
+ totalTimeout: cdk.Duration.minutes(60),
248
+ logGroup: new logs.LogGroup(this, 'ProviderLogs', {
249
+ retention: toLogRetention(props.logRetentionDays),
250
+ removalPolicy: cdk.RemovalPolicy.DESTROY,
251
+ }),
252
+ });
253
+ this.trigger = new cdk.CustomResource(this, 'Trigger', {
254
+ serviceToken: provider.serviceToken,
255
+ properties: {
256
+ ProjectName: this.project.projectName,
257
+ // AssetHash flips when any migration file changes, forcing the
258
+ // custom resource to re-fire. We additionally include a
259
+ // synth-time timestamp so the resource fires on every `vk
260
+ // deploy` even when migrations didn't change — the underlying
261
+ // runner is idempotent (already-applied files skip in ms), and
262
+ // this catches the case where someone hand-applied a migration
263
+ // out of band that we'd otherwise miss.
264
+ AssetHash: asset.assetHash,
265
+ DeployTimestamp: new Date().toISOString(),
266
+ },
267
+ });
268
+ // Make the trigger wait for the DB to exist before firing.
269
+ // Otherwise CFN can race and fire the build before RDS finishes
270
+ // provisioning. The instance dependency is implicit through the SG
271
+ // ingress, but adding an explicit dep is cheap insurance.
272
+ this.trigger.node.addDependency(props.dbInstance);
273
+ }
274
+ }
275
+ // ─── Helpers ──────────────────────────────────────────────────────────
276
+ function toLogRetention(days) {
277
+ if (days <= 1)
278
+ return logs.RetentionDays.ONE_DAY;
279
+ if (days <= 3)
280
+ return logs.RetentionDays.THREE_DAYS;
281
+ if (days <= 5)
282
+ return logs.RetentionDays.FIVE_DAYS;
283
+ if (days <= 7)
284
+ return logs.RetentionDays.ONE_WEEK;
285
+ if (days <= 14)
286
+ return logs.RetentionDays.TWO_WEEKS;
287
+ if (days <= 30)
288
+ return logs.RetentionDays.ONE_MONTH;
289
+ if (days <= 60)
290
+ return logs.RetentionDays.TWO_MONTHS;
291
+ if (days <= 90)
292
+ return logs.RetentionDays.THREE_MONTHS;
293
+ if (days <= 120)
294
+ return logs.RetentionDays.FOUR_MONTHS;
295
+ if (days <= 150)
296
+ return logs.RetentionDays.FIVE_MONTHS;
297
+ if (days <= 180)
298
+ return logs.RetentionDays.SIX_MONTHS;
299
+ if (days <= 365)
300
+ return logs.RetentionDays.ONE_YEAR;
301
+ return logs.RetentionDays.INFINITE;
302
+ }
303
+ // ─── Inline Lambda source ─────────────────────────────────────────────
304
+ //
305
+ // These are CommonJS — `lambda.Code.fromInline` runs straight in Node 20
306
+ // without bundling. Kept tiny on purpose; if either grows beyond ~50
307
+ // lines we should move it to a dedicated asset. Both follow CDK's
308
+ // Provider Framework contract:
309
+ // https://docs.aws.amazon.com/cdk/v2/guide/custom-resource-providers.html
310
+ const ON_EVENT_HANDLER_SRC = `
311
+ const { CodeBuildClient, StartBuildCommand } = require('@aws-sdk/client-codebuild');
312
+
313
+ exports.handler = async (event) => {
314
+ // Custom resources fire on Create / Update / Delete. We only want to
315
+ // run migrations on Create + Update — Delete must NEVER revert
316
+ // migrations (data loss risk). isComplete handler is similarly gated.
317
+ if (event.RequestType === 'Delete') {
318
+ return { PhysicalResourceId: event.PhysicalResourceId || 'migration-runner-noop' };
319
+ }
320
+ const cb = new CodeBuildClient({});
321
+ const out = await cb.send(new StartBuildCommand({
322
+ projectName: event.ResourceProperties.ProjectName,
323
+ }));
324
+ const buildId = out.build && out.build.id;
325
+ if (!buildId) {
326
+ throw new Error('codebuild:StartBuild returned no build id');
327
+ }
328
+ console.log('Started build', buildId);
329
+ return {
330
+ // Stable PhysicalResourceId across updates so CFN treats this as
331
+ // a single resource (not a replace-on-every-deploy).
332
+ PhysicalResourceId: 'migration-runner-' + event.ResourceProperties.ProjectName,
333
+ Data: { BuildId: buildId },
334
+ };
335
+ };
336
+ `;
337
+ const IS_COMPLETE_HANDLER_SRC = `
338
+ const { CodeBuildClient, BatchGetBuildsCommand } = require('@aws-sdk/client-codebuild');
339
+
340
+ exports.handler = async (event) => {
341
+ if (event.RequestType === 'Delete') {
342
+ return { IsComplete: true };
343
+ }
344
+ const buildId = event.Data && event.Data.BuildId;
345
+ if (!buildId) {
346
+ // onEvent didn't return one — shouldn't happen, but fail loud
347
+ // rather than poll forever.
348
+ throw new Error('isComplete called without BuildId in event.Data');
349
+ }
350
+ const cb = new CodeBuildClient({});
351
+ const out = await cb.send(new BatchGetBuildsCommand({ ids: [buildId] }));
352
+ const build = (out.builds || [])[0];
353
+ if (!build) throw new Error('Build ' + buildId + ' not found');
354
+
355
+ const status = build.buildStatus;
356
+ if (status === 'IN_PROGRESS') return { IsComplete: false };
357
+ if (status === 'SUCCEEDED') return { IsComplete: true };
358
+
359
+ // Terminal failure — surface the CW log stream URL so the operator
360
+ // can jump straight to the failing migration's output.
361
+ const logs = build.logs || {};
362
+ const link = logs.deepLink || logs.groupName + '/' + logs.streamName;
363
+ throw new Error(
364
+ 'Migration build ' + buildId + ' ended with status ' + status +
365
+ '. Logs: ' + link
366
+ );
367
+ };
368
+ `;
369
+ //# sourceMappingURL=migration-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-runner.js","sourceRoot":"","sources":["../../src/cdk/migration-runner.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,14 @@ export interface VentureStackProps extends cdk.StackProps {
23
23
  projectDir: string;
24
24
  /** Preset name — when 'free', uses only free-tier AWS resources */
25
25
  preset?: string;
26
+ /**
27
+ * Pinned `@venturekit/cli` + `@venturekit/data` version installed by the
28
+ * in-VPC CodeBuild migration runner. Resolved by `cdk-bridge.ts` from the
29
+ * consumer's `node_modules/@venturekit/cli/package.json` so build-time
30
+ * behavior matches what the operator tested locally. Falls back to
31
+ * `'latest'` when unknown (warned at synth time).
32
+ */
33
+ vkCliVersion?: string;
26
34
  /**
27
35
  * Fully resolved environment configuration from presets + user overrides.
28
36
  * When provided, all resource sizing is driven by this config.
@@ -1 +1 @@
1
- {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../src/cdk/stack.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAuBnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EACV,aAAa,EAKb,SAAS,EAMV,MAAM,kBAAkB,CAAC;AAK1B,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;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,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;gBAE5C,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB;IA4TlE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAiEtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsErB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAoFlB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA4CnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,gBAAgB;IAgExB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,YAAY;IA+EpB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAgD3B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;;;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;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IA8EhC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAgF3B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;CAyF1B"}
1
+ {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../src/cdk/stack.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AAuBnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,KAAK,EACV,aAAa,EAKb,SAAS,EAMV,MAAM,kBAAkB,CAAC;AAK1B,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;CACvB;AAED,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;gBAE5C,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB;IA4TlE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc;IAoGtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsErB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAoFlB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA4CnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAyDnB,OAAO,CAAC,gBAAgB;IAgExB,OAAO,CAAC,YAAY;IAiCpB,OAAO,CAAC,YAAY;IA+EpB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAgD3B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;;;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;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IA8EhC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAgF3B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;CAyF1B"}
package/dist/cdk/stack.js CHANGED
@@ -28,6 +28,7 @@ import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
28
28
  import * as acm from 'aws-cdk-lib/aws-certificatemanager';
29
29
  import * as route53 from 'aws-cdk-lib/aws-route53';
30
30
  import * as route53Targets from 'aws-cdk-lib/aws-route53-targets';
31
+ import { MigrationRunner, hasMigrations } from './migration-runner.js';
31
32
  import { resolveEnvConfig, DATA_SAFETY_CONFIG } from '@venturekit/core';
32
33
  import * as path from 'path';
33
34
  import * as fs from 'fs';
@@ -154,7 +155,7 @@ export class VentureStack extends cdk.Stack {
154
155
  this.createDynamoDBTable(db, projectName, stage);
155
156
  }
156
157
  else {
157
- this.createDatabase(db, projectName, stage, vpc);
158
+ this.createDatabase(db, projectName, stage, vpc, projectDir, props.vkCliVersion ?? 'latest');
158
159
  }
159
160
  }
160
161
  }
@@ -318,7 +319,7 @@ export class VentureStack extends cdk.Stack {
318
319
  * Well-Architected: Performance — instance type driven by intent.size
319
320
  * Well-Architected: Operational Excellence — auto minor version upgrades
320
321
  */
321
- createDatabase(intent, projectName, stage, vpc) {
322
+ createDatabase(intent, projectName, stage, vpc, projectDir, vkCliVersion) {
322
323
  // Stable logical ID: 'db-{intent.id}' — never changes when preset changes
323
324
  const logicalId = `db-${intent.id}`;
324
325
  const instanceType = this.sizeToInstanceType(intent.size || 'small');
@@ -369,6 +370,37 @@ export class VentureStack extends cdk.Stack {
369
370
  value: instance.secret?.secretArn || '',
370
371
  description: `Database secret ARN for ${intent.id}`,
371
372
  });
373
+ // --- Auto-run migrations on every deploy ---
374
+ // The in-VPC CodeBuild runner closes the long-standing gap where
375
+ // public CI runners can't reach a private RDS. We wire it only for
376
+ // Postgres (the only engine `@venturekit/data` has a runner for) and
377
+ // only when the consumer has at least one `.sql` file in
378
+ // `db/migrations/`. Failures roll back the stack via the custom
379
+ // resource, making migrations atomic with `vk deploy`.
380
+ if (intent.type === 'postgres' && instance.secret) {
381
+ const dbDir = path.join(projectDir, 'db');
382
+ if (hasMigrations(dbDir)) {
383
+ new MigrationRunner(this, `migration-runner-${intent.id}`, {
384
+ projectName,
385
+ stage,
386
+ dbId: intent.id,
387
+ vpc,
388
+ dbInstance: instance,
389
+ dbSecret: instance.secret,
390
+ dbName: intent.name || intent.id,
391
+ dbDir,
392
+ vkCliVersion,
393
+ logRetentionDays: this.envConfig.observability.logs.retentionDays,
394
+ });
395
+ }
396
+ }
397
+ else if (intent.type === 'mysql') {
398
+ // MySQL projects: no auto-migration runner yet because
399
+ // `@venturekit/data` only ships a Postgres SQL runner. Operators
400
+ // must still run migrations manually via a tunnel.
401
+ console.warn(`[venturekit] MySQL auto-migrations are not yet supported (db: ${intent.id}). ` +
402
+ `Run \`vk migrate\` manually after deploy until @venturekit/data adds a MySQL runner.`);
403
+ }
372
404
  }
373
405
  /**
374
406
  * Well-Architected: Security — block public access by default, SSE encryption
@@ -1 +1 @@
1
- {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../src/cdk/stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../src/cdk/stack.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.20260427225816",
3
+ "version": "0.0.0-dev.20260429113801",
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.20260427225816",
40
+ "@venturekit/core": "0.0.0-dev.20260429113801",
41
41
  "aws-cdk-lib": "^2.251.0",
42
42
  "constructs": "^10.6.0"
43
43
  },