Migration verification: 0/9 Operational, 9 Blocked with exact action.
1. Radar tables have workspace_id columnsBlocked with exact action
One or more Radar tables missing workspace_id. Likely cause: r66_a2 migration not yet applied.
Missing: workspace_id column on radar_source_checks / radar_signals / radar_proposals / radar_pack_publications / 4 agentproof_radar_* legacy tables
Migration file: migrations/r66_a2_radar_workspace_scope.sql
Exact action: Open Supabase → SQL editor → paste the contents of migrations/r66_a2_radar_workspace_scope.sql → run.
Verify: Run: SELECT column_name FROM information_schema.columns WHERE table_name = 'radar_signals' AND column_name = 'workspace_id'; — should return one row.
2. Radar RLS policies use workspace_id (workspace-scoped)Blocked with exact action
Radar RLS still uses old auth.uid()-only check. Cross-workspace leak possible until r66_a2 is applied.
Missing: Workspace-scoped RLS policies on Radar tables
Migration file: migrations/r66_a2_radar_workspace_scope.sql
Exact action: Apply r66_a2 migration. DROP POLICY IF EXISTS statements + CREATE POLICY statements with public.is_workspace_member(workspace_id) inside are included.
Verify: Run: SELECT policyname FROM pg_policies WHERE tablename = 'radar_runs'; — should include 'radar_runs read own workspace v2'.
3. agentproof_workspace_members table existsBlocked with exact action
Table missing. Until created, is_workspace_member() returns false and all Radar reads/writes are refused.
Missing: Table public.agentproof_workspace_members
Migration file: migrations/r66_a3_missing_tables.sql
Exact action: Apply r66_a3 migration.
Verify: Run: SELECT 1 FROM information_schema.tables WHERE table_name = 'agentproof_workspace_members'; — should return one row.
4. agentproof_workspace_invitations table existsBlocked with exact action
Table missing. Invitations cannot be persisted.
Missing: Table public.agentproof_workspace_invitations
Migration file: migrations/r66_a3_missing_tables.sql
Exact action: Apply r66_a3 migration.
Verify: Run: SELECT 1 FROM information_schema.tables WHERE table_name = 'agentproof_workspace_invitations'; — should return one row.
5. agentproof_audit_events table existsBlocked with exact action
Table missing. Audit log writes silently fall to local fallback.
Missing: Table public.agentproof_audit_events
Migration file: migrations/r66_a3_missing_tables.sql
Exact action: Apply r66_a3 migration.
Verify: Run: SELECT 1 FROM information_schema.tables WHERE table_name = 'agentproof_audit_events'; — should return one row.
6. agentproof_product_intelligence_backlog table existsBlocked with exact action
Table missing. Product intelligence backlog writes silently fall to local fallback.
Missing: Table public.agentproof_product_intelligence_backlog
Migration file: migrations/r66_a3_missing_tables.sql
Exact action: Apply r66_a3 migration.
Verify: Run: SELECT 1 FROM information_schema.tables WHERE table_name = 'agentproof_product_intelligence_backlog'; — should return one row.
7. public.is_workspace_member(uuid) function existsBlocked with exact action
Function missing. Radar RLS will refuse all reads/writes.
Missing: Function public.is_workspace_member(ws_id uuid)
Migration file: migrations/r66_a2_radar_workspace_scope.sql (placeholder) + migrations/r66_a3_missing_tables.sql (real check)
Exact action: Apply both r66_a2 and r66_a3 migrations.
Verify: Run: SELECT 1 FROM pg_proc WHERE proname = 'is_workspace_member'; — should return one row.
8. is_workspace_member() returns true for the active user's own workspaceBlocked with exact action
Function returns false. Either A3 not applied (still placeholder), OR no membership row exists for this user.
Missing: Either A3 migration OR a workspace_members row for the signed-in user
Migration file: migrations/r66_a3_missing_tables.sql + manual INSERT
Exact action: After applying r66_a3, INSERT one row into agentproof_workspace_members (workspace_id, user_id, role='owner') for the current user. See /admin/setup → R67 O1 Production Unblock Checklist → Copy-safe SQL guidance.
Verify: Sign in. Open /admin/setup → R67 O1 Production Unblock Checklist — workspace_members owner row check should report Operational.
9. At least one agentproof_workspace_members row exists for the active userBlocked with exact action
No membership row exists for any user. is_workspace_member() always returns false → Radar reads/writes refused.
Missing: Row in public.agentproof_workspace_members for the active user with role='owner'
Migration file: n/a (data insert, not migration)
Exact action: INSERT INTO public.agentproof_workspace_members (workspace_id, user_id, role) VALUES (<ws-uuid>, <user-uuid>, 'owner'); — see /admin/setup → R67 O1 → Copy-safe SQL guidance.
Verify: Run: SELECT count(*) FROM agentproof_workspace_members WHERE user_id = auth.uid(); — should return >= 1.