| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- """Make provision intent durable and singular before provider I/O."""
- from alembic import op
- revision = "20260811_493"
- down_revision = "20260811_492"
- branch_labels = None
- depends_on = None
- def upgrade() -> None:
- op.execute(r"""
- /* One grant represents one target-provider entitlement. A new HTTP key
- therefore cannot manufacture a second adapter side effect. */
- CREATE UNIQUE INDEX IF NOT EXISTS uq_trusted_delivery_one_provision_per_grant
- ON public.trusted_delivery_deliveries(grant_uid) WHERE operation='provision';
- ALTER FUNCTION public.trusted_delivery_runtime_write(text,jsonb)
- RENAME TO trusted_delivery_runtime_write_validated492;
- REVOKE ALL ON FUNCTION public.trusted_delivery_runtime_write_validated492(text,jsonb)
- FROM PUBLIC, dataops_app_runtime;
- CREATE OR REPLACE FUNCTION public.trusted_delivery_runtime_write(
- p_operation text,p_payload jsonb
- ) RETURNS jsonb LANGUAGE plpgsql SECURITY DEFINER SET search_path=pg_catalog,public AS $outbox$
- DECLARE v_existing record;
- BEGIN
- IF NOT public.trusted_delivery_runtime_payload_is_closed(p_operation,p_payload) THEN
- RAISE EXCEPTION 'trusted-delivery runtime write is not permitted';
- END IF;
- IF p_operation='enqueue_delivery' THEN
- SELECT uid::text,grant_uid::text,request_digest,status,lease_fence,operation INTO v_existing
- FROM public.trusted_delivery_deliveries WHERE idempotency_key=p_payload->>'idempotency_key' FOR UPDATE;
- IF FOUND THEN
- IF v_existing.request_digest<>p_payload->>'request_digest' THEN
- RAISE EXCEPTION 'trusted delivery idempotency conflict';
- END IF;
- RETURN jsonb_build_object('uid',v_existing.uid,'status',v_existing.status,'lease_fence',v_existing.lease_fence);
- END IF;
- IF p_payload->>'operation'='provision' AND EXISTS(
- SELECT 1 FROM public.trusted_delivery_deliveries
- WHERE grant_uid=(p_payload->>'grant_uid')::uuid AND operation='provision'
- ) THEN RAISE EXCEPTION 'trusted delivery provision already exists for grant'; END IF;
- END IF;
- RETURN public.trusted_delivery_runtime_write_validated492(p_operation,p_payload);
- END $outbox$;
- REVOKE ALL ON FUNCTION public.trusted_delivery_runtime_write(text,jsonb) FROM PUBLIC;
- GRANT EXECUTE ON FUNCTION public.trusted_delivery_runtime_write(text,jsonb) TO dataops_app_runtime;
- ALTER FUNCTION public.trusted_delivery_runtime_write(text,jsonb) OWNER TO dataops_trusted_delivery_writer;
- """)
- def downgrade() -> None:
- op.execute("""
- REVOKE EXECUTE ON FUNCTION public.trusted_delivery_runtime_write(text,jsonb) FROM dataops_app_runtime;
- DROP FUNCTION public.trusted_delivery_runtime_write(text,jsonb);
- ALTER FUNCTION public.trusted_delivery_runtime_write_validated492(text,jsonb)
- RENAME TO trusted_delivery_runtime_write;
- GRANT EXECUTE ON FUNCTION public.trusted_delivery_runtime_write(text,jsonb) TO dataops_app_runtime;
- DROP INDEX IF EXISTS public.uq_trusted_delivery_one_provision_per_grant;
- """)
|