Bird
Raised Fist0
Supabasecloud~10 mins

Environment management in Supabase - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Environment management
Start: Define environments
↓
Create environment variables
↓
Assign variables to environment
↓
Deploy application
↓
Application reads env variables
↓
Use different env for dev, test, prod
↓
Update env variables as needed
↓
Redeploy or refresh app to apply changes
This flow shows how environment variables are defined, assigned, and used in Supabase projects to manage different settings for development, testing, and production.
Execution Sample
Supabase
1. Define SUPABASE_URL and SUPABASE_KEY
2. Set them in Supabase project settings
3. Deploy app referencing these variables
4. App reads variables at runtime
5. Change variables for different environments
This sample shows the steps to manage environment variables in Supabase for different deployment stages.
Process Table
StepActionEnvironment VariableValue SetEffect on App
1Define variableSUPABASE_URLhttps://xyz.supabase.coApp will connect to this URL
2Define variableSUPABASE_KEYpublic-anonymous-keyApp will authenticate with this key
3Assign variablesSUPABASE_URL & SUPABASE_KEYSet in Supabase project settingsVariables available to app at runtime
4Deploy appN/AUses assigned env variablesApp connects to correct Supabase instance
5App runtimeReads SUPABASE_URLhttps://xyz.supabase.coConnects to database
6App runtimeReads SUPABASE_KEYpublic-anonymous-keyAuthenticates requests
7Change env for prodSUPABASE_URLhttps://prod.supabase.coApp connects to production DB
8Redeploy appN/AUses new env variablesApp uses updated environment
9ExitN/AN/AEnvironment management complete
💡 All environment variables set and app deployed with correct environment settings
Status Tracker
VariableStartAfter Step 1After Step 3After Step 7Final
SUPABASE_URLundefinedhttps://xyz.supabase.cohttps://xyz.supabase.cohttps://prod.supabase.cohttps://prod.supabase.co
SUPABASE_KEYundefinedpublic-anonymous-keypublic-anonymous-keypublic-anonymous-keypublic-anonymous-key
Key Moments - 2 Insights
Why do we set environment variables in the project settings instead of hardcoding them?
Setting variables in project settings keeps sensitive info secure and allows easy changes without modifying code, as shown in steps 2 and 3 of the execution_table.
What happens if we forget to redeploy the app after changing environment variables?
The app will keep using old variables until redeployed, so changes in step 7 won't take effect until step 8, as seen in the execution_table.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of SUPABASE_URL after step 3?
Ahttps://xyz.supabase.co
Bundefined
Chttps://prod.supabase.co
Dpublic-anonymous-key
💡 Hint
Check the 'Value Set' column at step 3 in the execution_table
At which step does the app start using the production database URL?
AStep 4
BStep 7
CStep 8
DStep 5
💡 Hint
Look for when the app redeploys with new environment variables in the execution_table
If SUPABASE_KEY was changed to a new key at step 7 but the app was not redeployed, what would happen?
AApp uses new key immediately
BApp continues using old key
CApp crashes
DApp ignores the key
💡 Hint
Refer to key moment about redeploying after env changes and execution_table steps 7 and 8
Concept Snapshot
Environment management in Supabase:
- Define variables like SUPABASE_URL and SUPABASE_KEY
- Set them securely in project settings
- Deploy app referencing these variables
- Use different variables for dev, test, prod
- Redeploy app to apply changes
- Keeps config secure and flexible
Full Transcript
Environment management in Supabase involves defining environment variables such as SUPABASE_URL and SUPABASE_KEY. These variables are set securely in the project settings, not hardcoded in the app. When the app is deployed, it reads these variables at runtime to connect and authenticate with the correct Supabase instance. Different environments like development and production use different variable values. After changing environment variables, the app must be redeployed to apply the new settings. This process keeps sensitive information secure and allows easy configuration changes without modifying the app code.

Practice

(1/5)
1. What is the main purpose of using different environments in Supabase projects?
easy
A. To separate app setups for safety and organization
B. To increase the speed of the database
C. To reduce the size of the project files
D. To allow multiple users to edit the same data simultaneously

