mirror of
https://github.com/supabase/supabase.git
synced 2026-10-07 18:35:07 +03:00
## Summary - No public doc previously covered what to do when a project hits the 100-secret cap for Edge Functions. Adds a troubleshooting entry documenting the JSON-bundling workaround. - Cross-links the new entry from the Secrets section of `functions/limits.mdx`. ## Sourcing / context - Internal Slack (Jul 2): https://supabase.slack.com/archives/C02KMRX22NR/p1783003062600709?thread_ts=1783002978.740289&cid=C02KMRX22NR — workaround first suggested (Kalleby). - Internal Slack (Aug 19): https://supabase.slack.com/archives/C0BMQHEU6N6/p1787139772204509?thread_ts=1787098919.509189&cid=C0BMQHEU6N6 — functions team reconfirms no override path exists; workaround independently recommended again. - The JSON-bundling pattern mirrors how Supabase's own default secrets already work (`SUPABASE_PUBLISHABLE_KEYS` / `SUPABASE_SECRET_KEYS` in `functions/secrets.mdx`), so this isn't a novel pattern for the platform. - Prompted by support ticket SU-473846. ## Test plan - [x] `pnpm --filter docs lint:mdx` passes with no warnings on either changed file - [ ] New page renders correctly under `/docs/guides/troubleshooting` - [ ] Link from `functions/limits.mdx` resolves <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Added guidance for working around the 100-secret Edge Functions limit by bundling related credentials into a single JSON secret. - Documented JSON secret setup, parsing, replacement behavior, shell quoting, environment files, and the 48 KiB per-secret size limit. - Clarified that JSON bundling does not bypass the per-secret size limit. - Explained when to use Supabase Vault for row- or user-specific secrets, including database round trips and potential latency. - Linked the workaround guide from the Edge Functions limits documentation. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: Miranda Limonczenko <miranda.limonczenko@supabase.io>
45 lines
2.2 KiB
Plaintext
45 lines
2.2 KiB
Plaintext
---
|
||
id: 'functions-limits'
|
||
title: 'Limits'
|
||
description: "Limits applied Edge Functions in Supabase's hosted platform."
|
||
subtitle: "Limits applied Edge Functions in Supabase's hosted platform."
|
||
---
|
||
|
||
## Runtime limits
|
||
|
||
- Maximum Memory: 256MB
|
||
- Maximum Duration (Wall clock limit):
|
||
This is the duration an Edge Function worker will stay active. During this period, a worker can serve multiple requests or process background tasks.
|
||
- Free plan: 150s
|
||
- Paid plans: 400s
|
||
- Maximum CPU Time: 2s (Amount of actual time spent on the CPU per request - does not include async I/O.)
|
||
- Request idle timeout: 150s (If an Edge Function doesn't send a response before the timeout, 504 Gateway Timeout will be returned)
|
||
|
||
## Platform limits
|
||
|
||
- Maximum Function Size: 20MB (bundled locally via the CLI) or 5MB (bundled server-side, e.g. via the Management API or Dashboard)
|
||
- Maximum no. of Functions per project:
|
||
- Free: 100
|
||
- Pro: 1000
|
||
- Team: 2000
|
||
- Enterprise: Unlimited
|
||
- Maximum log message length: 10,000 characters
|
||
- Log event threshold: 100 events per 10 seconds
|
||
- Recursive/Nested Function Calling: ~5000 requests per minute [more details](/docs/guides/functions/recursive-functions)
|
||
|
||
### Secrets
|
||
|
||
- Maximum number of secrets per project: **100**
|
||
- Secret name length: up to **256** characters
|
||
- Maximum secret size: **48 KiB** (**24,576** characters)
|
||
- Names must NOT start with the prefix `SUPABASE_` (this prefix is reserved).
|
||
- Need more than 100 secrets? [Bundle secrets into a JSON value](/docs/guides/troubleshooting/working-around-the-edge-function-secrets-limit).
|
||
|
||
## Other limits & restrictions
|
||
|
||
- Outgoing connections to ports `25` and `587` are not allowed.
|
||
- Serving of HTML content is only supported with [custom domains](/docs/reference/cli/supabase-domains) (Otherwise `GET` requests that return `text/html` will be rewritten to `text/plain`).
|
||
- Web Worker API (or Node `vm` API) are not available.
|
||
- Static files cannot be deployed using the API flag. You need to build them with [Docker on the CLI](/docs/guides/functions/quickstart#step-6-deploy-to-production).
|
||
- Node Libraries that require multithreading are not supported. Examples: [`libvips`](https://github.com/libvips/libvips), [sharp](https://github.com/lovell/sharp).
|