diff --git a/nix/tests/expected/auth.out b/nix/tests/expected/auth.out index 22c983c00..60b32ca19 100644 --- a/nix/tests/expected/auth.out +++ b/nix/tests/expected/auth.out @@ -102,3 +102,16 @@ order by auth | uid | supabase_auth_admin (3 rows) +-- auth service schema migrations +select * from auth.schema_migrations; + version +---------------- + 20171026211738 + 20171026211808 + 20171026211834 + 20180103212743 + 20180108183307 + 20180119214651 + 20180125194653 +(7 rows) + diff --git a/nix/tests/expected/evtrigs.out b/nix/tests/expected/evtrigs.out index c3b642701..7f8025834 100644 --- a/nix/tests/expected/evtrigs.out +++ b/nix/tests/expected/evtrigs.out @@ -1,25 +1,28 @@ -SELECT +select e.evtname, - e.evtowner::regrole AS evtowner, - e.evtfoid::regproc AS evtfunction, - p.proowner::regrole AS function_owner -FROM pg_event_trigger e -JOIN pg_proc p - ON e.evtfoid = p.oid -WHERE p.prorettype = 'event_trigger'::regtype; - evtname | evtowner | evtfunction | function_owner -----------------------------------------+----------------+------------------------------------+---------------- - issue_pg_net_access | postgres | grant_pg_net_access | postgres - issue_pg_graphql_access | supabase_admin | grant_pg_graphql_access | supabase_admin - issue_graphql_placeholder | supabase_admin | set_graphql_placeholder | supabase_admin - pgrst_ddl_watch | supabase_admin | pgrst_ddl_watch | supabase_admin - pgrst_drop_watch | supabase_admin | pgrst_drop_watch | supabase_admin - graphql_watch_ddl | supabase_admin | graphql.increment_schema_version | supabase_admin - graphql_watch_drop | supabase_admin | graphql.increment_schema_version | supabase_admin - issue_pg_cron_access | supabase_admin | grant_pg_cron_access | postgres - pg_tle_event_trigger_for_drop_function | supabase_admin | pgtle.pg_tle_feature_info_sql_drop | supabase_admin - pgaudit_ddl_command_end | supabase_admin | pgaudit_ddl_command_end | supabase_admin - pgaudit_sql_drop | supabase_admin | pgaudit_sql_drop | supabase_admin - pgsodium_trg_mask_update | supabase_admin | pgsodium.trg_mask_update | supabase_admin + e.evtowner::regrole as evtowner, + n_func.nspname as evtfunction_schema, + e.evtfoid::regproc as evtfunction, + p.proowner::regrole as function_owner +from pg_event_trigger e +join pg_proc p + on e.evtfoid = p.oid +join pg_namespace n_func + on p.pronamespace = n_func.oid +where p.prorettype = 'event_trigger'::regtype; + evtname | evtowner | evtfunction_schema | evtfunction | function_owner +----------------------------------------+----------------+--------------------+------------------------------------+---------------- + issue_pg_net_access | postgres | extensions | grant_pg_net_access | postgres + issue_pg_graphql_access | supabase_admin | extensions | grant_pg_graphql_access | supabase_admin + issue_graphql_placeholder | supabase_admin | extensions | set_graphql_placeholder | supabase_admin + pgrst_ddl_watch | supabase_admin | extensions | pgrst_ddl_watch | supabase_admin + pgrst_drop_watch | supabase_admin | extensions | pgrst_drop_watch | supabase_admin + graphql_watch_ddl | supabase_admin | graphql | graphql.increment_schema_version | supabase_admin + graphql_watch_drop | supabase_admin | graphql | graphql.increment_schema_version | supabase_admin + issue_pg_cron_access | supabase_admin | extensions | grant_pg_cron_access | postgres + pg_tle_event_trigger_for_drop_function | supabase_admin | pgtle | pgtle.pg_tle_feature_info_sql_drop | supabase_admin + pgaudit_ddl_command_end | supabase_admin | public | pgaudit_ddl_command_end | supabase_admin + pgaudit_sql_drop | supabase_admin | public | pgaudit_sql_drop | supabase_admin + pgsodium_trg_mask_update | supabase_admin | pgsodium | pgsodium.trg_mask_update | supabase_admin (12 rows) diff --git a/nix/tests/expected/extensions_schema.out b/nix/tests/expected/extensions_schema.out new file mode 100644 index 000000000..7d3dffa95 --- /dev/null +++ b/nix/tests/expected/extensions_schema.out @@ -0,0 +1,22 @@ +-- all default extensions are installed in a schema "extensions" +-- we don't include the version as that will break often, we only care about +-- ensuring these extensions are present +select + e.extname as extension_name, + n.nspname as schema_name, + e.extowner::regrole as extension_owner +from + pg_extension e +join + pg_namespace n on e.extnamespace = n.oid +where + n.nspname = 'extensions' and e.extname != 'pgjwt' +order by + e.extname; + extension_name | schema_name | extension_owner +--------------------+-------------+----------------- + pg_stat_statements | extensions | supabase_admin + pgcrypto | extensions | supabase_admin + uuid-ossp | extensions | supabase_admin +(3 rows) + diff --git a/nix/tests/expected/realtime.out b/nix/tests/expected/realtime.out new file mode 100644 index 000000000..48f7c6aab --- /dev/null +++ b/nix/tests/expected/realtime.out @@ -0,0 +1,16 @@ +-- only a publication from supabase realtime is expected +SELECT + pubname AS publication_name, + pubowner::regrole AS owner, + puballtables, + pubinsert, + pubupdate, + pubdelete, + pubtruncate +FROM + pg_publication; + publication_name | owner | puballtables | pubinsert | pubupdate | pubdelete | pubtruncate +-------------------+----------+--------------+-----------+-----------+-----------+------------- + supabase_realtime | postgres | f | t | t | t | t +(1 row) + diff --git a/nix/tests/expected/storage.out b/nix/tests/expected/storage.out index 018b98aae..30530a2b6 100644 --- a/nix/tests/expected/storage.out +++ b/nix/tests/expected/storage.out @@ -96,3 +96,9 @@ order by storage | search | supabase_storage_admin (4 rows) +-- storage service migrations +select * from storage.migrations ; + id | name | hash | executed_at +----+------+------+------------- +(0 rows) + diff --git a/nix/tests/sql/auth.sql b/nix/tests/sql/auth.sql index 051d6e638..9bba4d0ee 100644 --- a/nix/tests/sql/auth.sql +++ b/nix/tests/sql/auth.sql @@ -68,3 +68,6 @@ where n.nspname = 'auth' order by p.proname; + +-- auth service schema migrations +select * from auth.schema_migrations; diff --git a/nix/tests/sql/evtrigs.sql b/nix/tests/sql/evtrigs.sql index f482dd7ed..cfbb201aa 100644 --- a/nix/tests/sql/evtrigs.sql +++ b/nix/tests/sql/evtrigs.sql @@ -1,9 +1,12 @@ -SELECT +select e.evtname, - e.evtowner::regrole AS evtowner, - e.evtfoid::regproc AS evtfunction, - p.proowner::regrole AS function_owner -FROM pg_event_trigger e -JOIN pg_proc p - ON e.evtfoid = p.oid -WHERE p.prorettype = 'event_trigger'::regtype; + e.evtowner::regrole as evtowner, + n_func.nspname as evtfunction_schema, + e.evtfoid::regproc as evtfunction, + p.proowner::regrole as function_owner +from pg_event_trigger e +join pg_proc p + on e.evtfoid = p.oid +join pg_namespace n_func + on p.pronamespace = n_func.oid +where p.prorettype = 'event_trigger'::regtype; diff --git a/nix/tests/sql/extensions_schema.sql b/nix/tests/sql/extensions_schema.sql new file mode 100644 index 000000000..f3d0b3528 --- /dev/null +++ b/nix/tests/sql/extensions_schema.sql @@ -0,0 +1,15 @@ +-- all default extensions are installed in a schema "extensions" +-- we don't include the version as that will break often, we only care about +-- ensuring these extensions are present +select + e.extname as extension_name, + n.nspname as schema_name, + e.extowner::regrole as extension_owner +from + pg_extension e +join + pg_namespace n on e.extnamespace = n.oid +where + n.nspname = 'extensions' and e.extname != 'pgjwt' +order by + e.extname; diff --git a/nix/tests/sql/realtime.sql b/nix/tests/sql/realtime.sql new file mode 100644 index 000000000..28f13a5ed --- /dev/null +++ b/nix/tests/sql/realtime.sql @@ -0,0 +1,11 @@ +-- only a publication from supabase realtime is expected +SELECT + pubname AS publication_name, + pubowner::regrole AS owner, + puballtables, + pubinsert, + pubupdate, + pubdelete, + pubtruncate +FROM + pg_publication; diff --git a/nix/tests/sql/storage.sql b/nix/tests/sql/storage.sql index 8e52dda6f..6938c8414 100644 --- a/nix/tests/sql/storage.sql +++ b/nix/tests/sql/storage.sql @@ -68,3 +68,6 @@ where n.nspname = 'storage' order by p.proname; + +-- storage service migrations +select * from storage.migrations ;