@selvajs/supabase-provider 0.14.4-beta.1 → 0.15.0-beta.2

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 (28) hide show
  1. package/README.md +2 -0
  2. package/dist/data/SupabaseComputeServerStore.d.ts +14 -3
  3. package/dist/data/SupabaseComputeServerStore.d.ts.map +1 -1
  4. package/dist/data/SupabaseComputeServerStore.js +67 -16
  5. package/dist/data/SupabaseComputeServerStore.js.map +1 -1
  6. package/dist/data/SupabaseDataProvider.d.ts +24 -8
  7. package/dist/data/SupabaseDataProvider.d.ts.map +1 -1
  8. package/dist/data/SupabaseDataProvider.js +60 -15
  9. package/dist/data/SupabaseDataProvider.js.map +1 -1
  10. package/dist/data/SupabaseDefinitionStore.d.ts.map +1 -1
  11. package/dist/data/SupabaseDefinitionStore.js +14 -3
  12. package/dist/data/SupabaseDefinitionStore.js.map +1 -1
  13. package/dist/data/SupabaseEventSink.d.ts +5 -2
  14. package/dist/data/SupabaseEventSink.d.ts.map +1 -1
  15. package/dist/data/SupabaseEventSink.js +20 -3
  16. package/dist/data/SupabaseEventSink.js.map +1 -1
  17. package/dist/data/SupabaseSolveMetricSink.d.ts +49 -4
  18. package/dist/data/SupabaseSolveMetricSink.d.ts.map +1 -1
  19. package/dist/data/SupabaseSolveMetricSink.js +109 -19
  20. package/dist/data/SupabaseSolveMetricSink.js.map +1 -1
  21. package/dist/data/migrationHead.d.ts +1 -1
  22. package/dist/data/migrationHead.js +1 -1
  23. package/package.json +12 -2
  24. package/supabase/migrations/20260716120000_definition_status_and_audit_version.sql +36 -0
  25. package/supabase/migrations/20260716130000_erase_user_audit_email.sql +36 -0
  26. package/supabase/migrations/20260717120000_compute_server_has_api_key.sql +20 -0
  27. package/supabase/.branches/_current_branch +0 -1
  28. package/supabase/.temp/cli-latest +0 -1
package/README.md CHANGED
@@ -93,6 +93,8 @@ The `supabase/migrations/` directory holds timestamp-prefixed files, applied in
93
93
  | `20260425155514_selva_initial.sql` | Everything: `user_profiles` (+ auto-seed trigger), `orgs` / `org_members` / `projects` / `project_members` (+ RLS helpers), `definitions` / `definition_versions` (+ deletion-protection FKs and the atomic `increment_run_count` RPC), `invites` (+ `get_invite_by_token` RPC), `compute_servers` (+ per-org/instance defaults, spec §3 BYO compute), `share_links` (+ `try_increment_share_link_solve_count` RPC, spec §7), and the `selva-public` / `selva-private` storage policies. |
94
94
  | `20260529202220_selva_definition_version_schema.sql` | Adds `definition_versions.schema` + `schema_extracted_at` (cached compute-extracted UI schema) and the previously-missing `change_note` column. All `add column if not exists`, so it's safe to re-run. |
95
95
 
