20260811_493_trusted_delivery_provision_outbox.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. """Make provision intent durable and singular before provider I/O."""
  2. from alembic import op
  3. revision = "20260811_493"
  4. down_revision = "20260811_492"
  5. branch_labels = None
  6. depends_on = None
  7. def upgrade() -> None:
  8. op.execute(r"""
  9. /* One grant represents one target-provider entitlement. A new HTTP key
  10. therefore cannot manufacture a second adapter side effect. */
  11. CREATE UNIQUE INDEX IF NOT EXISTS uq_trusted_delivery_one_provision_per_grant
  12. ON public.trusted_delivery_deliveries(grant_uid) WHERE operation='provision';
  13. ALTER FUNCTION public.trusted_delivery_runtime_write(text,jsonb)
  14. RENAME TO trusted_delivery_runtime_write_validated492;
  15. REVOKE ALL ON FUNCTION public.trusted_delivery_runtime_write_validated492(text,jsonb)
  16. FROM PUBLIC, dataops_app_runtime;
  17. CREATE OR REPLACE FUNCTION public.trusted_delivery_runtime_write(
  18. p_operation text,p_payload jsonb
  19. ) RETURNS jsonb LANGUAGE plpgsql SECURITY DEFINER SET search_path=pg_catalog,public AS $outbox$
  20. DECLARE v_existing record;
  21. BEGIN
  22. IF NOT public.trusted_delivery_runtime_payload_is_closed(p_operation,p_payload) THEN
  23. RAISE EXCEPTION 'trusted-delivery runtime write is not permitted';
  24. END IF;
  25. IF p_operation='enqueue_delivery' THEN
  26. SELECT uid::text,grant_uid::text,request_digest,status,lease_fence,operation INTO v_existing
  27. FROM public.trusted_delivery_deliveries WHERE idempotency_key=p_payload->>'idempotency_key' FOR UPDATE;
  28. IF FOUND THEN
  29. IF v_existing.request_digest<>p_payload->>'request_digest' THEN
  30. RAISE EXCEPTION 'trusted delivery idempotency conflict';
  31. END IF;
  32. RETURN jsonb_build_object('uid',v_existing.uid,'status',v_existing.status,'lease_fence',v_existing.lease_fence);
  33. END IF;
  34. IF p_payload->>'operation'='provision' AND EXISTS(
  35. SELECT 1 FROM public.trusted_delivery_deliveries
  36. WHERE grant_uid=(p_payload->>'grant_uid')::uuid AND operation='provision'
  37. ) THEN RAISE EXCEPTION 'trusted delivery provision already exists for grant'; END IF;
  38. END IF;
  39. RETURN public.trusted_delivery_runtime_write_validated492(p_operation,p_payload);
  40. END $outbox$;
  41. REVOKE ALL ON FUNCTION public.trusted_delivery_runtime_write(text,jsonb) FROM PUBLIC;
  42. GRANT EXECUTE ON FUNCTION public.trusted_delivery_runtime_write(text,jsonb) TO dataops_app_runtime;
  43. ALTER FUNCTION public.trusted_delivery_runtime_write(text,jsonb) OWNER TO dataops_trusted_delivery_writer;
  44. """)
  45. def downgrade() -> None:
  46. op.execute("""
  47. REVOKE EXECUTE ON FUNCTION public.trusted_delivery_runtime_write(text,jsonb) FROM dataops_app_runtime;
  48. DROP FUNCTION public.trusted_delivery_runtime_write(text,jsonb);
  49. ALTER FUNCTION public.trusted_delivery_runtime_write_validated492(text,jsonb)
  50. RENAME TO trusted_delivery_runtime_write;
  51. GRANT EXECUTE ON FUNCTION public.trusted_delivery_runtime_write(text,jsonb) TO dataops_app_runtime;
  52. DROP INDEX IF EXISTS public.uq_trusted_delivery_one_provision_per_grant;
  53. """)