255 lines
7.2 KiB
YAML
255 lines
7.2 KiB
YAML
# Configuration du service "admin"
|
|
admin:
|
|
http:
|
|
# Hôte d'écoute du service,
|
|
# 0.0.0.0 pour écouter sur toutes les interfaces
|
|
host: 127.0.0.1
|
|
# Port d'écoute du service
|
|
port: 8081
|
|
# Utiliser les entêtes HTTP True-Client-IP, X-Real-IP ou X-Forwarded-For
|
|
# pour le calcul de l'adresse distante à l'origine des requêtes
|
|
useRealIP: true
|
|
|
|
# Configuration CORS du service
|
|
# Uniquement nécessaire si un frontend web
|
|
# est branché sur l'API d'administration.
|
|
cors:
|
|
allowedOrigins:
|
|
- http://localhost:8081
|
|
allowCredentials: true
|
|
allowMethods:
|
|
- POST
|
|
- GET
|
|
- PUT
|
|
- DELETE
|
|
allowedHeaders:
|
|
- Origin
|
|
- Accept
|
|
- Content-Type
|
|
- Authorization
|
|
- Sentry-Trace
|
|
debug: false
|
|
|
|
# Authentification JWT
|
|
auth:
|
|
# Origine du jeton JWT
|
|
issuer: http://127.0.0.1:8081
|
|
# Clé privée permettant de signer les jetons
|
|
# JWT générés pour l'usage de l'API d'administration.
|
|
privateKey: /etc/bouncer/admin-key.json
|
|
|
|
# Métriques Prometheus
|
|
metrics:
|
|
# Activer ou désactiver la publication des métriques
|
|
enabled: true
|
|
# Route de publication des métriques
|
|
endpoint: /.bouncer/metrics
|
|
# Authentification "basic auth" sur la page
|
|
# de publication
|
|
# Mettre à null pour désactiver l'authentification
|
|
basicAuth: null
|
|
|
|
# Profiling
|
|
profiling:
|
|
# Activer ou désactiver les endpoints de profiling
|
|
enabled: true
|
|
# Route de publication des endpoints de profiling
|
|
endpoint: /.bouncer/profiling
|
|
# Authentification "basic auth" sur les endpoints
|
|
# de profiling
|
|
# Mettre à null pour désactiver l'authentification
|
|
basicAuth:
|
|
credentials:
|
|
prof: iling
|
|
|
|
# Configuration de l'intégration Sentry
|
|
# Voir https://pkg.go.dev/github.com/getsentry/sentry-go?utm_source=godoc#ClientOptions
|
|
sentry:
|
|
dsn: ""
|
|
debug: false
|
|
flushTimeout: 2s
|
|
attachStacktrace: true
|
|
sampleRate: 1
|
|
enableTracing: true
|
|
tracesSampleRate: 0.2
|
|
profilesSampleRate: 0.2
|
|
ignoreErrors: []
|
|
sendDefaultPII: false
|
|
serverName: ""
|
|
environment: ""
|
|
maxBreadcrumbs: 0
|
|
maxSpans: 1000
|
|
maxErrorDepth: 10
|
|
|
|
# Configuration du service "proxy"
|
|
proxy:
|
|
# Activer/désactiver le mode debug (affichage ou non des messages d'erreur)
|
|
debug: false
|
|
# Configuration des templates utilisés par le proxy
|
|
templates:
|
|
# Répertoire contenant les templates
|
|
dir: /etc/bouncer/templates
|
|
http:
|
|
# Hôte d'écoute du service,
|
|
# 0.0.0.0 pour écouter sur toutes les interfaces
|
|
host: 0.0.0.0
|
|
# Port d'écoute du service
|
|
port: 8080
|
|
# Utiliser les entêtes HTTP True-Client-IP, X-Real-IP ou X-Forwarded-For
|
|
# pour le calcul de l'adresse distante à l'origine des requêtes
|
|
useRealIP: true
|
|
|
|
# Métriques Prometheus
|
|
metrics:
|
|
# Activer ou désactiver la publication des métriques
|
|
enabled: true
|
|
# Route de publication des métriques
|
|
endpoint: /.bouncer/metrics
|
|
# Authentification "basic auth" sur la page
|
|
# de publication
|
|
# Mettre à null pour désactiver l'authentification
|
|
basicAuth:
|
|
credentials:
|
|
prom: etheus
|
|
|
|
# Profiling
|
|
profiling:
|
|
# Activer ou désactiver les endpoints de profiling
|
|
enabled: true
|
|
# Route de publication des endpoints de profiling
|
|
endpoint: /.bouncer/profiling
|
|
# Authentification "basic auth" sur les endpoints
|
|
# de profiling
|
|
# Mettre à null pour désactiver l'authentification
|
|
basicAuth:
|
|
credentials:
|
|
prof: iling
|
|
|
|
# Configuration de la mise en cache
|
|
# locale des données proxy/layers
|
|
cache:
|
|
# Les proxys/layers sont mis en cache local pour une durée de 30s
|
|
# par défaut. Si les modifications sont rares, vous pouvez augmenter
|
|
# cette valeur pour réduire la "pression" sur le serveur Redis.
|
|
ttl: 30s
|
|
|
|
# Configuration du transport HTTP(S)
|
|
# Voir https://pkg.go.dev/net/http#Transport
|
|
transport:
|
|
forceAttemptHTTP2: true
|
|
maxIdleConns: 100
|
|
maxIdleConnsPerHost: 100
|
|
maxConnsPerHost: 100
|
|
idleConnTimeout: 1m30s
|
|
tlsHandshakeTimeout: 10s
|
|
expectContinueTimeout: 1s
|
|
disableKeepAlives: false
|
|
disableCompression: false
|
|
responseHeaderTimeout: 10s
|
|
writeBufferSize: 4096
|
|
readBufferSize: 4096
|
|
maxResponseHeaderBytes: 0
|
|
|
|
# Configuration de l'intégration Sentry
|
|
# Voir https://pkg.go.dev/github.com/getsentry/sentry-go?utm_source=godoc#ClientOptions
|
|
sentry:
|
|
dsn: ""
|
|
debug: false
|
|
flushTimeout: 2s
|
|
attachStacktrace: true
|
|
sampleRate: 1
|
|
enableTracing: true
|
|
tracesSampleRate: 0.2
|
|
profilesSampleRate: 1
|
|
ignoreErrors: []
|
|
sendDefaultPII: false
|
|
serverName: ""
|
|
environment: ""
|
|
maxBreadcrumbs: 0
|
|
maxSpans: 1000
|
|
maxErrorDepth: 10
|
|
|
|
# Configuration des connexions TCP
|
|
# Voir https://pkg.go.dev/net#Dialer
|
|
dial:
|
|
timeout: 30s
|
|
keepAlive: 30s
|
|
fallbackDelay: 300ms
|
|
dualStack: true
|
|
|
|
# Configuration du client Redis
|
|
#
|
|
# Les modes "standalone", "sentinel" et "cluster" de Redis sont supportés:
|
|
# - Mode "standalone": renseigner une seule entrée dans redis.addresses;
|
|
# - Mode "sentinel": renseigner le nom du master sentinel dans redis.master et une ou plusieurs adresses dans redis.addresses;
|
|
# - Mode "cluster": renseigner plusieurs adresses dans redis.addresses et laisser redis.master vide.
|
|
redis:
|
|
addresses:
|
|
- localhost:6379
|
|
master: ""
|
|
writeTimeout: 30s
|
|
readTimeout: 30s
|
|
dialTimeout: 30s
|
|
maxRetries: 3
|
|
pingInterval: 30s
|
|
|
|
# Configuration des logs
|
|
logger:
|
|
# Niveau de verbosité
|
|
# 0 - DEBUG
|
|
# 1 - INFO
|
|
# 2 - WARNING
|
|
# 3 - ERROR
|
|
# 4 - FATAL
|
|
level: 2
|
|
# Format des logs, "human" ou "json"
|
|
format: human
|
|
|
|
# Configuration des différents layers
|
|
layers:
|
|
# Configuration du layer "queue"
|
|
queue:
|
|
# Répertoire contenant les templates
|
|
templateDir: "/etc/bouncer/layers/queue/templates"
|
|
# Temps de vie par défaut d'une session
|
|
defaultKeepAlive: 1m
|
|
|
|
# Configuration du layer "authn"
|
|
authn:
|
|
# Répertoire contenant les templates
|
|
templateDir: "/etc/bouncer/layers/authn/templates"
|
|
|
|
# Configuration d'une série de proxy/layers
|
|
# à créer par défaut par le serveur d'administration
|
|
bootstrap:
|
|
# Répertoire contenant les définitions de proxy à créer
|
|
# par défaut. Les fichiers seront récupérés si ils
|
|
# correspondent au patron de nommage suivant:
|
|
#
|
|
# <bootstrap_dir>/<proxy_name>.yml
|
|
#
|
|
# Si l'attribut est vide ou absent le chargement des fichiers
|
|
# est désactivé.
|
|
dir: /etc/bouncer/bootstrap.d
|
|
# Délai d'expiration du verrou distribué utilisé lors du chargement
|
|
# des définitions de proxy par défaut.
|
|
lockTimeout: 30s
|
|
# Tableau associatif de définition de proxies à créer par
|
|
# défaut par le serveur d'administration.
|
|
# Si `proxies` et `dir` sont tous les deux définis, les fichiers
|
|
# présents dans le répertoire `dir` surchargeront les valeurs définies
|
|
# dans `proxies`.
|
|
# Par défault non défini
|
|
proxies:
|
|
# my-proxy:
|
|
# enabled: true
|
|
# from: ["*"]
|
|
# to: "https://example.net"
|
|
# weight: 0
|
|
# layers:
|
|
# my-layer:
|
|
# type: queue
|
|
# enabled: false
|
|
# weight: 0
|
|
# options: {"capacity": 100}
|