@selvajs/supabase-provider 0.14.4-beta.0 → 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 (158) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +2 -0
  3. package/dist/auth/SupabaseAuthProvider.d.ts.map +1 -1
  4. package/dist/auth/SupabaseAuthProvider.js +7 -14
  5. package/dist/auth/SupabaseAuthProvider.js.map +1 -1
  6. package/dist/data/SupabaseComputeServerStore.d.ts +14 -3
  7. package/dist/data/SupabaseComputeServerStore.d.ts.map +1 -1
  8. package/dist/data/SupabaseComputeServerStore.js +67 -16
  9. package/dist/data/SupabaseComputeServerStore.js.map +1 -1
  10. package/dist/data/SupabaseDataProvider.d.ts +36 -8
  11. package/dist/data/SupabaseDataProvider.d.ts.map +1 -1
  12. package/dist/data/SupabaseDataProvider.js +119 -15
  13. package/dist/data/SupabaseDataProvider.js.map +1 -1
  14. package/dist/data/SupabaseDefinitionStore.d.ts +1 -0
  15. package/dist/data/SupabaseDefinitionStore.d.ts.map +1 -1
  16. package/dist/data/SupabaseDefinitionStore.js +41 -4
  17. package/dist/data/SupabaseDefinitionStore.js.map +1 -1
  18. package/dist/data/SupabaseEventSink.d.ts +5 -2
  19. package/dist/data/SupabaseEventSink.d.ts.map +1 -1
  20. package/dist/data/SupabaseEventSink.js +20 -3
  21. package/dist/data/SupabaseEventSink.js.map +1 -1
  22. package/dist/data/SupabaseSolveMetricSink.d.ts +49 -4
  23. package/dist/data/SupabaseSolveMetricSink.d.ts.map +1 -1
  24. package/dist/data/SupabaseSolveMetricSink.js +109 -19
  25. package/dist/data/SupabaseSolveMetricSink.js.map +1 -1
  26. package/dist/data/index.d.ts +1 -0
  27. package/dist/data/index.d.ts.map +1 -1
  28. package/dist/data/index.js +1 -0
  29. package/dist/data/index.js.map +1 -1
  30. package/dist/data/migrationHead.d.ts +14 -0
  31. package/dist/data/migrationHead.d.ts.map +1 -0
  32. package/dist/data/migrationHead.js +14 -0
  33. package/dist/data/migrationHead.js.map +1 -0
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/permissions/SupabasePlatformPermissionStore.d.ts +5 -3
  39. package/dist/permissions/SupabasePlatformPermissionStore.d.ts.map +1 -1
  40. package/dist/permissions/SupabasePlatformPermissionStore.js +17 -30
  41. package/dist/permissions/SupabasePlatformPermissionStore.js.map +1 -1
  42. package/dist/storage/SupabaseStorageProvider.d.ts.map +1 -1
  43. package/dist/storage/SupabaseStorageProvider.js +3 -0
  44. package/dist/storage/SupabaseStorageProvider.js.map +1 -1
  45. package/package.json +23 -14
  46. package/supabase/migrations/20260712120000_user_profiles_disabled_and_gin.sql +95 -0
  47. package/supabase/migrations/20260712123000_selva_migration_head_fn.sql +38 -0
  48. package/supabase/migrations/20260713120000_selva_next_version_number.sql +59 -0
  49. package/supabase/migrations/20260713140000_selva_solve_cache_limit.sql +15 -0
  50. package/supabase/migrations/20260716120000_definition_status_and_audit_version.sql +36 -0
  51. package/supabase/migrations/20260716130000_erase_user_audit_email.sql +36 -0
  52. package/supabase/migrations/20260717120000_compute_server_has_api_key.sql +20 -0
  53. package/dist/auth/__tests__/conformance.test.d.ts +0 -2
  54. package/dist/auth/__tests__/conformance.test.d.ts.map +0 -1
  55. package/dist/auth/__tests__/conformance.test.js +0 -76
  56. package/dist/auth/__tests__/conformance.test.js.map +0 -1
  57. package/dist/auth/__tests__/token-verification.test.d.ts +0 -13
  58. package/dist/auth/__tests__/token-verification.test.d.ts.map +0 -1
  59. package/dist/auth/__tests__/token-verification.test.js +0 -135
  60. package/dist/auth/__tests__/token-verification.test.js.map +0 -1
  61. package/dist/data/__tests__/compute-server-conformance.test.d.ts +0 -2
  62. package/dist/data/__tests__/compute-server-conformance.test.d.ts.map +0 -1
  63. package/dist/data/__tests__/compute-server-conformance.test.js +0 -45
  64. package/dist/data/__tests__/compute-server-conformance.test.js.map +0 -1
  65. package/dist/data/__tests__/compute-server-encryption.test.d.ts +0 -12
  66. package/dist/data/__tests__/compute-server-encryption.test.d.ts.map +0 -1
  67. package/dist/data/__tests__/compute-server-encryption.test.js +0 -143
  68. package/dist/data/__tests__/compute-server-encryption.test.js.map +0 -1
  69. package/dist/data/__tests__/definition-conformance.test.d.ts +0 -2
  70. package/dist/data/__tests__/definition-conformance.test.d.ts.map +0 -1
  71. package/dist/data/__tests__/definition-conformance.test.js +0 -85
  72. package/dist/data/__tests__/definition-conformance.test.js.map +0 -1
  73. package/dist/data/__tests__/event-sink-conformance.test.d.ts +0 -2
  74. package/dist/data/__tests__/event-sink-conformance.test.d.ts.map +0 -1
  75. package/dist/data/__tests__/event-sink-conformance.test.js +0 -27
  76. package/dist/data/__tests__/event-sink-conformance.test.js.map +0 -1
  77. package/dist/data/__tests__/invite-conformance.test.d.ts +0 -2
  78. package/dist/data/__tests__/invite-conformance.test.d.ts.map +0 -1
  79. package/dist/data/__tests__/invite-conformance.test.js +0 -45
  80. package/dist/data/__tests__/invite-conformance.test.js.map +0 -1
  81. package/dist/data/__tests__/org-conformance.test.d.ts +0 -2
  82. package/dist/data/__tests__/org-conformance.test.d.ts.map +0 -1
  83. package/dist/data/__tests__/org-conformance.test.js +0 -29
  84. package/dist/data/__tests__/org-conformance.test.js.map +0 -1
  85. package/dist/data/__tests__/project-conformance.test.d.ts +0 -2
  86. package/dist/data/__tests__/project-conformance.test.d.ts.map +0 -1
  87. package/dist/data/__tests__/project-conformance.test.js +0 -57
  88. package/dist/data/__tests__/project-conformance.test.js.map +0 -1
  89. package/dist/data/__tests__/share-link-concurrency.test.d.ts +0 -22
  90. package/dist/data/__tests__/share-link-concurrency.test.d.ts.map +0 -1
  91. package/dist/data/__tests__/share-link-concurrency.test.js +0 -115
  92. package/dist/data/__tests__/share-link-concurrency.test.js.map +0 -1
  93. package/dist/data/__tests__/share-link-conformance.test.d.ts +0 -2
  94. package/dist/data/__tests__/share-link-conformance.test.d.ts.map +0 -1
  95. package/dist/data/__tests__/share-link-conformance.test.js +0 -88
  96. package/dist/data/__tests__/share-link-conformance.test.js.map +0 -1
  97. package/dist/data/__tests__/solve-metric-sink-conformance.test.d.ts +0 -2
  98. package/dist/data/__tests__/solve-metric-sink-conformance.test.d.ts.map +0 -1
  99. package/dist/data/__tests__/solve-metric-sink-conformance.test.js +0 -52
  100. package/dist/data/__tests__/solve-metric-sink-conformance.test.js.map +0 -1
  101. package/dist/data/__tests__/test-helpers.d.ts +0 -52
  102. package/dist/data/__tests__/test-helpers.d.ts.map +0 -1
  103. package/dist/data/__tests__/test-helpers.js +0 -177
  104. package/dist/data/__tests__/test-helpers.js.map +0 -1
  105. package/dist/permissions/__tests__/conformance.test.d.ts +0 -2
  106. package/dist/permissions/__tests__/conformance.test.d.ts.map +0 -1
  107. package/dist/permissions/__tests__/conformance.test.js +0 -27
  108. package/dist/permissions/__tests__/conformance.test.js.map +0 -1
  109. package/dist/storage/__tests__/conformance.test.d.ts +0 -2
  110. package/dist/storage/__tests__/conformance.test.d.ts.map +0 -1
  111. package/dist/storage/__tests__/conformance.test.js +0 -149
  112. package/dist/storage/__tests__/conformance.test.js.map +0 -1
  113. package/dist/userProfile/__tests__/conformance.test.d.ts +0 -2
  114. package/dist/userProfile/__tests__/conformance.test.d.ts.map +0 -1
  115. package/dist/userProfile/__tests__/conformance.test.js +0 -38
  116. package/dist/userProfile/__tests__/conformance.test.js.map +0 -1
  117. package/src/auth/SupabaseAuthProvider.ts +0 -600
  118. package/src/auth/__tests__/conformance.test.ts +0 -78
  119. package/src/auth/__tests__/token-verification.test.ts +0 -158
  120. package/src/auth/index.ts +0 -2
  121. package/src/cli/sync-migrations.ts +0 -133
  122. package/src/data/SupabaseAuditQuery.ts +0 -103
  123. package/src/data/SupabaseComputeServerStore.ts +0 -382
  124. package/src/data/SupabaseDataProvider.ts +0 -153
  125. package/src/data/SupabaseDefinitionStore.ts +0 -527
  126. package/src/data/SupabaseEventSink.ts +0 -30
  127. package/src/data/SupabaseInviteStore.ts +0 -171
  128. package/src/data/SupabaseOrgStore.ts +0 -508
  129. package/src/data/SupabaseProjectStore.ts +0 -431
  130. package/src/data/SupabaseShareLinkStore.ts +0 -176
  131. package/src/data/SupabaseSolveMetricSink.ts +0 -38
  132. package/src/data/__tests__/compute-server-conformance.test.ts +0 -46
  133. package/src/data/__tests__/compute-server-encryption.test.ts +0 -173
  134. package/src/data/__tests__/definition-conformance.test.ts +0 -89
  135. package/src/data/__tests__/event-sink-conformance.test.ts +0 -32
  136. package/src/data/__tests__/invite-conformance.test.ts +0 -46
  137. package/src/data/__tests__/org-conformance.test.ts +0 -30
  138. package/src/data/__tests__/project-conformance.test.ts +0 -57
  139. package/src/data/__tests__/share-link-concurrency.test.ts +0 -124
  140. package/src/data/__tests__/share-link-conformance.test.ts +0 -87
  141. package/src/data/__tests__/solve-metric-sink-conformance.test.ts +0 -59
  142. package/src/data/__tests__/test-helpers.ts +0 -188
  143. package/src/data/client.ts +0 -173
  144. package/src/data/errors.ts +0 -45
  145. package/src/data/index.ts +0 -29
  146. package/src/data/pagination.ts +0 -68
  147. package/src/data/query.ts +0 -22
  148. package/src/data/rowStamp.ts +0 -48
  149. package/src/index.ts +0 -42
  150. package/src/permissions/SupabasePlatformPermissionStore.ts +0 -161
  151. package/src/permissions/__tests__/conformance.test.ts +0 -28
  152. package/src/permissions/index.ts +0 -1
  153. package/src/storage/SupabaseStorageProvider.ts +0 -182
  154. package/src/storage/__tests__/conformance.test.ts +0 -152
  155. package/src/storage/index.ts +0 -2
  156. package/src/userProfile/SupabaseUserProfileProvider.ts +0 -177
  157. package/src/userProfile/__tests__/conformance.test.ts +0 -39
  158. package/src/userProfile/index.ts +0 -1
