✨ Community Release — Security Fix, Multi-Platform Docker, Model Updates & Plus Tier
Enforces API key model restrictions across all endpoints, adds ARM64 Docker support, updates model registry for latest AI models, and introduces Plus tier in ProviderLimits.
🔒 Security
- API Key Model Restrictions Enforced —
isModelAllowedForKey()was never called, allowing API keys withallowedModelsrestrictions to access any model. Created centralizedenforceApiKeyPolicy()middleware and wired it into all/v1/*endpoints (chat, embeddings, images, audio, moderations, rerank). Supports exact match, prefix match (openai/*), and wildcard patterns (#130, PR #131 by @ersintarhan) - ApiKeyMetadata Type Safety — Replaced
anytypes with properApiKeyMetadatainterface. Added error logging in catch blocks for metadata fetch and budget check failures
✨ New Features
- Docker Multi-Platform Builds — Restructured Docker CI workflow to support both
linux/amd64andlinux/arm64using native runners and digest-based manifest merging. ARM64 users (Apple Silicon, AWS Graviton, Raspberry Pi) can now run OmniRoute natively (PR #127 by @npmSteven) - Plus Tier in ProviderLimits — Added "Plus" as a separate category in the ProviderLimits dashboard, distinguishing Plus/Paid plans from Pro plans (PR #126 by @nyatoru)
🔧 Improvements
- Model Registry Updates — Updated provider registry, usage tracking, CLI tools config, and pricing for latest AI models: added Claude Sonnet 4.6, Gemini 3.1 Pro (High/Low), GPT OSS 120B Medium; removed deprecated Claude 4.5 variants and Gemini 2.5 Flash (PR #128 by @nyatoru)
- Model ID Consistency — Fixed
claude-sonnet-4-6-thinking→claude-sonnet-4-6mismatch inimportantModels
Contributors
Thanks to @ersintarhan, @npmSteven, and @nyatoru for their contributions! 🎉