Introduce an admin portal (React + Nginx), WebSocket routing, and API versioning middleware with `/api/v1/` prefix deprecation. Add master API key authentication, new Prometheus metrics for AI token consumption and active WebSockets, and extend S3 config with a public endpoint URL. Update test paths and fixtures to align with the new routing structure.
1.7 KiB
1.7 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Added (Phase 3: DX)
- WebSockets / Real-Time:
- Subscriptions on per-image workflows (
/ws/pipeline/{image_id}). - Redis 60-second Event Buffering for reconnections.
- Admin Monitor WebSocket feed (
/ws/admin/monitor).
- Subscriptions on per-image workflows (
- REST API Versioning:
- Global
/api/v1/prefix for structural stability. - Added strict API Sunset Date tracking middleware.
- Global
- Python SDK (
imago-client):- Publishable PyPI-ready package located inside
sdk/. - Automatic
httpxHTTP reconnects, WebSockets streaming natively wrapped, and robust generic Error classes (ImagoError,AuthError, etc.).
- Publishable PyPI-ready package located inside
- Admin Backend APIs:
- Complete JSON statistics (
/admin/api/stats), global client configurations (/admin/api/clients/*) and Queue observability natively piped to the existing React Interface.
- Complete JSON statistics (
- Shaarli Integrations:
- Skeleton integration middleware (
integration/shaarli) capable of bridging Shaarli's events right into Imago using the official SDK.
- Skeleton integration middleware (
- Extensive Documentation:
- Modular guides provided inside
docs/detailing WebSockets, Integrations, and SDK consumption.
- Modular guides provided inside
Changed
- All API routing endpoints have been moved behind the
/api/v1namespace. Existing API Clients must update base URLs from/to/api/v1/.
Fixed
- Fixed unawaited coroutines in async mocks causing
TypeErroron Pytest environments. - Fixed an incorrect payload key mapping in
APIClientresponses causing 500s (AttributeError). - Mocked S3 and ARQ correctly globally to ensure local automated tests pass completely isolated from network logic.