@wtfalch/foundry 0.76.1 → 0.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app-canary-worker.d.ts +35 -0
- package/dist/app-canary-worker.js +56 -0
- package/dist/audit/connector.d.ts +6 -2
- package/dist/audit/connector.js +3 -2
- package/dist/audit/evidence.d.ts +4 -0
- package/dist/audit/evidence.js +14 -2
- package/dist/audit/host-store.d.ts +58 -0
- package/dist/audit/host-store.js +147 -0
- package/dist/audit/host.d.ts +53 -0
- package/dist/audit/host.js +294 -0
- package/dist/audit/index.d.ts +2 -0
- package/dist/audit/index.js +2 -0
- package/dist/audit/registry.d.ts +14 -0
- package/dist/audit/sealer-role.d.ts +12 -0
- package/dist/audit/sealer-role.js +26 -2
- package/dist/audit/tick.d.ts +10 -2
- package/dist/audit/tick.js +15 -2
- package/dist/catalogue/copy-en.js +5 -0
- package/dist/catalogue/integrations.js +5 -0
- package/dist/entry-rules.d.ts +35 -0
- package/dist/entry-rules.js +35 -0
- package/dist/hosted-label.js +2 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.js +6 -1
- package/dist/migrations/0072_audit_host.sql +46 -0
- package/dist/migrations/0074_platform_app_canary.sql +11 -0
- package/dist/modules/ai.js +15 -1
- package/dist/modules/assistants.js +3 -0
- package/dist/modules/email.d.ts +6 -1
- package/dist/modules/email.js +88 -5
- package/dist/modules/files.js +79 -2
- package/dist/modules/index.js +7 -0
- package/dist/modules/jobs.d.ts +5 -1
- package/dist/modules/jobs.js +74 -4
- package/dist/modules/reporting.d.ts +9 -0
- package/dist/modules/reporting.js +29 -0
- package/dist/modules/sign-in.js +20 -2
- package/dist/modules/types.d.ts +2 -0
- package/dist/modules/workspaces.js +3 -0
- package/dist/org.d.ts +114 -13
- package/dist/org.js +233 -20
- package/dist/plan/ai-boule-key-apply.d.ts +65 -0
- package/dist/plan/ai-boule-key-apply.js +169 -0
- package/dist/plan/ai-boule-key.d.ts +89 -0
- package/dist/plan/ai-boule-key.js +195 -0
- package/dist/plan/analytics.d.ts +8 -1
- package/dist/plan/analytics.js +8 -1
- package/dist/plan/app-canary-apply.d.ts +49 -0
- package/dist/plan/app-canary-apply.js +232 -0
- package/dist/plan/app-canary.d.ts +44 -0
- package/dist/plan/app-canary.js +110 -0
- package/dist/plan/blue-green-apply.d.ts +6 -2
- package/dist/plan/blue-green-apply.js +14 -3
- package/dist/plan/broker-entries.js +20 -5
- package/dist/plan/company-backups.js +2 -0
- package/dist/plan/diff.d.ts +22 -0
- package/dist/plan/diff.js +231 -18
- package/dist/plan/entry-files-key.d.ts +39 -3
- package/dist/plan/entry-files-key.js +103 -6
- package/dist/plan/entry-jobs-boule-key-apply.d.ts +65 -0
- package/dist/plan/entry-jobs-boule-key-apply.js +192 -0
- package/dist/plan/entry-jobs-boule-key.d.ts +59 -0
- package/dist/plan/entry-jobs-boule-key.js +141 -0
- package/dist/plan/entry-jobs.d.ts +2 -0
- package/dist/plan/entry-reporting-key.d.ts +36 -0
- package/dist/plan/entry-reporting-key.js +136 -0
- package/dist/plan/executor.d.ts +108 -1
- package/dist/plan/executor.js +669 -23
- package/dist/plan/files-boule-key-apply.d.ts +73 -0
- package/dist/plan/files-boule-key-apply.js +223 -0
- package/dist/plan/files-boule-key.d.ts +92 -0
- package/dist/plan/files-boule-key.js +175 -0
- package/dist/plan/hostnames.js +4 -0
- package/dist/plan/index.d.ts +4 -0
- package/dist/plan/index.js +2 -0
- package/dist/plan/jobs-scheduler-http.d.ts +13 -0
- package/dist/plan/jobs-scheduler-http.js +39 -0
- package/dist/plan/live.d.ts +1 -1
- package/dist/plan/locked-hostnames.d.ts +1 -1
- package/dist/plan/locked-hostnames.js +4 -1
- package/dist/plan/login-host.js +2 -2
- package/dist/plan/org-names.js +3 -0
- package/dist/plan/own-diff.js +3 -2
- package/dist/plan/own-jobs-route.d.ts +5 -2
- package/dist/plan/own-jobs-route.js +6 -2
- package/dist/plan/own-limits.d.ts +6 -0
- package/dist/plan/own-limits.js +1 -0
- package/dist/plan/plan-apply.d.ts +24 -0
- package/dist/plan/plan-apply.js +39 -4
- package/dist/plan/platform-diff.d.ts +2 -0
- package/dist/plan/platform-diff.js +15 -1
- package/dist/plan/platform-providers.d.ts +9 -0
- package/dist/plan/platform-providers.js +21 -0
- package/dist/plan/providers-readers.js +25 -1
- package/dist/plan/registered-app-env.d.ts +31 -0
- package/dist/plan/registered-app-env.js +63 -0
- package/dist/plan/registered-app.d.ts +121 -0
- package/dist/plan/registered-app.js +262 -0
- package/dist/plan/release-host.js +2 -1
- package/dist/plan/reporting-boule.d.ts +18 -0
- package/dist/plan/reporting-boule.js +44 -0
- package/dist/plan/reporting.d.ts +90 -0
- package/dist/plan/reporting.js +135 -0
- package/dist/plan/stage-env.js +1 -0
- package/dist/plan/stage-isolation.d.ts +3 -1
- package/dist/plan/stage-isolation.js +20 -2
- package/dist/plan/stage-services.d.ts +3 -1
- package/dist/plan/stage-services.js +8 -1
- package/dist/plan/stage-sink.d.ts +2 -2
- package/dist/plan/stage-sink.js +2 -2
- package/dist/plan/workspace-client.d.ts +1 -1
- package/dist/plan/workspace-client.js +2 -1
- package/dist/plan/workspace-sign-in.d.ts +1 -1
- package/dist/plan/workspace-sign-in.js +39 -7
- package/dist/platform.d.ts +25 -0
- package/dist/platform.js +20 -0
- package/dist/service-labels.d.ts +8 -0
- package/dist/service-labels.js +8 -0
- package/dist/slug.d.ts +1 -1
- package/dist/slug.js +5 -2
- package/dist/store/postgres.js +13 -0
- package/dist/store/schema.d.ts +485 -2
- package/dist/store/schema.js +38 -1
- package/dist/worker-app-config.js +2 -2
- package/package.json +1 -1
package/dist/store/schema.d.ts
CHANGED
|
@@ -1486,7 +1486,7 @@ export declare const foundryAuditEvents: import("drizzle-orm/pg-core").PgTableWi
|
|
|
1486
1486
|
tableName: "foundry_audit_events";
|
|
1487
1487
|
dataType: "string";
|
|
1488
1488
|
columnType: "PgText";
|
|
1489
|
-
data: "apply" | "
|
|
1489
|
+
data: "apply" | "destroy" | "plan";
|
|
1490
1490
|
driverParam: string;
|
|
1491
1491
|
notNull: true;
|
|
1492
1492
|
hasDefault: false;
|
|
@@ -1498,7 +1498,7 @@ export declare const foundryAuditEvents: import("drizzle-orm/pg-core").PgTableWi
|
|
|
1498
1498
|
identity: undefined;
|
|
1499
1499
|
generated: undefined;
|
|
1500
1500
|
}, {}, {
|
|
1501
|
-
$type: "apply" | "
|
|
1501
|
+
$type: "apply" | "destroy" | "plan";
|
|
1502
1502
|
}>;
|
|
1503
1503
|
actorId: import("drizzle-orm/pg-core").PgColumn<{
|
|
1504
1504
|
name: "actor_id";
|
|
@@ -2500,6 +2500,57 @@ export declare const foundryDeclaredPlatform: import("drizzle-orm/pg-core").PgTa
|
|
|
2500
2500
|
identity: undefined;
|
|
2501
2501
|
generated: undefined;
|
|
2502
2502
|
}, {}, {}>;
|
|
2503
|
+
appCanaryEnabled: import("drizzle-orm/pg-core").PgColumn<{
|
|
2504
|
+
name: "app_canary_enabled";
|
|
2505
|
+
tableName: "foundry_declared_platform";
|
|
2506
|
+
dataType: "boolean";
|
|
2507
|
+
columnType: "PgBoolean";
|
|
2508
|
+
data: boolean;
|
|
2509
|
+
driverParam: boolean;
|
|
2510
|
+
notNull: true;
|
|
2511
|
+
hasDefault: true;
|
|
2512
|
+
isPrimaryKey: false;
|
|
2513
|
+
isAutoincrement: false;
|
|
2514
|
+
hasRuntimeDefault: false;
|
|
2515
|
+
enumValues: undefined;
|
|
2516
|
+
baseColumn: never;
|
|
2517
|
+
identity: undefined;
|
|
2518
|
+
generated: undefined;
|
|
2519
|
+
}, {}, {}>;
|
|
2520
|
+
appCanaryTag: import("drizzle-orm/pg-core").PgColumn<{
|
|
2521
|
+
name: "app_canary_tag";
|
|
2522
|
+
tableName: "foundry_declared_platform";
|
|
2523
|
+
dataType: "string";
|
|
2524
|
+
columnType: "PgText";
|
|
2525
|
+
data: string;
|
|
2526
|
+
driverParam: string;
|
|
2527
|
+
notNull: true;
|
|
2528
|
+
hasDefault: true;
|
|
2529
|
+
isPrimaryKey: false;
|
|
2530
|
+
isAutoincrement: false;
|
|
2531
|
+
hasRuntimeDefault: false;
|
|
2532
|
+
enumValues: [string, ...string[]];
|
|
2533
|
+
baseColumn: never;
|
|
2534
|
+
identity: undefined;
|
|
2535
|
+
generated: undefined;
|
|
2536
|
+
}, {}, {}>;
|
|
2537
|
+
appCanarySha256: import("drizzle-orm/pg-core").PgColumn<{
|
|
2538
|
+
name: "app_canary_sha256";
|
|
2539
|
+
tableName: "foundry_declared_platform";
|
|
2540
|
+
dataType: "string";
|
|
2541
|
+
columnType: "PgText";
|
|
2542
|
+
data: string;
|
|
2543
|
+
driverParam: string;
|
|
2544
|
+
notNull: true;
|
|
2545
|
+
hasDefault: true;
|
|
2546
|
+
isPrimaryKey: false;
|
|
2547
|
+
isAutoincrement: false;
|
|
2548
|
+
hasRuntimeDefault: false;
|
|
2549
|
+
enumValues: [string, ...string[]];
|
|
2550
|
+
baseColumn: never;
|
|
2551
|
+
identity: undefined;
|
|
2552
|
+
generated: undefined;
|
|
2553
|
+
}, {}, {}>;
|
|
2503
2554
|
heartbeatsProvider: import("drizzle-orm/pg-core").PgColumn<{
|
|
2504
2555
|
name: "heartbeats_provider";
|
|
2505
2556
|
tableName: "foundry_declared_platform";
|
|
@@ -3066,3 +3117,435 @@ export type RequestedChangeRow = typeof foundryRequestedChanges.$inferSelect;
|
|
|
3066
3117
|
export type NewRequestedChangeRow = typeof foundryRequestedChanges.$inferInsert;
|
|
3067
3118
|
export type AppliedVersionRow = typeof foundryAppliedVersions.$inferSelect;
|
|
3068
3119
|
export type NewAppliedVersionRow = typeof foundryAppliedVersions.$inferInsert;
|
|
3120
|
+
/** Mirrors `migrations/0072_audit_host.sql`: a company's audit host key, as its sha256 only. */
|
|
3121
|
+
export declare const foundryAuditHostKeys: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
3122
|
+
name: "foundry_audit_host_keys";
|
|
3123
|
+
schema: undefined;
|
|
3124
|
+
columns: {
|
|
3125
|
+
orgId: import("drizzle-orm/pg-core").PgColumn<{
|
|
3126
|
+
name: "org_id";
|
|
3127
|
+
tableName: "foundry_audit_host_keys";
|
|
3128
|
+
dataType: "string";
|
|
3129
|
+
columnType: "PgText";
|
|
3130
|
+
data: string;
|
|
3131
|
+
driverParam: string;
|
|
3132
|
+
notNull: true;
|
|
3133
|
+
hasDefault: false;
|
|
3134
|
+
isPrimaryKey: true;
|
|
3135
|
+
isAutoincrement: false;
|
|
3136
|
+
hasRuntimeDefault: false;
|
|
3137
|
+
enumValues: [string, ...string[]];
|
|
3138
|
+
baseColumn: never;
|
|
3139
|
+
identity: undefined;
|
|
3140
|
+
generated: undefined;
|
|
3141
|
+
}, {}, {}>;
|
|
3142
|
+
keySha256: import("drizzle-orm/pg-core").PgColumn<{
|
|
3143
|
+
name: "key_sha256";
|
|
3144
|
+
tableName: "foundry_audit_host_keys";
|
|
3145
|
+
dataType: "string";
|
|
3146
|
+
columnType: "PgText";
|
|
3147
|
+
data: string;
|
|
3148
|
+
driverParam: string;
|
|
3149
|
+
notNull: true;
|
|
3150
|
+
hasDefault: false;
|
|
3151
|
+
isPrimaryKey: false;
|
|
3152
|
+
isAutoincrement: false;
|
|
3153
|
+
hasRuntimeDefault: false;
|
|
3154
|
+
enumValues: [string, ...string[]];
|
|
3155
|
+
baseColumn: never;
|
|
3156
|
+
identity: undefined;
|
|
3157
|
+
generated: undefined;
|
|
3158
|
+
}, {}, {}>;
|
|
3159
|
+
createdAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
3160
|
+
name: "created_at";
|
|
3161
|
+
tableName: "foundry_audit_host_keys";
|
|
3162
|
+
dataType: "date";
|
|
3163
|
+
columnType: "PgTimestamp";
|
|
3164
|
+
data: Date;
|
|
3165
|
+
driverParam: string;
|
|
3166
|
+
notNull: true;
|
|
3167
|
+
hasDefault: true;
|
|
3168
|
+
isPrimaryKey: false;
|
|
3169
|
+
isAutoincrement: false;
|
|
3170
|
+
hasRuntimeDefault: false;
|
|
3171
|
+
enumValues: undefined;
|
|
3172
|
+
baseColumn: never;
|
|
3173
|
+
identity: undefined;
|
|
3174
|
+
generated: undefined;
|
|
3175
|
+
}, {}, {}>;
|
|
3176
|
+
};
|
|
3177
|
+
dialect: "pg";
|
|
3178
|
+
}>;
|
|
3179
|
+
/** Mirrors `migrations/0072_audit_host.sql`: a ledger a company's Boule registered; the password is held, not here. */
|
|
3180
|
+
export declare const foundryAuditLedgerRegistrations: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
3181
|
+
name: "foundry_audit_ledger_registrations";
|
|
3182
|
+
schema: undefined;
|
|
3183
|
+
columns: {
|
|
3184
|
+
orgId: import("drizzle-orm/pg-core").PgColumn<{
|
|
3185
|
+
name: "org_id";
|
|
3186
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3187
|
+
dataType: "string";
|
|
3188
|
+
columnType: "PgText";
|
|
3189
|
+
data: string;
|
|
3190
|
+
driverParam: string;
|
|
3191
|
+
notNull: true;
|
|
3192
|
+
hasDefault: false;
|
|
3193
|
+
isPrimaryKey: false;
|
|
3194
|
+
isAutoincrement: false;
|
|
3195
|
+
hasRuntimeDefault: false;
|
|
3196
|
+
enumValues: [string, ...string[]];
|
|
3197
|
+
baseColumn: never;
|
|
3198
|
+
identity: undefined;
|
|
3199
|
+
generated: undefined;
|
|
3200
|
+
}, {}, {}>;
|
|
3201
|
+
entryKey: import("drizzle-orm/pg-core").PgColumn<{
|
|
3202
|
+
name: "entry_key";
|
|
3203
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3204
|
+
dataType: "string";
|
|
3205
|
+
columnType: "PgText";
|
|
3206
|
+
data: string;
|
|
3207
|
+
driverParam: string;
|
|
3208
|
+
notNull: true;
|
|
3209
|
+
hasDefault: false;
|
|
3210
|
+
isPrimaryKey: false;
|
|
3211
|
+
isAutoincrement: false;
|
|
3212
|
+
hasRuntimeDefault: false;
|
|
3213
|
+
enumValues: [string, ...string[]];
|
|
3214
|
+
baseColumn: never;
|
|
3215
|
+
identity: undefined;
|
|
3216
|
+
generated: undefined;
|
|
3217
|
+
}, {}, {}>;
|
|
3218
|
+
copy: import("drizzle-orm/pg-core").PgColumn<{
|
|
3219
|
+
name: "copy";
|
|
3220
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3221
|
+
dataType: "string";
|
|
3222
|
+
columnType: "PgText";
|
|
3223
|
+
data: string;
|
|
3224
|
+
driverParam: string;
|
|
3225
|
+
notNull: true;
|
|
3226
|
+
hasDefault: false;
|
|
3227
|
+
isPrimaryKey: false;
|
|
3228
|
+
isAutoincrement: false;
|
|
3229
|
+
hasRuntimeDefault: false;
|
|
3230
|
+
enumValues: [string, ...string[]];
|
|
3231
|
+
baseColumn: never;
|
|
3232
|
+
identity: undefined;
|
|
3233
|
+
generated: undefined;
|
|
3234
|
+
}, {}, {}>;
|
|
3235
|
+
dbHost: import("drizzle-orm/pg-core").PgColumn<{
|
|
3236
|
+
name: "db_host";
|
|
3237
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3238
|
+
dataType: "string";
|
|
3239
|
+
columnType: "PgText";
|
|
3240
|
+
data: string;
|
|
3241
|
+
driverParam: string;
|
|
3242
|
+
notNull: true;
|
|
3243
|
+
hasDefault: false;
|
|
3244
|
+
isPrimaryKey: false;
|
|
3245
|
+
isAutoincrement: false;
|
|
3246
|
+
hasRuntimeDefault: false;
|
|
3247
|
+
enumValues: [string, ...string[]];
|
|
3248
|
+
baseColumn: never;
|
|
3249
|
+
identity: undefined;
|
|
3250
|
+
generated: undefined;
|
|
3251
|
+
}, {}, {}>;
|
|
3252
|
+
dbPort: import("drizzle-orm/pg-core").PgColumn<{
|
|
3253
|
+
name: "db_port";
|
|
3254
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3255
|
+
dataType: "number";
|
|
3256
|
+
columnType: "PgInteger";
|
|
3257
|
+
data: number;
|
|
3258
|
+
driverParam: string | number;
|
|
3259
|
+
notNull: true;
|
|
3260
|
+
hasDefault: false;
|
|
3261
|
+
isPrimaryKey: false;
|
|
3262
|
+
isAutoincrement: false;
|
|
3263
|
+
hasRuntimeDefault: false;
|
|
3264
|
+
enumValues: undefined;
|
|
3265
|
+
baseColumn: never;
|
|
3266
|
+
identity: undefined;
|
|
3267
|
+
generated: undefined;
|
|
3268
|
+
}, {}, {}>;
|
|
3269
|
+
dbName: import("drizzle-orm/pg-core").PgColumn<{
|
|
3270
|
+
name: "db_name";
|
|
3271
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3272
|
+
dataType: "string";
|
|
3273
|
+
columnType: "PgText";
|
|
3274
|
+
data: string;
|
|
3275
|
+
driverParam: string;
|
|
3276
|
+
notNull: true;
|
|
3277
|
+
hasDefault: false;
|
|
3278
|
+
isPrimaryKey: false;
|
|
3279
|
+
isAutoincrement: false;
|
|
3280
|
+
hasRuntimeDefault: false;
|
|
3281
|
+
enumValues: [string, ...string[]];
|
|
3282
|
+
baseColumn: never;
|
|
3283
|
+
identity: undefined;
|
|
3284
|
+
generated: undefined;
|
|
3285
|
+
}, {}, {}>;
|
|
3286
|
+
dbUser: import("drizzle-orm/pg-core").PgColumn<{
|
|
3287
|
+
name: "db_user";
|
|
3288
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3289
|
+
dataType: "string";
|
|
3290
|
+
columnType: "PgText";
|
|
3291
|
+
data: string;
|
|
3292
|
+
driverParam: string;
|
|
3293
|
+
notNull: true;
|
|
3294
|
+
hasDefault: false;
|
|
3295
|
+
isPrimaryKey: false;
|
|
3296
|
+
isAutoincrement: false;
|
|
3297
|
+
hasRuntimeDefault: false;
|
|
3298
|
+
enumValues: [string, ...string[]];
|
|
3299
|
+
baseColumn: never;
|
|
3300
|
+
identity: undefined;
|
|
3301
|
+
generated: undefined;
|
|
3302
|
+
}, {}, {}>;
|
|
3303
|
+
sslmode: import("drizzle-orm/pg-core").PgColumn<{
|
|
3304
|
+
name: "sslmode";
|
|
3305
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3306
|
+
dataType: "string";
|
|
3307
|
+
columnType: "PgText";
|
|
3308
|
+
data: string;
|
|
3309
|
+
driverParam: string;
|
|
3310
|
+
notNull: false;
|
|
3311
|
+
hasDefault: false;
|
|
3312
|
+
isPrimaryKey: false;
|
|
3313
|
+
isAutoincrement: false;
|
|
3314
|
+
hasRuntimeDefault: false;
|
|
3315
|
+
enumValues: [string, ...string[]];
|
|
3316
|
+
baseColumn: never;
|
|
3317
|
+
identity: undefined;
|
|
3318
|
+
generated: undefined;
|
|
3319
|
+
}, {}, {}>;
|
|
3320
|
+
passwordRef: import("drizzle-orm/pg-core").PgColumn<{
|
|
3321
|
+
name: "password_ref";
|
|
3322
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3323
|
+
dataType: "string";
|
|
3324
|
+
columnType: "PgText";
|
|
3325
|
+
data: string;
|
|
3326
|
+
driverParam: string;
|
|
3327
|
+
notNull: true;
|
|
3328
|
+
hasDefault: false;
|
|
3329
|
+
isPrimaryKey: false;
|
|
3330
|
+
isAutoincrement: false;
|
|
3331
|
+
hasRuntimeDefault: false;
|
|
3332
|
+
enumValues: [string, ...string[]];
|
|
3333
|
+
baseColumn: never;
|
|
3334
|
+
identity: undefined;
|
|
3335
|
+
generated: undefined;
|
|
3336
|
+
}, {}, {}>;
|
|
3337
|
+
createdAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
3338
|
+
name: "created_at";
|
|
3339
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3340
|
+
dataType: "date";
|
|
3341
|
+
columnType: "PgTimestamp";
|
|
3342
|
+
data: Date;
|
|
3343
|
+
driverParam: string;
|
|
3344
|
+
notNull: true;
|
|
3345
|
+
hasDefault: true;
|
|
3346
|
+
isPrimaryKey: false;
|
|
3347
|
+
isAutoincrement: false;
|
|
3348
|
+
hasRuntimeDefault: false;
|
|
3349
|
+
enumValues: undefined;
|
|
3350
|
+
baseColumn: never;
|
|
3351
|
+
identity: undefined;
|
|
3352
|
+
generated: undefined;
|
|
3353
|
+
}, {}, {}>;
|
|
3354
|
+
updatedAt: import("drizzle-orm/pg-core").PgColumn<{
|
|
3355
|
+
name: "updated_at";
|
|
3356
|
+
tableName: "foundry_audit_ledger_registrations";
|
|
3357
|
+
dataType: "date";
|
|
3358
|
+
columnType: "PgTimestamp";
|
|
3359
|
+
data: Date;
|
|
3360
|
+
driverParam: string;
|
|
3361
|
+
notNull: true;
|
|
3362
|
+
hasDefault: true;
|
|
3363
|
+
isPrimaryKey: false;
|
|
3364
|
+
isAutoincrement: false;
|
|
3365
|
+
hasRuntimeDefault: false;
|
|
3366
|
+
enumValues: undefined;
|
|
3367
|
+
baseColumn: never;
|
|
3368
|
+
identity: undefined;
|
|
3369
|
+
generated: undefined;
|
|
3370
|
+
}, {}, {}>;
|
|
3371
|
+
};
|
|
3372
|
+
dialect: "pg";
|
|
3373
|
+
}>;
|
|
3374
|
+
/** Mirrors `migrations/0072_audit_host.sql`: one seal tick's result for one ledger, kept for 12 hours. */
|
|
3375
|
+
export declare const foundryAuditSealResults: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
3376
|
+
name: "foundry_audit_seal_results";
|
|
3377
|
+
schema: undefined;
|
|
3378
|
+
columns: {
|
|
3379
|
+
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
3380
|
+
name: "id";
|
|
3381
|
+
tableName: "foundry_audit_seal_results";
|
|
3382
|
+
dataType: "number";
|
|
3383
|
+
columnType: "PgBigSerial53";
|
|
3384
|
+
data: number;
|
|
3385
|
+
driverParam: number;
|
|
3386
|
+
notNull: true;
|
|
3387
|
+
hasDefault: true;
|
|
3388
|
+
isPrimaryKey: true;
|
|
3389
|
+
isAutoincrement: false;
|
|
3390
|
+
hasRuntimeDefault: false;
|
|
3391
|
+
enumValues: undefined;
|
|
3392
|
+
baseColumn: never;
|
|
3393
|
+
identity: undefined;
|
|
3394
|
+
generated: undefined;
|
|
3395
|
+
}, {}, {}>;
|
|
3396
|
+
orgId: import("drizzle-orm/pg-core").PgColumn<{
|
|
3397
|
+
name: "org_id";
|
|
3398
|
+
tableName: "foundry_audit_seal_results";
|
|
3399
|
+
dataType: "string";
|
|
3400
|
+
columnType: "PgText";
|
|
3401
|
+
data: string;
|
|
3402
|
+
driverParam: string;
|
|
3403
|
+
notNull: true;
|
|
3404
|
+
hasDefault: false;
|
|
3405
|
+
isPrimaryKey: false;
|
|
3406
|
+
isAutoincrement: false;
|
|
3407
|
+
hasRuntimeDefault: false;
|
|
3408
|
+
enumValues: [string, ...string[]];
|
|
3409
|
+
baseColumn: never;
|
|
3410
|
+
identity: undefined;
|
|
3411
|
+
generated: undefined;
|
|
3412
|
+
}, {}, {}>;
|
|
3413
|
+
entryKey: import("drizzle-orm/pg-core").PgColumn<{
|
|
3414
|
+
name: "entry_key";
|
|
3415
|
+
tableName: "foundry_audit_seal_results";
|
|
3416
|
+
dataType: "string";
|
|
3417
|
+
columnType: "PgText";
|
|
3418
|
+
data: string;
|
|
3419
|
+
driverParam: string;
|
|
3420
|
+
notNull: true;
|
|
3421
|
+
hasDefault: false;
|
|
3422
|
+
isPrimaryKey: false;
|
|
3423
|
+
isAutoincrement: false;
|
|
3424
|
+
hasRuntimeDefault: false;
|
|
3425
|
+
enumValues: [string, ...string[]];
|
|
3426
|
+
baseColumn: never;
|
|
3427
|
+
identity: undefined;
|
|
3428
|
+
generated: undefined;
|
|
3429
|
+
}, {}, {}>;
|
|
3430
|
+
ledger: import("drizzle-orm/pg-core").PgColumn<{
|
|
3431
|
+
name: "ledger";
|
|
3432
|
+
tableName: "foundry_audit_seal_results";
|
|
3433
|
+
dataType: "string";
|
|
3434
|
+
columnType: "PgText";
|
|
3435
|
+
data: string;
|
|
3436
|
+
driverParam: string;
|
|
3437
|
+
notNull: true;
|
|
3438
|
+
hasDefault: false;
|
|
3439
|
+
isPrimaryKey: false;
|
|
3440
|
+
isAutoincrement: false;
|
|
3441
|
+
hasRuntimeDefault: false;
|
|
3442
|
+
enumValues: [string, ...string[]];
|
|
3443
|
+
baseColumn: never;
|
|
3444
|
+
identity: undefined;
|
|
3445
|
+
generated: undefined;
|
|
3446
|
+
}, {}, {}>;
|
|
3447
|
+
outcome: import("drizzle-orm/pg-core").PgColumn<{
|
|
3448
|
+
name: "outcome";
|
|
3449
|
+
tableName: "foundry_audit_seal_results";
|
|
3450
|
+
dataType: "string";
|
|
3451
|
+
columnType: "PgText";
|
|
3452
|
+
data: string;
|
|
3453
|
+
driverParam: string;
|
|
3454
|
+
notNull: true;
|
|
3455
|
+
hasDefault: false;
|
|
3456
|
+
isPrimaryKey: false;
|
|
3457
|
+
isAutoincrement: false;
|
|
3458
|
+
hasRuntimeDefault: false;
|
|
3459
|
+
enumValues: [string, ...string[]];
|
|
3460
|
+
baseColumn: never;
|
|
3461
|
+
identity: undefined;
|
|
3462
|
+
generated: undefined;
|
|
3463
|
+
}, {}, {}>;
|
|
3464
|
+
treeSize: import("drizzle-orm/pg-core").PgColumn<{
|
|
3465
|
+
name: "tree_size";
|
|
3466
|
+
tableName: "foundry_audit_seal_results";
|
|
3467
|
+
dataType: "number";
|
|
3468
|
+
columnType: "PgInteger";
|
|
3469
|
+
data: number;
|
|
3470
|
+
driverParam: string | number;
|
|
3471
|
+
notNull: false;
|
|
3472
|
+
hasDefault: false;
|
|
3473
|
+
isPrimaryKey: false;
|
|
3474
|
+
isAutoincrement: false;
|
|
3475
|
+
hasRuntimeDefault: false;
|
|
3476
|
+
enumValues: undefined;
|
|
3477
|
+
baseColumn: never;
|
|
3478
|
+
identity: undefined;
|
|
3479
|
+
generated: undefined;
|
|
3480
|
+
}, {}, {}>;
|
|
3481
|
+
anchored: import("drizzle-orm/pg-core").PgColumn<{
|
|
3482
|
+
name: "anchored";
|
|
3483
|
+
tableName: "foundry_audit_seal_results";
|
|
3484
|
+
dataType: "number";
|
|
3485
|
+
columnType: "PgInteger";
|
|
3486
|
+
data: number;
|
|
3487
|
+
driverParam: string | number;
|
|
3488
|
+
notNull: true;
|
|
3489
|
+
hasDefault: true;
|
|
3490
|
+
isPrimaryKey: false;
|
|
3491
|
+
isAutoincrement: false;
|
|
3492
|
+
hasRuntimeDefault: false;
|
|
3493
|
+
enumValues: undefined;
|
|
3494
|
+
baseColumn: never;
|
|
3495
|
+
identity: undefined;
|
|
3496
|
+
generated: undefined;
|
|
3497
|
+
}, {}, {}>;
|
|
3498
|
+
erasures: import("drizzle-orm/pg-core").PgColumn<{
|
|
3499
|
+
name: "erasures";
|
|
3500
|
+
tableName: "foundry_audit_seal_results";
|
|
3501
|
+
dataType: "number";
|
|
3502
|
+
columnType: "PgInteger";
|
|
3503
|
+
data: number;
|
|
3504
|
+
driverParam: string | number;
|
|
3505
|
+
notNull: true;
|
|
3506
|
+
hasDefault: true;
|
|
3507
|
+
isPrimaryKey: false;
|
|
3508
|
+
isAutoincrement: false;
|
|
3509
|
+
hasRuntimeDefault: false;
|
|
3510
|
+
enumValues: undefined;
|
|
3511
|
+
baseColumn: never;
|
|
3512
|
+
identity: undefined;
|
|
3513
|
+
generated: undefined;
|
|
3514
|
+
}, {}, {}>;
|
|
3515
|
+
reason: import("drizzle-orm/pg-core").PgColumn<{
|
|
3516
|
+
name: "reason";
|
|
3517
|
+
tableName: "foundry_audit_seal_results";
|
|
3518
|
+
dataType: "string";
|
|
3519
|
+
columnType: "PgText";
|
|
3520
|
+
data: string;
|
|
3521
|
+
driverParam: string;
|
|
3522
|
+
notNull: false;
|
|
3523
|
+
hasDefault: false;
|
|
3524
|
+
isPrimaryKey: false;
|
|
3525
|
+
isAutoincrement: false;
|
|
3526
|
+
hasRuntimeDefault: false;
|
|
3527
|
+
enumValues: [string, ...string[]];
|
|
3528
|
+
baseColumn: never;
|
|
3529
|
+
identity: undefined;
|
|
3530
|
+
generated: undefined;
|
|
3531
|
+
}, {}, {}>;
|
|
3532
|
+
at: import("drizzle-orm/pg-core").PgColumn<{
|
|
3533
|
+
name: "at";
|
|
3534
|
+
tableName: "foundry_audit_seal_results";
|
|
3535
|
+
dataType: "date";
|
|
3536
|
+
columnType: "PgTimestamp";
|
|
3537
|
+
data: Date;
|
|
3538
|
+
driverParam: string;
|
|
3539
|
+
notNull: true;
|
|
3540
|
+
hasDefault: false;
|
|
3541
|
+
isPrimaryKey: false;
|
|
3542
|
+
isAutoincrement: false;
|
|
3543
|
+
hasRuntimeDefault: false;
|
|
3544
|
+
enumValues: undefined;
|
|
3545
|
+
baseColumn: never;
|
|
3546
|
+
identity: undefined;
|
|
3547
|
+
generated: undefined;
|
|
3548
|
+
}, {}, {}>;
|
|
3549
|
+
};
|
|
3550
|
+
dialect: "pg";
|
|
3551
|
+
}>;
|
package/dist/store/schema.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sql } from 'drizzle-orm';
|
|
2
|
-
import { bigint, bigserial, boolean, index, integer, jsonb, pgTable, text, timestamp, } from 'drizzle-orm/pg-core';
|
|
2
|
+
import { bigint, bigserial, boolean, index, integer, jsonb, pgTable, primaryKey, text, timestamp, } from 'drizzle-orm/pg-core';
|
|
3
3
|
/**
|
|
4
4
|
* Mirrors `migrations/0001_declared_org.sql`, which is the source of truth:
|
|
5
5
|
* the SQL carries the CHECKs drizzle-kit does not generate here (this
|
|
@@ -236,6 +236,10 @@ export const foundryDeclaredPlatform = pgTable('foundry_declared_platform', {
|
|
|
236
236
|
usageTailEnabled: boolean('usage_tail_enabled').notNull().default(false),
|
|
237
237
|
usageTailTag: text('usage_tail_tag').notNull().default(''),
|
|
238
238
|
usageTailSha256: text('usage_tail_sha256').notNull().default(''),
|
|
239
|
+
/** foundry#1133, `migrations/0074_platform_app_canary.sql`: the app-layer canary and its artifact pin. */
|
|
240
|
+
appCanaryEnabled: boolean('app_canary_enabled').notNull().default(false),
|
|
241
|
+
appCanaryTag: text('app_canary_tag').notNull().default(''),
|
|
242
|
+
appCanarySha256: text('app_canary_sha256').notNull().default(''),
|
|
239
243
|
/** foundry#544, `migrations/0053_heartbeats_provider.sql`: which Healthchecks instance manages the heartbeat checks, decoupled from `hcEnabled` above. */
|
|
240
244
|
heartbeatsProvider: text('heartbeats_provider').notNull().default('self-hosted'),
|
|
241
245
|
/** `migrations/0018_platform_apply.sql`: the platform's applied state, `system:kind:key` to provider id. */
|
|
@@ -290,3 +294,36 @@ export const foundryReleaseEvents = pgTable('foundry_release_events', {
|
|
|
290
294
|
kind: text('kind').notNull(),
|
|
291
295
|
payload: jsonb('payload').notNull().$type().default({}),
|
|
292
296
|
});
|
|
297
|
+
/** Mirrors `migrations/0072_audit_host.sql`: a company's audit host key, as its sha256 only. */
|
|
298
|
+
export const foundryAuditHostKeys = pgTable('foundry_audit_host_keys', {
|
|
299
|
+
orgId: text('org_id').primaryKey(),
|
|
300
|
+
keySha256: text('key_sha256').notNull().unique(),
|
|
301
|
+
createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
|
|
302
|
+
});
|
|
303
|
+
/** Mirrors `migrations/0072_audit_host.sql`: a ledger a company's Boule registered; the password is held, not here. */
|
|
304
|
+
export const foundryAuditLedgerRegistrations = pgTable('foundry_audit_ledger_registrations', {
|
|
305
|
+
orgId: text('org_id').notNull(),
|
|
306
|
+
entryKey: text('entry_key').notNull(),
|
|
307
|
+
copy: text('copy').notNull(),
|
|
308
|
+
dbHost: text('db_host').notNull(),
|
|
309
|
+
dbPort: integer('db_port').notNull(),
|
|
310
|
+
dbName: text('db_name').notNull(),
|
|
311
|
+
dbUser: text('db_user').notNull(),
|
|
312
|
+
sslmode: text('sslmode'),
|
|
313
|
+
passwordRef: text('password_ref').notNull(),
|
|
314
|
+
createdAt: timestamp('created_at', { withTimezone: true }).notNull().defaultNow(),
|
|
315
|
+
updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
|
|
316
|
+
}, (t) => [primaryKey({ columns: [t.orgId, t.entryKey] })]);
|
|
317
|
+
/** Mirrors `migrations/0072_audit_host.sql`: one seal tick's result for one ledger, kept for 12 hours. */
|
|
318
|
+
export const foundryAuditSealResults = pgTable('foundry_audit_seal_results', {
|
|
319
|
+
id: bigserial('id', { mode: 'number' }).primaryKey(),
|
|
320
|
+
orgId: text('org_id').notNull(),
|
|
321
|
+
entryKey: text('entry_key').notNull(),
|
|
322
|
+
ledger: text('ledger').notNull(),
|
|
323
|
+
outcome: text('outcome').notNull(),
|
|
324
|
+
treeSize: integer('tree_size'),
|
|
325
|
+
anchored: integer('anchored').notNull().default(0),
|
|
326
|
+
erasures: integer('erasures').notNull().default(0),
|
|
327
|
+
reason: text('reason'),
|
|
328
|
+
at: timestamp('at', { withTimezone: true }).notNull(),
|
|
329
|
+
});
|
|
@@ -196,9 +196,9 @@ export function validateEntryWorkerApp(entry, hosting, names) {
|
|
|
196
196
|
if (Object.keys(entry.env).length > 0) {
|
|
197
197
|
return `${at} has no Coolify app, so env does not apply: use workerApp.vars or workerApp.secrets`;
|
|
198
198
|
}
|
|
199
|
-
const unsupported = Object.keys(entry.uses ?? {}).find((use) => use !== 'auth' && use !== 'audit' && use !== 'analytics');
|
|
199
|
+
const unsupported = Object.keys(entry.uses ?? {}).find((use) => use !== 'auth' && use !== 'audit' && use !== 'analytics' && use !== 'reporting');
|
|
200
200
|
if (unsupported)
|
|
201
|
-
return `${at} supports uses.auth, uses.audit and uses.
|
|
201
|
+
return `${at} supports uses.auth, uses.audit, uses.analytics and uses.reporting only, not uses.${unsupported}`;
|
|
202
202
|
if (entry.key.length > WORKER_NAME_MAX_LENGTH - WORKER_NAME_FIXED_LENGTH) {
|
|
203
203
|
return `${at} entry key is too long: the deployed Worker's name (an 8-character org hash, the key, and "${WORKER_APP_NAME_SUFFIX}") must fit Cloudflare's ${WORKER_NAME_MAX_LENGTH}-character limit`;
|
|
204
204
|
}
|