diff --git a/.gitignore b/.gitignore
index e607a698..d02bff94 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,5 @@ package-lock.json
# Sentry Auth Token
.env.sentry-build-plugin
+
+/supascripts/
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 00000000..e40716fd
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "deno.enable": true,
+ "deno.lint": true,
+ "deno.unstable": true
+}
diff --git a/classroomio.code-workspace b/classroomio.code-workspace
new file mode 100644
index 00000000..a9ad457d
--- /dev/null
+++ b/classroomio.code-workspace
@@ -0,0 +1,17 @@
+{
+ "folders": [
+ {
+ "name": "project-root",
+ "path": "./"
+ },
+ {
+ "name": "supabase-functions",
+ "path": "supabase/functions"
+ }
+ ],
+ "settings": {
+ "files.exclude": {
+ "supabase/functions/": true
+ }
+ }
+}
diff --git a/dump.sql b/dump.sql
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/lib/components/Navigation/app.svelte b/src/lib/components/Navigation/app.svelte
index 490e261a..1f2a29de 100644
--- a/src/lib/components/Navigation/app.svelte
+++ b/src/lib/components/Navigation/app.svelte
@@ -3,7 +3,6 @@
import NotificationIcon from 'carbon-icons-svelte/lib/Notification.svelte';
import Moon from 'carbon-icons-svelte/lib/Moon.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 Close from 'carbon-icons-svelte/lib/Close.svelte';
@@ -11,7 +10,6 @@
import { appStore } from '$lib/utils/store/app';
import { currentOrgPath } from '$lib/utils/store/org';
import { toggleBodyByMode } from '$lib/utils/functions/app';
- import { goto } from '$app/navigation';
import { menu, sideBar } from '../Org/store';
export let title = '';
@@ -60,16 +58,6 @@
-
- {
- goto(coursesPath);
- }}
- size="small"
- >
-
-
-
{/if}
{
config = {
supabaseConfig: {
- bucketPath: 'https://koxqonvbkeakwvmdegcf.supabase.in/storage/v1/object/sign/',
+ bucketPath: 'https://tapaozmyjsuykgerrfkt.supabase.in/storage/v1/object/sign/',
url: PUBLIC_SUPABASE_URL || '',
anonKey: PUBLIC_SUPABASE_ANON_KEY || ''
}
diff --git a/supabase/config.toml b/supabase/config.toml
index c208a647..6cdfd97d 100644
--- a/supabase/config.toml
+++ b/supabase/config.toml
@@ -1,15 +1,16 @@
-# A string used to distinguish different Supabase projects on the same host. Defaults to the working
-# directory name when running `supabase init`.
+# A string used to distinguish different Supabase projects on the same host. Defaults to the
+# working directory name when running `supabase init`.
project_id = "classroomio"
[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 = []
-# Extra schemas to add to the search_path of every request.
-extra_search_path = ["extensions"]
+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
@@ -17,35 +18,65 @@ 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 = 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]
+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
-smtp_port = 54325
-pop3_port = 54326
+# 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 seconds (one
-# week).
+# 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
@@ -58,14 +89,46 @@ 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`, `twitch`, `twitter`, `slack`, `spotify`.
+# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `twitch`,
+# `twitter`, `slack`, `spotify`, `workos`, `zoom`.
[auth.external.apple]
enabled = false
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.
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"
diff --git a/supabase/functions/.vscode/extensions.json b/supabase/functions/.vscode/extensions.json
new file mode 100644
index 00000000..74baffcc
--- /dev/null
+++ b/supabase/functions/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["denoland.vscode-deno"]
+}
diff --git a/supabase/functions/.vscode/settings.json b/supabase/functions/.vscode/settings.json
new file mode 100644
index 00000000..6f4f84f7
--- /dev/null
+++ b/supabase/functions/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "deno.enable": true,
+ "deno.lint": true,
+ "editor.defaultFormatter": "denoland.vscode-deno"
+}
diff --git a/supabase/functions/notify/index.ts b/supabase/functions/notify/index.ts
new file mode 100644
index 00000000..4e28fac9
--- /dev/null
+++ b/supabase/functions/notify/index.ts
@@ -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"}'