@lssm/module.audit-trail 0.0.0-canary-20251206160926

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/README.md +110 -0
  2. package/dist/contracts/index.d.ts +582 -0
  3. package/dist/contracts/index.js +1 -0
  4. package/dist/entities/index.d.ts +90 -0
  5. package/dist/entities/index.js +1 -0
  6. package/dist/index.d.ts +5 -0
  7. package/dist/index.js +1 -0
  8. package/dist/libs/contracts/dist/capabilities/openbanking.js +1 -0
  9. package/dist/libs/contracts/dist/client/index.js +1 -0
  10. package/dist/libs/contracts/dist/client/react/feature-render.js +1 -0
  11. package/dist/libs/contracts/dist/client/react/form-render.js +1 -0
  12. package/dist/libs/contracts/dist/client/react/index.js +1 -0
  13. package/dist/libs/contracts/dist/events.js +1 -0
  14. package/dist/libs/contracts/dist/experiments/evaluator.js +1 -0
  15. package/dist/libs/contracts/dist/graphql-federation/dist/index.js +1 -0
  16. package/dist/libs/contracts/dist/index.js +1 -0
  17. package/dist/libs/contracts/dist/install.js +1 -0
  18. package/dist/libs/contracts/dist/integrations/contracts.js +1 -0
  19. package/dist/libs/contracts/dist/integrations/index.js +1 -0
  20. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +1 -0
  21. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +1 -0
  22. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +1 -0
  23. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +1 -0
  24. package/dist/libs/contracts/dist/integrations/openbanking/models.js +1 -0
  25. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +1 -0
  26. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +1 -0
  27. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +1 -0
  28. package/dist/libs/contracts/dist/integrations/providers/gmail.js +1 -0
  29. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +1 -0
  30. package/dist/libs/contracts/dist/integrations/providers/impls/elevenlabs-voice.js +1 -0
  31. package/dist/libs/contracts/dist/integrations/providers/impls/gcs-storage.js +1 -0
  32. package/dist/libs/contracts/dist/integrations/providers/impls/gmail-inbound.js +1 -0
  33. package/dist/libs/contracts/dist/integrations/providers/impls/gmail-outbound.js +1 -0
  34. package/dist/libs/contracts/dist/integrations/providers/impls/google-calendar.js +1 -0
  35. package/dist/libs/contracts/dist/integrations/providers/impls/index.js +1 -0
  36. package/dist/libs/contracts/dist/integrations/providers/impls/mistral-embedding.js +1 -0
  37. package/dist/libs/contracts/dist/integrations/providers/impls/mistral-llm.js +1 -0
  38. package/dist/libs/contracts/dist/integrations/providers/impls/postmark-email.js +1 -0
  39. package/dist/libs/contracts/dist/integrations/providers/impls/powens-client.js +1 -0
  40. package/dist/libs/contracts/dist/integrations/providers/impls/powens-openbanking.js +1 -0
  41. package/dist/libs/contracts/dist/integrations/providers/impls/provider-factory.js +1 -0
  42. package/dist/libs/contracts/dist/integrations/providers/impls/qdrant-vector.js +1 -0
  43. package/dist/libs/contracts/dist/integrations/providers/impls/stripe-payments.js +1 -0
  44. package/dist/libs/contracts/dist/integrations/providers/impls/twilio-sms.js +1 -0
  45. package/dist/libs/contracts/dist/integrations/providers/index.js +1 -0
  46. package/dist/libs/contracts/dist/integrations/providers/mistral.js +1 -0
  47. package/dist/libs/contracts/dist/integrations/providers/postmark.js +1 -0
  48. package/dist/libs/contracts/dist/integrations/providers/powens.js +1 -0
  49. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +1 -0
  50. package/dist/libs/contracts/dist/integrations/providers/stripe.js +1 -0
  51. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +1 -0
  52. package/dist/libs/contracts/dist/integrations/runtime.js +1 -0
  53. package/dist/libs/contracts/dist/integrations/secrets/env-secret-provider.js +1 -0
  54. package/dist/libs/contracts/dist/integrations/secrets/gcp-secret-manager.js +1 -0
  55. package/dist/libs/contracts/dist/integrations/secrets/index.js +1 -0
  56. package/dist/libs/contracts/dist/integrations/secrets/manager.js +1 -0
  57. package/dist/libs/contracts/dist/integrations/secrets/provider.js +1 -0
  58. package/dist/libs/contracts/dist/jsonschema.js +1 -0
  59. package/dist/libs/contracts/dist/knowledge/contracts.js +1 -0
  60. package/dist/libs/contracts/dist/knowledge/index.js +1 -0
  61. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +1 -0
  62. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +1 -0
  63. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +1 -0
  64. package/dist/libs/contracts/dist/knowledge/spaces/index.js +1 -0
  65. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +1 -0
  66. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +1 -0
  67. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +1 -0
  68. package/dist/libs/contracts/dist/onboarding-base.js +1 -0
  69. package/dist/libs/contracts/dist/ownership.js +1 -0
  70. package/dist/libs/contracts/dist/presentations.js +1 -0
  71. package/dist/libs/contracts/dist/presentations.v2.js +1 -0
  72. package/dist/libs/contracts/dist/prompt.js +1 -0
  73. package/dist/libs/contracts/dist/promptRegistry.js +1 -0
  74. package/dist/libs/contracts/dist/regenerator/index.js +1 -0
  75. package/dist/libs/contracts/dist/regenerator/service.js +1 -0
  76. package/dist/libs/contracts/dist/registry.js +1 -0
  77. package/dist/libs/contracts/dist/resources.js +1 -0
  78. package/dist/libs/contracts/dist/schema/dist/EnumType.js +1 -0
  79. package/dist/libs/contracts/dist/schema/dist/FieldType.js +1 -0
  80. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +1 -0
  81. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +1 -0
  82. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +1 -0
  83. package/dist/libs/contracts/dist/schema/dist/entity/index.js +1 -0
  84. package/dist/libs/contracts/dist/schema/dist/entity/types.js +1 -0
  85. package/dist/libs/contracts/dist/schema/dist/index.js +1 -0
  86. package/dist/libs/contracts/dist/server/graphql-pothos.js +1 -0
  87. package/dist/libs/contracts/dist/server/graphql-schema-export.js +1 -0
  88. package/dist/libs/contracts/dist/server/index.js +1 -0
  89. package/dist/libs/contracts/dist/server/provider-mcp.js +1 -0
  90. package/dist/libs/contracts/dist/server/rest-elysia.js +1 -0
  91. package/dist/libs/contracts/dist/server/rest-express.js +1 -0
  92. package/dist/libs/contracts/dist/server/rest-generic.js +1 -0
  93. package/dist/libs/contracts/dist/server/rest-next-app.js +1 -0
  94. package/dist/libs/contracts/dist/server/rest-next-pages.js +1 -0
  95. package/dist/libs/contracts/dist/spec.js +1 -0
  96. package/dist/libs/contracts/dist/telemetry/index.js +1 -0
  97. package/dist/libs/contracts/dist/telemetry/tracker.js +1 -0
  98. package/dist/libs/contracts/dist/tests/index.js +1 -0
  99. package/dist/libs/contracts/dist/tests/runner.js +1 -0
  100. package/dist/libs/contracts/dist/workflow/index.js +1 -0
  101. package/dist/libs/contracts/dist/workflow/runner.js +1 -0
  102. package/dist/libs/schema/dist/EnumType.js +1 -0
  103. package/dist/libs/schema/dist/FieldType.js +1 -0
  104. package/dist/libs/schema/dist/ScalarTypeEnum.js +1 -0
  105. package/dist/libs/schema/dist/SchemaModel.js +1 -0
  106. package/dist/libs/schema/dist/entity/defineEntity.js +1 -0
  107. package/dist/libs/schema/dist/entity/index.js +1 -0
  108. package/dist/libs/schema/dist/entity/types.js +1 -0
  109. package/dist/libs/schema/dist/index.js +1 -0
  110. package/dist/storage/index.d.ts +87 -0
  111. package/dist/storage/index.js +1 -0
  112. package/package.json +45 -0
