Skip to main content

Source: ocean/docs/adr/0021-deprecate-legacy-provisioning-endpoint.md | ✏️ Edit on GitHub

ADR-0021: Deprecate Legacy Provisioning Endpoint (provision-user-resources)

Date: 2025-08-13

Status: Accepted

Context

The repository contained a legacy Edge Function supabase/functions/provision-user-resources that performed user/org provisioning. We now serve provisioning via GraphQL v2 (provisionUserResources mutation) with unified permissions, observability, caching, and plan enforcement.

Decision

  • Remove the legacy function supabase/functions/provision-user-resources/index.ts to prevent duplicate or drifted flows.
  • Consolidate all provisioning through supabase/functions/graphql-v2 resolvers.

Consequences

  • Single source of truth for provisioning logic, easier maintenance and auditing.
  • Any integrations pointing to the legacy HTTP endpoint must call the GraphQL mutation instead.

Migration Notes

  • Database triggers or external callers should switch to calling GraphQL v2 endpoint /graphql-v2 mutation provisionUserResources(email, metadata).
  • CORS is controlled by ALLOWED_ORIGINS in GraphQL v2.