Skip to content

Commit 0ee5cd4

Browse files
authored
ENG-642 Minor adjustments to database files (#305)
* The new supabase version changes the types.gen file. * correct sqruff configuration file so the faulty rule is ignored. Apply sqruff cosmetic fixes to schema, and use upper case consistently.
1 parent 5ed7c03 commit 0ee5cd4

6 files changed

Lines changed: 94 additions & 71 deletions

File tree

packages/database/.sqruff

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[sqruff]
22
dialect = postgres
3-
exclude_rules = CP05,LT05
3+
# Exclude LT01 until https://github.com/quarylabs/sqruff/issues/1786 is solved.
4+
exclude_rules = CP05,LT05,LT01
45

56
[sqruff:indentation]
67
indent_unit = space

packages/database/supabase/schemas/access_token.sql

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,41 @@
1-
create table "access_token" (
2-
request_id varchar primary key,
1+
CREATE TABLE "access_token" (
2+
request_id varchar PRIMARY KEY,
33
-- TODO encrypt this (look into supabase vault)
4-
access_token varchar not null,
4+
access_token varchar NOT NULL,
55
code varchar,
66
platform_account_id bigint,
7-
created_date timestamp with time zone default timezone('utc'::text, now()) not null,
8-
constraint access_token_code_check check (
9-
code is not null
7+
created_date timestamp with time zone DEFAULT timezone(
8+
'utc'::text, now()
9+
) NOT NULL,
10+
CONSTRAINT access_token_code_check CHECK (
11+
code IS NOT null
1012
),
11-
constraint access_token_platform_account_id_fkey foreign key (platform_account_id)
12-
references public."PlatformAccount" (id) on update cascade on delete set null
13+
CONSTRAINT access_token_platform_account_id_fkey FOREIGN KEY (
14+
platform_account_id
15+
)
16+
REFERENCES public."PlatformAccount" (
17+
id
18+
) ON UPDATE CASCADE ON DELETE SET NULL
1319
);
1420

15-
create unique index access_token_access_token_idx on "access_token" ("access_token");
16-
create index access_token_code_idx on "access_token" (code);
17-
create index access_token_platform_account_id_idx on "access_token" (platform_account_id);
21+
CREATE UNIQUE INDEX access_token_access_token_idx ON "access_token" (
22+
"access_token"
23+
);
24+
CREATE INDEX access_token_code_idx ON "access_token" (code);
25+
CREATE INDEX access_token_platform_account_id_idx ON "access_token" (
26+
platform_account_id
27+
);
1828

1929
-- Revoke dangerous permissions from anon role
20-
revoke delete on table "public"."access_token" from "anon";
21-
revoke truncate on table "public"."access_token" from "anon";
22-
revoke update on table "public"."access_token" from "anon";
23-
revoke references on table "public"."access_token" from "anon";
24-
revoke trigger on table "public"."access_token" from "anon";
30+
REVOKE DELETE ON TABLE "public"."access_token" FROM "anon";
31+
REVOKE TRUNCATE ON TABLE "public"."access_token" FROM "anon";
32+
REVOKE UPDATE ON TABLE "public"."access_token" FROM "anon";
33+
REVOKE REFERENCES ON TABLE "public"."access_token" FROM "anon";
34+
REVOKE TRIGGER ON TABLE "public"."access_token" FROM "anon";
2535

2636
-- Ensure only necessary permissions remain for anon role
27-
grant select on table "public"."access_token" to "anon";
28-
grant insert on table "public"."access_token" to "anon";
37+
GRANT SELECT ON TABLE "public"."access_token" TO "anon";
38+
GRANT INSERT ON TABLE "public"."access_token" TO "anon";
2939

3040
ALTER TABLE public.access_token ENABLE ROW LEVEL SECURITY ;
3141

packages/database/supabase/schemas/account.sql

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ COMMENT ON FUNCTION public.unowned_account_in_shared_space IS 'security utility:
186186
ALTER TABLE public."Space" ENABLE ROW LEVEL SECURITY ;
187187

188188
DROP POLICY IF EXISTS space_policy ON public."Space" ;
189-
CREATE POLICY space_policy ON public."Space" FOR ALL USING (public.in_space (id)) ;
189+
CREATE POLICY space_policy ON public."Space" FOR ALL USING (public.in_space(id)) ;
190190

191191
DROP POLICY IF EXISTS space_insert_policy ON public."Space" ;
192192
CREATE POLICY space_insert_policy ON public."Space" FOR INSERT WITH CHECK (true) ;
@@ -198,10 +198,10 @@ CREATE POLICY space_insert_policy ON public."Space" FOR INSERT WITH CHECK (true)
198198
ALTER TABLE public."PlatformAccount" ENABLE ROW LEVEL SECURITY ;
199199

200200
DROP POLICY IF EXISTS platform_account_policy ON public."PlatformAccount" ;
201-
CREATE POLICY platform_account_policy ON public."PlatformAccount" FOR ALL USING (dg_account = (select auth.uid ()) OR (dg_account IS NULL AND public.unowned_account_in_shared_space (id))) ;
201+
CREATE POLICY platform_account_policy ON public."PlatformAccount" FOR ALL USING (dg_account = (SELECT auth.uid()) OR (dg_account IS null AND public.unowned_account_in_shared_space(id))) ;
202202

203203
DROP POLICY IF EXISTS platform_account_select_policy ON public."PlatformAccount" ;
204-
CREATE POLICY platform_account_select_policy ON public."PlatformAccount" FOR SELECT USING (dg_account = (select auth.uid ()) OR public.account_in_shared_space (id)) ;
204+
CREATE POLICY platform_account_select_policy ON public."PlatformAccount" FOR SELECT USING (dg_account = (SELECT auth.uid()) OR public.account_in_shared_space(id)) ;
205205

206206
-- SpaceAccess: Created through the create_account_in_space and the Space create route, both of which bypass RLS.
207207
-- Can be updated by a space peer for now, unless claimed by a user.
@@ -213,15 +213,15 @@ DROP POLICY IF EXISTS space_access_policy ON public."SpaceAccess" ;
213213
CREATE POLICY space_access_policy ON public."SpaceAccess" FOR ALL USING (public.unowned_account_in_shared_space(account_id)) ;
214214

215215
DROP POLICY IF EXISTS space_access_select_policy ON public."SpaceAccess" ;
216-
CREATE POLICY space_access_select_policy ON public."SpaceAccess" FOR ALL USING (public.in_space (space_id)) ;
216+
CREATE POLICY space_access_select_policy ON public."SpaceAccess" FOR ALL USING (public.in_space(space_id)) ;
217217

218218
-- AgentIdentifier: Allow space members to do anything, to allow editing authors.
219219
-- Eventually: Once the account is claimed by a user, only allow this user to modify it.
220220

221221
ALTER TABLE public."AgentIdentifier" ENABLE ROW LEVEL SECURITY ;
222222

223223
DROP POLICY IF EXISTS agent_identifier_policy ON public."AgentIdentifier" ;
224-
CREATE POLICY agent_identifier_policy ON public."AgentIdentifier" FOR ALL USING (public.unowned_account_in_shared_space (account_id)) ;
224+
CREATE POLICY agent_identifier_policy ON public."AgentIdentifier" FOR ALL USING (public.unowned_account_in_shared_space(account_id)) ;
225225

226226
DROP POLICY IF EXISTS agent_identifier_select_policy ON public."AgentIdentifier" ;
227-
CREATE POLICY agent_identifier_select_policy ON public."AgentIdentifier" FOR SELECT USING (public.account_in_shared_space (account_id)) ;
227+
CREATE POLICY agent_identifier_select_policy ON public."AgentIdentifier" FOR SELECT USING (public.account_in_shared_space(account_id)) ;

packages/database/supabase/schemas/embedding.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,4 @@ ALTER TABLE public."ContentEmbedding_openai_text_embedding_3_small_1536" ENABLE
106106

107107
DROP POLICY IF EXISTS embedding_openai_te3s_1536_policy ON public."ContentEmbedding_openai_text_embedding_3_small_1536" ;
108108
CREATE POLICY embedding_openai_te3s_1536_policy ON public."ContentEmbedding_openai_text_embedding_3_small_1536"
109-
FOR ALL USING (public.content_in_space (target_id)) ;
109+
FOR ALL USING (public.content_in_space (target_id)) ;

packages/database/supabase/schemas/sync.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,6 @@ ALTER TABLE public.sync_info ENABLE ROW LEVEL SECURITY ;
285285
-- Assuming the sync target is a always a space for now
286286

287287
DROP POLICY IF EXISTS sync_info_policy ON public.sync_info ;
288-
CREATE POLICY sync_info_policy ON public.sync_info FOR ALL USING (public.generic_entity_access (sync_target, target_type)) ;
288+
CREATE POLICY sync_info_policy ON public.sync_info FOR ALL USING (public.generic_entity_access(sync_target, target_type)) ;
289289

290290
RESET ALL;

packages/database/types.gen.ts

Lines changed: 56 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,7 @@ export type Database = {
574574
Returns: boolean
575575
}
576576
alpha_delete_by_source_local_ids: {
577-
Args: { p_source_local_ids: string[]; p_space_name: string }
577+
Args: { p_space_name: string; p_source_local_ids: string[] }
578578
Returns: string
579579
}
580580
alpha_get_last_update_time: {
@@ -586,14 +586,14 @@ export type Database = {
586586
alpha_upsert_discourse_nodes: {
587587
Args: {
588588
p_user_name: string
589+
p_user_email: string
589590
p_nodes: Json
590591
p_space_name: string
591-
p_user_email: string
592592
}
593593
Returns: string
594594
}
595595
compute_arity_local: {
596-
Args: { lit_content: Json; schema_id: number }
596+
Args: { schema_id: number; lit_content: Json }
597597
Returns: number
598598
}
599599
concept_in_space: {
@@ -621,9 +621,9 @@ export type Database = {
621621
}
622622
end_sync_task: {
623623
Args: {
624+
s_function: string
624625
s_worker: string
625626
s_status: Database["public"]["Enums"]["task_status"]
626-
s_function: string
627627
s_target: number
628628
}
629629
Returns: undefined
@@ -634,8 +634,8 @@ export type Database = {
634634
}
635635
generic_entity_access: {
636636
Args: {
637-
target_type: Database["public"]["Enums"]["EntityType"]
638637
target_id: number
638+
target_type: Database["public"]["Enums"]["EntityType"]
639639
}
640640
Returns: boolean
641641
}
@@ -647,8 +647,8 @@ export type Database = {
647647
}
648648
get_space_anonymous_email: {
649649
Args: {
650-
platform: Database["public"]["Enums"]["Platform"]
651650
space_id: number
651+
platform: Database["public"]["Enums"]["Platform"]
652652
}
653653
Returns: string
654654
}
@@ -658,20 +658,20 @@ export type Database = {
658658
}
659659
match_content_embeddings: {
660660
Args: {
661+
query_embedding: string
661662
current_document_id?: number
662663
match_count: number
663664
match_threshold: number
664-
query_embedding: string
665665
}
666666
Returns: {
667-
text_content: string
668667
similarity: number
668+
text_content: string
669669
roam_uid: string
670670
content_id: number
671671
}[]
672672
}
673673
match_embeddings_for_subset_nodes: {
674-
Args: { p_subset_roam_uids: string[]; p_query_embedding: string }
674+
Args: { p_query_embedding: string; p_subset_roam_uids: string[] }
675675
Returns: {
676676
similarity: number
677677
text_content: string
@@ -685,10 +685,10 @@ export type Database = {
685685
}
686686
propose_sync_task: {
687687
Args: {
688+
timeout: unknown
688689
s_function: string
689690
s_target: number
690691
task_interval: unknown
691-
timeout: unknown
692692
s_worker: string
693693
}
694694
Returns: string
@@ -703,19 +703,20 @@ export type Database = {
703703
}
704704
upsert_content: {
705705
Args: {
706-
v_space_id: number
707-
v_creator_id: number
708706
content_as_document?: boolean
709707
data: Json
708+
v_space_id: number
709+
v_creator_id: number
710710
}
711711
Returns: number[]
712712
}
713713
upsert_content_embedding: {
714-
Args: { content_id: number; embedding_array: number[]; model: string }
714+
Args: { embedding_array: number[]; model: string; content_id: number }
715715
Returns: undefined
716716
}
717717
upsert_discourse_nodes: {
718718
Args: {
719+
p_content_scale?: string
719720
p_space_name: string
720721
p_user_email: string
721722
p_user_name: string
@@ -724,18 +725,17 @@ export type Database = {
724725
p_platform_url?: string
725726
p_space_url?: string
726727
p_agent_type?: string
727-
p_content_scale?: string
728728
p_embedding_model?: string
729729
p_document_source_id?: string
730730
}
731731
Returns: {
732-
action: string
733732
content_id: number
734733
embedding_created: boolean
734+
action: string
735735
}[]
736736
}
737737
upsert_documents: {
738-
Args: { v_space_id: number; data: Json }
738+
Args: { data: Json; v_space_id: number }
739739
Returns: number[]
740740
}
741741
}
@@ -863,21 +863,25 @@ export type Database = {
863863
}
864864
}
865865

866-
type DefaultSchema = Database[Extract<keyof Database, "public">]
866+
type DatabaseWithoutInternals = Omit<Database, "__InternalSupabase">
867+
868+
type DefaultSchema = DatabaseWithoutInternals[Extract<keyof Database, "public">]
867869

868870
export type Tables<
869871
DefaultSchemaTableNameOrOptions extends
870872
| keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
871-
| { schema: keyof Database },
873+
| { schema: keyof DatabaseWithoutInternals },
872874
TableName extends DefaultSchemaTableNameOrOptions extends {
873-
schema: keyof Database
875+
schema: keyof DatabaseWithoutInternals
874876
}
875-
? keyof (Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
876-
Database[DefaultSchemaTableNameOrOptions["schema"]]["Views"])
877+
? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
878+
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])
877879
: never = never,
878-
> = DefaultSchemaTableNameOrOptions extends { schema: keyof Database }
879-
? (Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
880-
Database[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
880+
> = DefaultSchemaTableNameOrOptions extends {
881+
schema: keyof DatabaseWithoutInternals
882+
}
883+
? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
884+
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
881885
Row: infer R
882886
}
883887
? R
@@ -895,14 +899,16 @@ export type Tables<
895899
export type TablesInsert<
896900
DefaultSchemaTableNameOrOptions extends
897901
| keyof DefaultSchema["Tables"]
898-
| { schema: keyof Database },
902+
| { schema: keyof DatabaseWithoutInternals },
899903
TableName extends DefaultSchemaTableNameOrOptions extends {
900-
schema: keyof Database
904+
schema: keyof DatabaseWithoutInternals
901905
}
902-
? keyof Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
906+
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
903907
: never = never,
904-
> = DefaultSchemaTableNameOrOptions extends { schema: keyof Database }
905-
? Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
908+
> = DefaultSchemaTableNameOrOptions extends {
909+
schema: keyof DatabaseWithoutInternals
910+
}
911+
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
906912
Insert: infer I
907913
}
908914
? I
@@ -918,14 +924,16 @@ export type TablesInsert<
918924
export type TablesUpdate<
919925
DefaultSchemaTableNameOrOptions extends
920926
| keyof DefaultSchema["Tables"]
921-
| { schema: keyof Database },
927+
| { schema: keyof DatabaseWithoutInternals },
922928
TableName extends DefaultSchemaTableNameOrOptions extends {
923-
schema: keyof Database
929+
schema: keyof DatabaseWithoutInternals
924930
}
925-
? keyof Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
931+
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
926932
: never = never,
927-
> = DefaultSchemaTableNameOrOptions extends { schema: keyof Database }
928-
? Database[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
933+
> = DefaultSchemaTableNameOrOptions extends {
934+
schema: keyof DatabaseWithoutInternals
935+
}
936+
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
929937
Update: infer U
930938
}
931939
? U
@@ -941,29 +949,33 @@ export type TablesUpdate<
941949
export type Enums<
942950
DefaultSchemaEnumNameOrOptions extends
943951
| keyof DefaultSchema["Enums"]
944-
| { schema: keyof Database },
952+
| { schema: keyof DatabaseWithoutInternals },
945953
EnumName extends DefaultSchemaEnumNameOrOptions extends {
946-
schema: keyof Database
954+
schema: keyof DatabaseWithoutInternals
947955
}
948-
? keyof Database[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
956+
? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
949957
: never = never,
950-
> = DefaultSchemaEnumNameOrOptions extends { schema: keyof Database }
951-
? Database[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
958+
> = DefaultSchemaEnumNameOrOptions extends {
959+
schema: keyof DatabaseWithoutInternals
960+
}
961+
? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
952962
: DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
953963
? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
954964
: never
955965

956966
export type CompositeTypes<
957967
PublicCompositeTypeNameOrOptions extends
958968
| keyof DefaultSchema["CompositeTypes"]
959-
| { schema: keyof Database },
969+
| { schema: keyof DatabaseWithoutInternals },
960970
CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
961-
schema: keyof Database
971+
schema: keyof DatabaseWithoutInternals
962972
}
963-
? keyof Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
973+
? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
964974
: never = never,
965-
> = PublicCompositeTypeNameOrOptions extends { schema: keyof Database }
966-
? Database[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
975+
> = PublicCompositeTypeNameOrOptions extends {
976+
schema: keyof DatabaseWithoutInternals
977+
}
978+
? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
967979
: PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"]
968980
? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
969981
: never

0 commit comments

Comments
 (0)