Configuration fields
Jiandu configuration files are versioned JSON and reject unknown keys. The complete contract—including types, defaults, bounds, environment and command-line aliases, secret markers, and restart requirements—is the release-pinned JSON Schema.
Use the matching default values and example configuration from the same revision.
Top-level groups
| Group | Purpose | Common decisions |
|---|---|---|
schema_version | Selects the closed configuration contract | Keep the documented value; do not guess future versions |
| data directory | Installation state and default local paths | Persistent, private directory owned by the Jiandu account |
server | Listener, timeout, and ingress trust boundary | Loopback evaluation or complete HTTPS reverse-proxy boundary |
database | SQLite or PostgreSQL connection and limits | Backend, protected URL file, TLS verification, bounded pool |
| storage/blob settings | Original and artifact storage | Local, S3-compatible, or WebDAV; work directory and namespace |
| authentication | Owner token, sessions, passkeys, external providers | Stable provider IDs and secret file references |
| connectors/capture | Email, watched roots, scanner and agent boundaries | Narrow sources, explicit network/path allowlists |
| resources | Intake and processing safeguards | Upload/page/image compatibility bounds and worker concurrency |
| telemetry | Local logs, remote consent, exporter and limits | Remote off unless deliberately enabled |
| plugins | Reviewed local runtime policy | Disabled by default; file-only expert configuration |
Precedence and validation
defaults < JSON file < environment < command line
Validate the effective configuration before restart:
jiandu --config /etc/jiandu/jiandu.json --check-config
All current settings require restart. --check-config may validate protected paths and deployment boundaries; run it as the same account and in the same filesystem/secret environment as the service.
Secrets
Fields marked as secret references expect a protected file path, not an inline value. Jiandu also rejects group/other-writable sensitive state. Keep example JSON secret-free so it can be reviewed safely.