Add HTTP size limits
This commit is contained in:
@@ -35,6 +35,9 @@ schema_dir: /opt/scriptorium/schemas
|
||||
server:
|
||||
addr: 127.0.0.1:8080
|
||||
artifact_root: /var/lib/scriptorium/artifacts
|
||||
max_request_bytes: 16777216
|
||||
max_artifact_bytes: 16777216
|
||||
max_response_bytes: 16777216
|
||||
|
||||
defaults:
|
||||
render_format: text
|
||||
@@ -49,6 +52,9 @@ Top-level fields:
|
||||
- `schema_dir` (optional): base directory for schema files used by `json_schema` validation.
|
||||
- `server.addr` (optional): default listen address for `serve`.
|
||||
- `server.artifact_root` (optional): base directory for HTTP `file` input references.
|
||||
- `server.max_request_bytes` (optional): maximum HTTP request body size. `0` disables this limit.
|
||||
- `server.max_artifact_bytes` (optional): maximum HTTP `file` input artifact size. `0` disables this limit.
|
||||
- `server.max_response_bytes` (optional): maximum encoded HTTP response body size. `0` disables this limit.
|
||||
- `defaults.render_format` (optional): default `render` output format (`text` or `json`).
|
||||
|
||||
Built-in defaults:
|
||||
@@ -56,11 +62,15 @@ Built-in defaults:
|
||||
- `schema_dir`: `.`
|
||||
- `server.addr`: `:8080`
|
||||
- `server.artifact_root`: unset; HTTP `file` input references are rejected until configured.
|
||||
- `server.max_request_bytes`: `16777216` (16 MiB)
|
||||
- `server.max_artifact_bytes`: `16777216` (16 MiB)
|
||||
- `server.max_response_bytes`: `16777216` (16 MiB)
|
||||
- `defaults.render_format`: `text`
|
||||
|
||||
Validation behavior:
|
||||
|
||||
- Config decoding is strict; unknown YAML fields are rejected.
|
||||
- HTTP size limit values must be greater than or equal to `0`.
|
||||
- Raw API key fields are not supported in `config.yml`.
|
||||
|
||||
HTTP artifact root behavior:
|
||||
@@ -72,6 +82,13 @@ HTTP artifact root behavior:
|
||||
- Symlinks inside the root are followed by the operating system; do not make the artifact root writable by untrusted users.
|
||||
- CLI `run` and `render` file inputs keep their normal direct filesystem path behavior.
|
||||
|
||||
HTTP size-limit behavior:
|
||||
|
||||
- The request limit covers the encoded JSON request body, including inline input bodies.
|
||||
- The artifact limit covers HTTP `file` input artifacts read through `serve`.
|
||||
- The response limit covers the final encoded JSON response, including generated artifact bodies and `raw_model_output` when requested.
|
||||
- Limits apply only to HTTP `serve`; CLI `run` and `render` keep direct filesystem behavior.
|
||||
|
||||
## Prompt Definition Files
|
||||
|
||||
Prompt definitions are YAML files anywhere under `prompt_dir`, including nested subdirectories.
|
||||
|
||||
Reference in New Issue
Block a user