Skip to content

Commit f78b26b

Browse files
committed
attempt fix at sdk vault insert in generate_organization_api_key fn
1 parent 5f272e5 commit f78b26b

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
-- create function to generate api key for new organizations
2+
create or replace function generate_organization_api_key()
3+
returns trigger
4+
language plpgsql
5+
security definer
6+
set search_path = ''
7+
as $$
8+
declare
9+
var_new_vault_secret_id uuid;
10+
var_api_key text;
11+
var_api_key_hash text;
12+
begin
13+
-- generate a random api key with prefix
14+
var_api_key := 'sdk_' || public.gen_random_alphanumeric(32);
15+
16+
-- hash the api key
17+
var_api_key_hash := encode(extensions.digest(var_api_key, 'sha256'), 'hex');
18+
19+
-- create the vault entry
20+
select vault.create_secret(
21+
var_api_key,
22+
'SDK_API_KEY__org__' || new.uuid,
23+
'SDK API Key for organization ' || new.uuid
24+
) into var_new_vault_secret_id;
25+
26+
27+
-- create the organization_key entry
28+
insert into public.organization_keys (organization_id, key, vault_secret_id, key_hash)
29+
values (new.id, 'SDK_API_KEY', var_new_vault_secret_id, var_api_key_hash);
30+
31+
return new;
32+
end;
33+
$$;

0 commit comments

Comments
 (0)