Skip to content

Commit fb07e75

Browse files
committed
feat: Deploy geocoding function and configure production environment - Successfully deploy geocoding Edge Function to Supabase - Configure Kakao API key in production secrets - Update config.toml with proper settings - Production tested: 강남역, 홍대입구역 geocoding success
1 parent 46e320b commit fb07e75

File tree

2 files changed

+299
-16
lines changed

2 files changed

+299
-16
lines changed

supabase/.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Supabase
2+
.branches
3+
.temp
4+
5+
# dotenvx
6+
.env.keys
7+
.env.local
8+
.env.*.local

supabase/config.toml

Lines changed: 291 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,315 @@
1-
# A string used to distinguish different Supabase projects on the same machine.
2-
# Not required if you have a single project open.
1+
# For detailed configuration reference documentation, visit:
2+
# https://supabase.com/docs/guides/local-development/cli/config
3+
# A string used to distinguish different Supabase projects on the same host. Defaults to the
4+
# working directory name when running `supabase init`.
35
project_id = "ttbkk-edge"
46

57
[api]
68
enabled = true
79
# Port to use for the API URL.
810
port = 54321
9-
# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API endpoints.
10-
# public and storage are always included.
11-
schemas = ["public", "storage", "graphql_public"]
12-
# Extra schemas to add to the search_path of every request. public is always included.
11+
# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API
12+
# endpoints. `public` and `graphql_public` schemas are included by default.
13+
schemas = ["public", "graphql_public"]
14+
# Extra schemas to add to the search_path of every request.
1315
extra_search_path = ["public", "extensions"]
14-
# The maximum number of rows returned from a table RPC. Limits payload size for accidental or malicious requests.
16+
# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size
17+
# for accidental or malicious requests.
1518
max_rows = 1000
1619

17-
[auth]
18-
enabled = true
19-
# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used
20-
# in emails.
21-
site_url = "http://localhost:3000"
20+
[api.tls]
21+
# Enable HTTPS endpoints locally using a self-signed certificate.
22+
enabled = false
23+
24+
[db]
25+
# Port to use for the local database URL.
26+
port = 54322
27+
# Port used by db diff command to initialize the shadow database.
28+
shadow_port = 54320
29+
# The database major version to use. This has to be the same as your remote database's. Run `SHOW
30+
# server_version;` on the remote database to check.
31+
major_version = 15
32+
33+
[db.pooler]
34+
enabled = false
35+
# Port to use for the local connection pooler.
36+
port = 54329
37+
# Specifies when a server connection can be reused by other clients.
38+
# Configure one of the supported pooler modes: `transaction`, `session`.
39+
pool_mode = "transaction"
40+
# How many server connections to allow per user/database pair.
41+
default_pool_size = 20
42+
# Maximum number of client connections allowed.
43+
max_client_conn = 100
2244

23-
[functions]
24-
# Enable or disable Edge Functions
45+
# [db.vault]
46+
# secret_key = "env(SECRET_VALUE)"
47+
48+
[db.migrations]
49+
# Specifies an ordered list of schema files that describe your database.
50+
# Supports glob patterns relative to supabase directory: "./schemas/*.sql"
51+
schema_paths = []
52+
53+
[db.seed]
54+
# If enabled, seeds the database after migrations during a db reset.
2555
enabled = true
56+
# Specifies an ordered list of seed files to load during db reset.
57+
# Supports glob patterns relative to supabase directory: "./seeds/*.sql"
58+
sql_paths = ["./seed.sql"]
2659

27-
[edge_runtime]
60+
[realtime]
2861
enabled = true
62+
# Bind realtime via either IPv4 or IPv6. (default: IPv4)
63+
# ip_version = "IPv6"
64+
# The maximum length in bytes of HTTP request headers. (default: 4096)
65+
# max_header_length = 4096
2966

3067
[studio]
3168
enabled = true
3269
# Port to use for Supabase Studio.
3370
port = 54323
71+
# External URL of the API server that frontend connects to.
72+
api_url = "http://127.0.0.1"
73+
# OpenAI API Key to use for Supabase AI in the Supabase Studio.
74+
openai_api_key = "env(OPENAI_API_KEY)"
3475

