generated from ubiquity/ts-template
-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: add Supabase configuration and initial database setup
Introduces Supabase configuration specifying project settings and an initial database migration
- Loading branch information
1 parent
74c4fb3
commit 2ed7d67
Showing
8 changed files
with
1,249 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# Supabase | ||
.branches | ||
.temp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Supabase Database Adapter | ||
|
||
[Supabase](https://supabase.com/) is used to store contributor profiles and task information. | ||
|
||
### How to set up supabase project locally | ||
|
||
1. To get started with supabase, you have to create a project at [Supabase](https://supabase.com/). | ||
Once you create a project, please put both variables into `.env` file. | ||
|
||
``` | ||
SUPABASE_URL=XXX | ||
SUPABASE_KEY=XXX | ||
``` | ||
|
||
2. [The Supabase CLI](https://supabase.com/docs/guides/resources/supabase-cli) available as a node package through the dev dependencies provides tools to develop your project locally and deploy to the Supabase Platform. | ||
Most common useful commands are | ||
|
||
- Run Supabase locally | ||
|
||
```sh | ||
bun supabase start | ||
``` | ||
|
||
- Manager database migrations | ||
|
||
```sh | ||
bun supabase migration | ||
``` | ||
|
||
- CI/CD for releasing to production | ||
|
||
```sh | ||
bun supabase db push | ||
``` | ||
|
||
- Manager your supabase projects | ||
|
||
```sh | ||
bun supabase projects | ||
``` | ||
|
||
- Generate types directly from your database schemas | ||
|
||
```sh | ||
bun supabase gen types | ||
``` | ||
|
||
3. Link the local project to the supabase project you created. | ||
|
||
```sh | ||
bun supabase link -p PASSWORD --project-ref PROJECT_REF | ||
``` | ||
|
||
For more information about arguments, please go through [here](https://supabase.com/docs/reference/cli/supabase-link) | ||
|
||
### Database Operation | ||
|
||
- `supabase migration new MIGRATION_NAME`: It will create a migration file in supabase/migrations folder. | ||
- `supabase migration repair <MIGRATION_NAME> --status reverted`: Revert a given migration file. | ||
- `supabase db push`: Update database schema on supabase platform | ||
- `supabase gen types typescript > src/adapters/supabase/types/database.ts --linked`: Generate typescript types from the supabase project linked |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
# A string used to distinguish different Supabase projects on the same host. Defaults to the | ||
# working directory name when running `supabase init`. | ||
project_id = "ubiquity-os-kernel" | ||
|
||
[api] | ||
enabled = true | ||
# Port to use for the API URL. | ||
port = 54321 | ||
# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API | ||
# endpoints. public and storage are always included. | ||
schemas = ["public", "storage", "graphql_public"] | ||
# Extra schemas to add to the search_path of every request. public is always included. | ||
extra_search_path = ["public", "extensions"] | ||
# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size | ||
# for accidental or malicious requests. | ||
max_rows = 1000 | ||
|
||
[db] | ||
# Port to use for the local database URL. | ||
port = 54322 | ||
# Port used by db diff command to initialise the shadow database. | ||
shadow_port = 54320 | ||
# The database major version to use. This has to be the same as your remote database's. Run `SHOW | ||
# server_version;` on the remote database to check. | ||
major_version = 15 | ||
|
||
[db.pooler] | ||
enabled = false | ||
# Port to use for the local connection pooler. | ||
port = 54329 | ||
# Specifies when a server connection can be reused by other clients. | ||
# Configure one of the supported pooler modes: `transaction`, `session`. | ||
pool_mode = "transaction" | ||
# How many server connections to allow per user/database pair. | ||
default_pool_size = 20 | ||
# Maximum number of client connections allowed. | ||
max_client_conn = 100 | ||
|
||
[realtime] | ||
enabled = true | ||
# Bind realtime via either IPv4 or IPv6. (default: IPv6) | ||
# ip_version = "IPv6" | ||
|
||
[studio] | ||
enabled = true | ||
# Port to use for Supabase Studio. | ||
port = 54323 | ||
# External URL of the API server that frontend connects to. | ||
api_url = "http://localhost" | ||
|
||
# Email testing server. Emails sent with the local dev setup are not actually sent - rather, they | ||
# are monitored, and you can view the emails that would have been sent from the web interface. | ||
[inbucket] | ||
enabled = true | ||
# Port to use for the email testing server web interface. | ||
port = 54324 | ||
# Uncomment to expose additional ports for testing user applications that send emails. | ||
# smtp_port = 54325 | ||
# pop3_port = 54326 | ||
|
||
[storage] | ||
enabled = true | ||
# The maximum file size allowed (e.g. "5MB", "500KB"). | ||
file_size_limit = "50MiB" | ||
|
||
[auth] | ||
enabled = true | ||
# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used | ||
# in emails. | ||
site_url = "http://localhost:3000" | ||
# A list of *exact* URLs that auth providers are permitted to redirect to post authentication. | ||
additional_redirect_urls = ["https://localhost:3000"] | ||
# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 (1 week). | ||
jwt_expiry = 3600 | ||
# If disabled, the refresh token will never expire. | ||
enable_refresh_token_rotation = true | ||
# Allows refresh tokens to be reused after expiry, up to the specified interval in seconds. | ||
# Requires enable_refresh_token_rotation = true. | ||
refresh_token_reuse_interval = 10 | ||
# Allow/disallow new user signups to your project. | ||
enable_signup = true | ||
|
||
[auth.email] | ||
# Allow/disallow new user signups via email to your project. | ||
enable_signup = true | ||
# If enabled, a user will be required to confirm any email change on both the old, and new email | ||
# addresses. If disabled, only the new email is required to confirm. | ||
double_confirm_changes = true | ||
# If enabled, users need to confirm their email address before signing in. | ||
enable_confirmations = false | ||
|
||
# Uncomment to customize email template | ||
# [auth.email.template.invite] | ||
# subject = "You have been invited" | ||
# content_path = "./supabase/templates/invite.html" | ||
|
||
[auth.sms] | ||
# Allow/disallow new user signups via SMS to your project. | ||
enable_signup = true | ||
# If enabled, users need to confirm their phone number before signing in. | ||
enable_confirmations = false | ||
|
||
# Use pre-defined map of phone number to OTP for testing. | ||
[auth.sms.test_otp] | ||
# 4152127777 = "123456" | ||
|
||
# Configure one of the supported SMS providers: `twilio`, `twilio_verify`, `messagebird`, `textlocal`, `vonage`. | ||
[auth.sms.twilio] | ||
enabled = false | ||
account_sid = "" | ||
message_service_sid = "" | ||
# DO NOT commit your Twilio auth token to git. Use environment variable substitution instead: | ||
auth_token = "env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN)" | ||
|
||
# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`, | ||
# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `twitch`, | ||
# `twitter`, `slack`, `spotify`, `workos`, `zoom`. | ||
[auth.external.apple] | ||
enabled = false | ||
client_id = "" | ||
# DO NOT commit your OAuth provider secret to git. Use environment variable substitution instead: | ||
secret = "env(SUPABASE_AUTH_EXTERNAL_APPLE_SECRET)" | ||
# Overrides the default auth redirectUrl. | ||
redirect_uri = "" | ||
# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure, | ||
# or any other third-party OIDC providers. | ||
url = "" | ||
|
||
[analytics] | ||
enabled = false | ||
port = 54327 | ||
vector_port = 54328 | ||
# Configure one of the supported backends: `postgres`, `bigquery`. | ||
backend = "postgres" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"recommendations": ["denoland.vscode-deno"] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"deno.enable": true, | ||
"deno.lint": true, | ||
"editor.defaultFormatter": "denoland.vscode-deno", | ||
"jest.jestCommandLine": "npx jest" | ||
} |
Oops, something went wrong.