@@ -1,5 +1,6 @@
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
+ import { EXPECTED_MIGRATION_HEAD } from './migrationHead.js';
3
4
  import { buildClientBundle, clientBundleFromEnv } from './client.js';
4
5
  import { SupabaseEventSink } from './SupabaseEventSink.js';
5
6
  import { SupabaseSolveMetricSink } from './SupabaseSolveMetricSink.js';
@@ -52,27 +53,30 @@ export class SupabaseDataProvider {
52
53
  permissions;
53
54
  platformProjectGrants;
54
55
  auditQuery;
56
+ /** The sink every store emits into — exposed per `IDataProvider.events`. */
57
+ events;
55
58
  /**
56
59
  * Per-solve timing sink, built from the same client bundle. Exposed so the
57
60
  * app's provider wiring can hand it to `SelvaConfig.solveMetrics` without
58
61
  * constructing a second Supabase client.
59
62
  */
60
63
  solveMetrics;
61
- constructor(clients, events, secretKey) {
64
+ constructor(clients, events, secretKey, logger = new NoopLogger()) {
62
65
  this.clients = clients;
63
- this.solveMetrics = new SupabaseSolveMetricSink(clients);
66
+ this.events = events;
67
+ this.solveMetrics = new SupabaseSolveMetricSink(clients, { logger });
64
68
  this.orgs = new SupabaseOrgStore(clients, events);
65
69
  this.projects = new SupabaseProjectStore(clients, events);
66
70
  this.definitions = new SupabaseDefinitionStore(clients, events);
67
71
  this.invites = new SupabaseInviteStore(clients, events);
68
- this.computeServer = new SupabaseComputeServerStore(clients, secretKey);
72
+ this.computeServer = new SupabaseComputeServerStore(clients, secretKey, logger);
69
73
  this.shareLinks = new SupabaseShareLinkStore(clients, events);
70
74
  this.userProfile = new SupabaseUserProfileProvider(clients);
71
75
  this.permissions = new SupabasePlatformPermissionStore(clients);
72
76
  this.platformProjectGrants = notImplementedGrantStore;
73
77
  this.auditQuery = new SupabaseAuditQuery(clients);
74
78
  }
75
- static fromEnv(env, events) {
79
+ static fromEnv(env, events, logger = new NoopLogger()) {
76
80
  // Bundle-only env parse (URL + anon + service-role) is shared with
77
81
  // `clientBundleFromEnv`; the full data provider additionally requires the
78
82
  // at-rest key below.
@@ -85,11 +89,11 @@ export class SupabaseDataProvider {
85
89
  "Generate one with: node -e \"console.log(require('crypto').randomBytes(32).toString('hex'))\"");
86
90
  }
87
91
  const secretKey = decodeSecretKey(env.SELVA_AT_REST_KEY);
88
- return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle), secretKey);
92
+ return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle, { logger }), secretKey, logger);
89
93
  }
