<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/services/api/rest/libs, branch rolling</title>
<subtitle>VyOS command definitions, scripts, and utilities (mirror of https://github.com/vyos/vyos-1x.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/'/>
<updated>2026-09-28T20:58:05+00:00</updated>
<entry>
<title>https: T8989: Hotfix to enforce audience settings with OIDC is configured</title>
<updated>2026-09-28T20:58:05+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-09-21T20:37:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=f75c7b74dc4c2f38ad9e61e08dfe9fd1fc0686f9'/>
<id>urn:sha1:f75c7b74dc4c2f38ad9e61e08dfe9fd1fc0686f9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>http-api: T8989: address Copilot review comments</title>
<updated>2026-09-02T00:35:35+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-26T07:10:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=ea4a1e2dc6093570e4876b9f2a29c6cecc17d6f4'/>
<id>urn:sha1:ea4a1e2dc6093570e4876b9f2a29c6cecc17d6f4</id>
<content type='text'>
- Remove fallback 'oidc-client' identity - tokens without sub/client_id
  are now rejected
- Suppress OIDC validation error details from stdout
- Cache discovered JWKS URI back to session to avoid per-request discovery
- token_op now accepts X-API-Key header alongside form field
- Reset REST/OIDC session attributes on SIGHUP reload to prevent stale
  config persisting after nodes are removed
</content>
</entry>
<entry>
<title>http-api: T8989: set bounded timeout for OIDC discovery request</title>
<updated>2026-09-02T00:35:35+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-20T11:26:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=d8da36885cab192dd7f812321457fe93d7738aa6'/>
<id>urn:sha1:d8da36885cab192dd7f812321457fe93d7738aa6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>http-api: T8989: address OIDC review comments</title>
<updated>2026-09-02T00:35:35+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-19T07:49:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=34d1c5c87283cfe905b6925bc9181368d5cbdd0e'/>
<id>urn:sha1:34d1c5c87283cfe905b6925bc9181368d5cbdd0e</id>
<content type='text'>
- Use OpenID Connect discovery (/.well-known/openid-configuration) to
  resolve JWKS URI when jwks-url is not explicitly configured
- Add optional audience validation via new oidc audience config node
- Require exp claim in OIDC tokens
- Reject jwks-url without issuer at commit time
</content>
</entry>
<entry>
<title>http-api: T8989: add OAuth2/OIDC authentication for REST API</title>
<updated>2026-09-02T00:35:25+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-14T06:06:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=b8136290e326ba8a1879a3c55eea9e0a1303fedd'/>
<id>urn:sha1:b8136290e326ba8a1879a3c55eea9e0a1303fedd</id>
<content type='text'>
Add support for validating OIDC Bearer tokens issued by external identity
providers (Keycloak, Azure AD, Okta, Vault, etc.) against the configured
JWKS endpoint.

Configuration:
  set service https api rest authentication oidc issuer &lt;url&gt;
  set service https api rest authentication oidc jwks-url &lt;url&gt;

If jwks-url is not set, it is derived from the issuer URL using the
standard OpenID Connect discovery path.

Auth priority: mTLS -&gt; VyOS JWT -&gt; OIDC -&gt; API key
</content>
</entry>
<entry>
<title>http-api: T8989: address review comments</title>
<updated>2026-08-26T18:33:34+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-12T04:38:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=d62e57071f2afb83879f576f6a3af5ecaa21023b'/>
<id>urn:sha1:d62e57071f2afb83879f576f6a3af5ecaa21023b</id>
<content type='text'>
- Make ApiModel.key optional to allow Bearer/X-API-Key/mTLS auth
  without requiring a dummy key field in the request body
- Add thread safety to REST token secret initialization
- Cast rest_token_exp and rest_secret_len to int on load
- Use defensive dict.get() for authentication config access
</content>
</entry>
<entry>
<title>http-api: T8989: Update src/services/api/rest/libs/token_auth.py</title>
<updated>2026-08-26T18:33:34+00:00</updated>
<author>
<name>omnom62</name>
<email>75066712+omnom62@users.noreply.github.com</email>
</author>
<published>2026-08-11T08:09:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=a4a52a0975ce4de70c43fa6cab1e09f55567dc35'/>
<id>urn:sha1:a4a52a0975ce4de70c43fa6cab1e09f55567dc35</id>
<content type='text'>
Co-authored-by: Viacheslav Hletenko &lt;seversss265@gmail.com&gt;</content>
</entry>
<entry>
<title>http-api: T8989: add REST Bearer token authentication</title>
<updated>2026-08-26T18:33:34+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-04T23:14:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=f3012e652edef614d4f0ed169b320106a85d83b3'/>
<id>urn:sha1:f3012e652edef614d4f0ed169b320106a85d83b3</id>
<content type='text'>
Add JWT Bearer token support to the REST API, as an additional
authentication method alongside the existing form-field key and
X-API-Key header.

- New POST /token endpoint mints a JWT for a valid API key
- auth_required() accepts Authorization: Bearer &lt;token&gt; alongside
  existing key/X-API-Key auth
- New config nodes: service https api rest authentication
  {expiration, secret-length} (defaults: 3600s / 32 bytes)
- REST tokens use an independent signing secret from GraphQL's,
  since GraphQL may not be enabled on all deployments and the two
  subsystems have different expiry requirements
- nginx location regex updated to allow /token
- service_https.py default-value merge generalized to also apply
  to the rest node, not just graphql, so REST authentication
  defaults populate correctly on commit
</content>
</entry>
</feed>
