Mirror of https://github.com/roostorg/coop
github.com/roostorg/coop
1-- Generic integration configs table: one row per (org_id, integration_id).
2-- Config is stored as JSONB so each integration can define its own credential/config
3-- shape without new tables or migrations. The app serializes/deserializes using
4-- the integration's manifest (e.g. credentialFields).
5
6CREATE TABLE signal_auth_service.integration_configs (
7 org_id character varying(255) NOT NULL,
8 integration_id character varying(255) NOT NULL,
9 config JSONB NOT NULL DEFAULT '{}',
10 created_at timestamp with time zone DEFAULT now() NOT NULL,
11 updated_at timestamp with time zone DEFAULT now() NOT NULL
12);
13
14ALTER TABLE signal_auth_service.integration_configs OWNER TO CURRENT_USER;
15
16ALTER TABLE ONLY signal_auth_service.integration_configs
17 ADD CONSTRAINT integration_configs_pkey PRIMARY KEY (org_id, integration_id);
18
19ALTER TABLE ONLY signal_auth_service.integration_configs
20 ADD CONSTRAINT integration_configs_org_id_fkey FOREIGN KEY (org_id) REFERENCES public.orgs(id) ON DELETE CASCADE;
21
22COMMENT ON TABLE signal_auth_service.integration_configs IS 'Extensible per-org integration credentials/config. config is JSON; shape is defined by each integration (e.g. via CoopIntegrationPlugin manifest.credentialFields).';