Borrowing it
Nothing to install: this file belongs to majiayu000/litellm-rs. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/majiayu000/litellm-rs/main/.claude/skills/auth-architecture/SKILL.mdgit clone --depth 1 https://github.com/majiayu000/litellm-rsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/majiayu000/litellm-rs/auth-architecture)<a href="https://agentmods.dev/skills/majiayu000/litellm-rs/auth-architecture"><img src="https://agentmods.dev/badge/skills/majiayu000/litellm-rs/auth-architecture/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/majiayu000/litellm-rs/auth-architecture"><img src="https://agentmods.dev/badge/skills/majiayu000/litellm-rs/auth-architecture.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Privilege Escalation · line 150 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00077 | $0.01854 |
| Opus 5 | $0.00039 | $0.00927 |
| Sonnet 5 | $0.00015 | $0.00371 |
| Haiku 4.5 | $0.00008 | $0.00185 |
Grade A, and why
auth-architecture scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 167 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Authentication Architecture Guide
Overview
AuthSystem (src/auth/system.rs) composes three subsystems behind one authenticate() entry point:
pub struct AuthSystem {
config: Arc<AuthConfig>,
storage: Arc<StorageLayer>,
jwt: Arc<JwtHandler>, // src/auth/jwt/types.rs
api_key: Arc<ApiKeyHandler>, // src/auth/api_key/creation.rs
rbac: Arc<RbacSystem>, // src/auth/rbac/system.rs
}
AuthSystem::authenticate(auth_method, context) -> Result<AuthResult> dispatches on
AuthMethod::{Jwt, ApiKey, Session, None} (src/auth/types.rs). Session auth is a
stub that always rejects ("Session authentication is not yet implemented").
Semantic rejections return AuthResult { success: false, error: Some(..) };
infrastructure failures return Err(GatewayError).
Middleware pipeline
Wired in src/server/http.rs (actix runs wraps in reverse registration order, so
the request path is outermost-first):
RequestIdMiddleware -> AuditMiddleware -> IpAccessMiddleware -> CORS/Metrics
-> AuthMiddleware (src/server/middleware/auth.rs)
-> RateLimitMiddleware (src/server/middleware/rate_limit.rs)
-> SecurityHeadersMiddleware -> handler
AuthMiddleware per request: public-route bypass → fail-closed check when both
auth methods are disabled (allow_anonymous gate) → brute-force lockout via
AuthRateLimiter → credential extraction → authentication → endpoint/operation
authorization → insert User / ApiKey into request extensions.
Credential Extraction
extract_auth_method_with_api_key_header (src/server/middleware/helpers.rs)
resolves credentials in this priority order:
Authorization: Bearer <jwt>→AuthMethod::JwtAuthorization: ApiKey <key>→AuthMethod::ApiKeyAuthorization: gw-...(raw key, no scheme) →AuthMethod::ApiKey- Configured API key header (
auth.api_key_header, defaultAuthorization) X-API-Keyfallback (when the configured header differs)session=<id>cookie →AuthMethod::Session
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 167 lines · 77 tokens per session scan A c9db8f8a3486
auth-architecture is a skill published in the GitHub repository majiayu000/litellm-rs (112 stars, last pushed 2d ago), licensed MIT. It adds 77 tokens to every session and 1,854 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
omni-inference
The core OpenAI-compatible inference endpoints: chat completions, embeddings, images, audio (TTS/STT), moderations, rerank, and the Responses API. The primary integration surface for AI agents.
omni-providers
Manage provider connections, API keys, OAuth flows, and connection tests via the REST API. List, add, update, remove, and test AI provider integrations across OmniRoute's 327-provider catalog.
omni-combos-routing
Create and manage routing combos with 19 strategies (priority, weighted, round-robin, Auto-combo, and more). Configure fallback chains, test routing outcomes, and retrieve combo metrics.
omni-auth
Manage API key authentication and session tokens. Start here to authenticate requests via Bearer token, obtain session cookies, and configure login requirements for the OmniRoute API.
omni-api-keys
Create, list, rotate, and revoke OmniRoute API keys. Control per-key scopes, spending limits, and expiration. Keys gate access to all proxy and management endpoints.
omni-mcp
Connect to the OmniRoute MCP server (110 tools, 3 transports: SSE/stdio/HTTP). Covers routing, cache, compression, memory, skills, providers, and audit tools across 33 permission scopes.