chatdesk-ui/storage_v1.19.1/migrations/multitenant/0008-tenants-s3-credentials...

47 lines
1.4 KiB
PL/PgSQL

CREATE TABLE IF NOT EXISTS tenants_s3_credentials (
id UUID PRIMARY KEY default gen_random_uuid(),
description text NOT NULL,
tenant_id text REFERENCES tenants(id) ON DELETE CASCADE,
access_key text NOT NULL,
secret_key text NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS tenants_s3_credentials_tenant_id_idx ON tenants_s3_credentials(tenant_id);
CREATE UNIQUE INDEX IF NOT EXISTS tenants_s3_credentials_access_key_idx ON tenants_s3_credentials(tenant_id, access_key);
CREATE OR REPLACE FUNCTION tenants_s3_credentials_update_notify_trigger ()
RETURNS TRIGGER
AS $$
BEGIN
PERFORM
pg_notify('tenants_s3_credentials_update', '"' || NEW.id || ':' || NEW.access_key || '"');
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION tenants_s3_credentials_delete_notify_trigger ()
RETURNS TRIGGER
AS $$
BEGIN
PERFORM
pg_notify('tenants_s3_credentials_update', '"' || OLD.id || ':' || OLD.access_key || '"');
RETURN NULL;
END;
$$
LANGUAGE plpgsql;
CREATE TRIGGER tenants_s3_credentials_update_notify_trigger
AFTER UPDATE ON tenants_s3_credentials
FOR EACH ROW
EXECUTE PROCEDURE tenants_s3_credentials_update_notify_trigger ();
CREATE TRIGGER tenants_s3_credentials_delete_notify_trigger
AFTER DELETE ON tenants_s3_credentials
FOR EACH ROW
EXECUTE PROCEDURE tenants_s3_credentials_delete_notify_trigger ();