@selvajs/supabase-provider 0.17.0 → 0.18.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.
@@ -2,7 +2,7 @@ import { NoopEventSink, actorFrom } from '@selvajs/platform';
2
2
  import { mapPostgrestError } from './errors.js';
3
3
  import { nextCursorFromRange, toRange } from './pagination.js';
4
4
  /** Explicit column list for `invites` — every field `rowToInvite` consumes. */
5
- const INVITE_COLUMNS = 'id, token_hash, email, org_id, org_role, org_permissions, invited_by, created_at, expires_at, accepted_at, accepted_by_user_id';
5
+ const INVITE_COLUMNS = 'id, token_hash, email, org_id, org_role, org_permissions, platform_permissions, invited_by, created_at, expires_at, accepted_at, accepted_by_user_id';
6
6
  /**
7
7
  * Invite store. `getByTokenHash` routes through a SECURITY DEFINER RPC so an
8
8
  * unauthenticated caller (still validating an invite link) can resolve it
@@ -120,6 +120,9 @@ function rowToInvite(row) {
120
120
  orgId: row.org_id,
121
121
  orgRole: row.org_role,
122
122
  orgPermissions: row.org_permissions,
123
+ // `?? []` covers a row read through a client whose projection predates the
124
+ // column, not a null default — the column is `not null default '{}'`.
125
+ platformPermissions: (row.platform_permissions ?? []),
123
126
  invitedBy: row.invited_by,
124
127
  createdAt: row.created_at,
125
128
  expiresAt: row.expires_at,
@@ -135,6 +138,7 @@ function inviteToRow(i) {
135
138
  org_id: i.orgId,
136
139
  org_role: i.orgRole,
137
140
  org_permissions: i.orgPermissions,
141
+ platform_permissions: i.platformPermissions ?? [],
138
142
  invited_by: i.invitedBy,
139
143
  created_at: i.createdAt,
140
144
  expires_at: i.expiresAt,
@@ -1 +1 @@
1
- {"version":3,"file":"SupabaseInviteStore.js","sourceRoot":"","sources":["../../src/data/SupabaseInviteStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SupabaseInviteStore.js","sourceRoot":"","sources":["../../src/data/SupabaseInviteStore.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@
3
3
  * whenever a migration is added — `migration-head.test.ts` asserts it
4
4
  * matches the migrations directory, so CI catches drift.
5
5
  */
6
- export declare const EXPECTED_MIGRATION_HEAD = "20260717120000";
6
+ export declare const EXPECTED_MIGRATION_HEAD = "20260817120000";
7
7
  //# sourceMappingURL=migrationHead.d.ts.map
@@ -3,5 +3,5 @@
3
3
  * whenever a migration is added — `migration-head.test.ts` asserts it
4
4
  * matches the migrations directory, so CI catches drift.
5
5
  */
6
- export const EXPECTED_MIGRATION_HEAD = '20260717120000';
6
+ export const EXPECTED_MIGRATION_HEAD = '20260817120000';
7
7
  //# sourceMappingURL=migrationHead.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@selvajs/supabase-provider",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "Supabase (Auth + Postgres + Storage) implementations of @selvajs/platform interfaces",
5
5
  "license": "MIT",
6
6
  "author": "VektorNode",
@@ -72,10 +72,10 @@
72
72
  "dependencies": {
73
73
  "@supabase/supabase-js": "^2.112.2",
74
74
  "sharp": "^0.35.3",
75
- "@selvajs/platform": "^0.17.0"
75
+ "@selvajs/platform": "^0.18.0"
76
76
  },
77
77
  "devDependencies": {
78
- "@types/node": "^26.1.2",
78
+ "@types/node": "^24.13.3",
79
79
  "supabase": "^2.112.0",
80
80
  "typescript": "~6.0.3",
81
81
  "vitest": "^4.1.10",
@@ -0,0 +1,16 @@
1
+ -- ============================================================================
2
+ -- selva.invites.platform_permissions — instance-wide grants carried by an invite
3
+ -- ============================================================================
4
+ --
5
+ -- Invites could only ever grant org scope, so the sole way to create a second
6
+ -- instance admin was the admin-sets-password form on /admin/users — a form that
7
+ -- cannot exist under a header-auth/IdP deployment, where Selva never holds a
8
+ -- credential. Removing that form without this column would leave such a
9
+ -- deployment permanently stuck at one admin.
10
+ --
11
+ -- Empty for virtually every row: the mint route rejects a non-empty value unless
12
+ -- the caller already holds instance_admin, since anyone who can write here can
13
+ -- escalate past org scope.
14
+
15
+ alter table selva.invites
16
+ add column if not exists platform_permissions text[] not null default '{}';