llama-stack-mirror/llama_stack/distribution
Ashwin Bharambe c7015d3d60
feat: introduce OAuth2TokenAuthProvider and notion of "principal" (#2185)
This PR adds a notion of `principal` (aka some kind of persistent
identity) to the authentication infrastructure of the Stack. Until now
we only used access attributes ("claims" in the more standard OAuth /
OIDC setup) but we need the notion of a User fundamentally as well.
(Thanks @rhuss for bringing this up.)

This value is not yet _used_ anywhere downstream but will be used to
segregate access to resources.

In addition, the PR introduces a built-in JWT token validator so the
Stack does not need to contact an authentication provider to validating
the authorization and merely check the signed token for the represented
claims. Public keys are refreshed via the configured JWKS server. This
Auth Provider should overwhelmingly be considered the default given the
seamless integration it offers with OAuth setups.
2025-05-18 17:54:19 -07:00
..
routers fix: catch TimeoutError in place of asyncio.TimeoutError (#2131) 2025-05-12 11:49:59 +02:00
server feat: introduce OAuth2TokenAuthProvider and notion of "principal" (#2185) 2025-05-18 17:54:19 -07:00
store feat: implementation for agent/session list and describe (#1606) 2025-05-07 14:49:23 +02:00
ui chore: more mypy fixes (#2029) 2025-05-06 09:52:31 -07:00
utils feat: refactor external providers dir (#2049) 2025-05-15 20:17:03 +02:00
__init__.py API Updates (#73) 2024-09-17 19:51:35 -07:00
access_control.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
build.py fix: enforce stricter ASCII rules lint rules in Ruff (#2062) 2025-04-30 18:05:27 +02:00
build_conda_env.sh chore: remove straggler references to llama-models (#1345) 2025-03-01 14:26:03 -08:00
build_container.sh feat: refactor external providers dir (#2049) 2025-05-15 20:17:03 +02:00
build_venv.sh chore: remove straggler references to llama-models (#1345) 2025-03-01 14:26:03 -08:00
client.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
common.sh feat(pre-commit): enhance pre-commit hooks with additional checks (#2014) 2025-04-30 11:35:49 -07:00
configure.py feat: refactor external providers dir (#2049) 2025-05-15 20:17:03 +02:00
datatypes.py feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
distribution.py feat: refactor external providers dir (#2049) 2025-05-15 20:17:03 +02:00
inspect.py feat: add health to all providers through providers endpoint (#1418) 2025-04-14 11:59:36 +02:00
library_client.py chore: more mypy fixes (#2029) 2025-05-06 09:52:31 -07:00
providers.py fix: catch TimeoutError in place of asyncio.TimeoutError (#2131) 2025-05-12 11:49:59 +02:00
request_headers.py chore: more mypy fixes (#2029) 2025-05-06 09:52:31 -07:00
resolver.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
stack.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
start_stack.sh fix: replace all instances of --yaml-config with --config (#2196) 2025-05-16 14:31:12 -07:00