@proofhound/db 0.1.6

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 (112) hide show
  1. package/LICENSE +190 -0
  2. package/dist/clean-test-residue.d.ts +2 -0
  3. package/dist/clean-test-residue.d.ts.map +1 -0
  4. package/dist/clean-test-residue.js +59 -0
  5. package/dist/clean-test-residue.js.map +1 -0
  6. package/dist/client.d.ts +5 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +87 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/ensure-e2e-database.d.ts +2 -0
  11. package/dist/ensure-e2e-database.d.ts.map +1 -0
  12. package/dist/ensure-e2e-database.js +87 -0
  13. package/dist/ensure-e2e-database.js.map +1 -0
  14. package/dist/fixtures/dev/connectors.d.ts +72 -0
  15. package/dist/fixtures/dev/connectors.d.ts.map +1 -0
  16. package/dist/fixtures/dev/connectors.js +90 -0
  17. package/dist/fixtures/dev/connectors.js.map +1 -0
  18. package/dist/fixtures/dev/experiments.d.ts +48 -0
  19. package/dist/fixtures/dev/experiments.d.ts.map +1 -0
  20. package/dist/fixtures/dev/experiments.js +1168 -0
  21. package/dist/fixtures/dev/experiments.js.map +1 -0
  22. package/dist/fixtures/dev/models.d.ts +20 -0
  23. package/dist/fixtures/dev/models.d.ts.map +1 -0
  24. package/dist/fixtures/dev/models.js +60 -0
  25. package/dist/fixtures/dev/models.js.map +1 -0
  26. package/dist/fixtures/dev/optimizations.d.ts +62 -0
  27. package/dist/fixtures/dev/optimizations.d.ts.map +1 -0
  28. package/dist/fixtures/dev/optimizations.js +124 -0
  29. package/dist/fixtures/dev/optimizations.js.map +1 -0
  30. package/dist/fixtures/dev/prompts.d.ts +31 -0
  31. package/dist/fixtures/dev/prompts.d.ts.map +1 -0
  32. package/dist/fixtures/dev/prompts.js +115 -0
  33. package/dist/fixtures/dev/prompts.js.map +1 -0
  34. package/dist/fixtures/dev/tokens.d.ts +10 -0
  35. package/dist/fixtures/dev/tokens.d.ts.map +1 -0
  36. package/dist/fixtures/dev/tokens.js +28 -0
  37. package/dist/fixtures/dev/tokens.js.map +1 -0
  38. package/dist/index.d.ts +3 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +44 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/migrate.d.ts +2 -0
  43. package/dist/migrate.d.ts.map +1 -0
  44. package/dist/migrate.js +34 -0
  45. package/dist/migrate.js.map +1 -0
  46. package/dist/migrations/0000_woozy_thunderbolt.sql +688 -0
  47. package/dist/migrations/0001_webhook_token_scope.sql +28 -0
  48. package/dist/migrations/0002_tokens_table_unify_scope.sql +50 -0
  49. package/dist/migrations/0003_models_auto_concurrency.sql +4 -0
  50. package/dist/migrations/0004_webhook_token_attribution.sql +4 -0
  51. package/dist/migrations/0005_same_thor_girl.sql +34 -0
  52. package/dist/reset.d.ts +2 -0
  53. package/dist/reset.d.ts.map +1 -0
  54. package/dist/reset.js +78 -0
  55. package/dist/reset.js.map +1 -0
  56. package/dist/schema/index.d.ts +5 -0
  57. package/dist/schema/index.d.ts.map +1 -0
  58. package/dist/schema/index.js +23 -0
  59. package/dist/schema/index.js.map +1 -0
  60. package/dist/schema/ph_assets/index.d.ts +2012 -0
  61. package/dist/schema/ph_assets/index.d.ts.map +1 -0
  62. package/dist/schema/ph_assets/index.js +272 -0
  63. package/dist/schema/ph_assets/index.js.map +1 -0
  64. package/dist/schema/ph_core/index.d.ts +424 -0
  65. package/dist/schema/ph_core/index.d.ts.map +1 -0
  66. package/dist/schema/ph_core/index.js +69 -0
  67. package/dist/schema/ph_core/index.js.map +1 -0
  68. package/dist/schema/ph_releases/_schema.d.ts +2 -0
  69. package/dist/schema/ph_releases/_schema.d.ts.map +1 -0
  70. package/dist/schema/ph_releases/_schema.js +8 -0
  71. package/dist/schema/ph_releases/_schema.js.map +1 -0
  72. package/dist/schema/ph_releases/annotation-tasks.d.ts +263 -0
  73. package/dist/schema/ph_releases/annotation-tasks.d.ts.map +1 -0
  74. package/dist/schema/ph_releases/annotation-tasks.js +38 -0
  75. package/dist/schema/ph_releases/annotation-tasks.js.map +1 -0
  76. package/dist/schema/ph_releases/canary-releases.d.ts +672 -0
  77. package/dist/schema/ph_releases/canary-releases.d.ts.map +1 -0
  78. package/dist/schema/ph_releases/canary-releases.js +91 -0
  79. package/dist/schema/ph_releases/canary-releases.js.map +1 -0
  80. package/dist/schema/ph_releases/index.d.ts +6 -0
  81. package/dist/schema/ph_releases/index.d.ts.map +1 -0
  82. package/dist/schema/ph_releases/index.js +24 -0
  83. package/dist/schema/ph_releases/index.js.map +1 -0
  84. package/dist/schema/ph_releases/production-release-events.d.ts +527 -0
  85. package/dist/schema/ph_releases/production-release-events.d.ts.map +1 -0
  86. package/dist/schema/ph_releases/production-release-events.js +86 -0
  87. package/dist/schema/ph_releases/production-release-events.js.map +1 -0
  88. package/dist/schema/ph_releases/release-lines.d.ts +1442 -0
  89. package/dist/schema/ph_releases/release-lines.d.ts.map +1 -0
  90. package/dist/schema/ph_releases/release-lines.js +203 -0
  91. package/dist/schema/ph_releases/release-lines.js.map +1 -0
  92. package/dist/schema/ph_runs/_schema.d.ts +2 -0
  93. package/dist/schema/ph_runs/_schema.d.ts.map +1 -0
  94. package/dist/schema/ph_runs/_schema.js +6 -0
  95. package/dist/schema/ph_runs/_schema.js.map +1 -0
  96. package/dist/schema/ph_runs/experiments.d.ts +984 -0
  97. package/dist/schema/ph_runs/experiments.d.ts.map +1 -0
  98. package/dist/schema/ph_runs/experiments.js +134 -0
  99. package/dist/schema/ph_runs/experiments.js.map +1 -0
  100. package/dist/schema/ph_runs/index.d.ts +1027 -0
  101. package/dist/schema/ph_runs/index.d.ts.map +1 -0
  102. package/dist/schema/ph_runs/index.js +135 -0
  103. package/dist/schema/ph_runs/index.js.map +1 -0
  104. package/dist/seed-dev.d.ts +2 -0
  105. package/dist/seed-dev.d.ts.map +1 -0
  106. package/dist/seed-dev.js +605 -0
  107. package/dist/seed-dev.js.map +1 -0
  108. package/dist/seed.d.ts +2 -0
  109. package/dist/seed.d.ts.map +1 -0
  110. package/dist/seed.js +13 -0
  111. package/dist/seed.js.map +1 -0
  112. package/package.json +60 -0
