1616 :class:`NoAuthProvider`, ``api_key`` uses
1717 :class:`HeaderAuthProvider`, and ``jwt`` uses
1818 :class:`LocalJwtVerifyProvider`. When the mode is unset, startup
19- preserves historical behavior by selecting ``jwt`` if
20- ``AGENT_CONTROL_RUNTIME_TOKEN_SECRET`` is set, otherwise ``api_key`` .
19+ selects ``jwt`` if ``AGENT_CONTROL_RUNTIME_TOKEN_SECRET`` is set;
20+ otherwise runtime falls through to the default authorizer .
2121 The ``runtime.token_exchange`` operation continues to flow through
2222 the default authorizer because the exchange itself is shaped like a
2323 management call (forward credential, get grant).
@@ -96,10 +96,11 @@ def configure_auth_from_env() -> None:
9696 Runtime flow:
9797
9898 - ``AGENT_CONTROL_RUNTIME_AUTH_MODE=none``: :class:`NoAuthProvider`.
99- - ``AGENT_CONTROL_RUNTIME_AUTH_MODE=api_key`` (default when no runtime
100- token secret is configured): :class:`HeaderAuthProvider`.
99+ - ``AGENT_CONTROL_RUNTIME_AUTH_MODE=api_key``: :class:`HeaderAuthProvider`.
101100 - ``AGENT_CONTROL_RUNTIME_AUTH_MODE=jwt`` (default when a runtime token
102101 secret is configured): :class:`LocalJwtVerifyProvider`.
102+ - unset mode without a runtime token secret: fall through to the default
103+ authorizer.
103104
104105 Clears any previously-installed default and operation overrides
105106 before installing fresh ones, so reconfiguration cannot leave
@@ -121,20 +122,26 @@ def configure_auth_from_env() -> None:
121122 set_authorizer (default )
122123 _active_providers .append (default )
123124
124- runtime_provider = _build_runtime_provider (runtime_mode , _runtime_auth_config )
125- set_authorizer (runtime_provider , operation = Operation .RUNTIME_USE )
126- _active_providers .append (runtime_provider )
127- if runtime_mode == "jwt" :
125+ if runtime_mode == "default" :
128126 _logger .info (
129- "Runtime auth provider: jwt override installed for %s" ,
127+ "Runtime auth provider: default authorizer handles %s" ,
130128 Operation .RUNTIME_USE .value ,
131129 )
132130 else :
133- _logger .info (
134- "Runtime auth provider: %s override installed for %s" ,
135- runtime_mode ,
136- Operation .RUNTIME_USE .value ,
137- )
131+ runtime_provider = _build_runtime_provider (runtime_mode , _runtime_auth_config )
132+ set_authorizer (runtime_provider , operation = Operation .RUNTIME_USE )
133+ _active_providers .append (runtime_provider )
134+ if runtime_mode == "jwt" :
135+ _logger .info (
136+ "Runtime auth provider: jwt override installed for %s" ,
137+ Operation .RUNTIME_USE .value ,
138+ )
139+ else :
140+ _logger .info (
141+ "Runtime auth provider: %s override installed for %s" ,
142+ runtime_mode ,
143+ Operation .RUNTIME_USE .value ,
144+ )
138145
139146
140147async def teardown_auth () -> None :
@@ -242,7 +249,7 @@ def _parse_extra_forward_headers(raw: str | None) -> tuple[str, ...]:
242249def _resolve_runtime_mode () -> str :
243250 raw = os .environ .get (_RUNTIME_MODE_ENV )
244251 if raw is None or not raw .strip ():
245- return "jwt" if os .environ .get (_RUNTIME_TOKEN_SECRET_ENV ) else "api_key "
252+ return "jwt" if os .environ .get (_RUNTIME_TOKEN_SECRET_ENV ) else "default "
246253
247254 mode = raw .strip ().lower ()
248255 if mode in {"none" , "no_auth" }:
0 commit comments