@cerefox/memory 1.0.0 → 1.0.1-beta.1
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.
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
-- 0013_explicit_grants.sql — issue #26: explicit Data API grants for service_role
|
|
2
|
+
-- (Supabase implicit-grant removal). Idempotent; safe on existing deployments.
|
|
3
|
+
|
|
4
|
+
-- ── Explicit Data API grants (issue #26; schema 0.8.2) ─────────────────────────
|
|
5
|
+
-- Supabase is removing the implicit privileges the Data API roles get on
|
|
6
|
+
-- `public` tables (default for projects created after 2026-05-30; enforced on
|
|
7
|
+
-- existing projects 2026-10-30). Without explicit GRANTs a table is invisible
|
|
8
|
+
-- to PostgREST even for service_role (42501). Cerefox grants ONLY service_role
|
|
9
|
+
-- (the CLI / MCP / web all use service-role-equivalent keys; anon/authenticated
|
|
10
|
+
-- deliberately get nothing, matching the RPC EXECUTE posture from iter-28B).
|
|
11
|
+
-- Guarded: on the local (World B) stack this file deploys BEFORE roles.sql
|
|
12
|
+
-- creates service_role, so missing-role must be a no-op (roles.sql re-runs the
|
|
13
|
+
-- grants implicitly via its own PostgREST wiring; the next deploy picks them up).
|
|
14
|
+
DO $$
|
|
15
|
+
DECLARE t TEXT;
|
|
16
|
+
BEGIN
|
|
17
|
+
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'service_role') THEN
|
|
18
|
+
GRANT USAGE ON SCHEMA public TO service_role;
|
|
19
|
+
FOREACH t IN ARRAY ARRAY[
|
|
20
|
+
'cerefox_projects', 'cerefox_documents', 'cerefox_document_versions',
|
|
21
|
+
'cerefox_audit_log', 'cerefox_document_projects', 'cerefox_chunks',
|
|
22
|
+
'cerefox_migrations', 'cerefox_config', 'cerefox_usage_log'
|
|
23
|
+
] LOOP
|
|
24
|
+
IF to_regclass('public.' || t) IS NOT NULL THEN
|
|
25
|
+
EXECUTE format('GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE public.%I TO service_role', t);
|
|
26
|
+
END IF;
|
|
27
|
+
END LOOP;
|
|
28
|
+
-- Future cerefox_* tables created by the deploying role keep working.
|
|
29
|
+
ALTER DEFAULT PRIVILEGES IN SCHEMA public
|
|
30
|
+
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO service_role;
|
|
31
|
+
END IF;
|
|
32
|
+
END $$;
|
|
@@ -1776,7 +1776,7 @@ SET search_path = public, pg_catalog
|
|
|
1776
1776
|
AS $$
|
|
1777
1777
|
-- Keep in lockstep with the `@version:` marker in schema.sql (cut_release.ts
|
|
1778
1778
|
-- enforces it). Bump whenever schema.sql OR rpcs.sql changes.
|
|
1779
|
-
SELECT '0.8.
|
|
1779
|
+
SELECT '0.8.2'::TEXT;
|
|
1780
1780
|
$$;
|
|
1781
1781
|
|
|
1782
1782
|
-- ── cerefox_content_format_stats ─────────────────────────────────────────────
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
-- Requires extensions: vector (pgvector), uuid-ossp
|
|
6
6
|
-- These are enabled at the top of db_deploy.py before this file is applied.
|
|
7
7
|
--
|
|
8
|
-
-- @version: 0.8.
|
|
8
|
+
-- @version: 0.8.2
|
|
9
9
|
-- The `@version` marker above is read by the schema-version-mismatch banner
|
|
10
10
|
-- (see /api/v1/schema-version). Bump it whenever schema.sql OR rpcs.sql
|
|
11
11
|
-- changes in a way that requires `cerefox server deploy` to be re-run —
|
|
@@ -386,3 +386,33 @@ ALTER TABLE cerefox_audit_log ENABLE ROW LEVEL SECURITY;
|
|
|
386
386
|
ALTER TABLE cerefox_migrations ENABLE ROW LEVEL SECURITY;
|
|
387
387
|
ALTER TABLE cerefox_config ENABLE ROW LEVEL SECURITY;
|
|
388
388
|
ALTER TABLE cerefox_usage_log ENABLE ROW LEVEL SECURITY;
|
|
389
|
+
|
|
390
|
+
-- ── Explicit Data API grants (issue #26; schema 0.8.2) ─────────────────────────
|
|
391
|
+
-- Supabase is removing the implicit privileges the Data API roles get on
|
|
392
|
+
-- `public` tables (default for projects created after 2026-05-30; enforced on
|
|
393
|
+
-- existing projects 2026-10-30). Without explicit GRANTs a table is invisible
|
|
394
|
+
-- to PostgREST even for service_role (42501). Cerefox grants ONLY service_role
|
|
395
|
+
-- (the CLI / MCP / web all use service-role-equivalent keys; anon/authenticated
|
|
396
|
+
-- deliberately get nothing, matching the RPC EXECUTE posture from iter-28B).
|
|
397
|
+
-- Guarded: on the local (World B) stack this file deploys BEFORE roles.sql
|
|
398
|
+
-- creates service_role, so missing-role must be a no-op (roles.sql re-runs the
|
|
399
|
+
-- grants implicitly via its own PostgREST wiring; the next deploy picks them up).
|
|
400
|
+
DO $$
|
|
401
|
+
DECLARE t TEXT;
|
|
402
|
+
BEGIN
|
|
403
|
+
IF EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'service_role') THEN
|
|
404
|
+
GRANT USAGE ON SCHEMA public TO service_role;
|
|
405
|
+
FOREACH t IN ARRAY ARRAY[
|
|
406
|
+
'cerefox_projects', 'cerefox_documents', 'cerefox_document_versions',
|
|
407
|
+
'cerefox_audit_log', 'cerefox_document_projects', 'cerefox_chunks',
|
|
408
|
+
'cerefox_migrations', 'cerefox_config', 'cerefox_usage_log'
|
|
409
|
+
] LOOP
|
|
410
|
+
IF to_regclass('public.' || t) IS NOT NULL THEN
|
|
411
|
+
EXECUTE format('GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE public.%I TO service_role', t);
|
|
412
|
+
END IF;
|
|
413
|
+
END LOOP;
|
|
414
|
+
-- Future cerefox_* tables created by the deploying role keep working.
|
|
415
|
+
ALTER DEFAULT PRIVILEGES IN SCHEMA public
|
|
416
|
+
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO service_role;
|
|
417
|
+
END IF;
|
|
418
|
+
END $$;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cerefox/memory",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1-beta.1",
|
|
4
4
|
"description": "Cerefox — user-owned shared memory for AI agents. CLI + stdio MCP server + web UI + ingestion for a knowledge base on your own Supabase project (or fully self-hosted with Cerefox Local).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://github.com/fstamatelopoulos/cerefox",
|