@coffre/db 0.10.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/connect.d.ts +1 -1
  2. package/dist/{database-DBtn3jqp.d.ts → database-Ds1Y79h6.d.ts} +1 -1
  3. package/dist/dialect.d.ts +1 -1
  4. package/dist/grants.d.ts +12 -5
  5. package/dist/grants.js +13 -8
  6. package/dist/hyperdrive.d.ts +9 -2
  7. package/dist/hyperdrive.js +16 -2
  8. package/dist/index.d.ts +2 -2
  9. package/dist/log.d.ts +1 -1
  10. package/dist/migrations/postgres/0015_workload_access.sql +43 -0
  11. package/dist/migrations/postgres/0016_spent_tokens.sql +12 -0
  12. package/dist/migrations/postgres/0017_capped_alerts.sql +10 -0
  13. package/dist/migrations/postgres/meta/0015_snapshot.json +3256 -0
  14. package/dist/migrations/postgres/meta/0016_snapshot.json +3256 -0
  15. package/dist/migrations/postgres/meta/0017_snapshot.json +3295 -0
  16. package/dist/migrations/postgres/meta/_journal.json +21 -0
  17. package/dist/migrations/sqlite/0015_workload_access.sql +70 -0
  18. package/dist/migrations/sqlite/0016_capped_alerts.sql +7 -0
  19. package/dist/migrations/sqlite/meta/0015_snapshot.json +2959 -0
  20. package/dist/migrations/sqlite/meta/0016_snapshot.json +2998 -0
  21. package/dist/migrations/sqlite/meta/_journal.json +14 -0
  22. package/dist/portable.d.ts +2 -2
  23. package/dist/{schema-NBVA9q-s.d.ts → schema-DcVkJhCf.d.ts} +393 -2
  24. package/dist/schema-sqlite.d.ts +408 -1
  25. package/dist/schema-sqlite.js +61 -5
  26. package/dist/schema-version.d.ts +1 -1
  27. package/dist/schema-version.js +35 -0
  28. package/dist/schema.d.ts +2 -2
  29. package/dist/schema.js +71 -5
  30. package/package.json +2 -2
  31. package/src/grants.ts +18 -9
  32. package/src/hyperdrive.ts +16 -2
  33. package/src/migrations/postgres/0015_workload_access.sql +43 -0
  34. package/src/migrations/postgres/0016_spent_tokens.sql +12 -0
  35. package/src/migrations/postgres/0017_capped_alerts.sql +10 -0
  36. package/src/migrations/postgres/meta/0015_snapshot.json +3256 -0
  37. package/src/migrations/postgres/meta/0016_snapshot.json +3256 -0
  38. package/src/migrations/postgres/meta/0017_snapshot.json +3295 -0
  39. package/src/migrations/postgres/meta/_journal.json +21 -0
  40. package/src/migrations/sqlite/0015_workload_access.sql +70 -0
  41. package/src/migrations/sqlite/0016_capped_alerts.sql +7 -0
  42. package/src/migrations/sqlite/meta/0015_snapshot.json +2959 -0
  43. package/src/migrations/sqlite/meta/0016_snapshot.json +2998 -0
  44. package/src/migrations/sqlite/meta/_journal.json +14 -0
  45. package/src/schema.sqlite.ts +83 -2
  46. package/src/schema.ts +91 -2
@@ -106,6 +106,20 @@
106
106
  "when": 1792345777255,
107
107
  "tag": "0014_custom_roles",
108
108
  "breakpoints": true
109
+ },
110
+ {
111
+ "idx": 15,
112
+ "version": "6",
113
+ "when": 1792803757926,
114
+ "tag": "0015_workload_access",
115
+ "breakpoints": true
116
+ },
117
+ {
118
+ "idx": 16,
119
+ "version": "6",
120
+ "when": 1792835446455,
121
+ "tag": "0016_capped_alerts",
122
+ "breakpoints": true
109
123
  }
110
124
  ]
111
125
  }