@@ -0,0 +1,424 @@
1
+ export declare const phCore: import("drizzle-orm/pg-core").PgSchema<"ph_core">;
2
+ export declare const projects: import("drizzle-orm/pg-core").PgTableWithColumns<{
3
+ name: "projects";
4
+ schema: "ph_core";
5
+ columns: {
6
+ id: import("drizzle-orm/pg-core").PgColumn<{
7
+ name: "id";
8
+ tableName: "projects";
9
+ dataType: "string";
10
+ columnType: "PgUUID";
11
+ data: string;
12
+ driverParam: string;
13
+ notNull: true;
14
+ hasDefault: true;
15
+ isPrimaryKey: true;
16
+ isAutoincrement: false;
17
+ hasRuntimeDefault: false;
18
+ enumValues: undefined;
19
+ baseColumn: never;
20
+ identity: undefined;
21
+ generated: undefined;
22
+ }, {}, {}>;
23
+ name: import("drizzle-orm/pg-core").PgColumn<{
24
+ name: "name";
25
+ tableName: "projects";
26
+ dataType: "string";
27
+ columnType: "PgText";
28
+ data: string;
29
+ driverParam: string;
30
+ notNull: true;
31
+ hasDefault: false;
32
+ isPrimaryKey: false;
33
+ isAutoincrement: false;
34
+ hasRuntimeDefault: false;
35
+ enumValues: [string, ...string[]];
36
+ baseColumn: never;
37
+ identity: undefined;
38
+ generated: undefined;
39
+ }, {}, {}>;
40
+ description: import("drizzle-orm/pg-core").PgColumn<{
41
+ name: "description";
42
+ tableName: "projects";
43
+ dataType: "string";
44
+ columnType: "PgText";
45
+ data: string;
46
+ driverParam: string;
47
+ notNull: false;
48
+ hasDefault: false;
49
+ isPrimaryKey: false;
50
+ isAutoincrement: false;
51
+ hasRuntimeDefault: false;
52
+ enumValues: [string, ...string[]];
53
+ baseColumn: never;
54
+ identity: undefined;
55
+ generated: undefined;
56
+ }, {}, {}>;
57
+ type: import("drizzle-orm/pg-core").PgColumn<{
58
+ name: "type";
59
+ tableName: "projects";
60
+ dataType: "string";
61
+ columnType: "PgText";
62
+ data: string;
63
+ driverParam: string;
64
+ notNull: true;
65
+ hasDefault: true;
66
+ isPrimaryKey: false;
67
+ isAutoincrement: false;
68
+ hasRuntimeDefault: false;
69
+ enumValues: [string, ...string[]];
70
+ baseColumn: never;
71
+ identity: undefined;
72
+ generated: undefined;
73
+ }, {}, {}>;
74
+ status: import("drizzle-orm/pg-core").PgColumn<{
75
+ name: "status";
76
+ tableName: "projects";
77
+ dataType: "string";
78
+ columnType: "PgText";
79
+ data: string;
80
+ driverParam: string;
81
+ notNull: true;
82
+ hasDefault: true;
83
+ isPrimaryKey: false;
84
+ isAutoincrement: false;
85
+ hasRuntimeDefault: false;
86
+ enumValues: [string, ...string[]];
87
+ baseColumn: never;
88
+ identity: undefined;
89
+ generated: undefined;
90
+ }, {}, {}>;
91
+ createdBy: import("drizzle-orm/pg-core").PgColumn<{
92
+ name: "created_by";
93
+ tableName: "projects";
94
+ dataType: "string";
95
+ columnType: "PgUUID";
96
+ data: string;
97
+ driverParam: string;
98
+ notNull: true;
99
+ hasDefault: false;
100
+ isPrimaryKey: false;
101
+ isAutoincrement: false;
102
+ hasRuntimeDefault: false;
103
+ enumValues: undefined;
104
+ baseColumn: never;
105
+ identity: undefined;
106
+ generated: undefined;
107
+ }, {}, {}>;
108
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
109
+ name: "created_at";
110
+ tableName: "projects";
111
+ dataType: "date";
112
+ columnType: "PgTimestamp";
113
+ data: Date;
114
+ driverParam: string;
115
+ notNull: true;
116
+ hasDefault: true;
117
+ isPrimaryKey: false;
118
+ isAutoincrement: false;
119
+ hasRuntimeDefault: false;
120
+ enumValues: undefined;
121
+ baseColumn: never;
122
+ identity: undefined;
123
+ generated: undefined;
124
+ }, {}, {}>;
125
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
126
+ name: "updated_at";
127
+ tableName: "projects";
128
+ dataType: "date";
129
+ columnType: "PgTimestamp";
130
+ data: Date;
131
+ driverParam: string;
132
+ notNull: true;
133
+ hasDefault: true;
134
+ isPrimaryKey: false;
135
+ isAutoincrement: false;
136
+ hasRuntimeDefault: false;
137
+ enumValues: undefined;
138
+ baseColumn: never;
139
+ identity: undefined;
140
+ generated: undefined;
141
+ }, {}, {}>;
142
+ archivedAt: import("drizzle-orm/pg-core").PgColumn<{
143
+ name: "archived_at";
144
+ tableName: "projects";
145
+ dataType: "date";
146
+ columnType: "PgTimestamp";
147
+ data: Date;
148
+ driverParam: string;
149
+ notNull: false;
150
+ hasDefault: false;
151
+ isPrimaryKey: false;
152
+ isAutoincrement: false;
153
+ hasRuntimeDefault: false;
154
+ enumValues: undefined;
155
+ baseColumn: never;
156
+ identity: undefined;
157
+ generated: undefined;
158
+ }, {}, {}>;
159
+ deletedAt: import("drizzle-orm/pg-core").PgColumn<{
160
+ name: "deleted_at";
161
+ tableName: "projects";
162
+ dataType: "date";
163
+ columnType: "PgTimestamp";
164
+ data: Date;
165
+ driverParam: string;
166
+ notNull: false;
167
+ hasDefault: false;
168
+ isPrimaryKey: false;
169
+ isAutoincrement: false;
170
+ hasRuntimeDefault: false;
171
+ enumValues: undefined;
172
+ baseColumn: never;
173
+ identity: undefined;
174
+ generated: undefined;
175
+ }, {}, {}>;
176
+ };
177
+ dialect: "pg";
178
+ }>;
179
+ export declare const tokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
180
+ name: "tokens";
181
+ schema: "ph_core";
182
+ columns: {
183
+ id: import("drizzle-orm/pg-core").PgColumn<{
184
+ name: "id";
185
+ tableName: "tokens";
186
+ dataType: "string";
187
+ columnType: "PgUUID";
188
+ data: string;
189
+ driverParam: string;
190
+ notNull: true;
191
+ hasDefault: true;
192
+ isPrimaryKey: true;
193
+ isAutoincrement: false;
194
+ hasRuntimeDefault: false;
195
+ enumValues: undefined;
196
+ baseColumn: never;
197
+ identity: undefined;
198
+ generated: undefined;
199
+ }, {}, {}>;
200
+ scope: import("drizzle-orm/pg-core").PgColumn<{
201
+ name: "scope";
202
+ tableName: "tokens";
203
+ dataType: "string";
204
+ columnType: "PgText";
205
+ data: string;
206
+ driverParam: string;
207
+ notNull: true;
208
+ hasDefault: false;
209
+ isPrimaryKey: false;
210
+ isAutoincrement: false;
211
+ hasRuntimeDefault: false;
212
+ enumValues: [string, ...string[]];
213
+ baseColumn: never;
214
+ identity: undefined;
215
+ generated: undefined;
216
+ }, {}, {}>;
217
+ projectId: import("drizzle-orm/pg-core").PgColumn<{
218
+ name: "project_id";
219
+ tableName: "tokens";
220
+ dataType: "string";
221
+ columnType: "PgUUID";
222
+ data: string;
223
+ driverParam: string;
224
+ notNull: false;
225
+ hasDefault: false;
226
+ isPrimaryKey: false;
227
+ isAutoincrement: false;
228
+ hasRuntimeDefault: false;
229
+ enumValues: undefined;
230
+ baseColumn: never;
231
+ identity: undefined;
232
+ generated: undefined;
233
+ }, {}, {}>;
234
+ connectorId: import("drizzle-orm/pg-core").PgColumn<{
235
+ name: "connector_id";
236
+ tableName: "tokens";
237
+ dataType: "string";
238
+ columnType: "PgUUID";
239
+ data: string;
240
+ driverParam: string;
241
+ notNull: false;
242
+ hasDefault: false;
243
+ isPrimaryKey: false;
244
+ isAutoincrement: false;
245
+ hasRuntimeDefault: false;
246
+ enumValues: undefined;
247
+ baseColumn: never;
248
+ identity: undefined;
249
+ generated: undefined;
250
+ }, {}, {}>;
251
+ name: import("drizzle-orm/pg-core").PgColumn<{
252
+ name: "name";
253
+ tableName: "tokens";
254
+ dataType: "string";
255
+ columnType: "PgText";
256
+ data: string;
257
+ driverParam: string;
258
+ notNull: true;
259
+ hasDefault: false;
260
+ isPrimaryKey: false;
261
+ isAutoincrement: false;
262
+ hasRuntimeDefault: false;
263
+ enumValues: [string, ...string[]];
264
+ baseColumn: never;
265
+ identity: undefined;
266
+ generated: undefined;
267
+ }, {}, {}>;
268
+ tokenHash: import("drizzle-orm/pg-core").PgColumn<{
269
+ name: "token_hash";
270
+ tableName: "tokens";
271
+ dataType: "string";
272
+ columnType: "PgText";
273
+ data: string;
274
+ driverParam: string;
275
+ notNull: true;
276
+ hasDefault: false;
277
+ isPrimaryKey: false;
278
+ isAutoincrement: false;
279
+ hasRuntimeDefault: false;
280
+ enumValues: [string, ...string[]];
281
+ baseColumn: never;
282
+ identity: undefined;
283
+ generated: undefined;
284
+ }, {}, {}>;
285
+ tokenEncrypted: import("drizzle-orm/pg-core").PgColumn<{
286
+ name: "token_encrypted";
287
+ tableName: "tokens";
288
+ dataType: "string";
289
+ columnType: "PgText";
290
+ data: string;
291
+ driverParam: string;
292
+ notNull: false;
293
+ hasDefault: false;
294
+ isPrimaryKey: false;
295
+ isAutoincrement: false;
296
+ hasRuntimeDefault: false;
297
+ enumValues: [string, ...string[]];
298
+ baseColumn: never;
299
+ identity: undefined;
300
+ generated: undefined;
301
+ }, {}, {}>;
302
+ prefix: import("drizzle-orm/pg-core").PgColumn<{
303
+ name: "prefix";
304
+ tableName: "tokens";
305
+ dataType: "string";
306
+ columnType: "PgText";
307
+ data: string;
308
+ driverParam: string;
309
+ notNull: true;
310
+ hasDefault: false;
311
+ isPrimaryKey: false;
312
+ isAutoincrement: false;
313
+ hasRuntimeDefault: false;
314
+ enumValues: [string, ...string[]];
315
+ baseColumn: never;
316
+ identity: undefined;
317
+ generated: undefined;
318
+ }, {}, {}>;
319
+ ipWhitelist: import("drizzle-orm/pg-core").PgColumn<{
320
+ name: "ip_whitelist";
321
+ tableName: "tokens";
322
+ dataType: "json";
323
+ columnType: "PgJsonb";
324
+ data: unknown;
325
+ driverParam: unknown;
326
+ notNull: false;
327
+ hasDefault: false;
328
+ isPrimaryKey: false;
329
+ isAutoincrement: false;
330
+ hasRuntimeDefault: false;
331
+ enumValues: undefined;
332
+ baseColumn: never;
333
+ identity: undefined;
334
+ generated: undefined;
335
+ }, {}, {}>;
336
+ lastUsedAt: import("drizzle-orm/pg-core").PgColumn<{
337
+ name: "last_used_at";
338
+ tableName: "tokens";
339
+ dataType: "date";
340
+ columnType: "PgTimestamp";
341
+ data: Date;
342
+ driverParam: string;
343
+ notNull: false;
344
+ hasDefault: false;
345
+ isPrimaryKey: false;
346
+ isAutoincrement: false;
347
+ hasRuntimeDefault: false;
348
+ enumValues: undefined;
349
+ baseColumn: never;
350
+ identity: undefined;
351
+ generated: undefined;
352
+ }, {}, {}>;
353
+ expiresAt: import("drizzle-orm/pg-core").PgColumn<{
354
+ name: "expires_at";
355
+ tableName: "tokens";
356
+ dataType: "date";
357
+ columnType: "PgTimestamp";
358
+ data: Date;
359
+ driverParam: string;
360
+ notNull: false;
361
+ hasDefault: false;
362
+ isPrimaryKey: false;
363
+ isAutoincrement: false;
364
+ hasRuntimeDefault: false;
365
+ enumValues: undefined;
366
+ baseColumn: never;
367
+ identity: undefined;
368
+ generated: undefined;
369
+ }, {}, {}>;
370
+ createdBy: import("drizzle-orm/pg-core").PgColumn<{
371
+ name: "created_by";
372
+ tableName: "tokens";
373
+ dataType: "string";
374
+ columnType: "PgUUID";
375
+ data: string;
376
+ driverParam: string;
377
+ notNull: true;
378
+ hasDefault: false;
379
+ isPrimaryKey: false;
380
+ isAutoincrement: false;
381
+ hasRuntimeDefault: false;
382
+ enumValues: undefined;
383
+ baseColumn: never;
384
+ identity: undefined;
385
+ generated: undefined;
386
+ }, {}, {}>;
387
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
388
+ name: "created_at";
389
+ tableName: "tokens";
390
+ dataType: "date";
391
+ columnType: "PgTimestamp";
392
+ data: Date;
393
+ driverParam: string;
394
+ notNull: true;
395
+ hasDefault: true;
396
+ isPrimaryKey: false;
397
+ isAutoincrement: false;
398
+ hasRuntimeDefault: false;
399
+ enumValues: undefined;
400
+ baseColumn: never;
401
+ identity: undefined;
402
+ generated: undefined;
403
+ }, {}, {}>;
404
+ revokedAt: import("drizzle-orm/pg-core").PgColumn<{
405
+ name: "revoked_at";
406
+ tableName: "tokens";
407
+ dataType: "date";
408
+ columnType: "PgTimestamp";
409
+ data: Date;
410
+ driverParam: string;
411
+ notNull: false;
412
+ hasDefault: false;
413
+ isPrimaryKey: false;
414
+ isAutoincrement: false;
415
+ hasRuntimeDefault: false;
416
+ enumValues: undefined;
417
+ baseColumn: never;
418
+ identity: undefined;
419
+ generated: undefined;
420
+ }, {}, {}>;
421
+ };
422
+ dialect: "pg";
423
+ }>;
424
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schema/ph_core/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,MAAM,mDAAsB,CAAC;AAE1C,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBpB,CAAC;AAQF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwClB,CAAC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ // ph_core — projects and application tokens
3
+ // See docs/specs/06-database-schema.md §3
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.tokens = exports.projects = exports.phCore = void 0;
6
+ const drizzle_orm_1 = require("drizzle-orm");
7
+ const pg_core_1 = require("drizzle-orm/pg-core");
8
+ exports.phCore = (0, pg_core_1.pgSchema)('ph_core');
9
+ exports.projects = exports.phCore.table('projects', {
10
+ id: (0, pg_core_1.uuid)('id')
11
+ .primaryKey()
12
+ .default((0, drizzle_orm_1.sql) `gen_random_uuid()`),
13
+ name: (0, pg_core_1.text)('name').notNull(),
14
+ description: (0, pg_core_1.text)('description'),
15
+ type: (0, pg_core_1.text)('type').notNull().default('classification'),
16
+ status: (0, pg_core_1.text)('status').notNull().default('active'),
17
+ createdBy: (0, pg_core_1.uuid)('created_by').notNull(),
18
+ createdAt: (0, pg_core_1.timestamp)('created_at', { withTimezone: true }).notNull().defaultNow(),
19
+ updatedAt: (0, pg_core_1.timestamp)('updated_at', { withTimezone: true }).notNull().defaultNow(),
20
+ archivedAt: (0, pg_core_1.timestamp)('archived_at', { withTimezone: true }),
21
+ deletedAt: (0, pg_core_1.timestamp)('deleted_at', { withTimezone: true }),
22
+ }, (t) => [
23
+ (0, pg_core_1.check)('projects_type_check', (0, drizzle_orm_1.sql) `${t.type} IN ('classification', 'generative', 'agent')`),
24
+ (0, pg_core_1.check)('projects_status_check', (0, drizzle_orm_1.sql) `${t.status} IN ('active', 'archived')`),
25
+ (0, pg_core_1.index)('idx_projects_active')
26
+ .on(t.status)
27
+ .where((0, drizzle_orm_1.sql) `${t.deletedAt} IS NULL`),
28
+ ]);
29
+ // Two credential kinds share `ph_core.tokens`:
30
+ // - scope='user' Local admin console user credential, usable for both HTTP API and MCP; project_id is always NULL in OSS
31
+ // - scope='webhook' per-connector inbound credential; project_id / connector_id required; lifecycle attached to the connector
32
+ // The `connector_id` foreign key constraint is appended in the migration via raw SQL (FK pointing to ph_assets.connectors.id);
33
+ // not declared via .references() here, to avoid a circular import with ph_assets/index.ts.
34
+ // See docs/specs/06-database-schema.md §3.2 and docs/specs/08-saas-adapter-boundary.md §3.4.
35
+ exports.tokens = exports.phCore.table('tokens', {
36
+ id: (0, pg_core_1.uuid)('id')
37
+ .primaryKey()
38
+ .default((0, drizzle_orm_1.sql) `gen_random_uuid()`),
39
+ scope: (0, pg_core_1.text)('scope').notNull(),
40
+ projectId: (0, pg_core_1.uuid)('project_id').references(() => exports.projects.id, { onDelete: 'cascade' }),
41
+ connectorId: (0, pg_core_1.uuid)('connector_id'),
42
+ name: (0, pg_core_1.text)('name').notNull(),
43
+ tokenHash: (0, pg_core_1.text)('token_hash').notNull().unique(),
44
+ tokenEncrypted: (0, pg_core_1.text)('token_encrypted'),
45
+ prefix: (0, pg_core_1.text)('prefix').notNull(),
46
+ ipWhitelist: (0, pg_core_1.jsonb)('ip_whitelist'),
47
+ lastUsedAt: (0, pg_core_1.timestamp)('last_used_at', { withTimezone: true }),
48
+ expiresAt: (0, pg_core_1.timestamp)('expires_at', { withTimezone: true }),
49
+ createdBy: (0, pg_core_1.uuid)('created_by').notNull(),
50
+ createdAt: (0, pg_core_1.timestamp)('created_at', { withTimezone: true }).notNull().defaultNow(),
51
+ revokedAt: (0, pg_core_1.timestamp)('revoked_at', { withTimezone: true }),
52
+ }, (t) => [
53
+ (0, pg_core_1.check)('tokens_scope_check', (0, drizzle_orm_1.sql) `${t.scope} IN ('user', 'webhook')`),
54
+ (0, pg_core_1.check)('tokens_name_length_check', (0, drizzle_orm_1.sql) `char_length(${t.name}) <= 64`),
55
+ (0, pg_core_1.check)('tokens_scope_fields_check', (0, drizzle_orm_1.sql) `(
56
+ (${t.scope} = 'user' AND ${t.connectorId} IS NULL) OR
57
+ (${t.scope} = 'webhook' AND ${t.projectId} IS NOT NULL AND ${t.connectorId} IS NOT NULL)
58
+ )`),
59
+ (0, pg_core_1.index)('idx_tokens_project')
60
+ .on(t.projectId)
61
+ .where((0, drizzle_orm_1.sql) `${t.revokedAt} IS NULL`),
62
+ (0, pg_core_1.index)('idx_tokens_active')
63
+ .on(t.scope)
64
+ .where((0, drizzle_orm_1.sql) `${t.revokedAt} IS NULL`),
65
+ (0, pg_core_1.index)('idx_tokens_connector')
66
+ .on(t.connectorId)
67
+ .where((0, drizzle_orm_1.sql) `${t.scope} = 'webhook' AND ${t.revokedAt} IS NULL`),
68
+ ]);
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/ph_core/index.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,0CAA0C;;;AAE1C,6CAAkC;AAClC,iDAA2F;AAE9E,QAAA,MAAM,GAAG,IAAA,kBAAQ,EAAC,SAAS,CAAC,CAAC;AAE7B,QAAA,QAAQ,GAAG,cAAM,CAAC,KAAK,CAClC,UAAU,EACV;IACE,EAAE,EAAE,IAAA,cAAI,EAAC,IAAI,CAAC;SACX,UAAU,EAAE;SACZ,OAAO,CAAC,IAAA,iBAAG,EAAA,mBAAmB,CAAC;IAClC,IAAI,EAAE,IAAA,cAAI,EAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,WAAW,EAAE,IAAA,cAAI,EAAC,aAAa,CAAC;IAChC,IAAI,EAAE,IAAA,cAAI,EAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACtD,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IAClD,SAAS,EAAE,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,SAAS,EAAE,IAAA,mBAAS,EAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,IAAA,mBAAS,EAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,UAAU,EAAE,IAAA,mBAAS,EAAC,aAAa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC5D,SAAS,EAAE,IAAA,mBAAS,EAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;CAC3D,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,IAAA,eAAK,EAAC,qBAAqB,EAAE,IAAA,iBAAG,EAAA,GAAG,CAAC,CAAC,IAAI,+CAA+C,CAAC;IACzF,IAAA,eAAK,EAAC,uBAAuB,EAAE,IAAA,iBAAG,EAAA,GAAG,CAAC,CAAC,MAAM,4BAA4B,CAAC;IAC1E,IAAA,eAAK,EAAC,qBAAqB,CAAC;SACzB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACZ,KAAK,CAAC,IAAA,iBAAG,EAAA,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC;CACtC,CACF,CAAC;AAEF,+CAA+C;AAC/C,8HAA8H;AAC9H,gIAAgI;AAChI,+HAA+H;AAC/H,2FAA2F;AAC3F,6FAA6F;AAChF,QAAA,MAAM,GAAG,cAAM,CAAC,KAAK,CAChC,QAAQ,EACR;IACE,EAAE,EAAE,IAAA,cAAI,EAAC,IAAI,CAAC;SACX,UAAU,EAAE;SACZ,OAAO,CAAC,IAAA,iBAAG,EAAA,mBAAmB,CAAC;IAClC,KAAK,EAAE,IAAA,cAAI,EAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,SAAS,EAAE,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACpF,WAAW,EAAE,IAAA,cAAI,EAAC,cAAc,CAAC;IACjC,IAAI,EAAE,IAAA,cAAI,EAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,SAAS,EAAE,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE;IAChD,cAAc,EAAE,IAAA,cAAI,EAAC,iBAAiB,CAAC;IACvC,MAAM,EAAE,IAAA,cAAI,EAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IAChC,WAAW,EAAE,IAAA,eAAK,EAAC,cAAc,CAAC;IAClC,UAAU,EAAE,IAAA,mBAAS,EAAC,cAAc,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC7D,SAAS,EAAE,IAAA,mBAAS,EAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAC1D,SAAS,EAAE,IAAA,cAAI,EAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACvC,SAAS,EAAE,IAAA,mBAAS,EAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;IACjF,SAAS,EAAE,IAAA,mBAAS,EAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;CAC3D,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,IAAA,eAAK,EAAC,oBAAoB,EAAE,IAAA,iBAAG,EAAA,GAAG,CAAC,CAAC,KAAK,yBAAyB,CAAC;IACnE,IAAA,eAAK,EAAC,0BAA0B,EAAE,IAAA,iBAAG,EAAA,eAAe,CAAC,CAAC,IAAI,SAAS,CAAC;IACpE,IAAA,eAAK,EACH,2BAA2B,EAC3B,IAAA,iBAAG,EAAA;WACE,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,WAAW;WACxC,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,WAAW;QAC1E,CACH;IACD,IAAA,eAAK,EAAC,oBAAoB,CAAC;SACxB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;SACf,KAAK,CAAC,IAAA,iBAAG,EAAA,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC;IACrC,IAAA,eAAK,EAAC,mBAAmB,CAAC;SACvB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACX,KAAK,CAAC,IAAA,iBAAG,EAAA,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC;IACrC,IAAA,eAAK,EAAC,sBAAsB,CAAC;SAC1B,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;SACjB,KAAK,CAAC,IAAA,iBAAG,EAAA,GAAG,CAAC,CAAC,KAAK,oBAAoB,CAAC,CAAC,SAAS,UAAU,CAAC;CACjE,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const phReleases: import("drizzle-orm/pg-core").PgSchema<"ph_releases">;
2
+ //# sourceMappingURL=_schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_schema.d.ts","sourceRoot":"","sources":["../../../src/schema/ph_releases/_schema.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU,uDAA0B,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ // ph_releases — shared schema object
3
+ // The same phReleases instance is imported by multiple table files under this schema, to avoid repeated pgSchema calls
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.phReleases = void 0;
6
+ const pg_core_1 = require("drizzle-orm/pg-core");
7
+ exports.phReleases = (0, pg_core_1.pgSchema)('ph_releases');
8
+ //# sourceMappingURL=_schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_schema.js","sourceRoot":"","sources":["../../../src/schema/ph_releases/_schema.ts"],"names":[],"mappings":";AAAA,qCAAqC;AACrC,uHAAuH;;;AAEvH,iDAA+C;AAElC,QAAA,UAAU,GAAG,IAAA,kBAAQ,EAAC,aAAa,CAAC,CAAC"}