Skip to content

Commit cd6234a

Browse files
committed
ore: update schemas
1 parent a61c1b1 commit cd6234a

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

migrations/schema-15.sql

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -574,6 +574,28 @@ END
574574
$$;
575575

576576

577+
--
578+
-- Name: secrets_encrypt_secret_secret(); Type: FUNCTION; Schema: vault; Owner: -
579+
--
580+
581+
CREATE FUNCTION vault.secrets_encrypt_secret_secret() RETURNS trigger
582+
LANGUAGE plpgsql
583+
AS $$
584+
BEGIN
585+
new.secret = CASE WHEN new.secret IS NULL THEN NULL ELSE
586+
CASE WHEN new.key_id IS NULL THEN NULL ELSE pg_catalog.encode(
587+
pgsodium.crypto_aead_det_encrypt(
588+
pg_catalog.convert_to(new.secret, 'utf8'),
589+
pg_catalog.convert_to((new.id::text || new.description::text || new.created_at::text || new.updated_at::text)::text, 'utf8'),
590+
new.key_id::uuid,
591+
new.nonce
592+
),
593+
'base64') END END;
594+
RETURN new;
595+
END;
596+
$$;
597+
598+
577599
SET default_tablespace = '';
578600

579601
SET default_table_access_method = heap;
@@ -760,6 +782,30 @@ CREATE TABLE storage.objects (
760782
);
761783

762784

785+
--
786+
-- Name: decrypted_secrets; Type: VIEW; Schema: vault; Owner: -
787+
--
788+
789+
CREATE VIEW vault.decrypted_secrets AS
790+
SELECT secrets.id,
791+
secrets.name,
792+
secrets.description,
793+
secrets.secret,
794+
CASE
795+
WHEN (secrets.secret IS NULL) THEN NULL::text
796+
ELSE
797+
CASE
798+
WHEN (secrets.key_id IS NULL) THEN NULL::text
799+
ELSE convert_from(pgsodium.crypto_aead_det_decrypt(decode(secrets.secret, 'base64'::text), convert_to(((((secrets.id)::text || secrets.description) || (secrets.created_at)::text) || (secrets.updated_at)::text), 'utf8'::name), secrets.key_id, secrets.nonce), 'utf8'::name)
800+
END
801+
END AS decrypted_secret,
802+
secrets.key_id,
803+
secrets.nonce,
804+
secrets.created_at,
805+
secrets.updated_at
806+
FROM vault.secrets;
807+
808+
763809
--
764810
-- Name: refresh_tokens id; Type: DEFAULT; Schema: auth; Owner: -
765811
--

migrations/schema-orioledb-17.sql

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,28 @@ END
589589
$$;
590590

591591

592+
--
593+
-- Name: secrets_encrypt_secret_secret(); Type: FUNCTION; Schema: vault; Owner: -
594+
--
595+
596+
CREATE FUNCTION vault.secrets_encrypt_secret_secret() RETURNS trigger
597+
LANGUAGE plpgsql
598+
AS $$
599+
BEGIN
600+
new.secret = CASE WHEN new.secret IS NULL THEN NULL ELSE
601+
CASE WHEN new.key_id IS NULL THEN NULL ELSE pg_catalog.encode(
602+
pgsodium.crypto_aead_det_encrypt(
603+
pg_catalog.convert_to(new.secret, 'utf8'),
604+
pg_catalog.convert_to((new.id::text || new.description::text || new.created_at::text || new.updated_at::text)::text, 'utf8'),
605+
new.key_id::uuid,
606+
new.nonce
607+
),
608+
'base64') END END;
609+
RETURN new;
610+
END;
611+
$$;
612+
613+
592614
SET default_tablespace = '';
593615

594616
SET default_table_access_method = orioledb;
@@ -775,6 +797,30 @@ CREATE TABLE storage.objects (
775797
);
776798

777799

800+
--
801+
-- Name: decrypted_secrets; Type: VIEW; Schema: vault; Owner: -
802+
--
803+
804+
CREATE VIEW vault.decrypted_secrets AS
805+
SELECT id,
806+
name,
807+
description,
808+
secret,
809+
CASE
810+
WHEN (secret IS NULL) THEN NULL::text
811+
ELSE
812+
CASE
813+
WHEN (key_id IS NULL) THEN NULL::text
814+
ELSE convert_from(pgsodium.crypto_aead_det_decrypt(decode(secret, 'base64'::text), convert_to(((((id)::text || description) || (created_at)::text) || (updated_at)::text), 'utf8'::name), key_id, nonce), 'utf8'::name)
815+
END
816+
END AS decrypted_secret,
817+
key_id,
818+
nonce,
819+
created_at,
820+
updated_at
821+
FROM vault.secrets;
822+
823+
778824
--
779825
-- Name: refresh_tokens id; Type: DEFAULT; Schema: auth; Owner: -
780826
--

0 commit comments

Comments
 (0)