@@ -1,5 +1,5 @@
1
- import { m as schema_d_exports } from "./schema-NBVA9q-s.js";
2
- import { t as Database } from "./database-DBtn3jqp.js";
1
+ import { g as schema_d_exports } from "./schema-DcVkJhCf.js";
2
+ import { t as Database } from "./database-Ds1Y79h6.js";
3
3
  import { t as schema_sqlite_d_exports } from "./schema-sqlite.js";
4
4
  import { LibSQLDatabase } from "drizzle-orm/libsql";
5
5
  //#region src/portable.d.ts
@@ -1,5 +1,5 @@
1
1
  declare namespace schema_d_exports {
2
- export { auditChainHead, auditLog, consumedTokens, credentials, deviceAuthorizations, dismissedKeys, environments, environmentsRelations, identities, mcpApprovals, mcpConnections, oauthClients, projects, secretReferences, secretVersions, secrets, secretsRelations, serviceBindings, vaultGrants, vaultMembers };
2
+ export { auditChainHead, auditLog, cappedAlerts, consumedTokens, credentials, deviceAuthorizations, dismissedKeys, enrollments, environments, environmentsRelations, identities, mcpApprovals, mcpConnections, oauthClients, projects, secretReferences, secretVersions, secrets, secretsRelations, serviceBindings, vaultGrants, vaultMembers };
3
3
  }
4
4
  declare const projects: import("drizzle-orm/pg-core").PgTableWithColumns<{
5
5
  name: "projects";
@@ -2293,6 +2293,23 @@ declare const serviceBindings: import("drizzle-orm/pg-core").PgTableWithColumns<
2293
2293
  identity: undefined;
2294
2294
  generated: undefined;
2295
2295
  }, {}, {}>;
2296
+ policy: import("drizzle-orm/pg-core").PgColumn<{
2297
+ name: "policy";
2298
+ tableName: "service_bindings";
2299
+ dataType: "string";
2300
+ columnType: "PgText";
2301
+ data: string;
2302
+ driverParam: string;
2303
+ notNull: false;
2304
+ hasDefault: false;
2305
+ isPrimaryKey: false;
2306
+ isAutoincrement: false;
2307
+ hasRuntimeDefault: false;
2308
+ enumValues: [string, ...string[]];
2309
+ baseColumn: never;
2310
+ identity: undefined;
2311
+ generated: undefined;
2312
+ }, {}, {}>;
2296
2313
  label: import("drizzle-orm/pg-core").PgColumn<{
2297
2314
  name: "label";
2298
2315
  tableName: "service_bindings";
@@ -2447,6 +2464,72 @@ declare const consumedTokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
2447
2464
  };
2448
2465
  dialect: "pg";
2449
2466
  }>;
