From 00d8154fb69d8950d73236dbd831b332b74bb8b6 Mon Sep 17 00:00:00 2001 From: Jared Pereira Date: Tue, 6 Jan 2026 14:02:59 -0500 Subject: [PATCH] add a default for creating home_pages for identities --- ...631_add_homepage_default_to_identities.sql | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 supabase/migrations/20260106183631_add_homepage_default_to_identities.sql diff --git a/supabase/migrations/20260106183631_add_homepage_default_to_identities.sql b/supabase/migrations/20260106183631_add_homepage_default_to_identities.sql new file mode 100644 index 00000000..e685ac4c --- /dev/null +++ b/supabase/migrations/20260106183631_add_homepage_default_to_identities.sql @@ -0,0 +1,34 @@ +-- Function to create homepage infrastructure for new identities +-- Replicates the logic from createIdentity TypeScript function +-- Returns the permission token ID to be used as home_page +CREATE OR REPLACE FUNCTION create_identity_homepage() +RETURNS uuid AS $$ +DECLARE + new_entity_set_id uuid; + new_entity_id uuid; + new_permission_token_id uuid; +BEGIN + -- Create a new entity set + INSERT INTO entity_sets DEFAULT VALUES + RETURNING id INTO new_entity_set_id; + + -- Create a root entity and add it to that entity set + new_entity_id := gen_random_uuid(); + INSERT INTO entities (id, set) + VALUES (new_entity_id, new_entity_set_id); + + -- Create a new permission token + INSERT INTO permission_tokens (root_entity) + VALUES (new_entity_id) + RETURNING id INTO new_permission_token_id; + + -- Give the token full permissions on that entity set + INSERT INTO permission_token_rights (token, entity_set, read, write, create_token, change_entity_set) + VALUES (new_permission_token_id, new_entity_set_id, true, true, true, true); + + RETURN new_permission_token_id; +END; +$$ LANGUAGE plpgsql; + +-- Set the function as the default value for home_page column +ALTER TABLE identities ALTER COLUMN home_page SET DEFAULT create_identity_homepage(); -- 2.51.2