90
- static create(opts, events, secretKey) {
94
+ static create(opts, events, secretKey, logger = new NoopLogger()) {
91
95
  const bundle = buildClientBundle(opts);
92
- return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle), secretKey);
96
+ return new SupabaseDataProvider(bundle, events ?? new SupabaseEventSink(bundle, { logger }), secretKey, logger);
93
97
  }
94
98
  /**
95
99
  * Build from a pre-existing `ClientBundle`. Useful for tests or advanced
@@ -98,8 +102,8 @@ export class SupabaseDataProvider {
98
102
  * compute-server apiKeys (writes without a key throw rather than persist
99
103
  * plaintext).
100
104
  */
101
- static fromBundle(bundle, events, secretKey) {
102
- 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);
103
107
  }
104
108
  /**
105
109
  * Expose the underlying bundle so other providers in the same package
@@ -108,6 +112,61 @@ export class SupabaseDataProvider {
108
112
  getClientBundle() {
109
113
  return this.clients;
110
114
  }
115
+ /**
116
+ * App↔DB schema handshake (audit O3). Calls `selva.migration_head()` — a
117
+ * SECURITY DEFINER function shipped in this package's migrations — and
118
+ * compares it against the head this build expects. Three failure shapes:
119
+ * the RPC itself is missing (database never applied the handshake
120
+ * migration), the head is empty (no migrations pushed at all), or the head
121
+ * is lexicographically behind (operator updated the app but forgot
122
+ * `supabase db push`). Never throws; boot health consumes the report.
123
+ */
124
+ async verifySchemaVersion() {
125
+ const expected = EXPECTED_MIGRATION_HEAD;
126
+ const pushHint = 'Apply the pending Supabase migrations: sync them into your project ' +
127
+ '(see @selvajs/supabase-provider sync-migrations) and run `npx supabase db push`.';
128
+ try {
129
+ const { data, error } = await this.clients.serviceClient.rpc('migration_head');
130
+ if (error) {
131
+ return {
132
+ ok: false,
133
+ expected,
134
+ actual: null,
135
+ message: `selva.migration_head() is not available (${error.message ?? error.code ?? 'unknown error'}) ` +
136
+ `— the database schema is behind this app version. ${pushHint}`
137
+ };
138
+ }
139
+ const actual = typeof data === 'string' ? data : '';
140
+ if (!actual) {
141
+ return {
142
+ ok: false,
143
+ expected,
144
+ actual: '',
145
+ message: `The database reports no applied migrations. ${pushHint}`
146
+ };
147
+ }
148
+ // Timestamp prefixes are fixed-width, so lexicographic order is
149
+ // chronological. A head AHEAD of the app (rolled-back app, newer DB) is
150
+ // tolerated — the schema is append-only/additive by convention.
151
+ const ok = actual >= expected;
152
+ return {
153
+ ok,
154
+ expected,
155
+ actual,
156
+ message: ok
157
+ ? undefined
158
+ : `Database migration head ${actual} is behind the app's expected ${expected}. ${pushHint}`
159
+ };
160
+ }
161
+ catch (err) {
162
+ return {
163
+ ok: false,
164
+ expected,
165
+ actual: null,
166
+ message: `Schema handshake failed: ${err instanceof Error ? err.message : String(err)}`
167
+ };
168
+ }
169
+ }
111
170
  /**
112
171
  * No-op: `public.user_profiles` is auto-seeded by the `handle_new_auth_user`
113
172
  * trigger on every `auth.users` insert (see `0001_initial.sql`). The data
@@ -117,12 +176,57 @@ export class SupabaseDataProvider {
117
176
  // Trigger handles it.
118
177
  }
119
178
  /**
120
- * No-op: `public.user_profiles.user_id` references `auth.users(id)` with
121
- * `on delete cascade`. Deleting the auth user removes the profile row
122
- * 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`).
123
197
  */
