@@ -137,7 +137,11 @@ authorizer:
137137 # OAuth client secret (required)
138138 client_secret : null
139139
140- # Admin secret
140+ # Admin secret (--admin-secret).
141+ # REQUIRED, non-empty. As of the April 2026 security release the
142+ # authorizer binary refuses to start when --admin-secret is empty —
143+ # the previous insecure "password" default has been removed. Pick any
144+ # non-empty value; the strength of the secret is your responsibility.
141145 admin_secret : null
142146
143147 # JWT type (e.g. HS256, RS256)
@@ -181,3 +185,39 @@ authorizer:
181185
182186 # SMTP sender name
183187 smtp_sender_name : null
188+
189+ # ----------------------------------------------------------------------
190+ # April 2026 security hardening flags
191+ # ----------------------------------------------------------------------
192+
193+ # Trusted reverse-proxy networks (--trusted-proxies). Comma-separated CIDRs.
194+ # Empty (the default) means gin uses RemoteAddr and ignores X-Forwarded-For
195+ # — safe out of the box. If Authorizer is behind an ingress controller,
196+ # nginx, Cloudflare, etc., set this to the proxy network or per-IP rate
197+ # limiting and audit logs will key on the proxy IP. See
198+ # https://docs.authorizer.dev/core/security#trusted-proxies
199+ trusted_proxies : null
200+
201+ # Refresh-token lifetime in seconds (--refresh-token-expires-in).
202+ # Default 30 days (2592000). Shorten for higher-security deployments;
203+ # lengthen for long-lived sessions.
204+ refresh_token_expires_in : null
205+
206+ # Strict-Transport-Security response header (--enable-hsts).
207+ # Off by default — only enable behind TLS, otherwise browsers will be
208+ # locked out for a year (max-age=31536000).
209+ enable_hsts : false
210+
211+ # Disable the default Content-Security-Policy header (--disable-csp).
212+ # CSP is on by default with a conservative policy. Set true ONLY as an
213+ # escape hatch if the default policy breaks a customised dashboard.
214+ disable_csp : false
215+
216+ # GraphQL query limits (--graphql-max-*). Defaults are conservative;
217+ # raise individually if your legitimate operation surface needs them.
218+ # Rejections are emitted as the authorizer_graphql_limit_rejections_total
219+ # Prometheus counter, labelled by the limit kind that tripped.
220+ graphql_max_complexity : 300
221+ graphql_max_depth : 15
222+ graphql_max_aliases : 30
223+ graphql_max_body_bytes : 1048576
0 commit comments