Project Settings
Configure storage, SMTP, auth, and other project settings.
Each project has configurable settings for storage, email, authentication, and more. Changes require a project restart.
Accessing Settings
Via Web UI
- Click on a project
- Go to Settings tab
- Select the category
- Make changes
- Click Save and restart
Via API
# Get all settings curl https://supascale.example.com/api/v1/projects/my-project/settings \ -H "X-API-Key: your-api-key" # Get specific category curl "https://supascale.example.com/api/v1/projects/my-project/settings?category=smtp" \ -H "X-API-Key: your-api-key"
Storage Settings
Configure file storage behavior:
| Setting | Description | Default |
|---|---|---|
| File Size Limit | Maximum upload size | 50MB |
| Image Transformation | Enable imgproxy | Disabled |
Update via API
curl -X PUT https://supascale.example.com/api/v1/projects/my-project/settings \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"category": "storage",
"settings": {
"fileSizeLimit": "100MB"
}
}'
SMTP Settings
Configure email delivery for authentication:
| Setting | Description | Example |
|---|---|---|
| Host | SMTP server | smtp.sendgrid.net |
| Port | SMTP port | 587 |
| User | SMTP username | apikey |
| Password | SMTP password | SG.xxx |
| Sender Name | From name | My App |
| Sender Email | From address | noreply@example.com |
Example Configurations
SendGrid
{
"category": "smtp",
"settings": {
"host": "smtp.sendgrid.net",
"port": 587,
"user": "apikey",
"password": "your-sendgrid-api-key",
"senderName": "My Application",
"senderEmail": "noreply@myapp.com"
}
}
Mailgun
{
"category": "smtp",
"settings": {
"host": "smtp.mailgun.org",
"port": 587,
"user": "postmaster@mg.yourdomain.com",
"password": "your-mailgun-password",
"senderName": "My Application",
"senderEmail": "noreply@mg.yourdomain.com"
}
}
Gmail
{
"category": "smtp",
"settings": {
"host": "smtp.gmail.com",
"port": 587,
"user": "your-email@gmail.com",
"password": "your-app-password",
"senderName": "My Application",
"senderEmail": "your-email@gmail.com"
}
}
For Gmail, use an App Password instead of your regular password.
Auth Settings
Configure authentication behavior:
| Setting | Description | Default |
|---|---|---|
| Site URL | Redirect URL after auth | Project URL |
| JWT Expiry | Token lifetime (seconds) | 3600 |
| Disable Signup | Prevent new registrations | false |
| Email Confirm | Require email verification | true |
Update via API
curl -X PUT https://supascale.example.com/api/v1/projects/my-project/settings \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"category": "auth",
"settings": {
"siteUrl": "https://myapp.com",
"jwtExpiry": 7200,
"disableSignup": false,
"emailConfirmRequired": true
}
}'
Connection Pooler Settings
Configure PgBouncer (requires pooler service enabled):
| Setting | Description | Default |
|---|---|---|
| Pool Mode | Connection pooling mode | transaction |
| Default Pool Size | Connections per user/db | 20 |
| Max Client Connections | Maximum client connections | 100 |
Pool Modes:
- session - Connection held for entire session
- transaction - Connection released after transaction
- statement - Connection released after each statement
Update via API
curl -X PUT https://supascale.example.com/api/v1/projects/my-project/settings \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"category": "pooler",
"settings": {
"poolMode": "transaction",
"defaultPoolSize": 25,
"maxClientConnections": 200
}
}'
API Settings
Configure REST API behavior:
| Setting | Description | Default |
|---|---|---|
| Max Rows | Maximum rows returned | 1000 |
| DB Schema | Exposed schemas | public |
Update via API
curl -X PUT https://supascale.example.com/api/v1/projects/my-project/settings \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"category": "api",
"settings": {
"maxRows": 2000,
"dbSchema": "public,api"
}
}'
Applying Changes
After modifying settings:
- Click Save Changes (UI) or make API call
- Restart the project for changes to take effect
# Via API curl -X POST https://supascale.example.com/api/v1/projects/my-project/stop \ -H "X-API-Key: your-api-key" curl -X POST https://supascale.example.com/api/v1/projects/my-project/start \ -H "X-API-Key: your-api-key"
Viewing Current Settings
Settings are returned with sensitive values masked:
curl https://supascale.example.com/api/v1/projects/my-project/settings \ -H "X-API-Key: your-api-key"
Response:
{
"storage": {
"fileSizeLimit": "50MB"
},
"smtp": {
"host": "smtp.sendgrid.net",
"port": 587,
"user": "apikey",
"password": "********",
"senderName": "My App",
"senderEmail": "noreply@example.com"
},
"auth": {
"siteUrl": "https://myapp.com",
"jwtExpiry": 3600
}
}
Best Practices
- Test SMTP before enabling email confirmation
- Use environment-specific settings for dev/staging/prod
- Document your configuration for team reference
- Backup settings before major changes