summaryrefslogtreecommitdiff
path: root/config.control.example.json
diff options
context:
space:
mode:
authorChia <Chia@93.nz>2026-08-05 22:01:29 +1200
committerChia <Chia@93.nz>2026-08-05 22:07:50 +1200
commiteadb2ffe85c43cf6fc741c9823cd28eedb4a844c (patch)
tree1aba2536d57360da403aa35c9ced58b615c7064e /config.control.example.json
parentcd0dd91ab93653631904f2ea0e574ccde6d60339 (diff)
feat: harden prepaid billing and commercial operations
Diffstat (limited to 'config.control.example.json')
-rw-r--r--config.control.example.json23
1 files changed, 22 insertions, 1 deletions
diff --git a/config.control.example.json b/config.control.example.json
index 2b05636..58ef2e7 100644
--- a/config.control.example.json
+++ b/config.control.example.json
@@ -1,6 +1,14 @@
{
"server": {
"address_env": "AIGW_SERVER_ADDRESS",
+ "split_listeners": true,
+ "public_address_env": "AIGW_PUBLIC_ADDRESS",
+ "admin_address_env": "AIGW_ADMIN_ADDRESS",
+ "webhook_address_env": "AIGW_WEBHOOK_ADDRESS",
+ "operations_address_env": "AIGW_OPERATIONS_ADDRESS",
+ "trusted_proxy_cidrs_env": "AIGW_TRUSTED_PROXY_CIDRS",
+ "require_https_env": "AIGW_REQUIRE_HTTPS",
+ "deployment_region_env": "AIGW_DEPLOYMENT_REGION",
"max_body_bytes": 16777216,
"read_header_timeout_seconds": 10,
"idle_timeout_seconds": 120,
@@ -14,6 +22,7 @@
"database_url_env": "AIGW_DATABASE_URL",
"redis_url_env": "AIGW_REDIS_URL",
"credential_key_env": "AIGW_CREDENTIAL_KEY",
+ "previous_credential_keys_env": "AIGW_CREDENTIAL_PREVIOUS_KEYS",
"redis_channel": "aigw:control:changed",
"snapshot_cache_key": "aigw:control:generation",
"reload_interval_seconds": 30,
@@ -25,6 +34,8 @@
"base_path": "/admin",
"registration_enabled": true,
"session_ttl_hours": 12,
+ "audit_retention_days": 2555,
+ "security_retention_days": 30,
"public_url_env": "AIGW_PUBLIC_URL",
"mail": {
"enabled": true,
@@ -33,6 +44,11 @@
"smtp_address_env": "AIGW_SMTP_ADDRESS",
"smtp_username_env": "AIGW_SMTP_USERNAME",
"smtp_password_env": "AIGW_SMTP_PASSWORD",
+ "feedback_secret_env": "AIGW_MAIL_FEEDBACK_SECRET",
+ "low_balance_micros": 5000000,
+ "spend_anomaly_multiplier": 3,
+ "spend_anomaly_min_micros": 10000000,
+ "notification_interval_seconds": 300,
"tls_mode": "none"
},
"webauthn": {
@@ -48,12 +64,17 @@
"default_max_output_tokens": 4096,
"min_top_up_minor": 500,
"max_top_up_minor": 1000000,
+ "settlement_spool_path_env": "AIGW_SETTLEMENT_SPOOL_PATH",
"stripe": {
"enabled": true,
"api_key_env": "AIGW_STRIPE_API_KEY",
"webhook_secret_env": "AIGW_STRIPE_WEBHOOK_SECRET",
"success_url_env": "AIGW_STRIPE_SUCCESS_URL",
- "cancel_url_env": "AIGW_STRIPE_CANCEL_URL"
+ "cancel_url_env": "AIGW_STRIPE_CANCEL_URL",
+ "portal_return_url_env": "AIGW_STRIPE_PORTAL_RETURN_URL",
+ "automatic_tax_enabled_env": "AIGW_STRIPE_AUTOMATIC_TAX_ENABLED",
+ "tax_registration_confirmed_env": "AIGW_STRIPE_TAX_REGISTRATION_CONFIRMED",
+ "product_tax_code_env": "AIGW_STRIPE_PRODUCT_TAX_CODE"
}
},
"upstream_http": {