81 lines
1.8 KiB
Markdown
81 lines
1.8 KiB
Markdown
|
|
# Platform Values
|
||
|
|
|
||
|
|
Constants, limits, defaults, and enumeration values.
|
||
|
|
|
||
|
|
## Value Files
|
||
|
|
|
||
|
|
### Limits (`limits.ncl`)
|
||
|
|
|
||
|
|
Platform limits and constraints:
|
||
|
|
- Port limits (1024-65535)
|
||
|
|
- Connection limits per mode
|
||
|
|
- Worker thread limits
|
||
|
|
- Agent instance limits
|
||
|
|
- Timeout limits
|
||
|
|
- Pool size limits
|
||
|
|
- Storage limits
|
||
|
|
|
||
|
|
Example:
|
||
|
|
```nickel
|
||
|
|
let limits = import "values/limits.ncl" in
|
||
|
|
let max_workers = limits.workers.max # 32
|
||
|
|
```
|
||
|
|
|
||
|
|
### Defaults (`defaults.ncl`)
|
||
|
|
|
||
|
|
Default values applied to all modes:
|
||
|
|
- Server defaults (host, port, workers)
|
||
|
|
- Database defaults (URL, credentials)
|
||
|
|
- Monitoring defaults (log level, metrics)
|
||
|
|
- Security defaults (TLS disabled by default)
|
||
|
|
- Storage defaults (paths, backup settings)
|
||
|
|
|
||
|
|
Example:
|
||
|
|
```nickel
|
||
|
|
let defaults = import "values/defaults.ncl" in
|
||
|
|
let default_port = defaults.server.port # 8080
|
||
|
|
```
|
||
|
|
|
||
|
|
### Ranges (`ranges.ncl`)
|
||
|
|
|
||
|
|
Enumeration values and valid ranges:
|
||
|
|
- Log levels: [trace, debug, info, warn, error]
|
||
|
|
- Auth methods: [jwt, oauth2, mfa]
|
||
|
|
- Storage backends: [filesystem, s3, azure]
|
||
|
|
- Budget windows: [daily, weekly, monthly]
|
||
|
|
- LLM providers: [claude, openai, gemini, ollama]
|
||
|
|
- Deployment modes: [solo, multiuser, enterprise]
|
||
|
|
- Protocol schemes: [ws, wss, http, https, file]
|
||
|
|
|
||
|
|
Example:
|
||
|
|
```nickel
|
||
|
|
let ranges = import "values/ranges.ncl" in
|
||
|
|
let valid_modes = ranges.deployment_modes # ["solo", "multiuser", "enterprise"]
|
||
|
|
```
|
||
|
|
|
||
|
|
## Usage Pattern
|
||
|
|
|
||
|
|
```nickel
|
||
|
|
let limits = import "values/limits.ncl" in
|
||
|
|
let defaults = import "values/defaults.ncl" in
|
||
|
|
let ranges = import "values/ranges.ncl" in
|
||
|
|
|
||
|
|
# Check against limits
|
||
|
|
assert port > limits.port.min && port < limits.port.max
|
||
|
|
|
||
|
|
# Use defaults
|
||
|
|
let config = {
|
||
|
|
port = defaults.server.port,
|
||
|
|
workers = 4,
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validate enum
|
||
|
|
assert std.array.contains ranges.log_levels "info"
|
||
|
|
```
|
||
|
|
|
||
|
|
## References
|
||
|
|
|
||
|
|
- Parent: `../README.md`
|
||
|
|
- Constraints: `../constraints/README.md`
|
||
|
|
- Validators: `../validators/README.md`
|