From b3e8c3d711e4a3f57a24abb17c8d9a5f9a9b256f Mon Sep 17 00:00:00 2001 From: Stan Girard Date: Sat, 27 Apr 2024 15:31:43 +0200 Subject: [PATCH] Add Supabase schema, migrations, and .gitignore file --- README.md | 3 +- backend/Dockerfile | 3 - {supabase => backend/supabase}/.gitignore | 0 backend/supabase/20240103191539_private.sql | 58 +++++++++++++++++++ {supabase => backend/supabase}/config.toml | 0 .../supabase}/functions/phospho/index.ts | 0 .../supabase}/functions/telemetry/index.ts | 0 .../supabase}/functions/user/index.ts | 0 .../migrations/20240103173626_init.sql | 0 .../migrations/20240103175048_prod.sql | 0 .../migrations/20240103181249_premium.sql | 0 .../migrations/20240103181925_cleanup.sql | 0 .../20240103193921_stripe_customers.sql | 0 .../migrations/20240103194255_api.sql | 0 .../20240103204741_product_to_features.sql | 0 .../migrations/20240103231656_product.sql | 0 .../migrations/20240103234423_models.sql | 0 .../migrations/20240107231636_policies.sql | 0 .../migrations/20240119070124_search.sql | 0 .../migrations/20240119222036_metadata.sql | 0 .../migrations/20240120004107_tags.sql | 0 .../migrations/20240121195523_fix-public.sql | 0 .../20240122194117_monthly-credit.sql | 0 .../migrations/20240125230346_raw.sql | 0 .../migrations/20240206040636_notion.sql | 0 .../migrations/20240207034043_related.sql | 0 .../migrations/20240207071108_chunk.sql | 0 .../migrations/20240216192826_integration.sql | 0 .../migrations/20240228182948_notion.sql | 0 .../20240304223646_integrations-all.sql | 0 .../20240305225452_tags-integration.sql | 0 .../20240306013910_allow_model_change.sql | 0 ...0240306205133_integration_display_name.sql | 0 .../20240313024244_onboarding-user.sql | 0 ...40314005817_user_identity_company_info.sql | 0 .../20240316195514_usage_purpose.sql | 0 ...240318024425_rename_feedback_to_thumbs.sql | 0 ...240320215813_fix_match_vector_function.sql | 0 .../20240329212126_onboarding_brain.sql | 0 .../migrations/20240330233534_ingestion.sql | 0 .../migrations/20240402005455_ingestion.sql | 0 .../20240402013303_ingestion_url.sql | 0 .../20240402015128_seed-ingestions.sql | 0 .../migrations/20240410112108_assistant.sql | 0 .../local_20240107152745_ollama.sql | 0 {supabase => backend/supabase}/schema.sql | 0 {supabase => backend/supabase}/seed.sql | 0 docs/deployment/digital_ocean.mdx | 2 + 48 files changed, 62 insertions(+), 4 deletions(-) rename {supabase => backend/supabase}/.gitignore (100%) create mode 100644 backend/supabase/20240103191539_private.sql rename {supabase => backend/supabase}/config.toml (100%) rename {supabase => backend/supabase}/functions/phospho/index.ts (100%) rename {supabase => backend/supabase}/functions/telemetry/index.ts (100%) rename {supabase => backend/supabase}/functions/user/index.ts (100%) rename {supabase => backend/supabase}/migrations/20240103173626_init.sql (100%) rename {supabase => backend/supabase}/migrations/20240103175048_prod.sql (100%) rename {supabase => backend/supabase}/migrations/20240103181249_premium.sql (100%) rename {supabase => backend/supabase}/migrations/20240103181925_cleanup.sql (100%) rename {supabase => backend/supabase}/migrations/20240103193921_stripe_customers.sql (100%) rename {supabase => backend/supabase}/migrations/20240103194255_api.sql (100%) rename {supabase => backend/supabase}/migrations/20240103204741_product_to_features.sql (100%) rename {supabase => backend/supabase}/migrations/20240103231656_product.sql (100%) rename {supabase => backend/supabase}/migrations/20240103234423_models.sql (100%) rename {supabase => backend/supabase}/migrations/20240107231636_policies.sql (100%) rename {supabase => backend/supabase}/migrations/20240119070124_search.sql (100%) rename {supabase => backend/supabase}/migrations/20240119222036_metadata.sql (100%) rename {supabase => backend/supabase}/migrations/20240120004107_tags.sql (100%) rename {supabase => backend/supabase}/migrations/20240121195523_fix-public.sql (100%) rename {supabase => backend/supabase}/migrations/20240122194117_monthly-credit.sql (100%) rename {supabase => backend/supabase}/migrations/20240125230346_raw.sql (100%) rename {supabase => backend/supabase}/migrations/20240206040636_notion.sql (100%) rename {supabase => backend/supabase}/migrations/20240207034043_related.sql (100%) rename {supabase => backend/supabase}/migrations/20240207071108_chunk.sql (100%) rename {supabase => backend/supabase}/migrations/20240216192826_integration.sql (100%) rename {supabase => backend/supabase}/migrations/20240228182948_notion.sql (100%) rename {supabase => backend/supabase}/migrations/20240304223646_integrations-all.sql (100%) rename {supabase => backend/supabase}/migrations/20240305225452_tags-integration.sql (100%) rename {supabase => backend/supabase}/migrations/20240306013910_allow_model_change.sql (100%) rename {supabase => backend/supabase}/migrations/20240306205133_integration_display_name.sql (100%) rename {supabase => backend/supabase}/migrations/20240313024244_onboarding-user.sql (100%) rename {supabase => backend/supabase}/migrations/20240314005817_user_identity_company_info.sql (100%) rename {supabase => backend/supabase}/migrations/20240316195514_usage_purpose.sql (100%) rename {supabase => backend/supabase}/migrations/20240318024425_rename_feedback_to_thumbs.sql (100%) rename {supabase => backend/supabase}/migrations/20240320215813_fix_match_vector_function.sql (100%) rename {supabase => backend/supabase}/migrations/20240329212126_onboarding_brain.sql (100%) rename {supabase => backend/supabase}/migrations/20240330233534_ingestion.sql (100%) rename {supabase => backend/supabase}/migrations/20240402005455_ingestion.sql (100%) rename {supabase => backend/supabase}/migrations/20240402013303_ingestion_url.sql (100%) rename {supabase => backend/supabase}/migrations/20240402015128_seed-ingestions.sql (100%) rename {supabase => backend/supabase}/migrations/20240410112108_assistant.sql (100%) rename {supabase => backend/supabase}/migrations/local_20240107152745_ollama.sql (100%) rename {supabase => backend/supabase}/schema.sql (100%) rename {supabase => backend/supabase}/seed.sql (100%) diff --git a/README.md b/README.md index d6e350055..304c18e72 100644 --- a/README.md +++ b/README.md @@ -80,10 +80,11 @@ You can find the installation video [here](https://www.youtube.com/watch?v=cXBa6 - **Step 4**: Launch the project ```bash - supabase start + cd backend && supabase start ``` and then ```bash + cd ../ docker compose pull docker compose up ``` diff --git a/backend/Dockerfile b/backend/Dockerfile index 5690476ca..cbbc6650a 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -58,9 +58,6 @@ RUN pip install --no-cache-dir --upgrade pip && \ # Copy the rest of the application COPY . . -# COPY Supabase from ../supabase in /code/supabase -COPY ../supabase /code/supabase - EXPOSE 5050 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5050", "--workers", "6"] \ No newline at end of file diff --git a/supabase/.gitignore b/backend/supabase/.gitignore similarity index 100% rename from supabase/.gitignore rename to backend/supabase/.gitignore diff --git a/backend/supabase/20240103191539_private.sql b/backend/supabase/20240103191539_private.sql new file mode 100644 index 000000000..97c65e86f --- /dev/null +++ b/backend/supabase/20240103191539_private.sql @@ -0,0 +1,58 @@ +CREATE EXTENSION IF NOT EXISTS wrappers; + +-- Create foreign data wrapper 'stripe_wrapper' if it doesn't exist +DO $$ +BEGIN +IF NOT EXISTS ( +SELECT 1 +FROM information_schema.foreign_data_wrappers +WHERE foreign_data_wrapper_name = 'stripe_wrapper' +) THEN +CREATE FOREIGN DATA WRAPPER stripe_wrapper +HANDLER stripe_fdw_handler; +END IF; +END $$; +^ +-- Check if the server 'stripe_server' exists before creating it +DO $$ +BEGIN +IF NOT EXISTS (SELECT 1 FROM pg_foreign_server WHERE srvname = 'stripe_server') THEN +CREATE SERVER stripe_server +FOREIGN DATA WRAPPER stripe_wrapper +OPTIONS ( +api_key 'pk_test_51NtDTIJglvQxkJ1HgOBKicXBZ9Ug9pIhOZz3Lkask6q5JPZRoRW49nmwW6Q7wjWHJgc89HbruUP7GJ0d5DlQYOQ200MkvXpFnV' -- Replace with your Stripe API key +); +END IF; +END $$; + +-- Create foreign table 'public.customers' if it doesn't exist +DO $$ +BEGIN +IF NOT EXISTS ( +SELECT 1 +FROM information_schema.tables +WHERE table_name = 'customers' +) THEN +CREATE FOREIGN TABLE public.customers ( +id text, +email text, +name text, +description text, +created timestamp, +attrs jsonb +) +SERVER stripe_server +OPTIONS ( +OBJECT 'customers', +ROWID_COLUMN 'id' +); +END IF; +END $$; + + +create schema if not exists extensions; + +create table if not exists + extensions.wrappers_fdw_stats (); + +grant all on extensions.wrappers_fdw_stats to service_role; \ No newline at end of file diff --git a/supabase/config.toml b/backend/supabase/config.toml similarity index 100% rename from supabase/config.toml rename to backend/supabase/config.toml diff --git a/supabase/functions/phospho/index.ts b/backend/supabase/functions/phospho/index.ts similarity index 100% rename from supabase/functions/phospho/index.ts rename to backend/supabase/functions/phospho/index.ts diff --git a/supabase/functions/telemetry/index.ts b/backend/supabase/functions/telemetry/index.ts similarity index 100% rename from supabase/functions/telemetry/index.ts rename to backend/supabase/functions/telemetry/index.ts diff --git a/supabase/functions/user/index.ts b/backend/supabase/functions/user/index.ts similarity index 100% rename from supabase/functions/user/index.ts rename to backend/supabase/functions/user/index.ts diff --git a/supabase/migrations/20240103173626_init.sql b/backend/supabase/migrations/20240103173626_init.sql similarity index 100% rename from supabase/migrations/20240103173626_init.sql rename to backend/supabase/migrations/20240103173626_init.sql diff --git a/supabase/migrations/20240103175048_prod.sql b/backend/supabase/migrations/20240103175048_prod.sql similarity index 100% rename from supabase/migrations/20240103175048_prod.sql rename to backend/supabase/migrations/20240103175048_prod.sql diff --git a/supabase/migrations/20240103181249_premium.sql b/backend/supabase/migrations/20240103181249_premium.sql similarity index 100% rename from supabase/migrations/20240103181249_premium.sql rename to backend/supabase/migrations/20240103181249_premium.sql diff --git a/supabase/migrations/20240103181925_cleanup.sql b/backend/supabase/migrations/20240103181925_cleanup.sql similarity index 100% rename from supabase/migrations/20240103181925_cleanup.sql rename to backend/supabase/migrations/20240103181925_cleanup.sql diff --git a/supabase/migrations/20240103193921_stripe_customers.sql b/backend/supabase/migrations/20240103193921_stripe_customers.sql similarity index 100% rename from supabase/migrations/20240103193921_stripe_customers.sql rename to backend/supabase/migrations/20240103193921_stripe_customers.sql diff --git a/supabase/migrations/20240103194255_api.sql b/backend/supabase/migrations/20240103194255_api.sql similarity index 100% rename from supabase/migrations/20240103194255_api.sql rename to backend/supabase/migrations/20240103194255_api.sql diff --git a/supabase/migrations/20240103204741_product_to_features.sql b/backend/supabase/migrations/20240103204741_product_to_features.sql similarity index 100% rename from supabase/migrations/20240103204741_product_to_features.sql rename to backend/supabase/migrations/20240103204741_product_to_features.sql diff --git a/supabase/migrations/20240103231656_product.sql b/backend/supabase/migrations/20240103231656_product.sql similarity index 100% rename from supabase/migrations/20240103231656_product.sql rename to backend/supabase/migrations/20240103231656_product.sql diff --git a/supabase/migrations/20240103234423_models.sql b/backend/supabase/migrations/20240103234423_models.sql similarity index 100% rename from supabase/migrations/20240103234423_models.sql rename to backend/supabase/migrations/20240103234423_models.sql diff --git a/supabase/migrations/20240107231636_policies.sql b/backend/supabase/migrations/20240107231636_policies.sql similarity index 100% rename from supabase/migrations/20240107231636_policies.sql rename to backend/supabase/migrations/20240107231636_policies.sql diff --git a/supabase/migrations/20240119070124_search.sql b/backend/supabase/migrations/20240119070124_search.sql similarity index 100% rename from supabase/migrations/20240119070124_search.sql rename to backend/supabase/migrations/20240119070124_search.sql diff --git a/supabase/migrations/20240119222036_metadata.sql b/backend/supabase/migrations/20240119222036_metadata.sql similarity index 100% rename from supabase/migrations/20240119222036_metadata.sql rename to backend/supabase/migrations/20240119222036_metadata.sql diff --git a/supabase/migrations/20240120004107_tags.sql b/backend/supabase/migrations/20240120004107_tags.sql similarity index 100% rename from supabase/migrations/20240120004107_tags.sql rename to backend/supabase/migrations/20240120004107_tags.sql diff --git a/supabase/migrations/20240121195523_fix-public.sql b/backend/supabase/migrations/20240121195523_fix-public.sql similarity index 100% rename from supabase/migrations/20240121195523_fix-public.sql rename to backend/supabase/migrations/20240121195523_fix-public.sql diff --git a/supabase/migrations/20240122194117_monthly-credit.sql b/backend/supabase/migrations/20240122194117_monthly-credit.sql similarity index 100% rename from supabase/migrations/20240122194117_monthly-credit.sql rename to backend/supabase/migrations/20240122194117_monthly-credit.sql diff --git a/supabase/migrations/20240125230346_raw.sql b/backend/supabase/migrations/20240125230346_raw.sql similarity index 100% rename from supabase/migrations/20240125230346_raw.sql rename to backend/supabase/migrations/20240125230346_raw.sql diff --git a/supabase/migrations/20240206040636_notion.sql b/backend/supabase/migrations/20240206040636_notion.sql similarity index 100% rename from supabase/migrations/20240206040636_notion.sql rename to backend/supabase/migrations/20240206040636_notion.sql diff --git a/supabase/migrations/20240207034043_related.sql b/backend/supabase/migrations/20240207034043_related.sql similarity index 100% rename from supabase/migrations/20240207034043_related.sql rename to backend/supabase/migrations/20240207034043_related.sql diff --git a/supabase/migrations/20240207071108_chunk.sql b/backend/supabase/migrations/20240207071108_chunk.sql similarity index 100% rename from supabase/migrations/20240207071108_chunk.sql rename to backend/supabase/migrations/20240207071108_chunk.sql diff --git a/supabase/migrations/20240216192826_integration.sql b/backend/supabase/migrations/20240216192826_integration.sql similarity index 100% rename from supabase/migrations/20240216192826_integration.sql rename to backend/supabase/migrations/20240216192826_integration.sql diff --git a/supabase/migrations/20240228182948_notion.sql b/backend/supabase/migrations/20240228182948_notion.sql similarity index 100% rename from supabase/migrations/20240228182948_notion.sql rename to backend/supabase/migrations/20240228182948_notion.sql diff --git a/supabase/migrations/20240304223646_integrations-all.sql b/backend/supabase/migrations/20240304223646_integrations-all.sql similarity index 100% rename from supabase/migrations/20240304223646_integrations-all.sql rename to backend/supabase/migrations/20240304223646_integrations-all.sql diff --git a/supabase/migrations/20240305225452_tags-integration.sql b/backend/supabase/migrations/20240305225452_tags-integration.sql similarity index 100% rename from supabase/migrations/20240305225452_tags-integration.sql rename to backend/supabase/migrations/20240305225452_tags-integration.sql diff --git a/supabase/migrations/20240306013910_allow_model_change.sql b/backend/supabase/migrations/20240306013910_allow_model_change.sql similarity index 100% rename from supabase/migrations/20240306013910_allow_model_change.sql rename to backend/supabase/migrations/20240306013910_allow_model_change.sql diff --git a/supabase/migrations/20240306205133_integration_display_name.sql b/backend/supabase/migrations/20240306205133_integration_display_name.sql similarity index 100% rename from supabase/migrations/20240306205133_integration_display_name.sql rename to backend/supabase/migrations/20240306205133_integration_display_name.sql diff --git a/supabase/migrations/20240313024244_onboarding-user.sql b/backend/supabase/migrations/20240313024244_onboarding-user.sql similarity index 100% rename from supabase/migrations/20240313024244_onboarding-user.sql rename to backend/supabase/migrations/20240313024244_onboarding-user.sql diff --git a/supabase/migrations/20240314005817_user_identity_company_info.sql b/backend/supabase/migrations/20240314005817_user_identity_company_info.sql similarity index 100% rename from supabase/migrations/20240314005817_user_identity_company_info.sql rename to backend/supabase/migrations/20240314005817_user_identity_company_info.sql diff --git a/supabase/migrations/20240316195514_usage_purpose.sql b/backend/supabase/migrations/20240316195514_usage_purpose.sql similarity index 100% rename from supabase/migrations/20240316195514_usage_purpose.sql rename to backend/supabase/migrations/20240316195514_usage_purpose.sql diff --git a/supabase/migrations/20240318024425_rename_feedback_to_thumbs.sql b/backend/supabase/migrations/20240318024425_rename_feedback_to_thumbs.sql similarity index 100% rename from supabase/migrations/20240318024425_rename_feedback_to_thumbs.sql rename to backend/supabase/migrations/20240318024425_rename_feedback_to_thumbs.sql diff --git a/supabase/migrations/20240320215813_fix_match_vector_function.sql b/backend/supabase/migrations/20240320215813_fix_match_vector_function.sql similarity index 100% rename from supabase/migrations/20240320215813_fix_match_vector_function.sql rename to backend/supabase/migrations/20240320215813_fix_match_vector_function.sql diff --git a/supabase/migrations/20240329212126_onboarding_brain.sql b/backend/supabase/migrations/20240329212126_onboarding_brain.sql similarity index 100% rename from supabase/migrations/20240329212126_onboarding_brain.sql rename to backend/supabase/migrations/20240329212126_onboarding_brain.sql diff --git a/supabase/migrations/20240330233534_ingestion.sql b/backend/supabase/migrations/20240330233534_ingestion.sql similarity index 100% rename from supabase/migrations/20240330233534_ingestion.sql rename to backend/supabase/migrations/20240330233534_ingestion.sql diff --git a/supabase/migrations/20240402005455_ingestion.sql b/backend/supabase/migrations/20240402005455_ingestion.sql similarity index 100% rename from supabase/migrations/20240402005455_ingestion.sql rename to backend/supabase/migrations/20240402005455_ingestion.sql diff --git a/supabase/migrations/20240402013303_ingestion_url.sql b/backend/supabase/migrations/20240402013303_ingestion_url.sql similarity index 100% rename from supabase/migrations/20240402013303_ingestion_url.sql rename to backend/supabase/migrations/20240402013303_ingestion_url.sql diff --git a/supabase/migrations/20240402015128_seed-ingestions.sql b/backend/supabase/migrations/20240402015128_seed-ingestions.sql similarity index 100% rename from supabase/migrations/20240402015128_seed-ingestions.sql rename to backend/supabase/migrations/20240402015128_seed-ingestions.sql diff --git a/supabase/migrations/20240410112108_assistant.sql b/backend/supabase/migrations/20240410112108_assistant.sql similarity index 100% rename from supabase/migrations/20240410112108_assistant.sql rename to backend/supabase/migrations/20240410112108_assistant.sql diff --git a/supabase/migrations/local_20240107152745_ollama.sql b/backend/supabase/migrations/local_20240107152745_ollama.sql similarity index 100% rename from supabase/migrations/local_20240107152745_ollama.sql rename to backend/supabase/migrations/local_20240107152745_ollama.sql diff --git a/supabase/schema.sql b/backend/supabase/schema.sql similarity index 100% rename from supabase/schema.sql rename to backend/supabase/schema.sql diff --git a/supabase/seed.sql b/backend/supabase/seed.sql similarity index 100% rename from supabase/seed.sql rename to backend/supabase/seed.sql diff --git a/docs/deployment/digital_ocean.mdx b/docs/deployment/digital_ocean.mdx index 6c21f9fc6..0eb021f72 100644 --- a/docs/deployment/digital_ocean.mdx +++ b/docs/deployment/digital_ocean.mdx @@ -56,7 +56,9 @@ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 nvm use 20 +cd backend npx supabase start +cd .. ``` 11. Allow the firewall