# 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 des sessions sessions: # Temps de persistence sans actualisation des sessions dans le store # (prévalent sur le MaxAge de la session) ttl: "1h" # 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: # # /.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}