2467
+ /**
2468
+ * When a service's capped alert was last raised, by kind: the refusal of a
2469
+ * token signed by a key its uploaded keys lack (`unknown_key`) alerts once
2470
+ * an hour, however many isolates see it. One conditional write per refusal
2471
+ * decides (`claimAlert`), so that the many it caps never reach the log's
2472
+ * head. Only a request that a binding of the service on the token's issuer
2473
+ * gets as far as its keys writes here: a row per service, at most, per kind.
2474
+ */
2475
+ declare const cappedAlerts: import("drizzle-orm/pg-core").PgTableWithColumns<{
2476
+ name: "capped_alerts";
2477
+ schema: undefined;
2478
+ columns: {
2479
+ service: import("drizzle-orm/pg-core").PgColumn<{
2480
+ name: "service";
2481
+ tableName: "capped_alerts";
2482
+ dataType: "string";
2483
+ columnType: "PgText";
2484
+ data: string;
2485
+ driverParam: string;
2486
+ notNull: true;
2487
+ hasDefault: false;
2488
+ isPrimaryKey: false;
2489
+ isAutoincrement: false;
2490
+ hasRuntimeDefault: false;
2491
+ enumValues: [string, ...string[]];
2492
+ baseColumn: never;
2493
+ identity: undefined;
2494
+ generated: undefined;
2495
+ }, {}, {}>;
2496
+ kind: import("drizzle-orm/pg-core").PgColumn<{
2497
+ name: "kind";
2498
+ tableName: "capped_alerts";
2499
+ dataType: "string";
2500
+ columnType: "PgText";
2501
+ data: string;
2502
+ driverParam: string;
2503
+ notNull: true;
2504
+ hasDefault: false;
2505
+ isPrimaryKey: false;
2506
+ isAutoincrement: false;
2507
+ hasRuntimeDefault: false;
2508
+ enumValues: [string, ...string[]];
2509
+ baseColumn: never;
2510
+ identity: undefined;
2511
+ generated: undefined;
2512
+ }, {}, {}>;
2513
+ raisedAt: import("drizzle-orm/pg-core").PgColumn<{
2514
+ name: "raised_at";
2515
+ tableName: "capped_alerts";
2516
+ dataType: "date";
2517
+ columnType: "PgTimestamp";
2518
+ data: Date;
2519
+ driverParam: string;
2520
+ notNull: true;
2521
+ hasDefault: false;
2522
+ isPrimaryKey: false;
2523
+ isAutoincrement: false;
2524
+ hasRuntimeDefault: false;
2525
+ enumValues: undefined;
2526
+ baseColumn: never;
2527
+ identity: undefined;
2528
+ generated: undefined;
2529
+ }, {}, {}>;
2530
+ };
2531
+ dialect: "pg";
2532
+ }>;
2450
2533
  /**
2451
2534
  * MCP clients that registered themselves (RFC 7591), the fallback to Client
2452
2535
  * ID Metadata Documents, which need no row. The ID is the client's
@@ -3163,6 +3246,195 @@ declare const mcpApprovals: import("drizzle-orm/pg-core").PgTableWithColumns<{
3163
3246
  };
3164
3247
  dialect: "pg";
3165
3248
  }>;
3249
+ /**
3250
+ * Enrollment codes (docs/design/workload-access.md, section 4.4): what CI
3251
+ * mints for a platform that signs no identity, and the app exchanges for a
3252
+ * workload's session at `/api/auth/workload`. Never a credential itself, and
3253
+ * only ever added: the log says which code a promote superseded. Its scope,
3254
+ * fixed at minting, is the binding's within what the minter held; the MAC
3255
+ * covers everything but its hint and creation time (auth-rows.ts in the server).
3256
+ */
3257
+ declare const enrollments: import("drizzle-orm/pg-core").PgTableWithColumns<{
3258
+ name: "enrollments";
3259
+ schema: undefined;
3260
+ columns: {
3261
+ id: import("drizzle-orm/pg-core").PgColumn<{
3262
+ name: "id";
3263
+ tableName: "enrollments";
3264
+ dataType: "string";
3265
+ columnType: "PgUUID";
3266
+ data: string;
3267
+ driverParam: string;
3268
+ notNull: true;
3269
+ hasDefault: false;
3270
+ isPrimaryKey: true;
3271
+ isAutoincrement: false;
3272
+ hasRuntimeDefault: false;
3273
+ enumValues: undefined;
3274
+ baseColumn: never;
3275
+ identity: undefined;
3276
+ generated: undefined;
3277
+ }, {}, {}>;
3278
+ authMac: import("drizzle-orm/pg-core").PgColumn<{
3279
+ name: "auth_mac";
3280
+ tableName: "enrollments";
3281
+ dataType: "custom";
3282
+ columnType: "PgCustomColumn";
3283
+ data: Buffer<ArrayBufferLike>;
3284
+ driverParam: unknown;
3285
+ notNull: true;
3286
+ hasDefault: false;
3287
+ isPrimaryKey: false;
3288
+ isAutoincrement: false;
3289
+ hasRuntimeDefault: false;
3290
+ enumValues: undefined;
3291
+ baseColumn: never;
3292
+ identity: undefined;
3293
+ generated: undefined;
3294
+ }, {}, {
3295
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
3296
+ }>;
3297
+ bindingId: import("drizzle-orm/pg-core").PgColumn<{
3298
+ name: "binding_id";
3299
+ tableName: "enrollments";
3300
+ dataType: "string";
3301
+ columnType: "PgUUID";
3302
+ data: string;
3303
+ driverParam: string;
3304
+ notNull: true;
3305
+ hasDefault: false;
3306
+ isPrimaryKey: false;
3307
+ isAutoincrement: false;
3308
+ hasRuntimeDefault: false;
3309
+ enumValues: undefined;
3310
+ baseColumn: never;
3311
+ identity: undefined;
3312
+ generated: undefined;
3313
+ }, {}, {}>;
3314
+ codeHash: import("drizzle-orm/pg-core").PgColumn<{
3315
+ name: "code_hash";
3316
+ tableName: "enrollments";
3317
+ dataType: "custom";
3318
+ columnType: "PgCustomColumn";
3319
+ data: Buffer<ArrayBufferLike>;
3320
+ driverParam: unknown;
3321
+ notNull: true;
3322
+ hasDefault: false;
3323
+ isPrimaryKey: false;
3324
+ isAutoincrement: false;
3325
+ hasRuntimeDefault: false;
3326
+ enumValues: undefined;
3327
+ baseColumn: never;
3328
+ identity: undefined;
3329
+ generated: undefined;
3330
+ }, {}, {
3331
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
3332
+ }>;
3333
+ codeHint: import("drizzle-orm/pg-core").PgColumn<{
3334
+ name: "code_hint";
3335
+ tableName: "enrollments";
3336
+ dataType: "string";
3337
+ columnType: "PgText";
3338
+ data: string;
3339
+ driverParam: string;
3340
+ notNull: true;
3341
+ hasDefault: false;
3342
+ isPrimaryKey: false;
3343
+ isAutoincrement: false;
3344
+ hasRuntimeDefault: false;
3345
+ enumValues: [string, ...string[]];
3346
+ baseColumn: never;
3347
+ identity: undefined;
3348
+ generated: undefined;
3349
+ }, {}, {}>;
3350
+ scope: import("drizzle-orm/pg-core").PgColumn<{
3351
+ name: "scope";
3352
+ tableName: "enrollments";
3353
+ dataType: "string";
3354
+ columnType: "PgText";
3355
+ data: string;
3356
+ driverParam: string;
3357
+ notNull: true;
3358
+ hasDefault: false;
3359
+ isPrimaryKey: false;
3360
+ isAutoincrement: false;
3361
+ hasRuntimeDefault: false;
3362
+ enumValues: [string, ...string[]];
3363
+ baseColumn: never;
3364
+ identity: undefined;
3365
+ generated: undefined;
3366
+ }, {}, {}>;
3367
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
3368
+ name: "created_at";
3369
+ tableName: "enrollments";
3370
+ dataType: "date";
3371
+ columnType: "PgTimestamp";
3372
+ data: Date;
3373
+ driverParam: string;
3374
+ notNull: true;
3375
+ hasDefault: true;
3376
+ isPrimaryKey: false;
3377
+ isAutoincrement: false;
3378
+ hasRuntimeDefault: false;
3379
+ enumValues: undefined;
3380
+ baseColumn: never;
3381
+ identity: undefined;
3382
+ generated: undefined;
3383
+ }, {}, {}>;
3384
+ createdBy: import("drizzle-orm/pg-core").PgColumn<{
3385
+ name: "created_by";
3386
+ tableName: "enrollments";
3387
+ dataType: "string";
3388
+ columnType: "PgText";
3389
+ data: string;
3390
+ driverParam: string;
3391
+ notNull: true;
3392
+ hasDefault: false;
3393
+ isPrimaryKey: false;
3394
+ isAutoincrement: false;
3395
+ hasRuntimeDefault: false;
3396
+ enumValues: [string, ...string[]];
3397
+ baseColumn: never;
3398
+ identity: undefined;
3399
+ generated: undefined;
3400
+ }, {}, {}>;
3401
+ createdWith: import("drizzle-orm/pg-core").PgColumn<{
3402
+ name: "created_with";
3403
+ tableName: "enrollments";
3404
+ dataType: "string";
3405
+ columnType: "PgUUID";
3406
+ data: string;
3407
+ driverParam: string;
3408
+ notNull: false;
3409
+ hasDefault: false;
3410
+ isPrimaryKey: false;
3411
+ isAutoincrement: false;
3412
+ hasRuntimeDefault: false;
3413
+ enumValues: undefined;
3414
+ baseColumn: never;
3415
+ identity: undefined;
3416
+ generated: undefined;
3417
+ }, {}, {}>;
3418
+ expiresAt: import("drizzle-orm/pg-core").PgColumn<{
3419
+ name: "expires_at";
3420
+ tableName: "enrollments";
3421
+ dataType: "date";
3422
+ columnType: "PgTimestamp";
3423
+ data: Date;
3424
+ driverParam: string;
3425
+ notNull: true;
3426
+ hasDefault: false;
3427
+ isPrimaryKey: false;
3428
+ isAutoincrement: false;
3429
+ hasRuntimeDefault: false;
3430
+ enumValues: undefined;
3431
+ baseColumn: never;
3432
+ identity: undefined;
3433
+ generated: undefined;
3434
+ }, {}, {}>;
3435
+ };
3436
+ dialect: "pg";
3437
+ }>;
3166
3438
  /**
3167
3439
  * Bearer credentials coffre issues itself: browser sessions, CLI sessions and
3168
3440
  * service tokens.
@@ -3485,6 +3757,125 @@ declare const credentials: import("drizzle-orm/pg-core").PgTableWithColumns<{
3485
3757
  identity: undefined;
3486
3758
  generated: undefined;
3487
3759
  }, {}, {}>;
3760
+ jkt: import("drizzle-orm/pg-core").PgColumn<{
3761
+ name: "jkt";
3762
+ tableName: "credentials";
3763
+ dataType: "string";
3764
+ columnType: "PgText";
3765
+ data: string;
3766
+ driverParam: string;
3767
+ notNull: false;
3768
+ hasDefault: false;
3769
+ isPrimaryKey: false;
3770
+ isAutoincrement: false;
3771
+ hasRuntimeDefault: false;
3772
+ enumValues: [string, ...string[]];
3773
+ baseColumn: never;
3774
+ identity: undefined;
3775
+ generated: undefined;
3776
+ }, {}, {}>;
3777
+ notAfter: import("drizzle-orm/pg-core").PgColumn<{
3778
+ name: "not_after";
3779
+ tableName: "credentials";
3780
+ dataType: "date";
3781
+ columnType: "PgTimestamp";
3782
+ data: Date;
3783
+ driverParam: string;
3784
+ notNull: false;
3785
+ hasDefault: false;
3786
+ isPrimaryKey: false;
3787
+ isAutoincrement: false;
3788
+ hasRuntimeDefault: false;
3789
+ enumValues: undefined;
3790
+ baseColumn: never;
3791
+ identity: undefined;
3792
+ generated: undefined;
3793
+ }, {}, {}>;
3794
+ ancestors: import("drizzle-orm/pg-core").PgColumn<{
3795
+ name: "ancestors";
3796
+ tableName: "credentials";
3797
+ dataType: "string";
3798
+ columnType: "PgText";
3799
+ data: string;
3800
+ driverParam: string;
3801
+ notNull: false;
3802
+ hasDefault: false;
3803
+ isPrimaryKey: false;
3804
+ isAutoincrement: false;
3805
+ hasRuntimeDefault: false;
3806
+ enumValues: [string, ...string[]];
3807
+ baseColumn: never;
3808
+ identity: undefined;
3809
+ generated: undefined;
3810
+ }, {}, {}>;
3811
+ constraints: import("drizzle-orm/pg-core").PgColumn<{
3812
+ name: "constraints";
3813
+ tableName: "credentials";
3814
+ dataType: "string";
3815
+ columnType: "PgText";
3816
+ data: string;
3817
+ driverParam: string;
3818
+ notNull: false;
3819
+ hasDefault: false;
3820
+ isPrimaryKey: false;
3821
+ isAutoincrement: false;
3822
+ hasRuntimeDefault: false;
3823
+ enumValues: [string, ...string[]];
3824
+ baseColumn: never;
3825
+ identity: undefined;
3826
+ generated: undefined;
3827
+ }, {}, {}>;
3828
+ enrollmentId: import("drizzle-orm/pg-core").PgColumn<{
3829
+ name: "enrollment_id";
3830
+ tableName: "credentials";
3831
+ dataType: "string";
3832
+ columnType: "PgUUID";
3833
+ data: string;
3834
+ driverParam: string;
3835
+ notNull: false;
3836
+ hasDefault: false;
3837
+ isPrimaryKey: false;
3838
+ isAutoincrement: false;
3839
+ hasRuntimeDefault: false;
3840
+ enumValues: undefined;
3841
+ baseColumn: never;
3842
+ identity: undefined;
3843
+ generated: undefined;
3844
+ }, {}, {}>;
3845
+ approvedAt: import("drizzle-orm/pg-core").PgColumn<{
3846
+ name: "approved_at";
3847
+ tableName: "credentials";
3848
+ dataType: "date";
3849
+ columnType: "PgTimestamp";
3850
+ data: Date;
3851
+ driverParam: string;
3852
+ notNull: false;
3853
+ hasDefault: false;
3854
+ isPrimaryKey: false;
3855
+ isAutoincrement: false;
3856
+ hasRuntimeDefault: false;
3857
+ enumValues: undefined;
3858
+ baseColumn: never;
3859
+ identity: undefined;
3860
+ generated: undefined;
3861
+ }, {}, {}>;
3862
+ approvedBy: import("drizzle-orm/pg-core").PgColumn<{
3863
+ name: "approved_by";
3864
+ tableName: "credentials";
3865
+ dataType: "string";
3866
+ columnType: "PgText";
3867
+ data: string;
3868
+ driverParam: string;
3869
+ notNull: false;
3870
+ hasDefault: false;
3871
+ isPrimaryKey: false;
3872
+ isAutoincrement: false;
3873
+ hasRuntimeDefault: false;
3874
+ enumValues: [string, ...string[]];
3875
+ baseColumn: never;
3876
+ identity: undefined;
3877
+ generated: undefined;
3878
+ }, {}, {}>;
3488
3879
  };
3489
3880
  dialect: "pg";
3490
3881
  }>;
@@ -3734,4 +4125,4 @@ declare const environmentsRelations: import("drizzle-orm").Relations<"environmen
3734
4125
  environment: import("drizzle-orm").One<"environments", true>;
3735
4126
  }>;
3736
4127
  //#endregion
3737
- export { secrets as _, deviceAuthorizations as a, vaultGrants as b, environmentsRelations as c, mcpConnections as d, oauthClients as f, secretVersions as g, secretReferences as h, credentials as i, identities as l, schema_d_exports as m, auditLog as n, dismissedKeys as o, projects as p, consumedTokens as r, environments as s, auditChainHead as t, mcpApprovals as u, secretsRelations as v, vaultMembers as x, serviceBindings as y };
4128
+ export { vaultMembers as C, vaultGrants as S, secretReferences as _, credentials as a, secretsRelations as b, enrollments as c, identities as d, mcpApprovals as f, schema_d_exports as g, projects as h, consumedTokens as i, environments as l, oauthClients as m, auditLog as n, deviceAuthorizations as o, mcpConnections as p, cappedAlerts as r, dismissedKeys as s, auditChainHead as t, environmentsRelations as u, secretVersions as v, serviceBindings as x, secrets as y };