Skip to content

public.partnership_grants

Synced from docs/generated/erd/ — do not hand-edit.
Regenerate with bun run docs:erd (needs staging reader), then this script runs automatically.
Labels: docs/db/erd-table-labels.yml · Runbook: docs/runbooks/erd-schema-docs.md

One direction’s scope of an org_partnerships row (channels, object types, caps) — asymmetric, at most one row per (partnership, granting org) — Not: org_partnerships itself; a grant never implies the reverse direction is also scoped

Name Type Default Nullable Children Parents Comment
audience_rights jsonb ‘{}’::jsonb false
channels text[] ‘{}’::text[] false
created_at timestamp with time zone now() false
created_by_user_id uuid false
frequency_cap_count integer true
frequency_cap_period text true
granting_org_id text false organizations
id uuid gen_random_uuid() false
may_request_send boolean false false
object_types text[] ‘{}’::text[] false
partnership_id uuid false public.org_partnerships
receiving_org_id text false organizations
requires_approval boolean true false
updated_at timestamp with time zone now() false
updated_by_user_id uuid true
Name Definition
Website, Funnels & Public Surface Website builder config/pages, funnels, blog, public lead capture, member
benefits (hot_deals, job_postings), exchange visibility layer. Catalog §3.5–3.7, §5.1.
Name Type Definition
partnership_grants_cap_count_check CHECK CHECK (((frequency_cap_count IS NULL) OR (frequency_cap_count > 0)))
partnership_grants_cap_pair_check CHECK CHECK (((frequency_cap_count IS NULL) = (frequency_cap_period IS NULL)))
partnership_grants_cap_period_check CHECK CHECK (((frequency_cap_period IS NULL) OR (frequency_cap_period = ANY (ARRAY[‘day’::text, ‘week’::text, ‘month’::text]))))
partnership_grants_created_by_user_id_fkey FOREIGN KEY FOREIGN KEY (created_by_user_id) REFERENCES auth.users(id)
partnership_grants_direction_key UNIQUE UNIQUE (partnership_id, granting_org_id)
partnership_grants_distinct_orgs_check CHECK CHECK ((granting_org_id <> receiving_org_id))
partnership_grants_granting_org_id_fkey FOREIGN KEY FOREIGN KEY (granting_org_id) REFERENCES organizations(id)
partnership_grants_object_types_check CHECK CHECK ((object_types <@ ARRAY[‘event’::text, ‘offer’::text, ‘opportunity’::text, ‘program’::text, ‘resource’::text, ‘community’::text]))
partnership_grants_partnership_id_fkey FOREIGN KEY FOREIGN KEY (partnership_id) REFERENCES org_partnerships(id) ON DELETE CASCADE
partnership_grants_pkey PRIMARY KEY PRIMARY KEY (id)
partnership_grants_receiving_org_id_fkey FOREIGN KEY FOREIGN KEY (receiving_org_id) REFERENCES organizations(id)
partnership_grants_updated_by_user_id_fkey FOREIGN KEY FOREIGN KEY (updated_by_user_id) REFERENCES auth.users(id)
Name Definition
idx_partnership_grants_granting CREATE INDEX idx_partnership_grants_granting ON public.partnership_grants USING btree (granting_org_id)
idx_partnership_grants_partnership CREATE INDEX idx_partnership_grants_partnership ON public.partnership_grants USING btree (partnership_id)
idx_partnership_grants_receiving CREATE INDEX idx_partnership_grants_receiving ON public.partnership_grants USING btree (receiving_org_id)
partnership_grants_direction_key CREATE UNIQUE INDEX partnership_grants_direction_key ON public.partnership_grants USING btree (partnership_id, granting_org_id)
partnership_grants_pkey CREATE UNIQUE INDEX partnership_grants_pkey ON public.partnership_grants USING btree (id)
Name Definition
trg_partnership_grant_parties CREATE TRIGGER trg_partnership_grant_parties BEFORE INSERT OR UPDATE ON public.partnership_grants FOR EACH ROW EXECUTE FUNCTION guard_partnership_grant_parties()
trg_partnership_grants_updated_at CREATE TRIGGER trg_partnership_grants_updated_at BEFORE UPDATE ON public.partnership_grants FOR EACH ROW EXECUTE FUNCTION update_updated_at_column()
erDiagram

"public.partnership_grants" }o--|| "public.organizations" : "FOREIGN KEY (granting_org_id) REFERENCES organizations(id)"
"public.partnership_grants" }o--|| "public.org_partnerships" : "FOREIGN KEY (partnership_id) REFERENCES org_partnerships(id) ON DELETE CASCADE"
"public.partnership_grants" }o--|| "public.organizations" : "FOREIGN KEY (receiving_org_id) REFERENCES organizations(id)"

"public.partnership_grants" {
  text granting_org_id FK ""
  uuid partnership_id FK ""
  text receiving_org_id FK ""
}
"public.organizations" {
  text association_id FK ""
  uuid default_approval_reviewer_contact_id FK "Org-level fallback reviewer for two-step send (#5698). Routing chain: the sender's own reviewer, then this, then all org admins. NULL means fall through to the admins, which is the pre-#5698 behaviour."
  text id ""
  text parent_org_id FK "#671 self-referencing hierarchy pointer. NULL = root org. Direct writes are blocked by trg_block_direct_parent_org_id_writes for every role except service_role/postgres/supabase_admin — the only write path for authenticated/interactive callers is public.reparent_organization(). Cycle-prevented by trg_prevent_org_hierarchy_cycle. #quot;Is association#quot; is derived (EXISTS a child), never stored."
}
"public.org_partnerships" {
  uuid id ""
  text initiated_by_org_id FK ""
  text org_a_id FK ""
  text org_b_id FK ""
}

Generated by tbls