@nodii/telemetry 0.1.1 → 0.3.1

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.
@@ -0,0 +1,884 @@
1
+ import { AUDIT_ACTOR_KINDS, AUDIT_OUTCOMES, type ActorKind, type AuditOutcome } from "../audit-types";
2
+ export { AUDIT_ACTOR_KINDS, AUDIT_OUTCOMES };
3
+ export type { ActorKind, AuditOutcome };
4
+ /**
5
+ * `CREATE TYPE` DDL for the global `audit_actor_kind` enum. Run once per DB
6
+ * during service bootstrap before any `<svc>_audit_event` table is created.
7
+ * Wrapped in a `DO` block to be idempotent (Postgres lacks `CREATE TYPE IF
8
+ * NOT EXISTS`).
9
+ */
10
+ export declare const AUDIT_ACTOR_KIND_ENUM_DDL: string;
11
+ /**
12
+ * `CREATE TYPE` DDL for the global `audit_outcome` enum. Run once per DB.
13
+ */
14
+ export declare const AUDIT_OUTCOME_ENUM_DDL: string;
15
+ /** Drizzle handle for the shared `audit_actor_kind` enum. */
16
+ export declare const auditActorKindEnum: import("drizzle-orm/pg-core").PgEnum<["employee_user", "tenant_user", "tenant_customer", "service", "worker", "webhook_provider", "external_system", "agent", "system", "unknown"]>;
17
+ /** Drizzle handle for the shared `audit_outcome` enum. */
18
+ export declare const auditOutcomeEnum: import("drizzle-orm/pg-core").PgEnum<["success", "failure", "partial", "queued", "dry_run", "denied_by_authz", "denied_by_mfa"]>;
19
+ /**
20
+ * Build the canonical `<serviceName>_audit_event` Drizzle table per
21
+ * `02-audit-doctrine.md § 3`. Column order, types, and nullability match the
22
+ * doctrine 1:1. `tenant_id` FK is `ON DELETE RESTRICT` per § 3.1 — the
23
+ * tenants table is never row-deleted.
24
+ *
25
+ * Indexes (§ 3 lines 156-167) are declared inline via the pgTable extras
26
+ * callback so Drizzle owns column→index attachment. Consumers receive the
27
+ * canonical 8 indexes on the returned table; if a service wants additional
28
+ * service-specific indexes they layer them on top after this call.
29
+ */
30
+ export declare function makeAuditEventTable<const Name extends string>(serviceName: Name): import("drizzle-orm/pg-core").PgTableWithColumns<{
31
+ name: `${Name}_audit_event`;
32
+ schema: undefined;
33
+ columns: {
34
+ id: import("drizzle-orm/pg-core").PgColumn<{
35
+ name: "id";
36
+ tableName: `${Name}_audit_event`;
37
+ dataType: "string";
38
+ columnType: "PgUUID";
39
+ data: string;
40
+ driverParam: string;
41
+ notNull: true;
42
+ hasDefault: true;
43
+ isPrimaryKey: true;
44
+ isAutoincrement: false;
45
+ hasRuntimeDefault: false;
46
+ enumValues: undefined;
47
+ baseColumn: never;
48
+ identity: undefined;
49
+ generated: undefined;
50
+ }, {}, {}>;
51
+ tenantId: import("drizzle-orm/pg-core").PgColumn<{
52
+ name: "tenant_id";
53
+ tableName: `${Name}_audit_event`;
54
+ dataType: "string";
55
+ columnType: "PgUUID";
56
+ data: string;
57
+ driverParam: string;
58
+ notNull: true;
59
+ hasDefault: false;
60
+ isPrimaryKey: false;
61
+ isAutoincrement: false;
62
+ hasRuntimeDefault: false;
63
+ enumValues: undefined;
64
+ baseColumn: never;
65
+ identity: undefined;
66
+ generated: undefined;
67
+ }, {}, {}>;
68
+ at: import("drizzle-orm/pg-core").PgColumn<{
69
+ name: "at";
70
+ tableName: `${Name}_audit_event`;
71
+ dataType: "date";
72
+ columnType: "PgTimestamp";
73
+ data: Date;
74
+ driverParam: string;
75
+ notNull: true;
76
+ hasDefault: true;
77
+ isPrimaryKey: false;
78
+ isAutoincrement: false;
79
+ hasRuntimeDefault: false;
80
+ enumValues: undefined;
81
+ baseColumn: never;
82
+ identity: undefined;
83
+ generated: undefined;
84
+ }, {}, {}>;
85
+ actorKind: import("drizzle-orm/pg-core").PgColumn<{
86
+ name: "actor_kind";
87
+ tableName: `${Name}_audit_event`;
88
+ dataType: "string";
89
+ columnType: "PgEnumColumn";
90
+ data: "agent" | "system" | "service" | "employee_user" | "tenant_user" | "tenant_customer" | "worker" | "webhook_provider" | "external_system" | "unknown";
91
+ driverParam: string;
92
+ notNull: true;
93
+ hasDefault: false;
94
+ isPrimaryKey: false;
95
+ isAutoincrement: false;
96
+ hasRuntimeDefault: false;
97
+ enumValues: ["employee_user", "tenant_user", "tenant_customer", "service", "worker", "webhook_provider", "external_system", "agent", "system", "unknown"];
98
+ baseColumn: never;
99
+ identity: undefined;
100
+ generated: undefined;
101
+ }, {}, {}>;
102
+ actorId: import("drizzle-orm/pg-core").PgColumn<{
103
+ name: "actor_id";
104
+ tableName: `${Name}_audit_event`;
105
+ dataType: "string";
106
+ columnType: "PgText";
107
+ data: string;
108
+ driverParam: string;
109
+ notNull: false;
110
+ hasDefault: false;
111
+ isPrimaryKey: false;
112
+ isAutoincrement: false;
113
+ hasRuntimeDefault: false;
114
+ enumValues: [string, ...string[]];
115
+ baseColumn: never;
116
+ identity: undefined;
117
+ generated: undefined;
118
+ }, {}, {}>;
119
+ actorExternalId: import("drizzle-orm/pg-core").PgColumn<{
120
+ name: "actor_external_id";
121
+ tableName: `${Name}_audit_event`;
122
+ dataType: "string";
123
+ columnType: "PgText";
124
+ data: string;
125
+ driverParam: string;
126
+ notNull: false;
127
+ hasDefault: false;
128
+ isPrimaryKey: false;
129
+ isAutoincrement: false;
130
+ hasRuntimeDefault: false;
131
+ enumValues: [string, ...string[]];
132
+ baseColumn: never;
133
+ identity: undefined;
134
+ generated: undefined;
135
+ }, {}, {}>;
136
+ actorDisplay: import("drizzle-orm/pg-core").PgColumn<{
137
+ name: "actor_display";
138
+ tableName: `${Name}_audit_event`;
139
+ dataType: "string";
140
+ columnType: "PgText";
141
+ data: string;
142
+ driverParam: string;
143
+ notNull: false;
144
+ hasDefault: false;
145
+ isPrimaryKey: false;
146
+ isAutoincrement: false;
147
+ hasRuntimeDefault: false;
148
+ enumValues: [string, ...string[]];
149
+ baseColumn: never;
150
+ identity: undefined;
151
+ generated: undefined;
152
+ }, {}, {}>;
153
+ actorIp: import("drizzle-orm/pg-core").PgColumn<{
154
+ name: "actor_ip";
155
+ tableName: `${Name}_audit_event`;
156
+ dataType: "string";
157
+ columnType: "PgInet";
158
+ data: string;
159
+ driverParam: string;
160
+ notNull: false;
161
+ hasDefault: false;
162
+ isPrimaryKey: false;
163
+ isAutoincrement: false;
164
+ hasRuntimeDefault: false;
165
+ enumValues: undefined;
166
+ baseColumn: never;
167
+ identity: undefined;
168
+ generated: undefined;
169
+ }, {}, {}>;
170
+ actorUserAgent: import("drizzle-orm/pg-core").PgColumn<{
171
+ name: "actor_user_agent";
172
+ tableName: `${Name}_audit_event`;
173
+ dataType: "string";
174
+ columnType: "PgText";
175
+ data: string;
176
+ driverParam: string;
177
+ notNull: false;
178
+ hasDefault: false;
179
+ isPrimaryKey: false;
180
+ isAutoincrement: false;
181
+ hasRuntimeDefault: false;
182
+ enumValues: [string, ...string[]];
183
+ baseColumn: never;
184
+ identity: undefined;
185
+ generated: undefined;
186
+ }, {}, {}>;
187
+ actor: import("drizzle-orm/pg-core").PgColumn<{
188
+ name: "actor";
189
+ tableName: `${Name}_audit_event`;
190
+ dataType: "json";
191
+ columnType: "PgJsonb";
192
+ data: Record<string, unknown> | null;
193
+ driverParam: unknown;
194
+ notNull: false;
195
+ hasDefault: false;
196
+ isPrimaryKey: false;
197
+ isAutoincrement: false;
198
+ hasRuntimeDefault: false;
199
+ enumValues: undefined;
200
+ baseColumn: never;
201
+ identity: undefined;
202
+ generated: undefined;
203
+ }, {}, {}>;
204
+ action: import("drizzle-orm/pg-core").PgColumn<{
205
+ name: "action";
206
+ tableName: `${Name}_audit_event`;
207
+ dataType: "string";
208
+ columnType: "PgText";
209
+ data: string;
210
+ driverParam: string;
211
+ notNull: true;
212
+ hasDefault: false;
213
+ isPrimaryKey: false;
214
+ isAutoincrement: false;
215
+ hasRuntimeDefault: false;
216
+ enumValues: [string, ...string[]];
217
+ baseColumn: never;
218
+ identity: undefined;
219
+ generated: undefined;
220
+ }, {}, {}>;
221
+ resourceType: import("drizzle-orm/pg-core").PgColumn<{
222
+ name: "resource_type";
223
+ tableName: `${Name}_audit_event`;
224
+ dataType: "string";
225
+ columnType: "PgText";
226
+ data: string;
227
+ driverParam: string;
228
+ notNull: true;
229
+ hasDefault: false;
230
+ isPrimaryKey: false;
231
+ isAutoincrement: false;
232
+ hasRuntimeDefault: false;
233
+ enumValues: [string, ...string[]];
234
+ baseColumn: never;
235
+ identity: undefined;
236
+ generated: undefined;
237
+ }, {}, {}>;
238
+ resourceId: import("drizzle-orm/pg-core").PgColumn<{
239
+ name: "resource_id";
240
+ tableName: `${Name}_audit_event`;
241
+ dataType: "string";
242
+ columnType: "PgText";
243
+ data: string;
244
+ driverParam: string;
245
+ notNull: false;
246
+ hasDefault: false;
247
+ isPrimaryKey: false;
248
+ isAutoincrement: false;
249
+ hasRuntimeDefault: false;
250
+ enumValues: [string, ...string[]];
251
+ baseColumn: never;
252
+ identity: undefined;
253
+ generated: undefined;
254
+ }, {}, {}>;
255
+ resourceLabel: import("drizzle-orm/pg-core").PgColumn<{
256
+ name: "resource_label";
257
+ tableName: `${Name}_audit_event`;
258
+ dataType: "string";
259
+ columnType: "PgText";
260
+ data: string;
261
+ driverParam: string;
262
+ notNull: false;
263
+ hasDefault: false;
264
+ isPrimaryKey: false;
265
+ isAutoincrement: false;
266
+ hasRuntimeDefault: false;
267
+ enumValues: [string, ...string[]];
268
+ baseColumn: never;
269
+ identity: undefined;
270
+ generated: undefined;
271
+ }, {}, {}>;
272
+ secondaryResourceType: import("drizzle-orm/pg-core").PgColumn<{
273
+ name: "secondary_resource_type";
274
+ tableName: `${Name}_audit_event`;
275
+ dataType: "string";
276
+ columnType: "PgText";
277
+ data: string;
278
+ driverParam: string;
279
+ notNull: false;
280
+ hasDefault: false;
281
+ isPrimaryKey: false;
282
+ isAutoincrement: false;
283
+ hasRuntimeDefault: false;
284
+ enumValues: [string, ...string[]];
285
+ baseColumn: never;
286
+ identity: undefined;
287
+ generated: undefined;
288
+ }, {}, {}>;
289
+ secondaryResourceId: import("drizzle-orm/pg-core").PgColumn<{
290
+ name: "secondary_resource_id";
291
+ tableName: `${Name}_audit_event`;
292
+ dataType: "string";
293
+ columnType: "PgText";
294
+ data: string;
295
+ driverParam: string;
296
+ notNull: false;
297
+ hasDefault: false;
298
+ isPrimaryKey: false;
299
+ isAutoincrement: false;
300
+ hasRuntimeDefault: false;
301
+ enumValues: [string, ...string[]];
302
+ baseColumn: never;
303
+ identity: undefined;
304
+ generated: undefined;
305
+ }, {}, {}>;
306
+ outcome: import("drizzle-orm/pg-core").PgColumn<{
307
+ name: "outcome";
308
+ tableName: `${Name}_audit_event`;
309
+ dataType: "string";
310
+ columnType: "PgEnumColumn";
311
+ data: "success" | "failure" | "partial" | "queued" | "dry_run" | "denied_by_authz" | "denied_by_mfa";
312
+ driverParam: string;
313
+ notNull: true;
314
+ hasDefault: true;
315
+ isPrimaryKey: false;
316
+ isAutoincrement: false;
317
+ hasRuntimeDefault: false;
318
+ enumValues: ["success", "failure", "partial", "queued", "dry_run", "denied_by_authz", "denied_by_mfa"];
319
+ baseColumn: never;
320
+ identity: undefined;
321
+ generated: undefined;
322
+ }, {}, {}>;
323
+ httpStatus: import("drizzle-orm/pg-core").PgColumn<{
324
+ name: "http_status";
325
+ tableName: `${Name}_audit_event`;
326
+ dataType: "number";
327
+ columnType: "PgInteger";
328
+ data: number;
329
+ driverParam: string | number;
330
+ notNull: false;
331
+ hasDefault: false;
332
+ isPrimaryKey: false;
333
+ isAutoincrement: false;
334
+ hasRuntimeDefault: false;
335
+ enumValues: undefined;
336
+ baseColumn: never;
337
+ identity: undefined;
338
+ generated: undefined;
339
+ }, {}, {}>;
340
+ grpcCode: import("drizzle-orm/pg-core").PgColumn<{
341
+ name: "grpc_code";
342
+ tableName: `${Name}_audit_event`;
343
+ dataType: "string";
344
+ columnType: "PgText";
345
+ data: string;
346
+ driverParam: string;
347
+ notNull: false;
348
+ hasDefault: false;
349
+ isPrimaryKey: false;
350
+ isAutoincrement: false;
351
+ hasRuntimeDefault: false;
352
+ enumValues: [string, ...string[]];
353
+ baseColumn: never;
354
+ identity: undefined;
355
+ generated: undefined;
356
+ }, {}, {}>;
357
+ errorCode: import("drizzle-orm/pg-core").PgColumn<{
358
+ name: "error_code";
359
+ tableName: `${Name}_audit_event`;
360
+ dataType: "string";
361
+ columnType: "PgText";
362
+ data: string;
363
+ driverParam: string;
364
+ notNull: false;
365
+ hasDefault: false;
366
+ isPrimaryKey: false;
367
+ isAutoincrement: false;
368
+ hasRuntimeDefault: false;
369
+ enumValues: [string, ...string[]];
370
+ baseColumn: never;
371
+ identity: undefined;
372
+ generated: undefined;
373
+ }, {}, {}>;
374
+ errorMessage: import("drizzle-orm/pg-core").PgColumn<{
375
+ name: "error_message";
376
+ tableName: `${Name}_audit_event`;
377
+ dataType: "string";
378
+ columnType: "PgText";
379
+ data: string;
380
+ driverParam: string;
381
+ notNull: false;
382
+ hasDefault: false;
383
+ isPrimaryKey: false;
384
+ isAutoincrement: false;
385
+ hasRuntimeDefault: false;
386
+ enumValues: [string, ...string[]];
387
+ baseColumn: never;
388
+ identity: undefined;
389
+ generated: undefined;
390
+ }, {}, {}>;
391
+ errorDetails: import("drizzle-orm/pg-core").PgColumn<{
392
+ name: "error_details";
393
+ tableName: `${Name}_audit_event`;
394
+ dataType: "json";
395
+ columnType: "PgJsonb";
396
+ data: Record<string, unknown> | null;
397
+ driverParam: unknown;
398
+ notNull: false;
399
+ hasDefault: false;
400
+ isPrimaryKey: false;
401
+ isAutoincrement: false;
402
+ hasRuntimeDefault: false;
403
+ enumValues: undefined;
404
+ baseColumn: never;
405
+ identity: undefined;
406
+ generated: undefined;
407
+ }, {}, {}>;
408
+ before: import("drizzle-orm/pg-core").PgColumn<{
409
+ name: "before";
410
+ tableName: `${Name}_audit_event`;
411
+ dataType: "json";
412
+ columnType: "PgJsonb";
413
+ data: Record<string, unknown> | null;
414
+ driverParam: unknown;
415
+ notNull: false;
416
+ hasDefault: false;
417
+ isPrimaryKey: false;
418
+ isAutoincrement: false;
419
+ hasRuntimeDefault: false;
420
+ enumValues: undefined;
421
+ baseColumn: never;
422
+ identity: undefined;
423
+ generated: undefined;
424
+ }, {}, {}>;
425
+ after: import("drizzle-orm/pg-core").PgColumn<{
426
+ name: "after";
427
+ tableName: `${Name}_audit_event`;
428
+ dataType: "json";
429
+ columnType: "PgJsonb";
430
+ data: Record<string, unknown> | null;
431
+ driverParam: unknown;
432
+ notNull: false;
433
+ hasDefault: false;
434
+ isPrimaryKey: false;
435
+ isAutoincrement: false;
436
+ hasRuntimeDefault: false;
437
+ enumValues: undefined;
438
+ baseColumn: never;
439
+ identity: undefined;
440
+ generated: undefined;
441
+ }, {}, {}>;
442
+ patch: import("drizzle-orm/pg-core").PgColumn<{
443
+ name: "patch";
444
+ tableName: `${Name}_audit_event`;
445
+ dataType: "json";
446
+ columnType: "PgJsonb";
447
+ data: Record<string, unknown> | null;
448
+ driverParam: unknown;
449
+ notNull: false;
450
+ hasDefault: false;
451
+ isPrimaryKey: false;
452
+ isAutoincrement: false;
453
+ hasRuntimeDefault: false;
454
+ enumValues: undefined;
455
+ baseColumn: never;
456
+ identity: undefined;
457
+ generated: undefined;
458
+ }, {}, {}>;
459
+ changedFields: import("drizzle-orm/pg-core").PgColumn<{
460
+ name: "changed_fields";
461
+ tableName: `${Name}_audit_event`;
462
+ dataType: "array";
463
+ columnType: "PgArray";
464
+ data: string[];
465
+ driverParam: string | string[];
466
+ notNull: false;
467
+ hasDefault: false;
468
+ isPrimaryKey: false;
469
+ isAutoincrement: false;
470
+ hasRuntimeDefault: false;
471
+ enumValues: [string, ...string[]];
472
+ baseColumn: import("drizzle-orm").Column<{
473
+ name: "changed_fields";
474
+ tableName: `${Name}_audit_event`;
475
+ dataType: "string";
476
+ columnType: "PgText";
477
+ data: string;
478
+ driverParam: string;
479
+ notNull: false;
480
+ hasDefault: false;
481
+ isPrimaryKey: false;
482
+ isAutoincrement: false;
483
+ hasRuntimeDefault: false;
484
+ enumValues: [string, ...string[]];
485
+ baseColumn: never;
486
+ identity: undefined;
487
+ generated: undefined;
488
+ }, object, object>;
489
+ identity: undefined;
490
+ generated: undefined;
491
+ }, {}, {}>;
492
+ reasonCode: import("drizzle-orm/pg-core").PgColumn<{
493
+ name: "reason_code";
494
+ tableName: `${Name}_audit_event`;
495
+ dataType: "string";
496
+ columnType: "PgText";
497
+ data: string;
498
+ driverParam: string;
499
+ notNull: false;
500
+ hasDefault: false;
501
+ isPrimaryKey: false;
502
+ isAutoincrement: false;
503
+ hasRuntimeDefault: false;
504
+ enumValues: [string, ...string[]];
505
+ baseColumn: never;
506
+ identity: undefined;
507
+ generated: undefined;
508
+ }, {}, {}>;
509
+ reasonText: import("drizzle-orm/pg-core").PgColumn<{
510
+ name: "reason_text";
511
+ tableName: `${Name}_audit_event`;
512
+ dataType: "string";
513
+ columnType: "PgText";
514
+ data: string;
515
+ driverParam: string;
516
+ notNull: false;
517
+ hasDefault: false;
518
+ isPrimaryKey: false;
519
+ isAutoincrement: false;
520
+ hasRuntimeDefault: false;
521
+ enumValues: [string, ...string[]];
522
+ baseColumn: never;
523
+ identity: undefined;
524
+ generated: undefined;
525
+ }, {}, {}>;
526
+ requestId: import("drizzle-orm/pg-core").PgColumn<{
527
+ name: "request_id";
528
+ tableName: `${Name}_audit_event`;
529
+ dataType: "string";
530
+ columnType: "PgText";
531
+ data: string;
532
+ driverParam: string;
533
+ notNull: false;
534
+ hasDefault: false;
535
+ isPrimaryKey: false;
536
+ isAutoincrement: false;
537
+ hasRuntimeDefault: false;
538
+ enumValues: [string, ...string[]];
539
+ baseColumn: never;
540
+ identity: undefined;
541
+ generated: undefined;
542
+ }, {}, {}>;
543
+ correlationId: import("drizzle-orm/pg-core").PgColumn<{
544
+ name: "correlation_id";
545
+ tableName: `${Name}_audit_event`;
546
+ dataType: "string";
547
+ columnType: "PgText";
548
+ data: string;
549
+ driverParam: string;
550
+ notNull: false;
551
+ hasDefault: false;
552
+ isPrimaryKey: false;
553
+ isAutoincrement: false;
554
+ hasRuntimeDefault: false;
555
+ enumValues: [string, ...string[]];
556
+ baseColumn: never;
557
+ identity: undefined;
558
+ generated: undefined;
559
+ }, {}, {}>;
560
+ traceId: import("drizzle-orm/pg-core").PgColumn<{
561
+ name: "trace_id";
562
+ tableName: `${Name}_audit_event`;
563
+ dataType: "string";
564
+ columnType: "PgText";
565
+ data: string;
566
+ driverParam: string;
567
+ notNull: false;
568
+ hasDefault: false;
569
+ isPrimaryKey: false;
570
+ isAutoincrement: false;
571
+ hasRuntimeDefault: false;
572
+ enumValues: [string, ...string[]];
573
+ baseColumn: never;
574
+ identity: undefined;
575
+ generated: undefined;
576
+ }, {}, {}>;
577
+ spanId: import("drizzle-orm/pg-core").PgColumn<{
578
+ name: "span_id";
579
+ tableName: `${Name}_audit_event`;
580
+ dataType: "string";
581
+ columnType: "PgText";
582
+ data: string;
583
+ driverParam: string;
584
+ notNull: false;
585
+ hasDefault: false;
586
+ isPrimaryKey: false;
587
+ isAutoincrement: false;
588
+ hasRuntimeDefault: false;
589
+ enumValues: [string, ...string[]];
590
+ baseColumn: never;
591
+ identity: undefined;
592
+ generated: undefined;
593
+ }, {}, {}>;
594
+ intentId: import("drizzle-orm/pg-core").PgColumn<{
595
+ name: "intent_id";
596
+ tableName: `${Name}_audit_event`;
597
+ dataType: "string";
598
+ columnType: "PgUUID";
599
+ data: string;
600
+ driverParam: string;
601
+ notNull: false;
602
+ hasDefault: false;
603
+ isPrimaryKey: false;
604
+ isAutoincrement: false;
605
+ hasRuntimeDefault: false;
606
+ enumValues: undefined;
607
+ baseColumn: never;
608
+ identity: undefined;
609
+ generated: undefined;
610
+ }, {}, {}>;
611
+ sagaId: import("drizzle-orm/pg-core").PgColumn<{
612
+ name: "saga_id";
613
+ tableName: `${Name}_audit_event`;
614
+ dataType: "string";
615
+ columnType: "PgText";
616
+ data: string;
617
+ driverParam: string;
618
+ notNull: false;
619
+ hasDefault: false;
620
+ isPrimaryKey: false;
621
+ isAutoincrement: false;
622
+ hasRuntimeDefault: false;
623
+ enumValues: [string, ...string[]];
624
+ baseColumn: never;
625
+ identity: undefined;
626
+ generated: undefined;
627
+ }, {}, {}>;
628
+ stepId: import("drizzle-orm/pg-core").PgColumn<{
629
+ name: "step_id";
630
+ tableName: `${Name}_audit_event`;
631
+ dataType: "string";
632
+ columnType: "PgText";
633
+ data: string;
634
+ driverParam: string;
635
+ notNull: false;
636
+ hasDefault: false;
637
+ isPrimaryKey: false;
638
+ isAutoincrement: false;
639
+ hasRuntimeDefault: false;
640
+ enumValues: [string, ...string[]];
641
+ baseColumn: never;
642
+ identity: undefined;
643
+ generated: undefined;
644
+ }, {}, {}>;
645
+ idempotencyKey: import("drizzle-orm/pg-core").PgColumn<{
646
+ name: "idempotency_key";
647
+ tableName: `${Name}_audit_event`;
648
+ dataType: "string";
649
+ columnType: "PgText";
650
+ data: string;
651
+ driverParam: string;
652
+ notNull: false;
653
+ hasDefault: false;
654
+ isPrimaryKey: false;
655
+ isAutoincrement: false;
656
+ hasRuntimeDefault: false;
657
+ enumValues: [string, ...string[]];
658
+ baseColumn: never;
659
+ identity: undefined;
660
+ generated: undefined;
661
+ }, {}, {}>;
662
+ queueName: import("drizzle-orm/pg-core").PgColumn<{
663
+ name: "queue_name";
664
+ tableName: `${Name}_audit_event`;
665
+ dataType: "string";
666
+ columnType: "PgText";
667
+ data: string;
668
+ driverParam: string;
669
+ notNull: false;
670
+ hasDefault: false;
671
+ isPrimaryKey: false;
672
+ isAutoincrement: false;
673
+ hasRuntimeDefault: false;
674
+ enumValues: [string, ...string[]];
675
+ baseColumn: never;
676
+ identity: undefined;
677
+ generated: undefined;
678
+ }, {}, {}>;
679
+ jobId: import("drizzle-orm/pg-core").PgColumn<{
680
+ name: "job_id";
681
+ tableName: `${Name}_audit_event`;
682
+ dataType: "string";
683
+ columnType: "PgText";
684
+ data: string;
685
+ driverParam: string;
686
+ notNull: false;
687
+ hasDefault: false;
688
+ isPrimaryKey: false;
689
+ isAutoincrement: false;
690
+ hasRuntimeDefault: false;
691
+ enumValues: [string, ...string[]];
692
+ baseColumn: never;
693
+ identity: undefined;
694
+ generated: undefined;
695
+ }, {}, {}>;
696
+ parentAuditEventId: import("drizzle-orm/pg-core").PgColumn<{
697
+ name: "parent_audit_event_id";
698
+ tableName: `${Name}_audit_event`;
699
+ dataType: "string";
700
+ columnType: "PgUUID";
701
+ data: string;
702
+ driverParam: string;
703
+ notNull: false;
704
+ hasDefault: false;
705
+ isPrimaryKey: false;
706
+ isAutoincrement: false;
707
+ hasRuntimeDefault: false;
708
+ enumValues: undefined;
709
+ baseColumn: never;
710
+ identity: undefined;
711
+ generated: undefined;
712
+ }, {}, {}>;
713
+ readCount: import("drizzle-orm/pg-core").PgColumn<{
714
+ name: "read_count";
715
+ tableName: `${Name}_audit_event`;
716
+ dataType: "number";
717
+ columnType: "PgInteger";
718
+ data: number;
719
+ driverParam: string | number;
720
+ notNull: false;
721
+ hasDefault: false;
722
+ isPrimaryKey: false;
723
+ isAutoincrement: false;
724
+ hasRuntimeDefault: false;
725
+ enumValues: undefined;
726
+ baseColumn: never;
727
+ identity: undefined;
728
+ generated: undefined;
729
+ }, {}, {}>;
730
+ firstReadAt: import("drizzle-orm/pg-core").PgColumn<{
731
+ name: "first_read_at";
732
+ tableName: `${Name}_audit_event`;
733
+ dataType: "date";
734
+ columnType: "PgTimestamp";
735
+ data: Date;
736
+ driverParam: string;
737
+ notNull: false;
738
+ hasDefault: false;
739
+ isPrimaryKey: false;
740
+ isAutoincrement: false;
741
+ hasRuntimeDefault: false;
742
+ enumValues: undefined;
743
+ baseColumn: never;
744
+ identity: undefined;
745
+ generated: undefined;
746
+ }, {}, {}>;
747
+ lastReadAt: import("drizzle-orm/pg-core").PgColumn<{
748
+ name: "last_read_at";
749
+ tableName: `${Name}_audit_event`;
750
+ dataType: "date";
751
+ columnType: "PgTimestamp";
752
+ data: Date;
753
+ driverParam: string;
754
+ notNull: false;
755
+ hasDefault: false;
756
+ isPrimaryKey: false;
757
+ isAutoincrement: false;
758
+ hasRuntimeDefault: false;
759
+ enumValues: undefined;
760
+ baseColumn: never;
761
+ identity: undefined;
762
+ generated: undefined;
763
+ }, {}, {}>;
764
+ prevHash: import("drizzle-orm/pg-core").PgColumn<{
765
+ name: "prev_hash";
766
+ tableName: `${Name}_audit_event`;
767
+ dataType: "custom";
768
+ columnType: "PgCustomColumn";
769
+ data: Uint8Array<ArrayBufferLike>;
770
+ driverParam: Buffer<ArrayBufferLike>;
771
+ notNull: false;
772
+ hasDefault: false;
773
+ isPrimaryKey: false;
774
+ isAutoincrement: false;
775
+ hasRuntimeDefault: false;
776
+ enumValues: undefined;
777
+ baseColumn: never;
778
+ identity: undefined;
779
+ generated: undefined;
780
+ }, {}, {}>;
781
+ rowHash: import("drizzle-orm/pg-core").PgColumn<{
782
+ name: "row_hash";
783
+ tableName: `${Name}_audit_event`;
784
+ dataType: "custom";
785
+ columnType: "PgCustomColumn";
786
+ data: Uint8Array<ArrayBufferLike>;
787
+ driverParam: Buffer<ArrayBufferLike>;
788
+ notNull: false;
789
+ hasDefault: false;
790
+ isPrimaryKey: false;
791
+ isAutoincrement: false;
792
+ hasRuntimeDefault: false;
793
+ enumValues: undefined;
794
+ baseColumn: never;
795
+ identity: undefined;
796
+ generated: undefined;
797
+ }, {}, {}>;
798
+ tenantAuditSeq: import("drizzle-orm/pg-core").PgColumn<{
799
+ name: "tenant_audit_seq";
800
+ tableName: `${Name}_audit_event`;
801
+ dataType: "bigint";
802
+ columnType: "PgBigInt64";
803
+ data: bigint;
804
+ driverParam: string;
805
+ notNull: false;
806
+ hasDefault: false;
807
+ isPrimaryKey: false;
808
+ isAutoincrement: false;
809
+ hasRuntimeDefault: false;
810
+ enumValues: undefined;
811
+ baseColumn: never;
812
+ identity: undefined;
813
+ generated: undefined;
814
+ }, {}, {}>;
815
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
816
+ name: "metadata";
817
+ tableName: `${Name}_audit_event`;
818
+ dataType: "json";
819
+ columnType: "PgJsonb";
820
+ data: Record<string, unknown>;
821
+ driverParam: unknown;
822
+ notNull: true;
823
+ hasDefault: true;
824
+ isPrimaryKey: false;
825
+ isAutoincrement: false;
826
+ hasRuntimeDefault: false;
827
+ enumValues: undefined;
828
+ baseColumn: never;
829
+ identity: undefined;
830
+ generated: undefined;
831
+ }, {}, {}>;
832
+ };
833
+ dialect: "pg";
834
+ }>;
835
+ /**
836
+ * Re-exposes the canonical 8 indexes that `makeAuditEventTable` already
837
+ * declares inline. Useful for tests + tooling that want to introspect the
838
+ * named-index set without rebuilding the table.
839
+ *
840
+ * For runtime migration purposes you do NOT need to call this — Drizzle's
841
+ * own kit picks up the inline indexes when emitting CREATE INDEX statements.
842
+ */
843
+ export declare function auditEventIndexes<T extends ReturnType<typeof makeAuditEventTable>>(table: T, _serviceName: string): {
844
+ readonly tenantTime: {
845
+ readonly name: `${string}_audit_tenant_time`;
846
+ };
847
+ readonly resource: {
848
+ readonly name: `${string}_audit_resource`;
849
+ };
850
+ readonly actionOutcome: {
851
+ readonly name: `${string}_audit_action_outcome`;
852
+ };
853
+ readonly actor: {
854
+ readonly name: `${string}_audit_actor`;
855
+ };
856
+ readonly correlation: {
857
+ readonly name: `${string}_audit_correlation`;
858
+ };
859
+ readonly trace: {
860
+ readonly name: `${string}_audit_trace`;
861
+ };
862
+ readonly saga: {
863
+ readonly name: `${string}_audit_saga`;
864
+ };
865
+ readonly tenantSeq: {
866
+ readonly name: `${string}_audit_tenant_seq`;
867
+ };
868
+ };
869
+ /**
870
+ * Raw `CREATE TABLE ... PARTITION BY RANGE (at)` DDL for services that want
871
+ * monthly range partitioning per D32 + § 3 line 169. Drizzle's declarative
872
+ * migration cannot emit `PARTITION BY` — services that adopt this must run
873
+ * this DDL directly via their migration runner BEFORE Drizzle's
874
+ * `migrate(...)` would otherwise create the table.
875
+ *
876
+ * After the partitioned parent table exists, the consumer migration scripts
877
+ * create monthly partition children (`<svc>_audit_event_2026_06` etc.) per
878
+ * their retention/operational cadence.
879
+ *
880
+ * Indexes from `auditEventIndexes` are still created against the parent
881
+ * table — Postgres propagates them to existing + future child partitions.
882
+ */
883
+ export declare function auditEventPartitionDDL(serviceName: string): string;
884
+ //# sourceMappingURL=audit-schema.d.ts.map