Files
telemt-api/config.example.yaml
T
Denozordec 04c257a84e
Publish telemt-api gateway Docker image / test (push) Successful in 25s
Publish telemt-api gateway Docker image / build-and-push (push) Successful in 1m19s
Add CORS support and response caching to aggregate endpoints
- Introduced CORS configuration options in config.example.yaml, allowing specification of allowed origins for cross-origin requests.
- Enhanced the aggregate handler to support response caching with a configurable TTL, improving performance for repeated requests.
- Updated the aggregate API to return a structured response indicating whether any upstream requests failed, enhancing error handling and response clarity.
- Modified documentation in AGGREGATE.md and README.md to reflect the new CORS and caching features.
- Added tests to validate the new functionality in the aggregate handler.
2026-03-30 10:02:16 +07:00

64 lines
2.1 KiB
YAML

# Telemt API gateway — copy to config.yaml and mount into the container.
#
# Semantics: client calls GET /api/{alias}/health
# forwarded to GET {base_url}/v1/health
listen: ":8080"
# If true, IP whitelist is not enforced (development only).
allow_all: false
# CIDR allowlist when allow_all is false. Empty list denies all clients.
# Можно указывать и одиночный IP (будет трактован как /32 или /128), и CIDR.
whitelist_cidrs:
- "127.0.0.1/32"
- "203.0.113.5"
- "::1/128"
# Docker bridge (adjust to your environment):
# - "172.16.0.0/12"
# When the direct TCP peer is in these CIDRs, client IP for whitelist is taken
# from X-Forwarded-For (first hop) or X-Real-IP (e.g. behind nginx).
# trusted_proxies:
# - "10.0.0.0/8"
trusted_proxies: []
# SPA на другом origin (preflight OPTIONS + Access-Control-Allow-Origin):
# cors_allowed_origins:
# - "http://localhost:5173"
# # - "*"
# Опционально: по умолчанию /api/agg/* опрашивает все servers; можно ограничить список и включить кэш ответов:
# aggregate:
# include_aliases:
# - gt1
# - gt2
# cache_ttl_ms: 2000
# Геолокация IP в /api/agg/unique-ips. См. docs/GEOIP.md (City + опционально ASN; Country-only не нужен)
# geoip:
# enabled: true
# database_path: /var/lib/telemt-gateway/GeoLite2-City.mmdb
# download_url: "https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-City.mmdb"
# asn_database_path: /var/lib/telemt-gateway/GeoLite2-ASN.mmdb
# asn_download_url: "https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-ASN.mmdb"
servers:
- alias: main_srv
base_url: http://127.0.0.1:9091
path_prefix: /v1
# authorization_env: TELEMT_API_AUTH
# ivx: HTTPS + nginx location /api/ → Telemt; base_url должен заканчиваться на /api/
- alias: gt1
base_url: https://gt1.ivx.su/api/
path_prefix: /v1
- alias: gt2
base_url: https://gt2.ivx.su/api/
path_prefix: /v1
- alias: gt3
base_url: https://gt3.ivx.su/api/
path_prefix: /v1