Solution

  1. Step 1: Understand environment roles

    Different environments like development, testing, and production keep setups separate.
  2. Step 2: Identify the main benefit

    This separation helps keep data safe and organized, avoiding mistakes.
  3. Final Answer:

    To separate app setups for safety and organization -> Option A
  4. Quick Check:

    Environment separation = safety and organization [OK]
Hint: Think safety and order when you hear 'environment' [OK]
Common Mistakes:
  • Confusing environment with database speed
  • Thinking environment reduces project size
  • Believing environment allows simultaneous data edits
2. Which of the following is the correct way to set an environment variable in Supabase CLI?
easy
A. supabase env create API_KEY=12345
B. supabase set-env API_KEY 12345
C. supabase env add API_KEY 12345
D. supabase env set API_KEY=12345

Solution

  1. Step 1: Recall Supabase CLI syntax

    The correct command to set environment variables uses 'env set' followed by key=value.
  2. Step 2: Match the correct syntax

    supabase env set API_KEY=12345 matches this pattern exactly: 'supabase env set API_KEY=12345'.
  3. Final Answer:

    supabase env set API_KEY=12345 -> Option D
  4. Quick Check:

    Set env variable = 'env set key=value' [OK]
Hint: Remember: 'env set' plus key=value sets variables [OK]
Common Mistakes:
  • Using 'set-env' instead of 'env set'
  • Using 'env add' which is invalid
  • Using 'env create' which is not a command
3. Given this Supabase environment setup code snippet:
supabase env list
supabase env set API_URL=https://dev.api.com
supabase env get API_URL

What will be the output of the last command?
medium
A. API_URL not found
B. https://dev.api.com
C. https://prod.api.com
D. Error: command not recognized

Solution

  1. Step 1: Understand the commands

    The first command lists environment variables, the second sets API_URL to 'https://dev.api.com'.
  2. Step 2: Check the get command output

    The last command retrieves the value of API_URL, which was set just before.
  3. Final Answer:

    https://dev.api.com -> Option B
  4. Quick Check:

    Get env variable = last set value [OK]
Hint: Get returns the last set value for the variable [OK]
Common Mistakes:
  • Expecting default or production URL instead
  • Thinking the variable is not found
  • Assuming command syntax error
4. You tried to access an environment variable in your Supabase project but got an empty value. Which of these is the most likely cause?
medium
A. Your internet connection is down
B. You used the wrong database password
C. You forgot to set the variable using supabase env set
D. You deployed to the wrong region

Solution

  1. Step 1: Identify cause of empty env variable

    An empty environment variable usually means it was never set or loaded.
  2. Step 2: Match cause to options

    Forgetting to set it with 'supabase env set' is the most direct cause.
  3. Final Answer:

    You forgot to set the variable using supabase env set -> Option C
  4. Quick Check:

    Empty env variable = not set [OK]
Hint: Empty env? Check if you set it first [OK]
Common Mistakes:
  • Blaming unrelated issues like internet or region
  • Confusing env variables with database passwords
  • Assuming deployment region affects env variables
5. You want to keep your production and development environments completely separate in Supabase. Which approach best achieves this?
hard
A. Create two separate Supabase projects, one for production and one for development
B. Use one project and switch environment variables manually before each deploy
C. Store all environment variables in a single file and comment out unused ones
D. Use the same database but different tables for production and development

Solution

  1. Step 1: Understand environment separation needs

    Complete separation means no shared resources or data between environments.
  2. Step 2: Evaluate options for separation

    Creating two separate projects ensures full isolation of data, secrets, and settings.
  3. Step 3: Identify drawbacks of other options

    Switching variables manually or sharing database risks mistakes and leaks.
  4. Final Answer:

    Create two separate Supabase projects, one for production and one for development -> Option A
  5. Quick Check:

    Separate projects = full environment isolation [OK]
Hint: Separate projects keep environments fully isolated [OK]
Common Mistakes:
  • Relying on manual variable switching
  • Sharing database tables between environments
  • Using one file with commented variables
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard