Complete Config Reference¶
Verified status as of March 28, 2026.
This page is a practical reference for the config keys that show up across FastFN docs and examples.
Quick View¶
- Complexity: Reference
- Typical time: 10-20 minutes
- Use this when: you want one place to look up both global and function-level config
- Outcome: you can tell whether a setting belongs in
fastfn.json,fn.config.json, or an environment variable
Global config: fastfn.json¶
| Key | Type | What it controls |
|---|---|---|
functions-dir |
string |
Default functions root |
public-base-url |
string |
Canonical OpenAPI server URL |
openapi-include-internal |
boolean |
Whether internal endpoints appear in OpenAPI |
force-url |
boolean |
Global route override behavior |
domains |
array |
Input for doctor domains checks |
runtime-daemons |
object or string |
Per-runtime daemon counts |
runtime-binaries |
object or string |
Host executables to use |
hot-reload |
boolean |
Enable or disable hot reload |
Function config: fn.config.json¶
| Key | Type | What it controls |
|---|---|---|
runtime |
string |
Explicit runtime for a function root |
name |
string |
Function name shown in discovery and routes |
entrypoint |
string |
Explicit handler file |
assets |
object |
Static asset behavior for the root |
home |
object |
Folder-level home alias behavior |
invoke |
object |
Route methods, docs metadata, and invoke policy |
schedule |
object |
Cron or interval style scheduling |
worker_pool |
object |
Per-function queue and concurrency control |
edge |
object |
Edge proxy forwarding rules |
strict_fs |
boolean |
Function-level strict filesystem sandbox toggle |
zero_config |
object |
Zero-config discovery knobs such as ignore dirs |
zero_config_ignore_dirs |
array or string |
Compatibility alias for extra ignored directories |
Nested blocks worth knowing¶
assets¶
Common fields:
directorynot_found_handlingrun_worker_first
Typical use:
{
"assets": {
"directory": "public",
"not_found_handling": "single-page-application",
"run_worker_first": false
}
}
invoke¶
Common fields:
methodssummaryquerybodyforce_url
Typical use:
schedule¶
Common fields:
enabled— boolean, must betruefor the schedule to fireevery_seconds— interval trigger (fires every N seconds, aligned to boundaries)cron— cron expression (5 or 6 fields, plus macros like@daily)timezone— timezone for cron expressions (e.g."UTC","-05:00")method— HTTP method to use when invoking (default"GET")query— query parameters passed to the handlerheaders— headers passed to the handlerbody— request body passed to the handlercontext— context object passed to the handlerretry— retry config:max_attempts,base_delay_seconds,max_delay_seconds,jitter
Typical use:
{
"schedule": {
"every_seconds": 60,
"enabled": true,
"method": "GET",
"query": {"action": "tick"}
}
}
{
"schedule": {
"cron": "0 9 * * *",
"timezone": "UTC",
"enabled": true,
"retry": {"max_attempts": 3, "base_delay_seconds": 5}
}
}
Zero-config limitation
Schedules only work for functions in the runtime catalog. Pure zero-config file-based routes are not seen by the scheduler. Use runtime-scoped directories or explicit keys in fn.config.json.
shared_deps¶
A top-level array listing shared dependency packs to load:
Packs are resolved from <functions_root>/.fastfn/packs/<runtime>/<pack_name>/. Each pack is a directory with its own dependency files (requirements.txt, package.json, etc.) and is made available to the handler at invocation time.
worker_pool¶
Common fields:
enabledmax_workersmin_warmidle_ttl_seconds
edge¶
Used for responses that proxy/forward upstream traffic instead of returning a normal function payload.
Practical precedence¶
- CLI flags and explicit command arguments
- Environment variables
fastfn.jsonfn.config.json- Runtime defaults
If you are unsure where a setting belongs, check the examples first and then the environment variable reference.