package/README.md ADDED
@@ -0,0 +1,110 @@
1
+ # @lssm/module.audit-trail
2
+
3
+ Audit trail module for tracking and querying system events in ContractSpec applications.
4
+
5
+ ## Purpose
6
+
7
+ Provides a complete audit logging solution that captures, stores, and queries audit events. Integrates with the event bus to automatically capture domain events and exposes a query API for compliance and debugging.
8
+
9
+ ## Features
10
+
11
+ - **Event Capture**: Automatic capture of events from the event bus
12
+ - **Persistent Storage**: Multiple storage adapters (Prisma, append-only log)
13
+ - **Rich Querying**: Filter by actor, target, organization, time range
14
+ - **Retention Policies**: Configurable retention and archival
15
+ - **Export**: Export audit logs for compliance reporting
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ bun add @lssm/module.audit-trail
21
+ ```
22
+
23
+ ## Usage
24
+
25
+ ### Entity Specs (for schema generation)
26
+
27
+ ```typescript
28
+ import { auditTrailSchemaContribution } from '@lssm/module.audit-trail/entities';
29
+
30
+ // Use in schema composition
31
+ const config = {
32
+ modules: [auditTrailSchemaContribution],
33
+ };
34
+ ```
35
+
36
+ ### Set Up Audit Capture
37
+
38
+ ```typescript
39
+ import { createAuditCapture, PrismaAuditStorage } from '@lssm/module.audit-trail';
40
+ import { prisma } from './db';
41
+
42
+ // Create storage adapter
43
+ const storage = new PrismaAuditStorage(prisma);
44
+
45
+ // Create audit capture (connects to event bus)
46
+ const auditCapture = createAuditCapture({
47
+ bus: eventBus,
48
+ storage,
49
+ filters: {
50
+ // Only audit events with audit:true tag or from specific domains
51
+ domains: ['identity', 'billing', 'security'],
52
+ },
53
+ });
54
+
55
+ // Start capturing
56
+ auditCapture.start();
57
+ ```
58
+
59
+ ### Query Audit Logs
60
+
61
+ ```typescript
62
+ import { AuditLogService } from '@lssm/module.audit-trail';
63
+
64
+ const service = new AuditLogService(storage);
65
+
66
+ // Query by actor
67
+ const userActions = await service.query({
68
+ actorId: 'user-123',
69
+ from: new Date('2024-01-01'),
70
+ to: new Date(),
71
+ limit: 100,
72
+ });
73
+
74
+ // Query by target
75
+ const resourceChanges = await service.query({
76
+ targetId: 'project-456',
77
+ eventName: 'project.*',
78
+ });
79
+
80
+ // Export for compliance
81
+ const report = await service.export({
82
+ orgId: 'org-789',
83
+ from: new Date('2024-01-01'),
84
+ to: new Date('2024-12-31'),
85
+ format: 'csv',
86
+ });
87
+ ```
88
+
89
+ ## Entity Overview
90
+
91
+ | Entity | Description |
92
+ |--------|-------------|
93
+ | AuditLog | Main audit log entry |
94
+ | AuditLogArchive | Archived logs for retention |
95
+
96
+ ## Retention
97
+
98
+ Configure retention policies:
99
+
100
+ ```typescript
101
+ const retention = new RetentionPolicy({
102
+ // Keep detailed logs for 90 days
103
+ hotRetentionDays: 90,
104
+ // Archive for 7 years (compliance)
105
+ archiveRetentionDays: 2555,
106
+ // Run cleanup daily at 3 AM
107
+ cleanupSchedule: '0 3 * * *',
108
+ });
109
+ ```
110
+
@@ -0,0 +1,582 @@
1
+ import * as _lssm_lib_schema0 from "@lssm/lib.schema";
2
+ import * as _lssm_lib_contracts0 from "@lssm/lib.contracts";
3
+
4
+ //#region src/contracts/index.d.ts
5
+ declare const AuditLogModel: _lssm_lib_schema0.SchemaModel<{
6
+ id: {
7
+ type: _lssm_lib_schema0.FieldType<string, string>;
8
+ isOptional: false;
9
+ };
10
+ eventName: {
11
+ type: _lssm_lib_schema0.FieldType<string, string>;
12
+ isOptional: false;
13
+ };
14
+ eventVersion: {
15
+ type: _lssm_lib_schema0.FieldType<number, number>;
16
+ isOptional: false;
17
+ };
18
+ payload: {
19
+ type: _lssm_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
20
+ isOptional: false;
21
+ };
22
+ actorId: {
23
+ type: _lssm_lib_schema0.FieldType<string, string>;
24
+ isOptional: true;
25
+ };
26
+ actorType: {
27
+ type: _lssm_lib_schema0.FieldType<string, string>;
28
+ isOptional: true;
29
+ };
30
+ actorEmail: {
31
+ type: _lssm_lib_schema0.FieldType<string, string>;
32
+ isOptional: true;
33
+ };
34
+ targetId: {
35
+ type: _lssm_lib_schema0.FieldType<string, string>;
36
+ isOptional: true;
37
+ };
38
+ targetType: {
39
+ type: _lssm_lib_schema0.FieldType<string, string>;
40
+ isOptional: true;
41
+ };
42
+ orgId: {
43
+ type: _lssm_lib_schema0.FieldType<string, string>;
44
+ isOptional: true;
45
+ };
46
+ traceId: {
47
+ type: _lssm_lib_schema0.FieldType<string, string>;
48
+ isOptional: true;
49
+ };
50
+ clientIp: {
51
+ type: _lssm_lib_schema0.FieldType<string, string>;
52
+ isOptional: true;
53
+ };
54
+ occurredAt: {
55
+ type: _lssm_lib_schema0.FieldType<Date, string>;
56
+ isOptional: false;
57
+ };
58
+ recordedAt: {
59
+ type: _lssm_lib_schema0.FieldType<Date, string>;
60
+ isOptional: false;
61
+ };
62
+ }>;
63
+ declare const AuditQueryInputModel: _lssm_lib_schema0.SchemaModel<{
64
+ eventName: {
65
+ type: _lssm_lib_schema0.FieldType<string, string>;
66
+ isOptional: true;
67
+ };
68
+ actorId: {
69
+ type: _lssm_lib_schema0.FieldType<string, string>;
70
+ isOptional: true;
71
+ };
72
+ targetId: {
73
+ type: _lssm_lib_schema0.FieldType<string, string>;
74
+ isOptional: true;
75
+ };
76
+ targetType: {
77
+ type: _lssm_lib_schema0.FieldType<string, string>;
78
+ isOptional: true;
79
+ };
80
+ orgId: {
81
+ type: _lssm_lib_schema0.FieldType<string, string>;
82
+ isOptional: true;
83
+ };
84
+ traceId: {
85
+ type: _lssm_lib_schema0.FieldType<string, string>;
86
+ isOptional: true;
87
+ };
88
+ from: {
89
+ type: _lssm_lib_schema0.FieldType<Date, string>;
90
+ isOptional: true;
91
+ };
92
+ to: {
93
+ type: _lssm_lib_schema0.FieldType<Date, string>;
94
+ isOptional: true;
95
+ };
96
+ limit: {
97
+ type: _lssm_lib_schema0.FieldType<number, number>;
98
+ isOptional: true;
99
+ defaultValue: number;
100
+ };
101
+ offset: {
102
+ type: _lssm_lib_schema0.FieldType<number, number>;
103
+ isOptional: true;
104
+ defaultValue: number;
105
+ };
106
+ }>;
107
+ declare const AuditQueryOutputModel: _lssm_lib_schema0.SchemaModel<{
108
+ logs: {
109
+ type: _lssm_lib_schema0.SchemaModel<{
110
+ id: {
111
+ type: _lssm_lib_schema0.FieldType<string, string>;
112
+ isOptional: false;
113
+ };
114
+ eventName: {
115
+ type: _lssm_lib_schema0.FieldType<string, string>;
116
+ isOptional: false;
117
+ };
118
+ eventVersion: {
119
+ type: _lssm_lib_schema0.FieldType<number, number>;
120
+ isOptional: false;
121
+ };
122
+ payload: {
123
+ type: _lssm_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
124
+ isOptional: false;
125
+ };
126
+ actorId: {
127
+ type: _lssm_lib_schema0.FieldType<string, string>;
128
+ isOptional: true;
129
+ };
130
+ actorType: {
131
+ type: _lssm_lib_schema0.FieldType<string, string>;
132
+ isOptional: true;
133
+ };
134
+ actorEmail: {
135
+ type: _lssm_lib_schema0.FieldType<string, string>;
136
+ isOptional: true;
137
+ };
138
+ targetId: {
139
+ type: _lssm_lib_schema0.FieldType<string, string>;
140
+ isOptional: true;
141
+ };
142
+ targetType: {
143
+ type: _lssm_lib_schema0.FieldType<string, string>;
144
+ isOptional: true;
145
+ };
146
+ orgId: {
147
+ type: _lssm_lib_schema0.FieldType<string, string>;
148
+ isOptional: true;
149
+ };
150
+ traceId: {
151
+ type: _lssm_lib_schema0.FieldType<string, string>;
152
+ isOptional: true;
153
+ };
154
+ clientIp: {
155
+ type: _lssm_lib_schema0.FieldType<string, string>;
156
+ isOptional: true;
157
+ };
158
+ occurredAt: {
159
+ type: _lssm_lib_schema0.FieldType<Date, string>;
160
+ isOptional: false;
161
+ };
162
+ recordedAt: {
163
+ type: _lssm_lib_schema0.FieldType<Date, string>;
164
+ isOptional: false;
165
+ };
166
+ }>;
167
+ isArray: true;
168
+ isOptional: false;
169
+ };
170
+ total: {
171
+ type: _lssm_lib_schema0.FieldType<number, number>;
172
+ isOptional: false;
173
+ };
174
+ hasMore: {
175
+ type: _lssm_lib_schema0.FieldType<boolean, boolean>;
176
+ isOptional: false;
177
+ };
178
+ }>;
179
+ declare const ExportFormatEnum: _lssm_lib_schema0.EnumType<[string, string, string]>;
180
+ declare const AuditExportInputModel: _lssm_lib_schema0.SchemaModel<{
181
+ orgId: {
182
+ type: _lssm_lib_schema0.FieldType<string, string>;
183
+ isOptional: false;
184
+ };
185
+ from: {
186
+ type: _lssm_lib_schema0.FieldType<Date, string>;
187
+ isOptional: false;
188
+ };
189
+ to: {
190
+ type: _lssm_lib_schema0.FieldType<Date, string>;
191
+ isOptional: false;
192
+ };
193
+ format: {
194
+ type: _lssm_lib_schema0.EnumType<[string, string, string]>;
195
+ isOptional: true;
196
+ defaultValue: string;
197
+ };
198
+ eventNames: {
199
+ type: _lssm_lib_schema0.FieldType<string, string>;
200
+ isArray: true;
201
+ isOptional: true;
202
+ };
203
+ }>;
204
+ declare const ExportStatusEnum: _lssm_lib_schema0.EnumType<[string, string, string, string]>;
205
+ declare const AuditExportOutputModel: _lssm_lib_schema0.SchemaModel<{
206
+ exportId: {
207
+ type: _lssm_lib_schema0.FieldType<string, string>;
208
+ isOptional: false;
209
+ };
210
+ status: {
211
+ type: _lssm_lib_schema0.EnumType<[string, string, string, string]>;
212
+ isOptional: false;
213
+ };
214
+ downloadUrl: {
215
+ type: _lssm_lib_schema0.FieldType<string, string>;
216
+ isOptional: true;
217
+ };
218
+ }>;
219
+ declare const AuditStatsInputModel: _lssm_lib_schema0.SchemaModel<{
220
+ orgId: {
221
+ type: _lssm_lib_schema0.FieldType<string, string>;
222
+ isOptional: true;
223
+ };
224
+ from: {
225
+ type: _lssm_lib_schema0.FieldType<Date, string>;
226
+ isOptional: true;
227
+ };
228
+ to: {
229
+ type: _lssm_lib_schema0.FieldType<Date, string>;
230
+ isOptional: true;
231
+ };
232
+ }>;
233
+ declare const AuditStatsOutputModel: _lssm_lib_schema0.SchemaModel<{
234
+ totalLogs: {
235
+ type: _lssm_lib_schema0.FieldType<number, number>;
236
+ isOptional: false;
237
+ };
238
+ uniqueActors: {
239
+ type: _lssm_lib_schema0.FieldType<number, number>;
240
+ isOptional: false;
241
+ };
242
+ uniqueTargets: {
243
+ type: _lssm_lib_schema0.FieldType<number, number>;
244
+ isOptional: false;
245
+ };
246
+ eventCounts: {
247
+ type: _lssm_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
248
+ isOptional: false;
249
+ };
250
+ }>;
251
+ /**
252
+ * Query audit logs.
253
+ */
254
+ declare const QueryAuditLogsContract: _lssm_lib_contracts0.ContractSpec<_lssm_lib_schema0.SchemaModel<{
255
+ eventName: {
256
+ type: _lssm_lib_schema0.FieldType<string, string>;
257
+ isOptional: true;
258
+ };
259
+ actorId: {
260
+ type: _lssm_lib_schema0.FieldType<string, string>;
261
+ isOptional: true;
262
+ };
263
+ targetId: {
264
+ type: _lssm_lib_schema0.FieldType<string, string>;
265
+ isOptional: true;
266
+ };
267
+ targetType: {
268
+ type: _lssm_lib_schema0.FieldType<string, string>;
269
+ isOptional: true;
270
+ };
271
+ orgId: {
272
+ type: _lssm_lib_schema0.FieldType<string, string>;
273
+ isOptional: true;
274
+ };
275
+ traceId: {
276
+ type: _lssm_lib_schema0.FieldType<string, string>;
277
+ isOptional: true;
278
+ };
279
+ from: {
280
+ type: _lssm_lib_schema0.FieldType<Date, string>;
281
+ isOptional: true;
282
+ };
283
+ to: {
284
+ type: _lssm_lib_schema0.FieldType<Date, string>;
285
+ isOptional: true;
286
+ };
287
+ limit: {
288
+ type: _lssm_lib_schema0.FieldType<number, number>;
289
+ isOptional: true;
290
+ defaultValue: number;
291
+ };
292
+ offset: {
293
+ type: _lssm_lib_schema0.FieldType<number, number>;
294
+ isOptional: true;
295
+ defaultValue: number;
296
+ };
297
+ }>, _lssm_lib_schema0.SchemaModel<{
298
+ logs: {
299
+ type: _lssm_lib_schema0.SchemaModel<{
300
+ id: {
301
+ type: _lssm_lib_schema0.FieldType<string, string>;
302
+ isOptional: false;
303
+ };
304
+ eventName: {
305
+ type: _lssm_lib_schema0.FieldType<string, string>;
306
+ isOptional: false;
307
+ };
308
+ eventVersion: {
309
+ type: _lssm_lib_schema0.FieldType<number, number>;
310
+ isOptional: false;
311
+ };
312
+ payload: {
313
+ type: _lssm_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
314
+ isOptional: false;
315
+ };
316
+ actorId: {
317
+ type: _lssm_lib_schema0.FieldType<string, string>;
318
+ isOptional: true;
319
+ };
320
+ actorType: {
321
+ type: _lssm_lib_schema0.FieldType<string, string>;
322
+ isOptional: true;
323
+ };
324
+ actorEmail: {
325
+ type: _lssm_lib_schema0.FieldType<string, string>;
326
+ isOptional: true;
327
+ };
328
+ targetId: {
329
+ type: _lssm_lib_schema0.FieldType<string, string>;
330
+ isOptional: true;
331
+ };
332
+ targetType: {
333
+ type: _lssm_lib_schema0.FieldType<string, string>;
334
+ isOptional: true;
335
+ };
336
+ orgId: {
337
+ type: _lssm_lib_schema0.FieldType<string, string>;
338
+ isOptional: true;
339
+ };
340
+ traceId: {
341
+ type: _lssm_lib_schema0.FieldType<string, string>;
342
+ isOptional: true;
343
+ };
344
+ clientIp: {
345
+ type: _lssm_lib_schema0.FieldType<string, string>;
346
+ isOptional: true;
347
+ };
348
+ occurredAt: {
349
+ type: _lssm_lib_schema0.FieldType<Date, string>;
350
+ isOptional: false;
351
+ };
352
+ recordedAt: {
353
+ type: _lssm_lib_schema0.FieldType<Date, string>;
354
+ isOptional: false;
355
+ };
356
+ }>;
357
+ isArray: true;
358
+ isOptional: false;
359
+ };
360
+ total: {
361
+ type: _lssm_lib_schema0.FieldType<number, number>;
362
+ isOptional: false;
363
+ };
364
+ hasMore: {
365
+ type: _lssm_lib_schema0.FieldType<boolean, boolean>;
366
+ isOptional: false;
367
+ };
368
+ }>, undefined>;
369
+ /**
370
+ * Get audit log by ID.
371
+ */
372
+ declare const GetAuditLogContract: _lssm_lib_contracts0.ContractSpec<_lssm_lib_schema0.SchemaModel<{
373
+ logId: {
374
+ type: _lssm_lib_schema0.FieldType<string, string>;
375
+ isOptional: false;
376
+ };
377
+ }>, _lssm_lib_schema0.SchemaModel<{
378
+ id: {
379
+ type: _lssm_lib_schema0.FieldType<string, string>;
380
+ isOptional: false;
381
+ };
382
+ eventName: {
383
+ type: _lssm_lib_schema0.FieldType<string, string>;
384
+ isOptional: false;
385
+ };
386
+ eventVersion: {
387
+ type: _lssm_lib_schema0.FieldType<number, number>;
388
+ isOptional: false;
389
+ };
390
+ payload: {
391
+ type: _lssm_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
392
+ isOptional: false;
393
+ };
394
+ actorId: {
395
+ type: _lssm_lib_schema0.FieldType<string, string>;
396
+ isOptional: true;
397
+ };
398
+ actorType: {
399
+ type: _lssm_lib_schema0.FieldType<string, string>;
400
+ isOptional: true;
401
+ };
402
+ actorEmail: {
403
+ type: _lssm_lib_schema0.FieldType<string, string>;
404
+ isOptional: true;
405
+ };
406
+ targetId: {
407
+ type: _lssm_lib_schema0.FieldType<string, string>;
408
+ isOptional: true;
409
+ };
410
+ targetType: {
411
+ type: _lssm_lib_schema0.FieldType<string, string>;
412
+ isOptional: true;
413
+ };
414
+ orgId: {
415
+ type: _lssm_lib_schema0.FieldType<string, string>;
416
+ isOptional: true;
417
+ };
418
+ traceId: {
419
+ type: _lssm_lib_schema0.FieldType<string, string>;
420
+ isOptional: true;
421
+ };
422
+ clientIp: {
423
+ type: _lssm_lib_schema0.FieldType<string, string>;
424
+ isOptional: true;
425
+ };
426
+ occurredAt: {
427
+ type: _lssm_lib_schema0.FieldType<Date, string>;
428
+ isOptional: false;
429
+ };
430
+ recordedAt: {
431
+ type: _lssm_lib_schema0.FieldType<Date, string>;
432
+ isOptional: false;
433
+ };
434
+ }>, undefined>;
435
+ /**
436
+ * Get audit logs by trace ID.
437
+ */
438
+ declare const GetAuditTraceContract: _lssm_lib_contracts0.ContractSpec<_lssm_lib_schema0.SchemaModel<{
439
+ traceId: {
440
+ type: _lssm_lib_schema0.FieldType<string, string>;
441
+ isOptional: false;
442
+ };
443
+ }>, _lssm_lib_schema0.SchemaModel<{
444
+ logs: {
445
+ type: _lssm_lib_schema0.SchemaModel<{
446
+ id: {
447
+ type: _lssm_lib_schema0.FieldType<string, string>;
448
+ isOptional: false;
449
+ };
450
+ eventName: {
451
+ type: _lssm_lib_schema0.FieldType<string, string>;
452
+ isOptional: false;
453
+ };
454
+ eventVersion: {
455
+ type: _lssm_lib_schema0.FieldType<number, number>;
456
+ isOptional: false;
457
+ };
458
+ payload: {
459
+ type: _lssm_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
460
+ isOptional: false;
461
+ };
462
+ actorId: {
463
+ type: _lssm_lib_schema0.FieldType<string, string>;
464
+ isOptional: true;
465
+ };
466
+ actorType: {
467
+ type: _lssm_lib_schema0.FieldType<string, string>;
468
+ isOptional: true;
469
+ };
470
+ actorEmail: {
471
+ type: _lssm_lib_schema0.FieldType<string, string>;
472
+ isOptional: true;
473
+ };
474
+ targetId: {
475
+ type: _lssm_lib_schema0.FieldType<string, string>;
476
+ isOptional: true;
477
+ };
478
+ targetType: {
479
+ type: _lssm_lib_schema0.FieldType<string, string>;
480
+ isOptional: true;
481
+ };
482
+ orgId: {
483
+ type: _lssm_lib_schema0.FieldType<string, string>;
484
+ isOptional: true;
485
+ };
486
+ traceId: {
487
+ type: _lssm_lib_schema0.FieldType<string, string>;
488
+ isOptional: true;
489
+ };
490
+ clientIp: {
491
+ type: _lssm_lib_schema0.FieldType<string, string>;
492
+ isOptional: true;
493
+ };
494
+ occurredAt: {
495
+ type: _lssm_lib_schema0.FieldType<Date, string>;
496
+ isOptional: false;
497
+ };
498
+ recordedAt: {
499
+ type: _lssm_lib_schema0.FieldType<Date, string>;
500
+ isOptional: false;
501
+ };
502
+ }>;
503
+ isArray: true;
504
+ isOptional: false;
505
+ };
506
+ }>, undefined>;
507
+ /**
508
+ * Export audit logs.
509
+ */
510
+ declare const ExportAuditLogsContract: _lssm_lib_contracts0.ContractSpec<_lssm_lib_schema0.SchemaModel<{
511
+ orgId: {
512
+ type: _lssm_lib_schema0.FieldType<string, string>;
513
+ isOptional: false;
514
+ };
515
+ from: {
516
+ type: _lssm_lib_schema0.FieldType<Date, string>;
517
+ isOptional: false;
518
+ };
519
+ to: {
520
+ type: _lssm_lib_schema0.FieldType<Date, string>;
521
+ isOptional: false;
522
+ };
523
+ format: {
524
+ type: _lssm_lib_schema0.EnumType<[string, string, string]>;
525
+ isOptional: true;
526
+ defaultValue: string;
527
+ };
528
+ eventNames: {
529
+ type: _lssm_lib_schema0.FieldType<string, string>;
530
+ isArray: true;
531
+ isOptional: true;
532
+ };
533
+ }>, _lssm_lib_schema0.SchemaModel<{
534
+ exportId: {
535
+ type: _lssm_lib_schema0.FieldType<string, string>;
536
+ isOptional: false;
537
+ };
538
+ status: {
539
+ type: _lssm_lib_schema0.EnumType<[string, string, string, string]>;
540
+ isOptional: false;
541
+ };
542
+ downloadUrl: {
543
+ type: _lssm_lib_schema0.FieldType<string, string>;
544
+ isOptional: true;
545
+ };
546
+ }>, undefined>;
547
+ /**
548
+ * Get audit statistics.
549
+ */
550
+ declare const GetAuditStatsContract: _lssm_lib_contracts0.ContractSpec<_lssm_lib_schema0.SchemaModel<{
551
+ orgId: {
552
+ type: _lssm_lib_schema0.FieldType<string, string>;
553
+ isOptional: true;
554
+ };
555
+ from: {
556
+ type: _lssm_lib_schema0.FieldType<Date, string>;
557
+ isOptional: true;
558
+ };
559
+ to: {
560
+ type: _lssm_lib_schema0.FieldType<Date, string>;
561
+ isOptional: true;
562
+ };
563
+ }>, _lssm_lib_schema0.SchemaModel<{
564
+ totalLogs: {
565
+ type: _lssm_lib_schema0.FieldType<number, number>;
566
+ isOptional: false;
567
+ };
568
+ uniqueActors: {
569
+ type: _lssm_lib_schema0.FieldType<number, number>;
570
+ isOptional: false;
571
+ };
572
+ uniqueTargets: {
573
+ type: _lssm_lib_schema0.FieldType<number, number>;
574
+ isOptional: false;
575
+ };
576
+ eventCounts: {
577
+ type: _lssm_lib_schema0.FieldType<Record<string, unknown>, Record<string, unknown>>;
578
+ isOptional: false;
579
+ };
580
+ }>, undefined>;
581
+ //#endregion
582
+ export { AuditExportInputModel, AuditExportOutputModel, AuditLogModel, AuditQueryInputModel, AuditQueryOutputModel, AuditStatsInputModel, AuditStatsOutputModel, ExportAuditLogsContract, ExportFormatEnum, ExportStatusEnum, GetAuditLogContract, GetAuditStatsContract, GetAuditTraceContract, QueryAuditLogsContract };
@@ -0,0 +1 @@
1
+ import{r as e}from"../libs/schema/dist/EnumType.js";import{l as t}from"../libs/schema/dist/ScalarTypeEnum.js";import"../libs/schema/dist/index.js";import{n}from"../libs/contracts/dist/schema/dist/SchemaModel.js";import{n as r,t as i}from"../libs/contracts/dist/spec.js";import"../libs/contracts/dist/index.js";const a=[`platform.audit-trail`],o=n({name:`AuditLog`,description:`Detailed audit log entry`,fields:{id:{type:t.String_unsecure(),isOptional:!1},eventName:{type:t.String_unsecure(),isOptional:!1},eventVersion:{type:t.Int_unsecure(),isOptional:!1},payload:{type:t.JSONObject(),isOptional:!1},actorId:{type:t.String_unsecure(),isOptional:!0},actorType:{type:t.String_unsecure(),isOptional:!0},actorEmail:{type:t.EmailAddress(),isOptional:!0},targetId:{type:t.String_unsecure(),isOptional:!0},targetType:{type:t.String_unsecure(),isOptional:!0},orgId:{type:t.String_unsecure(),isOptional:!0},traceId:{type:t.String_unsecure(),isOptional:!0},clientIp:{type:t.String_unsecure(),isOptional:!0},occurredAt:{type:t.DateTime(),isOptional:!1},recordedAt:{type:t.DateTime(),isOptional:!1}}}),s=n({name:`AuditQueryInput`,description:`Input for querying audit logs`,fields:{eventName:{type:t.String_unsecure(),isOptional:!0},actorId:{type:t.String_unsecure(),isOptional:!0},targetId:{type:t.String_unsecure(),isOptional:!0},targetType:{type:t.String_unsecure(),isOptional:!0},orgId:{type:t.String_unsecure(),isOptional:!0},traceId:{type:t.String_unsecure(),isOptional:!0},from:{type:t.DateTime(),isOptional:!0},to:{type:t.DateTime(),isOptional:!0},limit:{type:t.Int_unsecure(),isOptional:!0,defaultValue:100},offset:{type:t.Int_unsecure(),isOptional:!0,defaultValue:0}}}),c=n({name:`AuditQueryOutput`,description:`Output from querying audit logs`,fields:{logs:{type:o,isArray:!0,isOptional:!1},total:{type:t.Int_unsecure(),isOptional:!1},hasMore:{type:t.Boolean(),isOptional:!1}}}),l=e(`ExportFormat`,[`json`,`csv`,`parquet`]),u=n({name:`AuditExportInput`,description:`Input for exporting audit logs`,fields:{orgId:{type:t.String_unsecure(),isOptional:!1},from:{type:t.DateTime(),isOptional:!1},to:{type:t.DateTime(),isOptional:!1},format:{type:l,isOptional:!0,defaultValue:`json`},eventNames:{type:t.String_unsecure(),isArray:!0,isOptional:!0}}}),d=e(`ExportStatus`,[`pending`,`processing`,`completed`,`failed`]),f=n({name:`AuditExportOutput`,description:`Output from initiating an audit export`,fields:{exportId:{type:t.String_unsecure(),isOptional:!1},status:{type:d,isOptional:!1},downloadUrl:{type:t.URL(),isOptional:!0}}}),p=n({name:`AuditStatsInput`,description:`Input for getting audit statistics`,fields:{orgId:{type:t.String_unsecure(),isOptional:!0},from:{type:t.DateTime(),isOptional:!0},to:{type:t.DateTime(),isOptional:!0}}}),m=n({name:`AuditStatsOutput`,description:`Audit log statistics`,fields:{totalLogs:{type:t.Int_unsecure(),isOptional:!1},uniqueActors:{type:t.Int_unsecure(),isOptional:!1},uniqueTargets:{type:t.Int_unsecure(),isOptional:!1},eventCounts:{type:t.JSONObject(),isOptional:!1}}}),h=r({meta:{name:`audit.logs.query`,version:1,stability:`stable`,owners:[...a],tags:[`audit`,`logs`,`query`],description:`Query audit logs with filters.`,goal:`Enable searching and filtering of audit history.`,context:`Admin dashboard, compliance reporting, debugging.`},io:{input:s,output:c},policy:{auth:`admin`}}),g=r({meta:{name:`audit.logs.get`,version:1,stability:`stable`,owners:[...a],tags:[`audit`,`logs`,`get`],description:`Get a specific audit log by ID.`,goal:`View detailed audit log entry.`,context:`Log detail view.`},io:{input:n({name:`GetAuditLogInput`,fields:{logId:{type:t.String_unsecure(),isOptional:!1}}}),output:o},policy:{auth:`admin`}}),_=r({meta:{name:`audit.trace.get`,version:1,stability:`stable`,owners:[...a],tags:[`audit`,`trace`,`get`],description:`Get all audit logs for a trace.`,goal:`View complete request trace for debugging.`,context:`Request tracing, debugging.`},io:{input:n({name:`GetAuditTraceInput`,fields:{traceId:{type:t.String_unsecure(),isOptional:!1}}}),output:n({name:`GetAuditTraceOutput`,fields:{logs:{type:o,isArray:!0,isOptional:!1}}})},policy:{auth:`admin`}}),v=i({meta:{name:`audit.logs.export`,version:1,stability:`stable`,owners:[...a],tags:[`audit`,`logs`,`export`],description:`Export audit logs for compliance reporting.`,goal:`Generate audit reports for compliance.`,context:`Compliance reporting, external audits.`},io:{input:u,output:f},policy:{auth:`admin`}}),y=r({meta:{name:`audit.stats`,version:1,stability:`stable`,owners:[...a],tags:[`audit`,`stats`],description:`Get audit log statistics.`,goal:`Monitor audit activity levels.`,context:`Admin dashboard, monitoring.`},io:{input:p,output:m},policy:{auth:`admin`}});export{u as AuditExportInputModel,f as AuditExportOutputModel,o as AuditLogModel,s as AuditQueryInputModel,c as AuditQueryOutputModel,p as AuditStatsInputModel,m as AuditStatsOutputModel,v as ExportAuditLogsContract,l as ExportFormatEnum,d as ExportStatusEnum,g as GetAuditLogContract,y as GetAuditStatsContract,_ as GetAuditTraceContract,h as QueryAuditLogsContract};