| 12345678910111213141516171819202122232425262728293031 |
- """Correct the closed manifest projection without altering applied history."""
- from alembic import op
- revision = "20260817_513"
- down_revision = "20260817_512"
- branch_labels = None
- depends_on = None
- def upgrade() -> None:
- op.execute(r"""
- CREATE OR REPLACE FUNCTION public.tenant_control_read_manifests(p_payload jsonb)
- RETURNS jsonb LANGUAGE plpgsql SECURITY DEFINER SET search_path=pg_catalog,public AS $tenant_read_manifests$
- DECLARE v_state jsonb; v_tenant text;
- BEGIN
- v_state:=public.tenant_control_read_state(p_payload); v_tenant:=v_state->>'tenant_id'; PERFORM set_config('dataops.tenant_id',v_tenant,true);
- RETURN jsonb_build_object('tenant_id',v_tenant,'manifests',coalesce((SELECT jsonb_agg(jsonb_build_object('resource_type',resource_type,'digest',digest,'namespace',namespace,'provider_enabled',provider_enabled) ORDER BY resource_type,namespace) FROM public.tenant_resource_manifests WHERE tenant_id=v_tenant),'[]'::jsonb));
- END; $tenant_read_manifests$;
- ALTER FUNCTION public.tenant_control_read_manifests(jsonb) OWNER TO dataops_tenant_foundation_owner;
- REVOKE ALL ON FUNCTION public.tenant_control_read_manifests(jsonb) FROM PUBLIC,dataops_app_runtime;
- GRANT EXECUTE ON FUNCTION public.tenant_control_read_manifests(jsonb) TO dataops_tenant_control;
- """)
- def downgrade() -> None:
- op.execute("""
- DO $$ BEGIN
- IF EXISTS (SELECT 1 FROM public.tenant_resource_manifests LIMIT 1) THEN RAISE EXCEPTION 'tenant manifest reader downgrade refused while manifests exist'; END IF;
- END $$;
- """)
|