@selvajs/supabase-provider 0.17.0-beta.4 → 0.17.0
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.
- package/README.md +26 -39
- package/dist/auth/SupabaseAuthProvider.d.ts +37 -82
- package/dist/auth/SupabaseAuthProvider.d.ts.map +1 -1
- package/dist/auth/SupabaseAuthProvider.js +62 -114
- package/dist/auth/SupabaseAuthProvider.js.map +1 -1
- package/dist/cli/sync-migrations.js +4 -6
- package/dist/cli/sync-migrations.js.map +1 -1
- package/dist/data/SupabaseAuditQuery.d.ts +3 -3
- package/dist/data/SupabaseAuditQuery.d.ts.map +1 -1
- package/dist/data/SupabaseAuditQuery.js +8 -14
- package/dist/data/SupabaseAuditQuery.js.map +1 -1
- package/dist/data/SupabaseComputeServerStore.d.ts +7 -13
- package/dist/data/SupabaseComputeServerStore.d.ts.map +1 -1
- package/dist/data/SupabaseComputeServerStore.js +15 -39
- package/dist/data/SupabaseComputeServerStore.js.map +1 -1
- package/dist/data/SupabaseDataProvider.d.ts +30 -46
- package/dist/data/SupabaseDataProvider.d.ts.map +1 -1
- package/dist/data/SupabaseDataProvider.js +39 -66
- package/dist/data/SupabaseDataProvider.js.map +1 -1
- package/dist/data/SupabaseDefinitionStore.d.ts +3 -10
- package/dist/data/SupabaseDefinitionStore.d.ts.map +1 -1
- package/dist/data/SupabaseDefinitionStore.js +29 -39
- package/dist/data/SupabaseDefinitionStore.js.map +1 -1
- package/dist/data/SupabaseInviteStore.d.ts +6 -6
- package/dist/data/SupabaseInviteStore.d.ts.map +1 -1
- package/dist/data/SupabaseInviteStore.js +11 -14
- package/dist/data/SupabaseInviteStore.js.map +1 -1
- package/dist/data/SupabaseOrgStore.d.ts +0 -4
- package/dist/data/SupabaseOrgStore.d.ts.map +1 -1
- package/dist/data/SupabaseOrgStore.js +19 -29
- package/dist/data/SupabaseOrgStore.js.map +1 -1
- package/dist/data/SupabaseProjectStore.d.ts +4 -8
- package/dist/data/SupabaseProjectStore.d.ts.map +1 -1
- package/dist/data/SupabaseProjectStore.js +15 -26
- package/dist/data/SupabaseProjectStore.js.map +1 -1
- package/dist/data/SupabaseShareLinkStore.d.ts +4 -9
- package/dist/data/SupabaseShareLinkStore.d.ts.map +1 -1
- package/dist/data/SupabaseShareLinkStore.js +9 -18
- package/dist/data/SupabaseShareLinkStore.js.map +1 -1
- package/dist/data/SupabaseSolveMetricSink.d.ts +13 -14
- package/dist/data/SupabaseSolveMetricSink.d.ts.map +1 -1
- package/dist/data/SupabaseSolveMetricSink.js +13 -14
- package/dist/data/SupabaseSolveMetricSink.js.map +1 -1
- package/dist/data/client.d.ts +25 -54
- package/dist/data/client.d.ts.map +1 -1
- package/dist/data/client.js +6 -14
- package/dist/data/client.js.map +1 -1
- package/dist/data/errors.d.ts.map +1 -1
- package/dist/data/errors.js.map +1 -1
- package/dist/data/migrationHead.d.ts +3 -10
- package/dist/data/migrationHead.d.ts.map +1 -1
- package/dist/data/migrationHead.js +3 -10
- package/dist/data/migrationHead.js.map +1 -1
- package/dist/data/pagination.d.ts +5 -16
- package/dist/data/pagination.d.ts.map +1 -1
- package/dist/data/pagination.js +5 -16
- package/dist/data/pagination.js.map +1 -1
- package/dist/data/query.d.ts +2 -14
- package/dist/data/query.d.ts.map +1 -1
- package/dist/data/query.js +1 -9
- package/dist/data/query.js.map +1 -1
- package/dist/data/rowStamp.d.ts +8 -24
- package/dist/data/rowStamp.d.ts.map +1 -1
- package/dist/data/rowStamp.js +8 -24
- package/dist/data/rowStamp.js.map +1 -1
- package/dist/permissions/SupabasePlatformPermissionStore.d.ts +8 -10
- package/dist/permissions/SupabasePlatformPermissionStore.d.ts.map +1 -1
- package/dist/permissions/SupabasePlatformPermissionStore.js +9 -15
- package/dist/permissions/SupabasePlatformPermissionStore.js.map +1 -1
- package/dist/storage/SupabaseStorageProvider.d.ts +14 -35
- package/dist/storage/SupabaseStorageProvider.d.ts.map +1 -1
- package/dist/storage/SupabaseStorageProvider.js +10 -25
- package/dist/storage/SupabaseStorageProvider.js.map +1 -1
- package/dist/userProfile/SupabaseUserProfileProvider.d.ts.map +1 -1
- package/dist/userProfile/SupabaseUserProfileProvider.js +8 -15
- package/dist/userProfile/SupabaseUserProfileProvider.js.map +1 -1
- package/package.json +5 -5
|
@@ -7,14 +7,10 @@ const PROJECT_COLUMNS = 'id, org_id, name, slug, description, visibility, owner_
|
|
|
7
7
|
/** Explicit column list for `project_members` — every field `rowToProjectMember` consumes. */
|
|
8
8
|
const PROJECT_MEMBER_COLUMNS = 'project_id, user_id, role, joined_at, updated_at, updated_by, deleted_at';
|
|
9
9
|
/**
|
|
10
|
-
* Project + project-membership store backed by Postgres. Visibility
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* pre-loaded entities. See `packages/selva/src/lib/server/access.server.ts`.
|
|
15
|
-
*
|
|
16
|
-
* `createProject` atomically seeds the creator as the project `owner` in
|
|
17
|
-
* `project_members` so subsequent user-scoped reads can see it.
|
|
10
|
+
* Project + project-membership store backed by Postgres. Visibility (public /
|
|
11
|
+
* org / private) is enforced by the `visible_project()` RLS helper. Access
|
|
12
|
+
* predicates (canEdit / canManage / canView) live in `@selvajs/platform/access`;
|
|
13
|
+
* the route layer composes them with pre-loaded entities.
|
|
18
14
|
*/
|
|
19
15
|
export class SupabaseProjectStore {
|
|
20
16
|
clients;
|
|
@@ -69,9 +65,8 @@ export class SupabaseProjectStore {
|
|
|
69
65
|
const { error } = await client.from('projects').insert(projectToRow(project));
|
|
70
66
|
if (error)
|
|
71
67
|
throw mapPostgrestError(error);
|
|
72
|
-
//
|
|
73
|
-
//
|
|
74
|
-
// is reactivated rather than blocking creation.
|
|
68
|
+
// Upsert: a stale soft-deleted row from a prior project with this id
|
|
69
|
+
// gets reactivated instead of blocking creation.
|
|
75
70
|
const { error: memberError } = await client.from('project_members').upsert({
|
|
76
71
|
project_id: project.id,
|
|
77
72
|
user_id: project.ownerId,
|
|
@@ -116,9 +111,8 @@ export class SupabaseProjectStore {
|
|
|
116
111
|
throw new ProviderError(`Project '${id}' not found`, 404);
|
|
117
112
|
}
|
|
118
113
|
async deleteProject(ctx, id) {
|
|
119
|
-
//
|
|
120
|
-
//
|
|
121
|
-
// so the cascade is in app code.
|
|
114
|
+
// Soft-delete cascades in app code, not via FK: project → project_members,
|
|
115
|
+
// definitions. FK CASCADE only fires on a real DELETE.
|
|
122
116
|
const client = this.clients.forRequest(ctx);
|
|
123
117
|
const stampRow = stampSoftDelete(ctx);
|
|
124
118
|
const { data, error } = await client
|
|
@@ -138,12 +132,9 @@ export class SupabaseProjectStore {
|
|
|
138
132
|
.is('deleted_at', null);
|
|
139
133
|
if (pmErr)
|
|
140
134
|
throw mapPostgrestError(pmErr);
|
|
141
|
-
//
|
|
142
|
-
//
|
|
143
|
-
//
|
|
144
|
-
// `LocalProjectStore.deleteProject`. (Kept inline rather than delegating to
|
|
145
|
-
// the definition store to avoid a cross-store constructor dependency; the
|
|
146
|
-
// behavior must stay identical to `deleteByProject`.)
|
|
135
|
+
// Cascades to definitions inline instead of delegating to the definition
|
|
136
|
+
// store, to avoid a cross-store constructor dependency. Must stay in sync
|
|
137
|
+
// with SupabaseDefinitionStore.deleteByProject.
|
|
147
138
|
const { data: deletedDefs, error: defErr } = await client
|
|
148
139
|
.from('definitions')
|
|
149
140
|
.update(stampRow)
|
|
@@ -163,9 +154,8 @@ export class SupabaseProjectStore {
|
|
|
163
154
|
}
|
|
164
155
|
async reactivateProject(ctx, orgId, slug) {
|
|
165
156
|
const client = this.clients.forRequest(ctx);
|
|
166
|
-
//
|
|
167
|
-
//
|
|
168
|
-
// can be at most one tombstone per (org_id, slug) at any time.
|
|
157
|
+
// `.not('deleted_at', 'is', null)` guards against clobbering a live row;
|
|
158
|
+
// the unique constraint on (org_id, slug) means at most one tombstone exists.
|
|
169
159
|
const { data, error } = await client
|
|
170
160
|
.from('projects')
|
|
171
161
|
.update({ deleted_at: null })
|
|
@@ -178,7 +168,7 @@ export class SupabaseProjectStore {
|
|
|
178
168
|
throw mapPostgrestError(error);
|
|
179
169
|
if (!data)
|
|
180
170
|
return null;
|
|
181
|
-
//
|
|
171
|
+
// deleteProject cascades the soft-delete to project_members; undo it here too.
|
|
182
172
|
const { error: pmErr } = await client
|
|
183
173
|
.from('project_members')
|
|
184
174
|
.update({ deleted_at: null })
|
|
@@ -245,8 +235,7 @@ export class SupabaseProjectStore {
|
|
|
245
235
|
return result;
|
|
246
236
|
}
|
|
247
237
|
async addProjectMember(ctx, member) {
|
|
248
|
-
// Upsert reactivates a prior soft-deleted row instead of throwing
|
|
249
|
-
// duplicate-key. Mirrors LocalProjectStore.addProjectMember.
|
|
238
|
+
// Upsert reactivates a prior soft-deleted row instead of throwing duplicate-key.
|
|
250
239
|
const row = {
|
|
251
240
|
...projectMemberToRow(member),
|
|
252
241
|
deleted_at: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseProjectStore.js","sourceRoot":"","sources":["../../src/data/SupabaseProjectStore.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE7D,iFAAiF;AACjF,MAAM,eAAe,GACpB,4IAA4I,CAAC;AAC9I,8FAA8F;AAC9F,MAAM,sBAAsB,GAC3B,0EAA0E,CAAC;AAE5E;;;;;;;;;GASG;AACH,MAAM,OAAO,oBAAoB;IAId;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,KAAK,CAAC,YAAY,CACjB,GAAmB,EACnB,KAAa,EACb,IAAkB;QAElB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC;QAC3C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aAC/C,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aAC3C,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;aACnB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,KAAK,KAAK,EAAE,CAAC;aACrE,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,EAAU;QAC/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,eAAe,CAAC;aACvB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;aACZ,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,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,GAAmB,EACnB,KAAa,EACb,IAAY;QAEZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,eAAe,CAAC;aACvB,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;aACnB,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,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAmB,EAAE,OAAgB;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE1C,0EAA0E;QAC1E,2EAA2E;QAC3E,gDAAgD;QAChD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CACzE;YACC,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,IAAI;SAChB,EACD,EAAE,UAAU,EAAE,oBAAoB,EAAE,CACpC,CAAC;QACF,IAAI,WAAW;YAAE,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAClB,GAAmB,EACnB,EAAU,EACV,KAEC;QAED,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACpD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACpD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACzE,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;YAAE,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACtE,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS;YAAE,GAAG,CAAC,mBAAmB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QAC3F,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,UAAU,CAAC;aAChB,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;aACZ,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAmB,EAAE,EAAU;QAClD,oEAAoE;QACpE,wEAAwE;QACxE,iCAAiC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QAEtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aAClC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,QAAQ,CAAC;aAChB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;aACZ,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAE1F,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aACnC,IAAI,CAAC,iBAAiB,CAAC;aACvB,MAAM,CAAC,QAAQ,CAAC;aAChB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC;aACpB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE1C,0EAA0E;QAC1E,uEAAuE;QACvE,qEAAqE;QACrE,4EAA4E;QAC5E,0EAA0E;QAC1E,sDAAsD;QACtD,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM;aACvD,IAAI,CAAC,aAAa,CAAC;aACnB,MAAM,CAAC,QAAQ,CAAC;aAChB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC;aACpB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,MAAM,CAAC,MAAM,CAAC,CAAC;QACjB,IAAI,MAAM;YAAE,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;YACrC,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;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,iBAAiB,CACtB,GAAmB,EACnB,KAAa,EACb,IAAY;QAEZ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAE5C,yEAAyE;QACzE,yEAAyE;QACzE,+DAA+D;QAC/D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aAClC,IAAI,CAAC,UAAU,CAAC;aAChB,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;aAC5B,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;aACnB,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;aAChB,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC;aAC7B,MAAM,CAAC,eAAe,CAAC;aACvB,WAAW,EAAE,CAAC;QAChB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,6EAA6E;QAC7E,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aACnC,IAAI,CAAC,iBAAiB,CAAC;aACvB,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;aAC5B,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC;aACzB,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC;aAC5B,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE1C,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAC/E,KAAK,CAAC,kBAAkB,CACvB,GAAmB,EACnB,SAAiB,EACjB,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,iBAAiB,CAAC;aACvB,MAAM,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aAClD,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;aAC3B,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;aACvE,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,kBAAkB,CAAC,CAAC;QACnD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,gBAAgB,CACrB,GAAmB,EACnB,SAAiB,EACjB,MAAc;QAEd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,iBAAiB,CAAC;aACvB,MAAM,CAAC,sBAAsB,CAAC;aAC9B,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;aAC3B,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;aACrB,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,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,oBAAoB,CACzB,GAAmB,EACnB,UAA6B,EAC7B,MAAc;QAEd,MAAM,MAAM,GAAG,IAAI,GAAG,CAA+B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QAE3C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,iBAAiB,CAAC;aACvB,MAAM,CAAC,sBAAsB,CAAC;aAC9B,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC;aACjC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;aACrB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAClF,OAAO,MAAM,CAAC;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAAmB,EAAE,MAAqB;QAChE,kEAAkE;QAClE,6DAA6D;QAC7D,MAAM,GAAG,GAA4B;YACpC,GAAG,kBAAkB,CAAC,MAAM,CAAC;YAC7B,UAAU,EAAE,IAAI;YAChB,GAAG,WAAW,CAAC,GAAG,CAAC;SACnB,CAAC;QACF,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aAClC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,iBAAiB,CAAC;aACvB,MAAM,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACpD,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC5B,GAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,IAAiB;QAEjB,MAAM,GAAG,GAA4B,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aACxC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,iBAAiB,CAAC;aACvB,MAAM,CAAC,GAAG,CAAC;aACX,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;aAC3B,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;aACrB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;aACtB,MAAM,CAAC,SAAS,CAAC,CAAC;QACpB,IAAI,KAAK;YAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAC7B,MAAM,IAAI,aAAa,CAAC,mBAAmB,MAAM,aAAa,EAAE,GAAG,CAAC,CAAC;QACtE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,IAAI,EAAE,6BAA6B;YACnC,SAAS;YACT,MAAM;YACN,IAAI;YACJ,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAAmB,EAAE,SAAiB,EAAE,MAAc;QAC/E,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO;aAClC,UAAU,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,iBAAiB,CAAC;aACvB,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;aAC5B,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;aAC3B,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;aACrB,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,wBAAwB;YAC9B,SAAS;YACT,MAAM;YACN,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACJ,CAAC;CACD;AAuCD,SAAS,YAAY,CAAC,GAAe;IACpC,OAAO;QACN,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;QACzC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,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,gBAAgB,EAAE,GAAG,CAAC,mBAAmB,IAAI,KAAK;QAClD,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,YAAY,CAAC,CAAU;IAC/B,OAAO;QACN,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,CAAC,CAAC,KAAK;QACf,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAClC,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,QAAQ,EAAE,CAAC,CAAC,OAAO;QACnB,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,mBAAmB,EAAE,CAAC,CAAC,gBAAgB;QACvC,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,UAAU,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;KAC/B,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAqB;IAChD,OAAO;QACN,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS;QAC1C,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,OAAO;QACxC,SAAS,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI;KACjC,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAgB;IAC3C,OAAO;QACN,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,OAAO,EAAE,CAAC,CAAC,MAAM;QACjB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,CAAC,CAAC,QAAQ;KACrB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"SupabaseProjectStore.js","sourceRoot":"","sources":["../../src/data/SupabaseProjectStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import type { IShareLinkStore, IEventSink, ShareLink, RequestContext, ListOptions, Page } from '@selvajs/platform';
|
|
2
2
|
import type { ClientBundle } from './client.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Share-link store backed by Postgres.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* SECURITY DEFINER
|
|
8
|
-
*
|
|
9
|
-
* authenticated user identity.
|
|
10
|
-
*
|
|
11
|
-
* `tryIncrementSolveCount` returns a single number on success or null when
|
|
12
|
-
* the cap is hit. The RPC enforces "increment iff under cap and live" in
|
|
13
|
-
* one statement, so even concurrent solves can't overshoot the cap.
|
|
6
|
+
* `getByTokenHash` and `tryIncrementSolveCount` go through the service-role
|
|
7
|
+
* client and a SECURITY DEFINER RPC, bypassing RLS: the token itself is the
|
|
8
|
+
* credential, not the authenticated user's identity.
|
|
14
9
|
*/
|
|
15
10
|
export declare class SupabaseShareLinkStore implements IShareLinkStore {
|
|
16
11
|
private readonly clients;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseShareLinkStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseShareLinkStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,IAAI,EACJ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD
|
|
1
|
+
{"version":3,"file":"SupabaseShareLinkStore.d.ts","sourceRoot":"","sources":["../../src/data/SupabaseShareLinkStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,cAAc,EACd,WAAW,EACX,IAAI,EACJ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD;;;;;;GAMG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAI5D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAGlB,OAAO,EAAE,YAAY,EACtC,MAAM,GAAE,UAAgC;IAKnC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3D,gBAAgB,CACrB,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,WAAW,GAChB,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAerB,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAWnE,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAclF,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtD,sBAAsB,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAUtF"}
|
|
@@ -4,16 +4,11 @@ import { nextCursorFromRange, toRange } from './pagination.js';
|
|
|
4
4
|
/** Explicit column list for `share_links` — every field `rowToLink` consumes. */
|
|
5
5
|
const SHARE_LINK_COLUMNS = 'id, definition_guid, channel, token_hash, name, created_by, created_at, expires_at, revoked_at, allow_solve, max_solves, solve_count';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Share-link store backed by Postgres.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* SECURITY DEFINER
|
|
11
|
-
*
|
|
12
|
-
* authenticated user identity.
|
|
13
|
-
*
|
|
14
|
-
* `tryIncrementSolveCount` returns a single number on success or null when
|
|
15
|
-
* the cap is hit. The RPC enforces "increment iff under cap and live" in
|
|
16
|
-
* one statement, so even concurrent solves can't overshoot the cap.
|
|
9
|
+
* `getByTokenHash` and `tryIncrementSolveCount` go through the service-role
|
|
10
|
+
* client and a SECURITY DEFINER RPC, bypassing RLS: the token itself is the
|
|
11
|
+
* credential, not the authenticated user's identity.
|
|
17
12
|
*/
|
|
18
13
|
export class SupabaseShareLinkStore {
|
|
19
14
|
clients;
|
|
@@ -63,9 +58,8 @@ export class SupabaseShareLinkStore {
|
|
|
63
58
|
return data ? rowToLink(data) : null;
|
|
64
59
|
}
|
|
65
60
|
async getByTokenHash(_ctx, tokenHash) {
|
|
66
|
-
// Service-role:
|
|
67
|
-
//
|
|
68
|
-
// — exactly the wrong semantic for token-credentialed access.
|
|
61
|
+
// Service-role: RLS would scope this to "links the current user can see",
|
|
62
|
+
// but an anonymous caller resolving a token has no user to scope to.
|
|
69
63
|
const { data, error } = await this.clients.serviceClient
|
|
70
64
|
.from('share_links')
|
|
71
65
|
.select(`${SHARE_LINK_COLUMNS}, definitions!inner(deleted_at)`)
|
|
@@ -78,9 +72,7 @@ export class SupabaseShareLinkStore {
|
|
|
78
72
|
return data ? rowToLink(data) : null;
|
|
79
73
|
}
|
|
80
74
|
async revoke(ctx, id) {
|
|
81
|
-
//
|
|
82
|
-
// revoked. The `is null` predicate on revoked_at means a re-revoke
|
|
83
|
-
// is a no-op (no row updated).
|
|
75
|
+
// `.is('revoked_at', null)` makes a re-revoke a no-op instead of an error.
|
|
84
76
|
const { error } = await this.clients
|
|
85
77
|
.forRequest(ctx)
|
|
86
78
|
.from('share_links')
|
|
@@ -92,9 +84,8 @@ export class SupabaseShareLinkStore {
|
|
|
92
84
|
await this.events.emit({ type: 'share_link.revoked', linkId: id, actorId: actorFrom(ctx) });
|
|
93
85
|
}
|
|
94
86
|
async tryIncrementSolveCount(_ctx, id) {
|
|
95
|
-
//
|
|
96
|
-
//
|
|
97
|
-
// row update is the only way to get a numeric return.
|
|
87
|
+
// Atomic check-and-increment in one RPC call: returns null if the link is
|
|
88
|
+
// missing/revoked/expired/capped, so concurrent solves can't overshoot max_solves.
|
|
98
89
|
const { data, error } = await this.clients.serviceClient.rpc('try_increment_share_link_solve_count', { link_id: id });
|
|
99
90
|
if (error)
|
|
100
91
|
throw mapPostgrestError(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseShareLinkStore.js","sourceRoot":"","sources":["../../src/data/SupabaseShareLinkStore.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/D,iFAAiF;AACjF,MAAM,kBAAkB,GACvB,sIAAsI,CAAC;AAExI
|
|
1
|
+
{"version":3,"file":"SupabaseShareLinkStore.js","sourceRoot":"","sources":["../../src/data/SupabaseShareLinkStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,20 +18,19 @@ export interface SolveMetricSinkOptions {
|
|
|
18
18
|
logger?: ILogger;
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* Persists
|
|
22
|
-
* service-role client
|
|
23
|
-
*
|
|
21
|
+
* Persists solve timings to `selva.solve_metrics`. Writes go through the
|
|
22
|
+
* service-role client — the sink is a system process attached to the compute
|
|
23
|
+
* route, not the requesting user, so RLS doesn't apply.
|
|
24
24
|
*
|
|
25
|
-
* Rows are buffered and written
|
|
26
|
-
*
|
|
27
|
-
* serves auth. A batch
|
|
28
|
-
*
|
|
25
|
+
* Rows are buffered and batch-written: slider scrubbing fires solves far
|
|
26
|
+
* faster than they're worth individual round-trips against a Postgres that
|
|
27
|
+
* also serves auth. A batch flushes at `maxBatchSize` rows or `flushIntervalMs`
|
|
28
|
+
* elapsed, whichever comes first.
|
|
29
29
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* drain deliberately.
|
|
30
|
+
* `record` must never throw — it runs on the hot path after the solve
|
|
31
|
+
* response is already sent, so it only buffers; a failed flush is logged and
|
|
32
|
+
* swallowed. That means an unclean shutdown loses buffered metrics; call
|
|
33
|
+
* `close()` to drain deliberately.
|
|
35
34
|
*/
|
|
36
35
|
export declare class SupabaseSolveMetricSink implements ISolveMetricSink {
|
|
37
36
|
private readonly clients;
|
|
@@ -51,8 +50,8 @@ export declare class SupabaseSolveMetricSink implements ISolveMetricSink {
|
|
|
51
50
|
*/
|
|
52
51
|
flush(): Promise<void>;
|
|
53
52
|
/**
|
|
54
|
-
* Stops the timer, drains the buffer, and
|
|
55
|
-
* shutdown so the last partial batch
|
|
53
|
+
* Stops the timer, drains the buffer, and makes further `record` calls no-ops.
|
|
54
|
+
* Call on shutdown so the last partial batch isn't lost.
|
|
56
55
|
*/
|
|
57
56
|
close(): Promise<void>;
|
|
58
57
|
private scheduleFlush;
|
|
@@ -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,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
|
|
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;;;;;;;;;;;;;;GAcG;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"}
|
|
@@ -3,20 +3,19 @@ const DEFAULT_MAX_BATCH_SIZE = 100;
|
|
|
3
3
|
const DEFAULT_FLUSH_INTERVAL_MS = 2000;
|
|
4
4
|
const DEFAULT_MAX_BUFFER_SIZE = 10_000;
|
|
5
5
|
/**
|
|
6
|
-
* Persists
|
|
7
|
-
* service-role client
|
|
8
|
-
*
|
|
6
|
+
* Persists solve timings to `selva.solve_metrics`. Writes go through the
|
|
7
|
+
* service-role client — the sink is a system process attached to the compute
|
|
8
|
+
* route, not the requesting user, so RLS doesn't apply.
|
|
9
9
|
*
|
|
10
|
-
* Rows are buffered and written
|
|
11
|
-
*
|
|
12
|
-
* serves auth. A batch
|
|
13
|
-
*
|
|
10
|
+
* Rows are buffered and batch-written: slider scrubbing fires solves far
|
|
11
|
+
* faster than they're worth individual round-trips against a Postgres that
|
|
12
|
+
* also serves auth. A batch flushes at `maxBatchSize` rows or `flushIntervalMs`
|
|
13
|
+
* elapsed, whichever comes first.
|
|
14
14
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* drain deliberately.
|
|
15
|
+
* `record` must never throw — it runs on the hot path after the solve
|
|
16
|
+
* response is already sent, so it only buffers; a failed flush is logged and
|
|
17
|
+
* swallowed. That means an unclean shutdown loses buffered metrics; call
|
|
18
|
+
* `close()` to drain deliberately.
|
|
20
19
|
*/
|
|
21
20
|
export class SupabaseSolveMetricSink {
|
|
22
21
|
clients;
|
|
@@ -82,8 +81,8 @@ export class SupabaseSolveMetricSink {
|
|
|
82
81
|
return this.inFlight;
|
|
83
82
|
}
|
|
84
83
|
/**
|
|
85
|
-
* Stops the timer, drains the buffer, and
|
|
86
|
-
* shutdown so the last partial batch
|
|
84
|
+
* Stops the timer, drains the buffer, and makes further `record` calls no-ops.
|
|
85
|
+
* Call on shutdown so the last partial batch isn't lost.
|
|
87
86
|
*/
|
|
88
87
|
async close() {
|
|
89
88
|
this.closed = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupabaseSolveMetricSink.js","sourceRoot":"","sources":["../../src/data/SupabaseSolveMetricSink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAkC7D,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"SupabaseSolveMetricSink.js","sourceRoot":"","sources":["../../src/data/SupabaseSolveMetricSink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAkC7D,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,uBAAuB;IAYjB;IAXV,MAAM,GAAgB,EAAE,CAAC;IACzB,KAAK,GAAyC,IAAI,CAAC;IACnD,QAAQ,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5C,MAAM,GAAG,KAAK,CAAC;IAEN,YAAY,CAAS;IACrB,eAAe,CAAS;IACxB,aAAa,CAAS;IACtB,MAAM,CAAU;IAEjC,YACkB,OAAqB,EACtC,OAA+B,EAAE;QADhB,YAAO,GAAP,OAAO,CAAc;QAGtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,sBAAsB,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,yBAAyB,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,uBAAuB,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAmB,EAAE,MAAmB;QACpD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAExB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAChB,QAAQ,EAAE,GAAG,CAAC,MAAM,IAAI,QAAQ;YAChC,cAAc,EAAE,MAAM,CAAC,aAAa;YACpC,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,KAAK;YACpB,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,aAAa,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE;gBAC/D,SAAS,EAAE,yBAAyB;gBACpC,OAAO;aACP,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7C,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACV,uEAAuE;QACvE,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QAE7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAEO,aAAa;QACpB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzB,6CAA6C;QAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,KAAkB;QACrC,IAAI,CAAC;YACJ,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvF,IAAI,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;oBAC/C,SAAS,EAAE,yBAAyB;oBACpC,KAAK,EAAE,KAAK,CAAC,MAAM;oBACnB,GAAG,EAAE,KAAK,CAAC,OAAO;iBAClB,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;gBAC1D,SAAS,EAAE,yBAAyB;gBACpC,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,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"}
|
package/dist/data/client.d.ts
CHANGED
|
@@ -1,69 +1,41 @@
|
|
|
1
1
|
import { type SupabaseClient } from '@supabase/supabase-js';
|
|
2
2
|
import type { RequestContext } from '@selvajs/platform';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `db: { schema: 'selva' }
|
|
7
|
-
* client's schema generic — hence this alias rather than the bare default
|
|
8
|
-
* `SupabaseClient` (which is pinned to `'public'`).
|
|
4
|
+
* supabase-js surfaces the schema as a type generic, and the bare
|
|
5
|
+
* `SupabaseClient` default is pinned to `'public'` — this alias is what a
|
|
6
|
+
* client with `db: { schema: 'selva' }` actually type-checks as.
|
|
9
7
|
*/
|
|
10
8
|
export type SelvaSchemaClient = SupabaseClient<any, 'public', 'selva'>;
|
|
11
9
|
/** Default schema every engine store targets. */
|
|
12
10
|
export declare const DEFAULT_SCHEMA: "selva";
|
|
13
|
-
/**
|
|
14
|
-
* A client pinned to a caller-chosen schema. When the schema is `'selva'` this
|
|
15
|
-
* is the narrow `SelvaSchemaClient`; for an app-owned schema (e.g. `'public'`)
|
|
16
|
-
* the schema generic is opaque — the store surface (`.from` / `.rpc`) is the
|
|
17
|
-
* same either way.
|
|
18
|
-
*/
|
|
11
|
+
/** A client pinned to a caller-chosen schema (opaque generic for non-`'selva'` schemas). */
|
|
19
12
|
export type SchemaClient = SupabaseClient<any, string, any>;
|
|
20
13
|
export interface ForRequestOptions {
|
|
21
|
-
/**
|
|
22
|
-
* Postgres schema this client targets. Defaults to `'selva'` (the engine's
|
|
23
|
-
* tables). Pass `'public'` (or another app schema) to build stores on the
|
|
24
|
-
* consuming app's own tables while keeping the same fail-closed RLS
|
|
25
|
-
* dispatch as the engine stores.
|
|
26
|
-
*/
|
|
14
|
+
/** Postgres schema this client targets. Defaults to `'selva'`. */
|
|
27
15
|
schema?: string;
|
|
28
16
|
}
|
|
29
17
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* -
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* - **Anonymous** otherwise: runs under the `anon` role. RLS is active and
|
|
40
|
-
* will scope reads/writes accordingly. This is the safety net — any code
|
|
41
|
-
* that constructs a context without forwarding the session token AND
|
|
42
|
-
* without setting `system: true` is treated as untrusted.
|
|
18
|
+
* `forRequest` picks one of three fail-closed modes:
|
|
19
|
+
* - `ctx.system === true` → service-role, bypasses RLS. Never derive this
|
|
20
|
+
* flag from a user session — it must come from an explicitly-trusted
|
|
21
|
+
* server flow (admin paths, janitors, bootstrap).
|
|
22
|
+
* - `ctx.adapterContext.sessionToken` set → user-scoped, `authenticated`
|
|
23
|
+
* role, RLS enforces per-user visibility via `auth.uid()`.
|
|
24
|
+
* - neither → anon role, RLS active, no `auth.uid()`. This is the safety
|
|
25
|
+
* net: a context built without a forwarded session token and without
|
|
26
|
+
* `system: true` is untrusted by default.
|
|
43
27
|
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* silently
|
|
47
|
-
* service-role with `system: true`, or you get RLS.
|
|
28
|
+
* An earlier version fell back to service-role when the session token was
|
|
29
|
+
* missing — fail-OPEN, so a synthetic ctx (e.g. share-token resolve) could
|
|
30
|
+
* silently bypass RLS. Opt into service-role explicitly now, or you get RLS.
|
|
48
31
|
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
32
|
+
* `forRequest` caches per `(RequestContext, schema)` in a WeakMap so
|
|
33
|
+
* multiple store calls in one HTTP handler share a client — and its fetch
|
|
34
|
+
* connection — without leaking auth across requests.
|
|
52
35
|
*/
|
|
53
36
|
export interface ClientBundle {
|
|
54
37
|
/** Long-lived service-role client, pinned to the `'selva'` schema. Bypasses RLS. */
|
|
55
38
|
serviceClient: SelvaSchemaClient;
|
|
56
|
-
/**
|
|
57
|
-
* Produce (or reuse) a client scoped to this request's identity, targeting
|
|
58
|
-
* `opts.schema` (default `'selva'`).
|
|
59
|
-
* - `ctx.system === true` → service-role (RLS bypassed).
|
|
60
|
-
* - `ctx.adapterContext.sessionToken` set → user-scoped (RLS active).
|
|
61
|
-
* - neither → anon client (RLS active, no `auth.uid()`).
|
|
62
|
-
*
|
|
63
|
-
* The schema pin and the RLS dispatch travel together: an app building
|
|
64
|
-
* stores on its own `'public'` tables gets the same fail-closed behavior as
|
|
65
|
-
* engine stores, just aimed at a different schema.
|
|
66
|
-
*/
|
|
67
39
|
forRequest(ctx: RequestContext, opts?: ForRequestOptions): SchemaClient;
|
|
68
40
|
}
|
|
69
41
|
export interface BuildClientOptions {
|
|
@@ -73,12 +45,11 @@ export interface BuildClientOptions {
|
|
|
73
45
|
}
|
|
74
46
|
export declare function buildClientBundle(opts: BuildClientOptions): ClientBundle;
|
|
75
47
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
* layers the at-rest-key requirement on top of this.
|
|
48
|
+
* Reads only `SUPABASE_URL` / `SUPABASE_ANON_KEY` / `SUPABASE_SERVICE_ROLE_KEY`.
|
|
49
|
+
* Deliberately does not require `SELVA_AT_REST_KEY` — that's only needed for
|
|
50
|
+
* compute-server secret encryption, which an app building its own `'public'`
|
|
51
|
+
* stores never touches. `SupabaseDataProvider.fromEnv` adds that requirement
|
|
52
|
+
* on top.
|
|
82
53
|
*/
|
|
83
54
|
export declare function clientBundleFromEnv(env: Record<string, string | undefined>): ClientBundle;
|
|
84
55
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/data/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/data/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAEvE,iDAAiD;AACjD,eAAO,MAAM,cAAc,EAAG,OAAgB,CAAC;AAE/C,4FAA4F;AAC5F,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IACjC,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,YAAY;IAC5B,oFAAoF;IACpF,aAAa,EAAE,iBAAiB,CAAC;IACjC,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,YAAY,CAAC;CACxE;AAED,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,YAAY,CA4DxE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,YAAY,CAQzF"}
|
package/dist/data/client.js
CHANGED
|
@@ -2,9 +2,7 @@ import { createClient } from '@supabase/supabase-js';
|
|
|
2
2
|
/** Default schema every engine store targets. */
|
|
3
3
|
export const DEFAULT_SCHEMA = 'selva';
|
|
4
4
|
export function buildClientBundle(opts) {
|
|
5
|
-
//
|
|
6
|
-
// w.r.t. request identity, so a single instance is safe to share across all
|
|
7
|
-
// requests targeting the same schema.
|
|
5
|
+
// Stateless w.r.t. request identity, so one instance per schema is safe to share.
|
|
8
6
|
const serviceBySchema = new Map();
|
|
9
7
|
const anonBySchema = new Map();
|
|
10
8
|
function serviceFor(schema) {
|
|
@@ -29,12 +27,7 @@ export function buildClientBundle(opts) {
|
|
|
29
27
|
}
|
|
30
28
|
return client;
|
|
31
29
|
}
|
|
32
|
-
// The `'selva'`-pinned service client is exposed directly on the bundle for
|
|
33
|
-
// engine code that reaches for RLS-bypassing reads without a request context.
|
|
34
30
|
const serviceClient = serviceFor(DEFAULT_SCHEMA);
|
|
35
|
-
// Per-request user-scoped clients, keyed first by context then by schema so
|
|
36
|
-
// a handler that touches both `'selva'` and an app schema reuses one client
|
|
37
|
-
// per (request, schema) without leaking auth across requests.
|
|
38
31
|
const perRequestCache = new WeakMap();
|
|
39
32
|
return {
|
|
40
33
|
serviceClient,
|
|
@@ -66,12 +59,11 @@ export function buildClientBundle(opts) {
|
|
|
66
59
|
};
|
|
67
60
|
}
|
|
68
61
|
/**
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* layers the at-rest-key requirement on top of this.
|
|
62
|
+
* Reads only `SUPABASE_URL` / `SUPABASE_ANON_KEY` / `SUPABASE_SERVICE_ROLE_KEY`.
|
|
63
|
+
* Deliberately does not require `SELVA_AT_REST_KEY` — that's only needed for
|
|
64
|
+
* compute-server secret encryption, which an app building its own `'public'`
|
|
65
|
+
* stores never touches. `SupabaseDataProvider.fromEnv` adds that requirement
|
|
66
|
+
* on top.
|
|
75
67
|
*/
|
|
76
68
|
export function clientBundleFromEnv(env) {
|
|
77
69
|
const supabaseUrl = env.SUPABASE_URL;
|
package/dist/data/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/data/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/data/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/data/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/data/errors.ts"],"names":[],"mappings":"AAkBA,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAmBnD"}
|
package/dist/data/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/data/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/data/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAkBlD,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC3C,MAAM,EAAE,GAAG,CAAwB,CAAC;IACpC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU;YACd,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,OAAO,IAAI,WAAW,EAAE,GAAG,CAAC,CAAC;QAC1D,KAAK,OAAO;YACX,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,OAAO,IAAI,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACjE,KAAK,OAAO;YACX,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,OAAO,IAAI,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,YAAY,KAAK;QAAE,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,CAAwB,CAAC;QACrC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,wBAAwB,CAAC;QAC/E,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxB,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* Compared against `selva.migration_head()` (a SECURITY DEFINER function over
|
|
6
|
-
* `supabase_migrations.schema_migrations`) in
|
|
7
|
-
* `SupabaseDataProvider.verifySchemaVersion` to drive the boot-time app↔DB
|
|
8
|
-
* schema handshake (audit O3).
|
|
9
|
-
*
|
|
10
|
-
* MUST be bumped whenever a migration is added — `migration-head.test.ts`
|
|
11
|
-
* asserts this constant matches the migrations directory, so CI catches drift.
|
|
2
|
+
* Timestamp prefix of the newest file in `supabase/migrations/`. Bump this
|
|
3
|
+
* whenever a migration is added — `migration-head.test.ts` asserts it
|
|
4
|
+
* matches the migrations directory, so CI catches drift.
|
|
12
5
|
*/
|
|
13
6
|
export declare const EXPECTED_MIGRATION_HEAD = "20260717120000";
|
|
14
7
|
//# sourceMappingURL=migrationHead.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrationHead.d.ts","sourceRoot":"","sources":["../../src/data/migrationHead.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"migrationHead.d.ts","sourceRoot":"","sources":["../../src/data/migrationHead.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,mBAAmB,CAAC"}
|