// Plugin development
config schema
dynamic config forms the host renders for each instance.
config schema
configSchema is an array of fields. the host renders this as a dynamic form when creating or editing a server instance — plugins never build their own config ui for the basics. the resolved values become userOverrides, available to lifecycle and scaffold via {{userOverrides.*}}.
field types
jsonc"configSchema": [ { "key": "port", "label": "Port", "type": "text", "default": "3000" }, { "key": "log_level", "label": "Log Level", "type": "select", "options": ["debug","info","warn","error"], "default": "info" }, { "key": "max_connections", "label": "Max Connections", "type": "text", "default": "100" } ]
| field | type | notes | |
|---|---|---|---|
key | string | the userOverrides key. | |
label | string | shown in the form. | |
type | "text" \ | "select" | the two supported types today. |
default | string | used on fresh instances. | |
options | string[] | only for select. |
dependsOn — cascading defaults
fields may declare dependsOn to cascade defaults when another field changes. for example, a plugin can use this so that picking a runtime adjusts the suggested entry file and build command.
// note
keep config fields minimal. every field is one more decision a user has to make to get a server running. ship sensible defaults.