96
+ These two are only the foundation — the directory ships further timestamp-prefixed migrations on top (solve metrics, org assets, definition status/audit, erasure functions, …). The table above is not the full list; `supabase/migrations/` in filename order is authoritative.
97
+
96
98
  Future schema changes go in new timestamp-prefixed files: `<UTCtimestamp>_selva_<name>.sql` (e.g. `date -u +%Y%m%d%H%M%S` for the prefix). The `_selva_` infix and timestamp prefix let a consuming app's own migrations interleave by time without ever colliding with Selva's — see [Consuming migrations in an external app](#consuming-migrations-in-an-external-app).
97
99
 
98
100
  The `supabase/seed.sql` file creates the two storage buckets (`selva-public`, `selva-private`).
@@ -1,4 +1,4 @@
1
- import { type IComputeServerStore, type ComputeConfig, type ComputeServerConfig, type RequestContext, type SecretVerificationReport } from '@selvajs/platform';
1
+ import { type IComputeServerStore, type ComputeConfig, type ComputeServerConfig, type GetConfigOptions, type RequestContext, type SecretVerificationReport, type ILogger } from '@selvajs/platform';
2
2
  import type { ClientBundle } from './client.js';
3
3
  /**
4
4
  * Compute-server config backed by three tables:
@@ -24,9 +24,20 @@ export declare class SupabaseComputeServerStore implements IComputeServerStore {
24
24
  * local provider's on-disk envelope. Optional only for legacy construction
25
25
  * paths (tests that never touch apiKeys); a store built without a key throws
26
26
  * if asked to write or read a secret. Wire it via `SupabaseDataProvider`.
27
+ *
28
+ * `logger` is optional and defaults to `NoopLogger` — this is library code, so
29
+ * it stays silent unless the app wires a real logger in.
27
30
  */
28
- constructor(clients: ClientBundle, secretKey?: Buffer | undefined);
29
- getConfig(ctx: RequestContext): Promise<ComputeConfig>;
31
+ private readonly logger;
32
+ constructor(clients: ClientBundle, secretKey?: Buffer | undefined, logger?: ILogger);
33
+ getConfig(ctx: RequestContext, opts?: GetConfigOptions): Promise<ComputeConfig>;
34
+ /**
35
+ * One server's decrypted key — the solve path's entry point, replacing a
36
+ * whole-table read + N decrypts with a single-row lookup and one decrypt.
37
+ * Tolerant in the same way `decryptRowApiKey` is: an unknown id or an
38
+ * unreadable ciphertext yields `undefined` rather than throwing.
39
+ */
40
+ getServerApiKey(ctx: RequestContext, serverId: string): Promise<string | undefined>;
30
41
  savePlatformServers(ctx: RequestContext, servers: ComputeServerConfig[], defaultServerId: string | undefined): Promise<void>;
31
42
  saveOrgServers(ctx: RequestContext, orgId: string, servers: ComputeServerConfig[], defaultServerId?: string | null): Promise<void>;
32
43
  setOrgDefault(ctx: RequestContext, orgId: string, serverId: string | null): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseComputeServerStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseComputeServerStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EAEnB,KAAK,wBAAwB,EAC7B,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWhD;;;;;;;;;;;;;GAaG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAUpE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAV5B;;;;;;;OAOG;gBAEe,OAAO,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,MAAM,YAAA;IAG9B,SAAS,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA2CtD,mBAAmB,CACxB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,eAAe,EAAE,MAAM,GAAG,SAAS,GACjC,OAAO,CAAC,IAAI,CAAC;IAiCV,cAAc,CACnB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,EAAE,EAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,OAAO,CAAC,IAAI,CAAC;IAgCV,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzF,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BpE;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;;;;OAKG;IACG,aAAa,IAAI,OAAO,CAAC,wBAAwB,CAAC;CA0CxD"}
1
+ {"version":3,"file":"SupabaseComputeServerStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseComputeServerStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEnB,KAAK,wBAAwB,EAC7B,KAAK,OAAO,EACZ,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAsBhD;;;;;;;;;;;;;GAaG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAepE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAf5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAGf,OAAO,EAAE,YAAY,EACrB,SAAS,CAAC,EAAE,MAAM,YAAA,EACnC,MAAM,CAAC,EAAE,OAAO;IAKX,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAiDzF;;;;;OAKG;IACG,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAYnF,mBAAmB,CACxB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,eAAe,EAAE,MAAM,GAAG,SAAS,GACjC,OAAO,CAAC,IAAI,CAAC;IAiCV,cAAc,CACnB,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,EAAE,EAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,OAAO,CAAC,IAAI,CAAC;IAgCV,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzF,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BpE;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAoCxB;;;;;OAKG;IACG,aAAa,IAAI,OAAO,CAAC,wBAAwB,CAAC;CA0CxD"}
@@ -1,10 +1,21 @@
1
1
  import { isOrgServer, isPlatformServer } from '@selvajs/platform';
2
+ import { NoopLogger } from '@selvajs/platform';
2
3
  // Secret crypto functions come from the server-only subpath (they use
3
4
  // `node:crypto`, kept out of the root barrel so client bundles don't pull it in).
4
5
  import { decryptSecret, encryptSecret, isEncryptedSecret } from '@selvajs/platform/computeServer';
5
6
  import { mapPostgrestError } from './errors.js';
6
- /** Explicit column list for `compute_servers` — every field `rowToServer` consumes. */
7
- const SERVER_COLUMNS = 'id, scope, owner_org_id, shared_with_all, label, server_url, api_key, timeout_ms, retry_count';
7
+ /**
8
+ * Explicit column list for `compute_servers`, minus the encrypted `api_key`.
9
+ * Reading a key costs a decrypt per row, so the default projection leaves it
10
+ * out entirely and `getConfig` reports only whether one is set.
11
+ */
12
+ const SERVER_COLUMNS = 'id, scope, owner_org_id, shared_with_all, label, server_url, timeout_ms, retry_count, has_api_key';
13
+ /**
14
+ * Projection for the `includeApiKeys` path — the base columns plus the secret.
15
+ * Spelled out rather than interpolated: supabase-js infers the row type from
16
+ * the literal column string, and a template literal degrades it to `string`.
17
+ */
18
+ const SERVER_COLUMNS_WITH_KEY = 'id, scope, owner_org_id, shared_with_all, label, server_url, timeout_ms, retry_count, has_api_key, api_key';
8
19
  /** Columns from the share join table read in `getConfig`. */
9
20
  const SHARE_COLUMNS = 'server_id, org_id';
10
21
  /** Columns from the per-org default table read in `getConfig`. */
@@ -33,15 +44,26 @@ export class SupabaseComputeServerStore {
33
44
  * local provider's on-disk envelope. Optional only for legacy construction
34
45
  * paths (tests that never touch apiKeys); a store built without a key throws
35
46
  * if asked to write or read a secret. Wire it via `SupabaseDataProvider`.
47
+ *
48
+ * `logger` is optional and defaults to `NoopLogger` — this is library code, so
49
+ * it stays silent unless the app wires a real logger in.
36
50
  */
37
- constructor(clients, secretKey) {
51
+ logger;
52
+ constructor(clients, secretKey, logger) {
38
53
  this.clients = clients;
39
54
  this.secretKey = secretKey;
55
+ this.logger = logger ?? new NoopLogger();
40
56
  }
41
- async getConfig(ctx) {
57
+ async getConfig(ctx, opts = {}) {
42
58
  const client = this.clients.forRequest(ctx);
59
+ const withKeys = opts.includeApiKeys === true;
43
60
  const [serversRes, sharesRes, orgDefRes, platDefRes] = await Promise.all([
44
- client.from('compute_servers').select(SERVER_COLUMNS),
61
+ // Two literal selects rather than one interpolated column string:
62
+ // supabase-js derives the row type from the literal, so a computed one
63
+ // resolves to a ParserError instead of a row.
64
+ withKeys
65
+ ? client.from('compute_servers').select(SERVER_COLUMNS_WITH_KEY)
66
+ : client.from('compute_servers').select(SERVER_COLUMNS),
45
67
  client.from('compute_server_shares').select(SHARE_COLUMNS),
46
68
  client.from('compute_server_org_defaults').select(ORG_DEFAULT_COLUMNS),
47
69
  client
@@ -65,7 +87,7 @@ export class SupabaseComputeServerStore {
65
87
  list.push(row.org_id);
66
88
  sharedByServer.set(row.server_id, list);
67
89
  }
68
- const servers = (serversRes.data ?? []).map((row) => rowToServer(this.decryptRowApiKey(row), sharedByServer));
90
+ const servers = (serversRes.data ?? []).map((row) => rowToServer(withKeys ? this.decryptRowApiKey(row) : row, sharedByServer, withKeys));
69
91
  const orgDefaults = {};
70
92
  for (const row of orgDefRes.data ?? []) {
71
93
  if (row.default_server_id)
@@ -77,6 +99,25 @@ export class SupabaseComputeServerStore {
77
99
  orgDefaults
78
100
  };
79
101
  }
102
+ /**
103
+ * One server's decrypted key — the solve path's entry point, replacing a
104
+ * whole-table read + N decrypts with a single-row lookup and one decrypt.
105
+ * Tolerant in the same way `decryptRowApiKey` is: an unknown id or an
106
+ * unreadable ciphertext yields `undefined` rather than throwing.
107
+ */
108
+ async getServerApiKey(ctx, serverId) {
109
+ const { data, error } = await this.clients
110
+ .forRequest(ctx)
111
+ .from('compute_servers')
112
+ .select('id, label, api_key')
113
+ .eq('id', serverId)
114
+ .maybeSingle();
115
+ if (error)
116
+ throw mapPostgrestError(error);
117
+ if (!data)
118
+ return undefined;
119
+ return this.decryptRowApiKey(data).api_key ?? undefined;
120
+ }
80
121
  async savePlatformServers(ctx, servers, defaultServerId) {
81
122
  const client = this.clients.forRequest(ctx);
82
123
  const platformOnly = servers.filter(isPlatformServer);
@@ -217,23 +258,25 @@ export class SupabaseComputeServerStore {
217
258
  if (!isEncryptedSecret(row.api_key)) {
218
259
  // Legacy/hand-inserted plaintext. Pass through so an existing key
219
260
  // keeps working; verifySecrets() flags it for re-save via /admin/compute.
220
- console.warn(`[selva] compute_servers row "${row.label}" (${row.id}) has a plaintext api_key. ` +
221
- 'Re-save it via /admin/compute so it is stored encrypted.');
261
+ this.logger.warn('Compute server row has a plaintext api_key; re-save it via /admin/compute so it is stored encrypted', { component: 'selva', serverLabel: row.label, serverId: row.id });
222
262
  return row;
223
263
  }
224
264
  if (!this.secretKey) {
225
- console.warn(`[selva] Cannot decrypt api_key for compute server "${row.label}" (${row.id}): ` +
226
- 'SELVA_AT_REST_KEY is not configured. Returning without a key; solves will fail.');
265
+ this.logger.warn('Cannot decrypt api_key: SELVA_AT_REST_KEY is not configured. Returning without a key; solves will fail', { component: 'selva', serverLabel: row.label, serverId: row.id });
227
266
  return { ...row, api_key: null };
228
267
  }
229
268
  try {
230
269
  return { ...row, api_key: decryptSecret(row.api_key, this.secretKey) };
231
270
  }
232
271
  catch (cause) {
233
- console.warn(`[selva] Could not decrypt api_key for compute server "${row.label}" (${row.id}). ` +
234
- 'The stored ciphertext does not match the current SELVA_AT_REST_KEY. ' +
235
- 'This server will be returned without an apiKey; solves against it will fail. ' +
236
- 'Re-enter the key via /admin/compute, or restore the original SELVA_AT_REST_KEY.', cause);
272
+ this.logger.warn('Could not decrypt api_key: the stored ciphertext does not match the current SELVA_AT_REST_KEY. ' +
273
+ 'This server is returned without an apiKey and solves against it will fail. ' +
274
+ 'Re-enter the key via /admin/compute, or restore the original SELVA_AT_REST_KEY', {
275
+ component: 'selva',
276
+ serverLabel: row.label,
277
+ serverId: row.id,
278
+ err: cause instanceof Error ? (cause.stack ?? cause.message) : String(cause)
279
+ });
237
280
  return { ...row, api_key: null };
238
281
  }
239
282
  }
@@ -286,12 +329,20 @@ export class SupabaseComputeServerStore {
286
329
  return { ok: failures.length === 0, failures, plaintextFound };
287
330
  }
288
331
  }
289
- function rowToServer(row, sharedByServer) {
332
+ /**
333
+ * `withKey` mirrors the projection the row was read with. It gates `apiKey`
334
+ * explicitly rather than trusting the row's shape, so a key can never ride along
335
+ * on a read that didn't ask for one.
336
+ */
337
+ function rowToServer(row, sharedByServer, withKey) {
290
338
  const common = {
291
339
  id: row.id,
292
340
  label: row.label,
293
341
  serverUrl: row.server_url,
294
- apiKey: row.api_key ?? undefined,
342
+ apiKey: withKey ? (row.api_key ?? undefined) : undefined,
343
+ // Prefer the generated column; fall back to the key itself for rows read
344
+ // with the key-bearing projection on a DB predating the column.
345
+ hasApiKey: row.has_api_key ?? !!row.api_key,
295
346
  timeoutMs: row.timeout_ms ?? undefined,
296
347
  retryCount: row.retry_count ?? undefined
297
348
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseComputeServerStore.js","sourceRoot":"","sources":["../../src/data/SupabaseComputeServerStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SupabaseComputeServerStore.js","sourceRoot":"","sources":["../../src/data/SupabaseComputeServerStore.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { IDataProvider, IEventSink, IPlatformProjectGrantStore, SchemaVersionReport } from '@selvajs/platform';
1
+ import type { IDataProvider, IEventSink, IPlatformProjectGrantStore, RequestContext, SchemaVersionReport, UserErasureOptions } from '@selvajs/platform';
2
+ import { type ILogger } from '@selvajs/platform';
2
3
  import type { ClientBundle, BuildClientOptions } from './client.js';
3
4
  import { SupabaseSolveMetricSink } from './SupabaseSolveMetricSink.js';
4
5
  import { SupabaseAuditQuery } from './SupabaseAuditQuery.js';
@@ -36,8 +37,8 @@ export declare class SupabaseDataProvider implements IDataProvider {
36
37
  */
37
38
  readonly solveMetrics: SupabaseSolveMetricSink;
38
39
  private constructor();
39
- static fromEnv(env: Record<string, string | undefined>, events?: IEventSink): SupabaseDataProvider;
40
- static create(opts: BuildClientOptions, events?: IEventSink, secretKey?: Buffer): SupabaseDataProvider;
40
+ static fromEnv(env: Record<string, string | undefined>, events?: IEventSink, logger?: ILogger): SupabaseDataProvider;
41
+ static create(opts: BuildClientOptions, events?: IEventSink, secretKey?: Buffer, logger?: ILogger): SupabaseDataProvider;
41
42
  /**
42
43
  * Build from a pre-existing `ClientBundle`. Useful for tests or advanced
43
44
  * cases that need to inject a custom event sink or share a bundle externally.
@@ -45,7 +46,7 @@ export declare class SupabaseDataProvider implements IDataProvider {
45
46
  * compute-server apiKeys (writes without a key throw rather than persist
46
47
  * plaintext).
47
48
  */
48
- static fromBundle(bundle: ClientBundle, events?: IEventSink, secretKey?: Buffer): SupabaseDataProvider;
49
+ static fromBundle(bundle: ClientBundle, events?: IEventSink, secretKey?: Buffer, logger?: ILogger): SupabaseDataProvider;
49
50
  /**
50
51
  * Expose the underlying bundle so other providers in the same package
51
52
  * (storage, user profile, auth) can share one set of clients per process.
@@ -68,10 +69,25 @@ export declare class SupabaseDataProvider implements IDataProvider {
68
69
  */
69
70
  ensureUser(): Promise<void>;
70
71
  /**
71
- * No-op: `public.user_profiles.user_id` references `auth.users(id)` with
72
- * `on delete cascade`. Deleting the auth user removes the profile row
73
- * automatically.
72
+ * Erasure hook (audit P1). FK cascade against `auth.users` already removes
73
+ * the profile, memberships, and owned rows — but three classes of personal
74
+ * data are NOT reachable by those FKs and are scrubbed explicitly here with
75
+ * the RLS-bypassing service client (this runs as a system erasure op):
76
+ *
77
+ * 1. `audit_events` keyed by a plain-text `actor_id` (no FK) — the deleted
78
+ * user's own actions. Deleted.
79
+ * 2. The user's email in `invites.email` (invites addressed to them) and in
80
+ * `invite.created` audit payloads (`data->>'email'`). The invite rows are
81
+ * deleted; the audit email is redacted in place (the audit *fact* that an
82
+ * invite was created is preserved — only the PII is removed).
83
+ * 3. `solve_metrics` — deliberately not FK-cascaded (retention telemetry).
84
+ * `actor_id` is tombstoned to {@link ERASED_ACTOR_ID}, keeping the row's
85
+ * aggregate value without identifying the person.
86
+ *
87
+ * Each step tolerates missing rows so the hook is idempotent on retry. Email
88
+ * scrubs are skipped when `opts.email` is absent (the caller must capture it
89
+ * before `deleteUser`).
74
90
  */
75
- onUserDeleted(): Promise<void>;
91
+ onUserDeleted(_ctx: RequestContext, userId: string, opts?: UserErasureOptions): Promise<void>;
76
92
  }
77
93
  //# sourceMappingURL=SupabaseDataProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseDataProvider.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,UAAU,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AA0BpG;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IAqBxD,OAAO,CAAC,QAAQ,CAAC,OAAO;IApBzB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC;IACtD,QAAQ,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C,OAAO;IAmBP,MAAM,CAAC,OAAO,CACb,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,MAAM,CAAC,EAAE,UAAU,GACjB,oBAAoB;IAkBvB,MAAM,CAAC,MAAM,CACZ,IAAI,EAAE,kBAAkB,EACxB,MAAM,CAAC,EAAE,UAAU,EACnB,SAAS,CAAC,EAAE,MAAM,GAChB,oBAAoB;IAKvB;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAChB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,SAAS,CAAC,EAAE,MAAM,GAChB,oBAAoB;IAIvB;;;OAGG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;;;;;OAQG;IACG,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAgDzD;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
1
+ {"version":3,"file":"SupabaseDataProvider.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,UAAU,EACV,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA8C,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG7F,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5F,OAAO,EAAE,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AA0BpG;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IAqBxD,OAAO,CAAC,QAAQ,CAAC,OAAO;IApBzB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC;IAClD,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC;IACtD,QAAQ,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IAC3D,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C,OAAO;IAoBP,MAAM,CAAC,OAAO,CACb,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EACvC,MAAM,CAAC,EAAE,UAAU,EACnB,MAAM,GAAE,OAA0B,GAChC,oBAAoB;IAuBvB,MAAM,CAAC,MAAM,CACZ,IAAI,EAAE,kBAAkB,EACxB,MAAM,CAAC,EAAE,UAAU,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,GAAE,OAA0B,GAChC,oBAAoB;IAUvB;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAChB,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,UAAU,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,GAAE,OAA0B,GAChC,oBAAoB;IASvB;;;OAGG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;;;;;OAQG;IACG,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAgDzD;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,aAAa,CAClB,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC;CAiDhB"}
@@ -1,4 +1,4 @@
1
- import { ProviderError } from '@selvajs/platform';
1
+ import { ERASED_ACTOR_ID, NoopLogger, ProviderError } from '@selvajs/platform';
2
2
  import { decodeSecretKey } from '@selvajs/platform/computeServer';
3
3
  import { EXPECTED_MIGRATION_HEAD } from './migrationHead.js';
4
4
  import { buildClientBundle, clientBundleFromEnv } from './client.js';
@@ -61,22 +61,22 @@ export class SupabaseDataProvider {
61
61
  * constructing a second Supabase client.
62
62
  */
63
63
  solveMetrics;
64
- constructor(clients, events, secretKey) {
64
+ constructor(clients, events, secretKey, logger = new NoopLogger()) {
65
65
  this.clients = clients;
66
66
  this.events = events;
67
- this.solveMetrics = new SupabaseSolveMetricSink(clients);
67
+ this.solveMetrics = new SupabaseSolveMetricSink(clients, { logger });
68
68
  this.orgs = new SupabaseOrgStore(clients, events);
69
69
  this.projects = new SupabaseProjectStore(clients, events);
70
70
  this.definitions = new SupabaseDefinitionStore(clients, events);
71
71
  this.invites = new SupabaseInviteStore(clients, events);
72
- this.computeServer = new SupabaseComputeServerStore(clients, secretKey);
72
+ this.computeServer = new SupabaseComputeServerStore(clients, secretKey, logger);
73
73
  this.shareLinks = new SupabaseShareLinkStore(clients, events);
74
74
  this.userProfile = new SupabaseUserProfileProvider(clients);
75
75
  this.permissions = new SupabasePlatformPermissionStore(clients);
76
76
  this.platformProjectGrants = notImplementedGrantStore;
77
77
  this.auditQuery = new SupabaseAuditQuery(clients);
78
78
  }
79
- static fromEnv(env, events) {
79
+ static fromEnv(env, events, logger = new NoopLogger()) {
80
80
  // Bundle-only env parse (URL + anon + service-role) is shared with
81
81
  // `clientBundleFromEnv`; the full data provider additionally requires the
82
82
  // at-rest key below.
@@ -89,11 +89,11 @@ export class SupabaseDataProvider {
89
89
  "Generate one with: node -e \"console.log(require('crypto').randomBytes(32).toString('hex'))\"");
90
90
  }
91
91
  const secretKey = decodeSecretKey(env.SELVA_AT_REST_KEY);
92
- return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle), secretKey);
92
+ return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle, { logger }), secretKey, logger);
93
93
  }
94
- static create(opts, events, secretKey) {
94
+ static create(opts, events, secretKey, logger = new NoopLogger()) {
95
95
  const bundle = buildClientBundle(opts);
96
- return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle), secretKey);
96
+ return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle, { logger }), secretKey, logger);
97
97
  }
98
98
  /**
99
99
  * Build from a pre-existing `ClientBundle`. Useful for tests or advanced
@@ -102,8 +102,8 @@ export class SupabaseDataProvider {
102
102
  * compute-server apiKeys (writes without a key throw rather than persist
103
103
  * plaintext).
104
104
  */
105
- static fromBundle(bundle, events, secretKey) {
106
- return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle), secretKey);
105
+ static fromBundle(bundle, events, secretKey, logger = new NoopLogger()) {
106
+ return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle, { logger }), secretKey, logger);
107
107
  }
108
108
  /**
109
109
  * Expose the underlying bundle so other providers in the same package
@@ -176,12 +176,57 @@ export class SupabaseDataProvider {
176
176
  // Trigger handles it.
177
177
  }
178
178
  /**
179
- * No-op: `public.user_profiles.user_id` references `auth.users(id)` with
180
- * `on delete cascade`. Deleting the auth user removes the profile row
181
- * automatically.
179
+ * Erasure hook (audit P1). FK cascade against `auth.users` already removes
180
+ * the profile, memberships, and owned rows — but three classes of personal
181
+ * data are NOT reachable by those FKs and are scrubbed explicitly here with
182
+ * the RLS-bypassing service client (this runs as a system erasure op):
183
+ *
184
+ * 1. `audit_events` keyed by a plain-text `actor_id` (no FK) — the deleted
185
+ * user's own actions. Deleted.
186
+ * 2. The user's email in `invites.email` (invites addressed to them) and in
187
+ * `invite.created` audit payloads (`data->>'email'`). The invite rows are
188
+ * deleted; the audit email is redacted in place (the audit *fact* that an
189
+ * invite was created is preserved — only the PII is removed).
190
+ * 3. `solve_metrics` — deliberately not FK-cascaded (retention telemetry).
191
+ * `actor_id` is tombstoned to {@link ERASED_ACTOR_ID}, keeping the row's
192
+ * aggregate value without identifying the person.
193
+ *
194
+ * Each step tolerates missing rows so the hook is idempotent on retry. Email
195
+ * scrubs are skipped when `opts.email` is absent (the caller must capture it
196
+ * before `deleteUser`).
182
197
  */
183
- async onUserDeleted() {
184
- // FK cascade handles it.
198
+ async onUserDeleted(_ctx, userId, opts) {
199
+ const client = this.clients.serviceClient;
200
+ const email = opts?.email;
201
+ // 1. Audit rows the user authored (actor_id is plain text, no FK cascade).
202
+ const deletedActions = await client.from('audit_events').delete().eq('actor_id', userId);
203
+ if (deletedActions.error) {
204
+ throw new ProviderError(`Failed to erase audit_events for user: ${deletedActions.error.message}`, 500);
205
+ }
206
+ // 3. Anonymize retention telemetry rather than delete it.
207
+ const tombstoned = await client
208
+ .from('solve_metrics')
209
+ .update({ actor_id: ERASED_ACTOR_ID })
210
+ .eq('actor_id', userId);
211
+ if (tombstoned.error) {
212
+ throw new ProviderError(`Failed to anonymize solve_metrics for user: ${tombstoned.error.message}`, 500);
213
+ }
214
+ if (!email)
215
+ return;
216
+ // 2a. Invites addressed to the user's email (their PII, keyed by email
217
+ // not by FK). `invited_by` cascade only removes invites they SENT.
218
+ const deletedInvites = await client.from('invites').delete().eq('email', email);
219
+ if (deletedInvites.error) {
220
+ throw new ProviderError(`Failed to erase invites for user email: ${deletedInvites.error.message}`, 500);
221
+ }
222
+ // 2b. Redact the email out of surviving `invite.created` audit payloads
223
+ // (authored by the inviter, so the row itself must survive — only the
224
+ // embedded invitee email is scrubbed). The SQL function rewrites the
225
+ // `email` key in place and returns the redacted row count.
226
+ const redacted = await client.rpc('redact_audit_event_email', { p_email: email });
227
+ if (redacted.error) {
228
+ throw new ProviderError(`Failed to redact audit_events email payloads: ${redacted.error.message}`, 500);
229
+ }
185
230
  }
186
231
  }
187
232
  //# sourceMappingURL=SupabaseDataProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseDataProvider.js","sourceRoot":"","sources":["../../src/data/SupabaseDataProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SupabaseDataProvider.js","sourceRoot":"","sources":["../../src/data/SupabaseDataProvider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseDefinitionStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseDefinitionStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SupabaseDefinitionStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseDefinitionStore.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,19 @@ import { nextCursorFromRange, toRange } from './pagination.js';
4
4
  import { stampSoftDelete, stampUpdate } from './rowStamp.js';
5
5
  /** Explicit column list for `definitions` — every field `rowToRecord` consumes. */
6
6
  const DEFINITION_COLUMNS = 'guid, project_id, owner_id, created_by, updated_by, compute_server_id, solve_cache_limit, display_name, description, category, tags, cover_image, status, run_count, next_version_number, live_version_id, draft_version_id, created_at, updated_at, deleted_at';
7
- /** Explicit column list for `definition_versions` — every field `rowToVersion` consumes. */
8
- const DEFINITION_VERSION_COLUMNS = 'id, definition_guid, version_number, file_ext, file_key, original_filename, uploaded_by, uploaded_at, change_note, schema, schema_extracted_at';
7
+ /**
8
+ * Explicit column list for `definition_versions`, minus the `schema` JSONB.
9
+ * `schema` can be hundreds of KB per row, so the list projection leaves it out
10
+ * and `listVersions` returns rows with `schema: undefined`; only `getVersion`
11
+ * (which reads one row, for a caller that needs the schema) pulls it in.
12
+ */
13
+ const DEFINITION_VERSION_COLUMNS = 'id, definition_guid, version_number, file_ext, file_key, original_filename, uploaded_by, uploaded_at, change_note, schema_extracted_at';
14
+ /**
15
+ * `getVersion`'s projection — the list columns plus the `schema` JSONB. Spelled
16
+ * out rather than interpolated: supabase-js infers the row type from the literal
17
+ * column string, and a template literal degrades it to `string`.
18
+ */
19
+ const DEFINITION_VERSION_COLUMNS_WITH_SCHEMA = 'id, definition_guid, version_number, file_ext, file_key, original_filename, uploaded_by, uploaded_at, change_note, schema_extracted_at, schema';
9
20
  /**
10
21
  * Definition metadata + version store backed by Postgres. Spec §6 versioning:
11
22
  * `definitions` carries the parent record and the `live`/`draft` channel
@@ -221,7 +232,7 @@ export class SupabaseDefinitionStore {
221
232
  const { data, error } = await this.clients
222
233
  .forRequest(ctx)
223
234
  .from('definition_versions')
224
- .select(DEFINITION_VERSION_COLUMNS)
235
+ .select(DEFINITION_VERSION_COLUMNS_WITH_SCHEMA)
225
236
  .eq('id', versionId)
226
237
  .maybeSingle();
227
238
  if (error)
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseDefinitionStore.js","sourceRoot":"","sources":["../../src/data/SupabaseDefinitionStore.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE7D,mFAAmF;AACnF,MAAM,kBAAkB,GACvB,iQAAiQ,CAAC;AACnQ,4FAA4F;AAC5F,MAAM,0BAA0B,GAC/B,gJAAgJ,CAAC;AAElJ;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,uBAAuB;IAIjB;IAHD,MAAM,CAAa;IAEpC,YACkB,OAAqB,EACtC,SAAqB,IAAI,aAAa,EAAE;QADvB,YAAO,GAAP,OAAO,CAAc;QAGtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,+EAA+E;IAC/E,cAAc;IACd,+EAA+E;IAE/E,KAAK,CAAC,IAAI,CAAC,GAAmB,EAAE,IAA4B;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,aAAa,CAClB,GAAmB,EACnB,SAAiB,EACjB,IAA4B;QAE5B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,UAAU,CACf,GAAmB,EACnB,IAAiD;QAEjD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAEO,KAAK,CAAC,OAAO,CACpB,GAAmB,EACnB,MAAgF,EAChF,IAA4B;QAE5B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC;QAE3C,wEAAwE;QACxE,wEAAwE;QACxE,uEAAuE;QACvE,uCAAuC;QACvC,MAAM,aAAa,GAAG,MAAM,EAAE,UAAU;YACvC,CAAC,CAAC,GAAG,kBAAkB,8CAA8C;YACrE,CAAC,CAAC,kBAAkB,CAAC;QAEtB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO;aACtB,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aACzC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAEzB,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;YACxB,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,KAAK;gBAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,MAAM,EAAE,SAAS;YAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAExE,IAAI,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC5B,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,EAAE,cAAc;gBAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,EAAE,eAAe;gBAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrB,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;QAED,KAAK,GAAG,KAAK;aACX,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,KAAK,EAAE,CAAC;aAC/E,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAE9B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC;QAC3C,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,yEAAyE;QACzE,sEAAsE;QACtE,gEAAgE;QAChE,MAAM,KAAK,GAAI,CAAC,IAAI,IAAI,EAAE,CAAgC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5E,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAmB,EAAE,IAAY;QAC1C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,kBAAkB,CAAC;aAC1B,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;aAChB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,WAAW,EAAE,CAAC;QAChB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAmB,EAAE,MAAwB;QACzD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aAClC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9B,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,oBAAoB;YAC1B,YAAY,EAAE,MAAM,CAAC,IAAI;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAmB,EAAE,IAAY,EAAE,KAA4B;QAC3E,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC1C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAErC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;aAChB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,eAAe,IAAI,aAAa,EAAE,GAAG,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAmB,EAAE,IAAY;QAC7C,oEAAoE;QACpE,mEAAmE;QACnE,iCAAiC;QACjC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aAClC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;aAC5B,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;aAChB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,oBAAoB;YAC1B,YAAY,EAAE,IAAI;YAClB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAmB,EAAE,SAAiB;QAC3D,0EAA0E;QAC1E,0EAA0E;QAC1E,uEAAuE;QACvE,gDAAgD;QAChD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;aAC5B,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;aAC3B,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACtB,IAAI,EAAE,oBAAoB;gBAC1B,YAAY,EAAE,GAAG,CAAC,IAAI;gBACtB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;aACvB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAAmB,EAAE,IAAY;QAC1D,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,GAAmB,EAAE,IAAY;QAC/D,0EAA0E;QAC1E,0EAA0E;QAC1E,kDAAkD;QAClD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,GAAG,CAAC,6BAA6B,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,aAAa,CAAC,eAAe,IAAI,aAAa,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,+EAA+E;IAC/E,qBAAqB;IACrB,+EAA+E;IAE/E,KAAK,CAAC,aAAa,CAAC,GAAmB,EAAE,OAA0B;QAClE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aAClC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,qBAAqB,CAAC;aAC3B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,4BAA4B;YAClC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CACjB,GAAmB,EACnB,YAAoB,EACpB,IAAkB;QAElB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aAC/C,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,qBAAqB,CAAC;aAC3B,MAAM,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aACtD,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;aACnC,KAAK,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;aAC7C,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAmB,EAAE,SAAiB;QACtD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,qBAAqB,CAAC;aAC3B,MAAM,CAAC,0BAA0B,CAAC;aAClC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;aACnB,WAAW,EAAE,CAAC;QAChB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAmB,EAAE,SAAiB,EAAE,MAAgB;QAC9E,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aAClC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,qBAAqB,CAAC;aAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;aACjE,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACtB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAmB,EAAE,SAAiB;QACzD,qEAAqE;QACrE,iEAAiE;QACjE,2EAA2E;QAC3E,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aAClC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,qBAAqB,CAAC;aAC3B,MAAM,EAAE;aACR,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACtB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,4BAA4B;YAClC,SAAS;YACT,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CACnB,GAAmB,EACnB,YAAoB,EACpB,SAAiB;QAEjB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC3E,gEAAgE;QAChE,wEAAwE;QACxE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,sBAAsB;YAC5B,YAAY;YACZ,SAAS;YACT,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACpB,GAAmB,EACnB,YAAoB,EACpB,SAAiB;QAEjB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,GAAmB,EACnB,YAAoB,EACpB,SAAiB;QAEjB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5C,sEAAsE;QACtE,sEAAsE;QACtE,aAAa;QACb,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM;aACnD,IAAI,CAAC,qBAAqB,CAAC;aAC3B,MAAM,CAAC,qBAAqB,CAAC;aAC7B,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;aACnB,WAAW,EAAE,CAAC;QAChB,IAAI,MAAM;YAAE,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;YAC1D,MAAM,IAAI,aAAa,CAAC,YAAY,SAAS,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACtF,CAAC;QAED,mEAAmE;QACnE,qEAAqE;QACrE,MAAM,GAAG,GAA4B;YACpC,eAAe,EAAE,SAAS;YAC1B,gBAAgB,EAAE,SAAS;YAC3B,MAAM,EAAE,OAAO;YACf,GAAG,WAAW,CAAC,GAAG,CAAC;SACnB,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aAClC,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;aACxB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CAAC,eAAe,YAAY,aAAa,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;QACD,uDAAuD;IACxD,CAAC;IAEO,KAAK,CAAC,cAAc,CAC3B,GAAmB,EACnB,YAAoB,EACpB,SAAiB,EACjB,MAA8C;QAE9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5C,qEAAqE;QACrE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM;aACnD,IAAI,CAAC,qBAAqB,CAAC;aAC3B,MAAM,CAAC,qBAAqB,CAAC;aAC7B,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;aACnB,WAAW,EAAE,CAAC;QAChB,IAAI,MAAM;YAAE,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;YAC1D,MAAM,IAAI,aAAa,CAAC,YAAY,SAAS,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,GAAG,GAA4B,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QAClF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aAClC,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;aACxB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CAAC,eAAe,YAAY,aAAa,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;IACF,CAAC;CACD;AA0CD,SAAS,WAAW,CAAC,GAAkB;IACtC,OAAO;QACN,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ;QACzC,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ;QACzC,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,eAAe,EAAE,GAAG,CAAC,iBAAiB,IAAI,SAAS;QACnD,eAAe,EACd,GAAG,CAAC,iBAAiB,IAAI,IAAI;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ;gBAC1C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBAC/B,CAAC,CAAC,GAAG,CAAC,iBAAiB;QAC1B,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;QACzC,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,SAAS;QACnC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;QACxC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS;QACrF,iBAAiB,EAChB,OAAO,GAAG,CAAC,mBAAmB,KAAK,QAAQ;YAC1C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACjC,CAAC,CAAC,GAAG,CAAC,mBAAmB;QAC3B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;KACjC,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,CAAmB;IACvC,MAAM,GAAG,GAA4B;QACpC,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,QAAQ,EAAE,CAAC,CAAC,OAAO;QACnB,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,eAAe,EAAE,CAAC,CAAC,aAAa;QAChC,gBAAgB,EAAE,CAAC,CAAC,cAAc;QAClC,iBAAiB,EAAE,CAAC,CAAC,eAAe,IAAI,IAAI;QAC5C,iBAAiB,EAAE,CAAC,CAAC,eAAe,IAAI,IAAI;QAC5C,YAAY,EAAE,CAAC,CAAC,WAAW;QAC3B,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI;QAC5B,WAAW,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;QACjC,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,mBAAmB,EAAE,CAAC,CAAC,iBAAiB;QACxC,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;KAC/B,CAAC;IACF,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAC5C,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,UAAU,CAAC,KAA4B;IAC/C,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;QAAE,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC;IAC1E,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;QAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACzE,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACpD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;IACvE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;QAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;IACpE,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAC;IACvF,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS;QAAE,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,eAAe,CAAC;IACvF,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9D,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,GAAyB;IAC9C,OAAO;QACN,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,YAAY,EAAE,GAAG,CAAC,eAAe;QACjC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,IAAI,SAAS;QACpD,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;QACxC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS;QAC/B,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,IAAI,SAAS;KACvD,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,CAAoB;IACzC,MAAM,GAAG,GAA4B;QACpC,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,eAAe,EAAE,CAAC,CAAC,YAAY;QAC/B,cAAc,EAAE,CAAC,CAAC,aAAa;QAC/B,QAAQ,EAAE,CAAC,CAAC,OAAO;QACnB,QAAQ,EAAE,CAAC,CAAC,OAAO;QACnB,iBAAiB,EAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI;QAC7C,WAAW,EAAE,CAAC,CAAC,UAAU;QACzB,WAAW,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC;IACF,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;QAAE,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC;IAC/D,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS;QAAE,GAAG,CAAC,mBAAmB,GAAG,CAAC,CAAC,iBAAiB,CAAC;IACrF,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAqD;IACnF,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,MAAM;YACV,OAAO,cAAc,CAAC;QACvB,KAAK,YAAY;YAChB,OAAO,WAAW,CAAC;QACpB,KAAK,WAAW;YACf,OAAO,YAAY,CAAC;QACrB,KAAK,WAAW,CAAC;QACjB;YACC,OAAO,YAAY,CAAC;IACtB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"SupabaseDefinitionStore.js","sourceRoot":"","sources":["../../src/data/SupabaseDefinitionStore.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DomainEvent, IEventSink } from '@selvajs/platform';
1
+ import { type DomainEvent, type IEventSink, type ILogger } from '@selvajs/platform';
2
2
  import type { ClientBundle } from './client.js';
3
3
  /**
4
4
  * Persists every domain event to `public.audit_events`. Writes use the
@@ -11,7 +11,10 @@ import type { ClientBundle } from './client.js';
11
11
  */
12
12
  export declare class SupabaseEventSink implements IEventSink {
13
13
  private readonly clients;
14
- constructor(clients: ClientBundle);
14
+ private readonly logger;
15
+ constructor(clients: ClientBundle, opts?: {
16
+ logger?: ILogger;
17
+ });
15
18
  emit(event: DomainEvent): Promise<void>;
16
19
  }
17
20
  //# sourceMappingURL=SupabaseEventSink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseEventSink.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseEventSink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAE5C,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAc7C"}
1
+ {"version":3,"file":"SupabaseEventSink.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseEventSink.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,OAAO,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,YAAW,UAAU;IAIlD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAGf,OAAO,EAAE,YAAY,EACtC,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO;IAK1B,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CA4B7C"}
@@ -1,3 +1,4 @@
1
+ import { AUDIT_EVENT_VERSION, NoopLogger } from '@selvajs/platform';
1
2
  /**
2
3
  * Persists every domain event to `public.audit_events`. Writes use the
3
4
  * service-role client so RLS does not gate the audit trail — the sink runs
@@ -9,22 +10,38 @@
9
10
  */
10
11
  export class SupabaseEventSink {
11
12
  clients;
12
- constructor(clients) {
13
+ logger;
14
+ constructor(clients, opts = {}) {
13
15
  this.clients = clients;
16
+ this.logger = opts.logger ?? new NoopLogger();
14
17
  }
15
18
  async emit(event) {
16
19
  try {
17
20
  const { error } = await this.clients.serviceClient.from('audit_events').insert({
18
21
  type: event.type,
19
22
  actor_id: event.actorId,
23
+ event_version: AUDIT_EVENT_VERSION,
20
24
  data: event
21
25
  });
22
26
  if (error) {
23
- console.error('[SupabaseEventSink] insert failed:', error.message, { event });
27
+ // Only the event's identifiers are logged, never the whole event: an
28
+ // `invite.created` payload embeds the invitee's email address, and log
29
+ // records outlive and out-travel the audit row itself.
30
+ this.logger.error('Audit event insert failed', {
31
+ component: 'SupabaseEventSink',
32
+ eventType: event.type,
33
+ actorId: event.actorId,
34
+ err: error.message
35
+ });
24
36
  }
25
37
  }
26
38
  catch (err) {
27
- console.error('[SupabaseEventSink] unexpected error:', err, { event });
39
+ this.logger.error('Unexpected error writing audit event', {
40
+ component: 'SupabaseEventSink',
41
+ eventType: event.type,
42
+ actorId: event.actorId,
43
+ err: err instanceof Error ? (err.stack ?? err.message) : String(err)
44
+ });
28
45
  }
29
46
  }
30
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseEventSink.js","sourceRoot":"","sources":["../../src/data/SupabaseEventSink.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IACA;IAA7B,YAA6B,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAEtD,KAAK,CAAC,IAAI,CAAC,KAAkB;QAC5B,IAAI,CAAC;YACJ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;gBAC9E,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,KAAK,CAAC,OAAO;gBACvB,IAAI,EAAE,KAAK;aACX,CAAC,CAAC;YACH,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"SupabaseEventSink.js","sourceRoot":"","sources":["../../src/data/SupabaseEventSink.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,EACnB,UAAU,EAIV,MAAM,mBAAmB,CAAC;AAG3B;;;;;;;;GAQG;AACH,MAAM,OAAO,iBAAiB;IAIX;IAHD,MAAM,CAAU;IAEjC,YACkB,OAAqB,EACtC,OAA6B,EAAE;QADd,YAAO,GAAP,OAAO,CAAc;QAGtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAkB;QAC5B,IAAI,CAAC;YACJ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;gBAC9E,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,KAAK,CAAC,OAAO;gBACvB,aAAa,EAAE,mBAAmB;gBAClC,IAAI,EAAE,KAAK;aACX,CAAC,CAAC;YACH,IAAI,KAAK,EAAE,CAAC;gBACX,qEAAqE;gBACrE,uEAAuE;gBACvE,uDAAuD;gBACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;oBAC9C,SAAS,EAAE,mBAAmB;oBAC9B,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,GAAG,EAAE,KAAK,CAAC,OAAO;iBAClB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE;gBACzD,SAAS,EAAE,mBAAmB;gBAC9B,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACpE,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;CACD"}
@@ -1,17 +1,62 @@
1
1
  import type { ISolveMetricSink, RequestContext, SolveMetric } from '@selvajs/platform';
2
+ import { type ILogger } from '@selvajs/platform';
2
3
  import type { ClientBundle } from './client.js';
4
+ export interface SolveMetricSinkOptions {
5
+ /** Flush once this many rows are buffered. */
6
+ maxBatchSize?: number;
7
+ /** Flush a non-empty buffer after this many ms, even if under `maxBatchSize`. */
8
+ flushIntervalMs?: number;
9
+ /**
10
+ * Hard cap on buffered rows. Past this, the oldest rows are dropped so a
11
+ * stalled or failing backend cannot grow the buffer without bound.
12
+ */
13
+ maxBufferSize?: number;
14
+ /**
15
+ * Structured logger for flush failures and buffer drops. Optional; defaults to
16
+ * `NoopLogger` so this library never writes to stdout unless the app wires one.
17
+ */
18
+ logger?: ILogger;
19
+ }
3
20
  /**
4
- * Persists every solve's timing to `selva.solve_metrics`. Writes use the
21
+ * Persists solves' timings to `selva.solve_metrics`. Writes use the
5
22
  * service-role client so RLS does not gate the telemetry — the sink runs as a
6
23
  * system process attached to the compute route, not the requesting user.
7
24
  *
25
+ * Rows are buffered and written in batches: slider scrubbing produces solves
26
+ * far faster than they are worth individual round-trips, and this Postgres also
27
+ * serves auth. A batch goes out when the buffer reaches `maxBatchSize` or when
28
+ * `flushIntervalMs` elapses with anything buffered, whichever comes first.
29
+ *
8
30
  * Per the `ISolveMetricSink` contract, `record` MUST NOT throw. It sits on the
9
31
  * hot path of every solve and the response has already been produced by the
10
- * time we're here, so a failed insert is logged and swallowed.
32
+ * time we're here, so it only buffers; a failed flush is logged and swallowed.
33
+ * Buffering means metrics are lost on an unclean shutdown — call `close()` to
34
+ * drain deliberately.
11
35
  */
12
36
  export declare class SupabaseSolveMetricSink implements ISolveMetricSink {
13
37
  private readonly clients;
14
- constructor(clients: ClientBundle);
15
- record(_ctx: RequestContext, metric: SolveMetric): Promise<void>;
38
+ private buffer;
39
+ private timer;
40
+ private inFlight;
41
+ private closed;
42
+ private readonly maxBatchSize;
43
+ private readonly flushIntervalMs;
44
+ private readonly maxBufferSize;
45
+ private readonly logger;
46
+ constructor(clients: ClientBundle, opts?: SolveMetricSinkOptions);
47
+ record(ctx: RequestContext, metric: SolveMetric): Promise<void>;
48
+ /**
49
+ * Writes everything buffered and resolves once the write settles. Serialized
50
+ * against any in-flight flush so batches cannot interleave. Never throws.
51
+ */
52
+ flush(): Promise<void>;
53
+ /**
54
+ * Stops the timer, drains the buffer, and rejects further records. Call on
55
+ * shutdown so the last partial batch is not lost.
56
+ */
57
+ close(): Promise<void>;
58
+ private scheduleFlush;
59
+ private clearTimer;
60
+ private write;
16
61
  }
17
62
  //# sourceMappingURL=SupabaseSolveMetricSink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseSolveMetricSink.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseSolveMetricSink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAE5C,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBtE"}
1
+ {"version":3,"file":"SupabaseSolveMetricSink.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseSolveMetricSink.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAgBhD,MAAM,WAAW,sBAAsB;IACtC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAY9D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXzB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBAGf,OAAO,EAAE,YAAY,EACtC,IAAI,GAAE,sBAA2B;IAQ5B,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCrE;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,UAAU;YAMJ,KAAK;CAkBnB"}
@@ -1,38 +1,128 @@
1
+ import { NoopLogger } from '@selvajs/platform';
2
+ const DEFAULT_MAX_BATCH_SIZE = 100;
3
+ const DEFAULT_FLUSH_INTERVAL_MS = 2000;
4
+ const DEFAULT_MAX_BUFFER_SIZE = 10_000;
1
5
  /**
2
- * Persists every solve's timing to `selva.solve_metrics`. Writes use the
6
+ * Persists solves' timings to `selva.solve_metrics`. Writes use the
3
7
  * service-role client so RLS does not gate the telemetry — the sink runs as a
4
8
  * system process attached to the compute route, not the requesting user.
5
9
  *
10
+ * Rows are buffered and written in batches: slider scrubbing produces solves
11
+ * far faster than they are worth individual round-trips, and this Postgres also
12
+ * serves auth. A batch goes out when the buffer reaches `maxBatchSize` or when
13
+ * `flushIntervalMs` elapses with anything buffered, whichever comes first.
14
+ *
6
15
  * Per the `ISolveMetricSink` contract, `record` MUST NOT throw. It sits on the
7
16
  * hot path of every solve and the response has already been produced by the
8
- * time we're here, so a failed insert is logged and swallowed.
17
+ * time we're here, so it only buffers; a failed flush is logged and swallowed.
18
+ * Buffering means metrics are lost on an unclean shutdown — call `close()` to
19
+ * drain deliberately.
9
20
  */
10
21
  export class SupabaseSolveMetricSink {
11
22
  clients;
12
- constructor(clients) {
23
+ buffer = [];
24
+ timer = null;
25
+ inFlight = Promise.resolve();
26
+ closed = false;
27
+ maxBatchSize;
28
+ flushIntervalMs;
29
+ maxBufferSize;
30
+ logger;
31
+ constructor(clients, opts = {}) {
13
32
  this.clients = clients;
33
+ this.maxBatchSize = opts.maxBatchSize ?? DEFAULT_MAX_BATCH_SIZE;
34
+ this.flushIntervalMs = opts.flushIntervalMs ?? DEFAULT_FLUSH_INTERVAL_MS;
35
+ this.maxBufferSize = opts.maxBufferSize ?? DEFAULT_MAX_BUFFER_SIZE;
36
+ this.logger = opts.logger ?? new NoopLogger();
14
37
  }
15
- async record(_ctx, metric) {
16
- try {
17
- const { error } = await this.clients.serviceClient.from('solve_metrics').insert({
18
- actor_id: _ctx.userId || 'system',
19
- definition_url: metric.definitionUrl,
20
- definition_id: metric.definitionId,
21
- version_id: metric.versionId,
22
- channel: metric.channel,
23
- org_id: metric.orgId,
24
- duration_ms: metric.durationMs,
25
- ok: metric.ok,
26
- failure_kind: metric.failureKind,
27
- error_count: metric.errorCount,
28
- warning_count: metric.warningCount
38
+ async record(ctx, metric) {
39
+ if (this.closed)
40
+ return;
41
+ this.buffer.push({
42
+ actor_id: ctx.userId || 'system',
43
+ definition_url: metric.definitionUrl,
44
+ definition_id: metric.definitionId,
45
+ version_id: metric.versionId,
46
+ channel: metric.channel,
47
+ org_id: metric.orgId,
48
+ duration_ms: metric.durationMs,
49
+ ok: metric.ok,
50
+ failure_kind: metric.failureKind,
51
+ error_count: metric.errorCount,
52
+ warning_count: metric.warningCount
53
+ });
54
+ if (this.buffer.length > this.maxBufferSize) {
55
+ const dropped = this.buffer.length - this.maxBufferSize;
56
+ this.buffer.splice(0, dropped);
57
+ this.logger.error('Metric buffer full, dropped oldest metrics', {
58
+ component: 'SupabaseSolveMetricSink',
59
+ dropped
29
60
  });
61
+ }
62
+ if (this.buffer.length >= this.maxBatchSize) {
63
+ void this.flush();
64
+ return;
65
+ }
66
+ this.scheduleFlush();
67
+ }
68
+ /**
69
+ * Writes everything buffered and resolves once the write settles. Serialized
70
+ * against any in-flight flush so batches cannot interleave. Never throws.
71
+ */
72
+ async flush() {
73
+ // Claim the buffered rows synchronously, before yielding — otherwise a
74
+ // record() landing between here and the write joins a batch already
75
+ // counted as claimed, and the row is written twice or not at all.
76
+ const batch = this.buffer;
77
+ this.buffer = [];
78
+ this.clearTimer();
79
+ if (batch.length === 0)
80
+ return this.inFlight;
81
+ this.inFlight = this.inFlight.then(() => this.write(batch));
82
+ return this.inFlight;
83
+ }
84
+ /**
85
+ * Stops the timer, drains the buffer, and rejects further records. Call on
86
+ * shutdown so the last partial batch is not lost.
87
+ */
88
+ async close() {
89
+ this.closed = true;
90
+ this.clearTimer();
91
+ await this.flush();
92
+ }
93
+ scheduleFlush() {
94
+ if (this.timer)
95
+ return;
96
+ this.timer = setTimeout(() => {
97
+ this.timer = null;
98
+ void this.flush();
99
+ }, this.flushIntervalMs);
100
+ // Never hold the process open for telemetry.
101
+ this.timer.unref?.();
102
+ }
103
+ clearTimer() {
104
+ if (!this.timer)
105
+ return;
106
+ clearTimeout(this.timer);
107
+ this.timer = null;
108
+ }
109
+ async write(batch) {
110
+ try {
111
+ const { error } = await this.clients.serviceClient.from('solve_metrics').insert(batch);
30
112
  if (error) {
31
- console.error('[SupabaseSolveMetricSink] insert failed:', error.message, { metric });
113
+ this.logger.error('Metric batch insert failed', {
114
+ component: 'SupabaseSolveMetricSink',
115
+ count: batch.length,
116
+ err: error.message
117
+ });
32
118
  }
33
119
  }
34
120
  catch (err) {
35
- console.error('[SupabaseSolveMetricSink] unexpected error:', err, { metric });
121
+ this.logger.error('Unexpected error writing metric batch', {
122
+ component: 'SupabaseSolveMetricSink',
123
+ count: batch.length,
124
+ err: err instanceof Error ? (err.stack ?? err.message) : String(err)
125
+ });
36
126
  }
37
127
  }
38
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseSolveMetricSink.js","sourceRoot":"","sources":["../../src/data/SupabaseSolveMetricSink.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,OAAO,uBAAuB;IACN;IAA7B,YAA6B,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAEtD,KAAK,CAAC,MAAM,CAAC,IAAoB,EAAE,MAAmB;QACrD,IAAI,CAAC;YACJ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;gBAC/E,QAAQ,EAAE,IAAI,CAAC,MAAM,IAAI,QAAQ;gBACjC,cAAc,EAAE,MAAM,CAAC,aAAa;gBACpC,aAAa,EAAE,MAAM,CAAC,YAAY;gBAClC,UAAU,EAAE,MAAM,CAAC,SAAS;gBAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,KAAK;gBACpB,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,YAAY,EAAE,MAAM,CAAC,WAAW;gBAChC,WAAW,EAAE,MAAM,CAAC,UAAU;gBAC9B,aAAa,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC,CAAC;YACH,IAAI,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACtF,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"SupabaseSolveMetricSink.js","sourceRoot":"","sources":["../../src/data/SupabaseSolveMetricSink.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,5 @@
10
10
  * MUST be bumped whenever a migration is added — `migration-head.test.ts`
11
11
  * asserts this constant matches the migrations directory, so CI catches drift.
12
12
  */
13
- export declare const EXPECTED_MIGRATION_HEAD = "20260713140000";
13
+ export declare const EXPECTED_MIGRATION_HEAD = "20260717120000";
14
14
  //# sourceMappingURL=migrationHead.d.ts.map
@@ -10,5 +10,5 @@
10
10
  * MUST be bumped whenever a migration is added — `migration-head.test.ts`
11
11
  * asserts this constant matches the migrations directory, so CI catches drift.
12
12
  */
13
- export const EXPECTED_MIGRATION_HEAD = '20260713140000';
13
+ export const EXPECTED_MIGRATION_HEAD = '20260717120000';
14
14
  //# sourceMappingURL=migrationHead.js.map
package/package.json CHANGED
@@ -1,8 +1,18 @@
1
1
  {
2
2
  "name": "@selvajs/supabase-provider",
3
- "version": "0.14.4-beta.1",
3
+ "version": "0.15.0-beta.2",
4
4
  "description": "Supabase (Auth + Postgres + Storage) implementations of @selvajs/platform interfaces",
5
5
  "license": "MIT",
6
+ "author": "VektorNode",
7
+ "homepage": "https://github.com/VektorNode/selva#readme",
8
+ "bugs": "https://github.com/VektorNode/selva/issues",
9
+ "keywords": [
10
+ "selva",
11
+ "provider",
12
+ "supabase",
13
+ "auth",
14
+ "postgres"
15
+ ],
6
16
  "publishConfig": {
7
17
  "access": "public"
8
18
  },
@@ -56,7 +66,7 @@
56
66
  "dependencies": {
57
67
  "@supabase/supabase-js": "^2.104.1",
58
68
  "sharp": "^0.34.5",
59
- "@selvajs/platform": "^0.15.0-beta.1"
69
+ "@selvajs/platform": "^0.15.0-beta.2"
60
70
  },
61
71
  "devDependencies": {
62
72
  "@types/node": "^22.20.1",
@@ -0,0 +1,36 @@
1
+ -- ============================================================================
2
+ -- Definition-status enum cleanup (audit D2) + audit-event versioning (audit D3)
3
+ -- ============================================================================
4
+
5
+ -- D2. The definition-status CHECK admitted five values, but only four are real:
6
+ -- pending — metadata-first create window (DefinitionService.create writes it,
7
+ -- a partial reclaim index tracks it). REAL — kept.
8
+ -- draft — work in progress. REAL — kept.
9
+ -- published — live. REAL — kept.
10
+ -- archived — retired but preserved. REAL — kept.
11
+ -- review — never written or read anywhere in the codebase. DEAD — dropped.
12
+ -- Dropping `review` while the table holds no such rows is a zero-row change; do
13
+ -- it now, while it is a one-line CHECK swap rather than a data migration later.
14
+ -- (Postgres has no "alter check" — drop the old constraint and add the new one.
15
+ -- The constraint name is the Postgres-generated default `definitions_status_check`.)
16
+
17
+ alter table selva.definitions
18
+ drop constraint if exists definitions_status_check;
19
+
20
+ alter table selva.definitions
21
+ add constraint definitions_status_check
22
+ check (status in ('pending', 'draft', 'published', 'archived'));
23
+
24
+ -- D3. `audit_events` is append-only forever: every row written before a version
25
+ -- marker exists is a row whose payload shape must be inferred later. Add an
26
+ -- explicit `event_version` column now so the `data` envelope carries its schema
27
+ -- version out of band. Existing rows are the v1 shape by definition, so default
28
+ -- + backfill to 1; NOT NULL once populated.
29
+
30
+ alter table selva.audit_events
31
+ add column if not exists event_version integer not null default 1;
32
+
33
+ comment on column selva.audit_events.event_version is
34
+ 'Schema version of the `data` payload (the DomainEvent envelope). Bump when '
35
+ 'the persisted shape changes so readers can dispatch on version instead of '
36
+ 'inferring it. v1 = the initial DomainEvent union.';
@@ -0,0 +1,36 @@
1
+ -- ============================================================================
2
+ -- User-erasure helper: redact an email out of invite.created audit payloads
3
+ -- (audit P1)
4
+ -- ============================================================================
5
+ --
6
+ -- `invite.created` domain events embed the invitee's email in the audit
7
+ -- payload (`data->>'email'`). Those rows are authored by the INVITER, so on the
8
+ -- invitee's erasure the row must survive (it records the inviter's action) but
9
+ -- the invitee's email must be scrubbed. This function redacts the `email` key
10
+ -- in place for every matching row, in one statement.
11
+ --
12
+ -- SECURITY DEFINER so `onUserDeleted` can call it through the service-role
13
+ -- client without granting the caller direct UPDATE on audit_events. Scoped to
14
+ -- `type = 'invite.created'` — the only event shape that carries an email.
15
+
16
+ create or replace function selva.redact_audit_event_email(p_email text)
17
+ returns integer
18
+ language plpgsql
19
+ security definer
20
+ set search_path = selva, pg_temp
21
+ as $$
22
+ declare
23
+ affected integer;
24
+ begin
25
+ update selva.audit_events
26
+ set data = jsonb_set(data, '{email}', '"[erased]"'::jsonb)
27
+ where type = 'invite.created'
28
+ and data->>'email' = p_email;
29
+ get diagnostics affected = row_count;
30
+ return affected;
31
+ end;
32
+ $$;
33
+
34
+ comment on function selva.redact_audit_event_email(text) is
35
+ 'Redacts an invitee email out of invite.created audit payloads on user '
36
+ 'erasure (audit P1). Returns the number of rows redacted.';
@@ -0,0 +1,20 @@
1
+ -- ============================================================================
2
+ -- selva.compute_servers.has_api_key — key presence without reading the key (audit 4b)
3
+ -- ============================================================================
4
+ --
5
+ -- Every solve resolves one compute server, but the store's only read was
6
+ -- `getConfig`, which selected `api_key` for EVERY row and decrypted each one on
7
+ -- the way out — N decrypts of secrets the solve path throws away, to use one.
8
+ --
9
+ -- The keys could not simply be dropped from the projection because the admin and
10
+ -- org compute pages render a "key is set" state, which was derived as `!!apiKey`
11
+ -- and so needed the plaintext. This generated column answers that question from
12
+ -- the ciphertext's presence alone, so the default projection can omit `api_key`
13
+ -- entirely: no secret leaves the database to decide whether a badge renders.
14
+ --
15
+ -- STORED (not a view or an expression index) because it is read on the same
16
+ -- projection as every other column and costs a byte per row.
17
+
18
+ alter table selva.compute_servers
19
+ add column if not exists has_api_key boolean
20
+ generated always as (api_key is not null and api_key <> '') stored;
@@ -1 +0,0 @@
1
- main
@@ -1 +0,0 @@
1
- v2.102.0