summaryrefslogtreecommitdiff
path: root/config.control.example.json
blob: 58ef2e7889f229e87cddd25cbaaa0040b7c0eae9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
{
  "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,
    "shutdown_timeout_seconds": 20
  },
  "auth": {
    "allow_anonymous": false
  },
  "control_plane": {
    "enabled": true,
    "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,
    "auto_migrate": true
  },
  "admin": {
    "enabled": true,
    "token_env": "AIGW_ADMIN_TOKEN",
    "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,
      "from_name": "AIGW",
      "from_address_env": "AIGW_SMTP_FROM_ADDRESS",
      "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": {
      "enabled": true,
      "rp_display_name": "AIGW Console",
      "rp_id_env": "AIGW_WEBAUTHN_RP_ID",
      "origins_env": "AIGW_WEBAUTHN_ORIGINS"
    }
  },
  "billing": {
    "enabled": true,
    "currency": "usd",
    "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",
      "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": {
    "max_idle_connections": 4096,
    "max_idle_connections_per_host": 1024,
    "idle_connection_timeout_seconds": 90,
    "response_header_timeout_seconds": 60
  },
  "observability": {
    "usage_buffer": 8192,
    "expose_metrics": true
  },
  "providers": [],
  "models": []
}