3576
# Email testing server. Emails sent with the local dev setup are not actually sent - rather, they
3677
# are monitored, and you can view the emails that would have been sent from the web interface.
3778
[inbucket]
3879
enabled = true
3980
# Port to use for the email testing server web interface.
40-
port = 54324
81+
port = 54324
82+
# Uncomment to expose additional ports for testing user applications that send emails.
83+
# smtp_port = 54325
84+
# pop3_port = 54326
85+
# admin_email = "admin@email.com"
86+
# sender_name = "Admin"
87+
88+
[storage]
89+
enabled = true
90+
# The maximum file size allowed (e.g. "5MB", "500KB").
91+
file_size_limit = "50MiB"
92+
93+
# Image transformation API is available to Supabase Pro plan.
94+
# [storage.image_transformation]
95+
# enabled = true
96+
97+
# Uncomment to configure local storage buckets
98+
# [storage.buckets.images]
99+
# public = false
100+
# file_size_limit = "50MiB"
101+
# allowed_mime_types = ["image/png", "image/jpeg"]
102+
# objects_path = "./images"
103+
104+
[auth]
105+
enabled = true
106+
# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used
107+
# in emails.
108+
site_url = "http://127.0.0.1:3000"
109+
# A list of *exact* URLs that auth providers are permitted to redirect to post authentication.
110+
additional_redirect_urls = ["https://127.0.0.1:3000"]
111+
# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 (1 week).
112+
jwt_expiry = 3600
113+
# If disabled, the refresh token will never expire.
114+
enable_refresh_token_rotation = true
115+
# Allows refresh tokens to be reused after expiry, up to the specified interval in seconds.
116+
# Requires enable_refresh_token_rotation = true.
117+
refresh_token_reuse_interval = 10
118+
# Allow/disallow new user signups to your project.
119+
enable_signup = true
120+
# Allow/disallow anonymous sign-ins to your project.
121+
enable_anonymous_sign_ins = false
122+
# Allow/disallow testing manual linking of accounts
123+
enable_manual_linking = false
124+
# Passwords shorter than this value will be rejected as weak. Minimum 6, recommended 8 or more.
125+
minimum_password_length = 6
126+
# Passwords that do not meet the following requirements will be rejected as weak. Supported values
127+
# are: `letters_digits`, `lower_upper_letters_digits`, `lower_upper_letters_digits_symbols`
128+
password_requirements = ""
129+
130+
[auth.rate_limit]
131+
# Number of emails that can be sent per hour. Requires auth.email.smtp to be enabled.
132+
email_sent = 2
133+
# Number of SMS messages that can be sent per hour. Requires auth.sms to be enabled.
134+
sms_sent = 30
135+
# Number of anonymous sign-ins that can be made per hour per IP address. Requires enable_anonymous_sign_ins = true.
136+
anonymous_users = 30
137+
# Number of sessions that can be refreshed in a 5 minute interval per IP address.
138+
token_refresh = 150
139+
# Number of sign up and sign-in requests that can be made in a 5 minute interval per IP address (excludes anonymous users).
140+
sign_in_sign_ups = 30
141+
# Number of OTP / Magic link verifications that can be made in a 5 minute interval per IP address.
142+
token_verifications = 30
143+
# Number of Web3 logins that can be made in a 5 minute interval per IP address.
144+
web3 = 30
145+
146+
# Configure one of the supported captcha providers: `hcaptcha`, `turnstile`.
147+
# [auth.captcha]
148+
# enabled = true
149+
# provider = "hcaptcha"
150+
# secret = ""
151+
152+
[auth.email]
153+
# Allow/disallow new user signups via email to your project.
154+
enable_signup = true
155+
# If enabled, a user will be required to confirm any email change on both the old, and new email
156+
# addresses. If disabled, only the new email is required to confirm.
157+
double_confirm_changes = true
158+
# If enabled, users need to confirm their email address before signing in.
159+
enable_confirmations = false
160+
# If enabled, users will need to reauthenticate or have logged in recently to change their password.
161+
secure_password_change = false
162+
# Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email.
163+
max_frequency = "1s"
164+
# Number of characters used in the email OTP.
165+
otp_length = 6
166+
# Number of seconds before the email OTP expires (defaults to 1 hour).
167+
otp_expiry = 3600
168+
169+
# Use a production-ready SMTP server
170+
# [auth.email.smtp]
171+
# enabled = true
172+
# host = "smtp.sendgrid.net"
173+
# port = 587
174+
# user = "apikey"
175+
# pass = "env(SENDGRID_API_KEY)"
176+
# admin_email = "admin@email.com"
177+
# sender_name = "Admin"
178+
179+
# Uncomment to customize email template
180+
# [auth.email.template.invite]
181+
# subject = "You have been invited"
182+
# content_path = "./supabase/templates/invite.html"
183+
184+
[auth.sms]
185+
# Allow/disallow new user signups via SMS to your project.
186+
enable_signup = false
187+
# If enabled, users need to confirm their phone number before signing in.
188+
enable_confirmations = false
189+
# Template for sending OTP to users
190+
template = "Your code is {{ .Code }}"
191+
# Controls the minimum amount of time that must pass before sending another sms otp.
192+
max_frequency = "5s"
193+
194+
# Use pre-defined map of phone number to OTP for testing.
195+
# [auth.sms.test_otp]
196+
# 4152127777 = "123456"
197+
198+
# Configure logged in session timeouts.
199+
# [auth.sessions]
200+
# Force log out after the specified duration.
201+
# timebox = "24h"
202+
# Force log out if the user has been inactive longer than the specified duration.
203+
# inactivity_timeout = "8h"
204+
205+
# This hook runs before a token is issued and allows you to add additional claims based on the authentication method used.
206+
# [auth.hook.custom_access_token]
207+
# enabled = true
208+
# uri = "pg-functions://<database>/<schema>/<hook_name>"
209+
210+
# Configure one of the supported SMS providers: `twilio`, `twilio_verify`, `messagebird`, `textlocal`, `vonage`.
211+
[auth.sms.twilio]
212+
enabled = false
213+
account_sid = ""
214+
message_service_sid = ""
215+
# DO NOT commit your Twilio auth token to git. Use environment variable substitution instead:
216+
auth_token = "env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN)"
217+
218+
# Multi-factor-authentication is available to Supabase Pro plan.
219+
[auth.mfa]
220+
# Control how many MFA factors can be enrolled at once per user.
221+
max_enrolled_factors = 10
222+
223+
# Control MFA via App Authenticator (TOTP)
224+
[auth.mfa.totp]
225+
enroll_enabled = false
226+
verify_enabled = false
227+
228+
# Configure MFA via Phone Messaging
229+
[auth.mfa.phone]
230+
enroll_enabled = false
231+
verify_enabled = false
232+
otp_length = 6
233+
template = "Your code is {{ .Code }}"
234+
max_frequency = "5s"
235+
236+
# Configure MFA via WebAuthn
237+
# [auth.mfa.web_authn]
238+
# enroll_enabled = true
239+
# verify_enabled = true
240+
241+
# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`,
242+
# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin_oidc`, `notion`, `twitch`,
243+
# `twitter`, `slack`, `spotify`, `workos`, `zoom`.
244+
[auth.external.apple]
245+
enabled = false
246+
client_id = ""
247+
# DO NOT commit your OAuth provider secret to git. Use environment variable substitution instead:
248+
secret = "env(SUPABASE_AUTH_EXTERNAL_APPLE_SECRET)"
249+
# Overrides the default auth redirectUrl.
250+
redirect_uri = ""
251+
# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure,
252+
# or any other third-party OIDC providers.
253+
url = ""
254+
# If enabled, the nonce check will be skipped. Required for local sign in with Google auth.
255+
skip_nonce_check = false
256+
257+
# Allow Solana wallet holders to sign in to your project via the Sign in with Solana (SIWS, EIP-4361) standard.
258+
# You can configure "web3" rate limit in the [auth.rate_limit] section and set up [auth.captcha] if self-hosting.
259+
[auth.web3.solana]
260+
enabled = false
261+
262+
# Use Firebase Auth as a third-party provider alongside Supabase Auth.
263+
[auth.third_party.firebase]
264+
enabled = false
265+
# project_id = "my-firebase-project"
266+
267+
# Use Auth0 as a third-party provider alongside Supabase Auth.
268+
[auth.third_party.auth0]
269+
enabled = false
270+
# tenant = "my-auth0-tenant"
271+
# tenant_region = "us"
272+
273+
# Use AWS Cognito (Amplify) as a third-party provider alongside Supabase Auth.
274+
[auth.third_party.aws_cognito]
275+
enabled = false
276+
# user_pool_id = "my-user-pool-id"
277+
# user_pool_region = "us-east-1"
278+
279+
# Use Clerk as a third-party provider alongside Supabase Auth.
280+
[auth.third_party.clerk]
281+
enabled = false
282+
# Obtain from https://clerk.com/setup/supabase
283+
# domain = "example.clerk.accounts.dev"
284+
285+
[edge_runtime]
286+
enabled = true
287+
# Configure one of the supported request policies: `oneshot`, `per_worker`.
288+
# Use `oneshot` for hot reload, or `per_worker` for load testing.
289+
policy = "oneshot"
290+
# Port to attach the Chrome inspector for debugging edge functions.
291+
inspector_port = 8083
292+
# The Deno major version to use.
293+
deno_version = 1
294+
295+
# [edge_runtime.secrets]
296+
# secret_key = "env(SECRET_VALUE)"
297+
298+
[analytics]
299+
enabled = true
300+
port = 54327
301+
# Configure one of the supported backends: `postgres`, `bigquery`.
302+
backend = "postgres"
303+
304+
# Experimental features may be deprecated any time
305+
[experimental]
306+
# Configures Postgres storage engine to use OrioleDB (S3)
307+
orioledb_version = ""
308+
# Configures S3 bucket URL, eg. <bucket_name>.s3-<region>.amazonaws.com
309+
s3_host = "env(S3_HOST)"
310+
# Configures S3 bucket region, eg. us-east-1
311+
s3_region = "env(S3_REGION)"
312+
# Configures AWS_ACCESS_KEY_ID for S3 bucket
313+
s3_access_key = "env(S3_ACCESS_KEY)"
314+
# Configures AWS_SECRET_ACCESS_KEY for S3 bucket
315+
s3_secret_key = "env(S3_SECRET_KEY)"

0 commit comments

Comments
 (0)