You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.4 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "phase6/live_config.schema.json",
"title": "Phase6LiveConfig",
"type": "object",
"required": [
"env",
"mode",
"broker",
"session",
"risk_limits",
"approval",
"reconciliation",
"alerts"
],
"properties": {
"env": {"type": "string", "enum": ["dev", "staging", "prod"]},
"mode": {"type": "string", "enum": ["dry_run", "paper", "live"]},
"broker": {
"type": "object",
"required": ["name", "account_profile"],
"properties": {
"name": {"type": "string"},
"account_profile": {"type": "string"},
"stream_enabled": {"type": "boolean", "default": true}
},
"additionalProperties": true
},
"session": {
"type": "object",
"required": ["timezone", "entry_start", "entry_end"],
"properties": {
"timezone": {"type": "string"},
"entry_start": {"type": "string"},
"entry_end": {"type": "string"},
"allow_half_day": {"type": "boolean", "default": false}
},
"additionalProperties": false
},
"risk_limits": {
"type": "object",
"required": ["max_positions", "max_daily_loss_pct"],
"properties": {
"max_positions": {"type": "integer", "minimum": 1},
"max_daily_loss_pct": {"type": "number", "minimum": 0},
"max_sector_positions": {"type": "integer", "minimum": 1},
"max_gross_exposure_pct": {"type": "number", "minimum": 0}
},
"additionalProperties": true
},
"approval": {
"type": "object",
"required": ["mode"],
"properties": {
"mode": {"type": "string", "enum": ["approval_required", "approval_optional", "auto"]},
"ticket_ttl_seconds": {"type": "integer", "minimum": 1}
},
"additionalProperties": false
},
"reconciliation": {
"type": "object",
"required": ["interval_seconds"],
"properties": {
"interval_seconds": {"type": "integer", "minimum": 1},
"full_sync_on_startup": {"type": "boolean", "default": true}
},
"additionalProperties": false
},
"alerts": {
"type": "object",
"required": ["enabled"],
"properties": {
"enabled": {"type": "boolean"},
"channels": {"type": "array", "items": {"type": "string"}}
},
"additionalProperties": true
}
},
"additionalProperties": false
}