124
- async onUserDeleted() {
125
- // 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
+ }
126
230
  }
127
231
  }
128
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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"}
@@ -28,6 +28,7 @@ export declare class SupabaseDefinitionStore implements IDefinitionStore {
28
28
  delete(ctx: RequestContext, guid: string): Promise<void>;
29
29
  deleteByProject(ctx: RequestContext, projectId: string): Promise<void>;
30
30
  incrementSolveCount(ctx: RequestContext, guid: string): Promise<void>;
31
+ reserveNextVersionNumber(ctx: RequestContext, guid: string): Promise<number>;
31
32
  createVersion(ctx: RequestContext, version: DefinitionVersion): Promise<void>;
32
33
  listVersions(ctx: RequestContext, definitionId: string, opts?: ListOptions): Promise<Page<DefinitionVersion>>;
33
34
  getVersion(ctx: RequestContext, versionId: string): Promise<DefinitionVersion | null>;
@@ -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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"}
@@ -3,9 +3,20 @@ import { mapPostgrestError } from './errors.js';
3
3
  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
- const DEFINITION_COLUMNS = 'guid, project_id, owner_id, created_by, updated_by, compute_server_id, display_name, description, category, tags, cover_image, status, run_count, 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';
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
+ /**
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
@@ -172,6 +183,20 @@ export class SupabaseDefinitionStore {
172
183
  if (error)
173
184
  throw mapPostgrestError(error);
174
185
  }
186
+ async reserveNextVersionNumber(ctx, guid) {
187
+ // Atomic reserve-and-increment in one SQL function — no read-modify-write
188
+ // race. Returns the reserved number; raises no_data_found (mapped to 404)
189
+ // when the definition is missing or soft-deleted.
190
+ const { data, error } = await this.clients
191
+ .forRequest(ctx)
192
+ .rpc('reserve_next_version_number', { g: guid });
193
+ if (error)
194
+ throw mapPostgrestError(error);
195
+ if (typeof data !== 'number') {
196
+ throw new ProviderError(`Definition '${guid}' not found`, 404);
197
+ }
198
+ return data;
199
+ }
175
200
  // ============================================================================
176
201
  // Versions (spec §6)
177
202
  // ============================================================================
@@ -207,7 +232,7 @@ export class SupabaseDefinitionStore {
207
232
  const { data, error } = await this.clients
208
233
  .forRequest(ctx)
209
234
  .from('definition_versions')
210
- .select(DEFINITION_VERSION_COLUMNS)
235
+ .select(DEFINITION_VERSION_COLUMNS_WITH_SCHEMA)
211
236
  .eq('id', versionId)
212
237
  .maybeSingle();
213
238
  if (error)
@@ -327,6 +352,11 @@ function rowToRecord(row) {
327
352
  liveVersionId: row.live_version_id,
328
353
  draftVersionId: row.draft_version_id,
329
354
  computeServerId: row.compute_server_id ?? undefined,
355
+ solveCacheLimit: row.solve_cache_limit == null
356
+ ? undefined
357
+ : typeof row.solve_cache_limit === 'string'
358
+ ? Number(row.solve_cache_limit)
359
+ : row.solve_cache_limit,
330
360
  displayName: row.display_name,
331
361
  description: row.description ?? undefined,
332
362
  category: row.category ?? undefined,
@@ -334,6 +364,9 @@ function rowToRecord(row) {
334
364
  coverImage: row.cover_image ?? undefined,
335
365
  status: row.status,
336
366
  solveCount: typeof row.run_count === 'string' ? Number(row.run_count) : row.run_count,
367
+ nextVersionNumber: typeof row.next_version_number === 'string'
368
+ ? Number(row.next_version_number)
369
+ : row.next_version_number,
337
370
  createdAt: row.created_at,
338
371
  updatedAt: row.updated_at,
339
372
  deletedAt: row.deleted_at ?? null
@@ -349,12 +382,14 @@ function recordToRow(r) {
349
382
  live_version_id: r.liveVersionId,
350
383
  draft_version_id: r.draftVersionId,
351
384
  compute_server_id: r.computeServerId ?? null,
385
+ solve_cache_limit: r.solveCacheLimit ?? null,
352
386
  display_name: r.displayName,
353
387
  description: r.description ?? null,
354
388
  category: r.category ?? null,
355
389
  cover_image: r.coverImage ?? null,
356
390
  status: r.status,
357
391
  run_count: r.solveCount,
392
+ next_version_number: r.nextVersionNumber,
358
393
  created_at: r.createdAt,
359
394
  updated_at: r.updatedAt,
360
395
  deleted_at: r.deletedAt ?? null
@@ -379,6 +414,8 @@ function patchToRow(patch) {
379
414
  row.project_id = patch.projectId;
380
415
  if (patch.computeServerId !== undefined)
381
416
  row.compute_server_id = patch.computeServerId;
417
+ if (patch.solveCacheLimit !== undefined)
418
+ row.solve_cache_limit = patch.solveCacheLimit;
382
419
  if (patch.status !== undefined)
383
420
  row.status = patch.status;
384
421
  if (patch.ownerId !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseDefinitionStore.js","sourceRoot":"","sources":["../../src/data/SupabaseDefinitionStore.ts"],"names":[],"mappings":"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"}
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"}