supabase local setup
This commit is contained in:
@@ -12,3 +12,5 @@ package-lock.json
|
|||||||
|
|
||||||
# Sentry Auth Token
|
# Sentry Auth Token
|
||||||
.env.sentry-build-plugin
|
.env.sentry-build-plugin
|
||||||
|
|
||||||
|
/supascripts/
|
||||||
|
|||||||
Vendored
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"deno.enable": true,
|
||||||
|
"deno.lint": true,
|
||||||
|
"deno.unstable": true
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{
|
||||||
|
"name": "project-root",
|
||||||
|
"path": "./"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "supabase-functions",
|
||||||
|
"path": "supabase/functions"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"files.exclude": {
|
||||||
|
"supabase/functions/": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,7 +3,6 @@
|
|||||||
import NotificationIcon from 'carbon-icons-svelte/lib/Notification.svelte';
|
import NotificationIcon from 'carbon-icons-svelte/lib/Notification.svelte';
|
||||||
import Moon from 'carbon-icons-svelte/lib/Moon.svelte';
|
import Moon from 'carbon-icons-svelte/lib/Moon.svelte';
|
||||||
import Sun from 'carbon-icons-svelte/lib/Sun.svelte';
|
import Sun from 'carbon-icons-svelte/lib/Sun.svelte';
|
||||||
import CourseIcon from '$lib/components/Icons/CourseIcon.svelte';
|
|
||||||
import Menu from 'carbon-icons-svelte/lib/Menu.svelte';
|
import Menu from 'carbon-icons-svelte/lib/Menu.svelte';
|
||||||
import Close from 'carbon-icons-svelte/lib/Close.svelte';
|
import Close from 'carbon-icons-svelte/lib/Close.svelte';
|
||||||
|
|
||||||
@@ -11,7 +10,6 @@
|
|||||||
import { appStore } from '$lib/utils/store/app';
|
import { appStore } from '$lib/utils/store/app';
|
||||||
import { currentOrgPath } from '$lib/utils/store/org';
|
import { currentOrgPath } from '$lib/utils/store/org';
|
||||||
import { toggleBodyByMode } from '$lib/utils/functions/app';
|
import { toggleBodyByMode } from '$lib/utils/functions/app';
|
||||||
import { goto } from '$app/navigation';
|
|
||||||
import { menu, sideBar } from '../Org/store';
|
import { menu, sideBar } from '../Org/store';
|
||||||
|
|
||||||
export let title = '';
|
export let title = '';
|
||||||
@@ -60,16 +58,6 @@
|
|||||||
<Menu size={16} class=" text-white" />
|
<Menu size={16} class=" text-white" />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</li>
|
</li>
|
||||||
<div class="hidden md:block">
|
|
||||||
<IconButton
|
|
||||||
onClick={() => {
|
|
||||||
goto(coursesPath);
|
|
||||||
}}
|
|
||||||
size="small"
|
|
||||||
>
|
|
||||||
<CourseIcon color="#fff" />
|
|
||||||
</IconButton>
|
|
||||||
</div>
|
|
||||||
{/if}
|
{/if}
|
||||||
<a
|
<a
|
||||||
href={coursesPath}
|
href={coursesPath}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export const getSupabase = (config?: ConfigType) => {
|
|||||||
|
|
||||||
config = {
|
config = {
|
||||||
supabaseConfig: {
|
supabaseConfig: {
|
||||||
bucketPath: 'https://koxqonvbkeakwvmdegcf.supabase.in/storage/v1/object/sign/',
|
bucketPath: 'https://tapaozmyjsuykgerrfkt.supabase.in/storage/v1/object/sign/',
|
||||||
url: PUBLIC_SUPABASE_URL || '',
|
url: PUBLIC_SUPABASE_URL || '',
|
||||||
anonKey: PUBLIC_SUPABASE_ANON_KEY || ''
|
anonKey: PUBLIC_SUPABASE_ANON_KEY || ''
|
||||||
}
|
}
|
||||||
|
|||||||
+75
-12
@@ -1,15 +1,16 @@
|
|||||||
# A string used to distinguish different Supabase projects on the same host. Defaults to the working
|
# A string used to distinguish different Supabase projects on the same host. Defaults to the
|
||||||
# directory name when running `supabase init`.
|
# working directory name when running `supabase init`.
|
||||||
project_id = "classroomio"
|
project_id = "classroomio"
|
||||||
|
|
||||||
[api]
|
[api]
|
||||||
|
enabled = true
|
||||||
# Port to use for the API URL.
|
# Port to use for the API URL.
|
||||||
port = 54321
|
port = 54321
|
||||||
# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API
|
# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API
|
||||||
# endpoints. public and storage are always included.
|
# endpoints. public and storage are always included.
|
||||||
schemas = []
|
schemas = ["public", "storage", "graphql_public"]
|
||||||
# Extra schemas to add to the search_path of every request.
|
# Extra schemas to add to the search_path of every request. public is always included.
|
||||||
extra_search_path = ["extensions"]
|
extra_search_path = ["public", "extensions"]
|
||||||
# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size
|
# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size
|
||||||
# for accidental or malicious requests.
|
# for accidental or malicious requests.
|
||||||
max_rows = 1000
|
max_rows = 1000
|
||||||
@@ -17,35 +18,65 @@ max_rows = 1000
|
|||||||
[db]
|
[db]
|
||||||
# Port to use for the local database URL.
|
# Port to use for the local database URL.
|
||||||
port = 54322
|
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
|
# 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.
|
# server_version;` on the remote database to check.
|
||||||
major_version = 12
|
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]
|
[studio]
|
||||||
|
enabled = true
|
||||||
# Port to use for Supabase Studio.
|
# Port to use for Supabase Studio.
|
||||||
port = 54323
|
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
|
# 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.
|
# are monitored, and you can view the emails that would have been sent from the web interface.
|
||||||
[inbucket]
|
[inbucket]
|
||||||
|
enabled = true
|
||||||
# Port to use for the email testing server web interface.
|
# Port to use for the email testing server web interface.
|
||||||
port = 54324
|
port = 54324
|
||||||
smtp_port = 54325
|
# Uncomment to expose additional ports for testing user applications that send emails.
|
||||||
pop3_port = 54326
|
# smtp_port = 54325
|
||||||
|
# pop3_port = 54326
|
||||||
|
|
||||||
[storage]
|
[storage]
|
||||||
|
enabled = true
|
||||||
# The maximum file size allowed (e.g. "5MB", "500KB").
|
# The maximum file size allowed (e.g. "5MB", "500KB").
|
||||||
file_size_limit = "50MiB"
|
file_size_limit = "50MiB"
|
||||||
|
|
||||||
[auth]
|
[auth]
|
||||||
|
enabled = true
|
||||||
# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used
|
# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used
|
||||||
# in emails.
|
# in emails.
|
||||||
site_url = "http://localhost:3000"
|
site_url = "http://localhost:3000"
|
||||||
# A list of *exact* URLs that auth providers are permitted to redirect to post authentication.
|
# A list of *exact* URLs that auth providers are permitted to redirect to post authentication.
|
||||||
additional_redirect_urls = ["https://localhost:3000"]
|
additional_redirect_urls = ["https://localhost:3000"]
|
||||||
# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one
|
# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 (1 week).
|
||||||
# week).
|
|
||||||
jwt_expiry = 3600
|
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.
|
# Allow/disallow new user signups to your project.
|
||||||
enable_signup = true
|
enable_signup = true
|
||||||
|
|
||||||
@@ -58,14 +89,46 @@ double_confirm_changes = true
|
|||||||
# If enabled, users need to confirm their email address before signing in.
|
# If enabled, users need to confirm their email address before signing in.
|
||||||
enable_confirmations = false
|
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`,
|
# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`,
|
||||||
# `discord`, `facebook`, `github`, `gitlab`, `google`, `twitch`, `twitter`, `slack`, `spotify`.
|
# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `twitch`,
|
||||||
|
# `twitter`, `slack`, `spotify`, `workos`, `zoom`.
|
||||||
[auth.external.apple]
|
[auth.external.apple]
|
||||||
enabled = false
|
enabled = false
|
||||||
client_id = ""
|
client_id = ""
|
||||||
secret = ""
|
# 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.
|
# Overrides the default auth redirectUrl.
|
||||||
redirect_uri = ""
|
redirect_uri = ""
|
||||||
# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure,
|
# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure,
|
||||||
# or any other third-party OIDC providers.
|
# or any other third-party OIDC providers.
|
||||||
url = ""
|
url = ""
|
||||||
|
|
||||||
|
[analytics]
|
||||||
|
enabled = false
|
||||||
|
port = 54327
|
||||||
|
vector_port = 54328
|
||||||
|
# Configure one of the supported backends: `postgres`, `bigquery`.
|
||||||
|
backend = "postgres"
|
||||||
|
|||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"recommendations": ["denoland.vscode-deno"]
|
||||||
|
}
|
||||||
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"deno.enable": true,
|
||||||
|
"deno.lint": true,
|
||||||
|
"editor.defaultFormatter": "denoland.vscode-deno"
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// Follow this setup guide to integrate the Deno language server with your editor:
|
||||||
|
// https://deno.land/manual/getting_started/setup_your_environment
|
||||||
|
// This enables autocomplete, go to definition, etc.
|
||||||
|
|
||||||
|
console.log("Hello from Functions!")
|
||||||
|
|
||||||
|
Deno.serve(async (req) => {
|
||||||
|
const { name } = await req.json()
|
||||||
|
const data = {
|
||||||
|
message: `Hello ${name}!`,
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Response(
|
||||||
|
JSON.stringify(data),
|
||||||
|
{ headers: { "Content-Type": "application/json" } },
|
||||||
|
)
|
||||||
|
})
|
||||||
|
|
||||||
|
// To invoke:
|
||||||
|
// curl -i --location --request POST 'http://localhost:54321/functions/v1/' \
|
||||||
|
// --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0' \
|
||||||
|
// --header 'Content-Type: application/json' \
|
||||||
|
// --data '{"name":"Functions"}'
|
||||||
Reference in New Issue
Block a user