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.
34 lines
1.7 KiB
Markdown
34 lines
1.7 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
|
## [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`).
|
|
- **REST API Versioning**:
|
|
- Global `/api/v1/` prefix for structural stability.
|
|
- Added strict API Sunset Date tracking middleware.
|
|
- **Python SDK (`imago-client`)**:
|
|
- Publishable PyPI-ready package located inside `sdk/`.
|
|
- Automatic `httpx` HTTP reconnects, WebSockets streaming natively wrapped, and robust generic Error classes (`ImagoError`, `AuthError`, etc.).
|
|
- **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.
|
|
- **Shaarli Integrations**:
|
|
- Skeleton integration middleware (`integration/shaarli`) capable of bridging Shaarli's events right into Imago using the official SDK.
|
|
- **Extensive Documentation**:
|
|
- Modular guides provided inside `docs/` detailing WebSockets, Integrations, and SDK consumption.
|
|
|
|
### Changed
|
|
- All API routing endpoints have been moved behind the `/api/v1` namespace. Existing API Clients must update base URLs from `/` to `/api/v1/`.
|
|
|
|
### Fixed
|
|
- Fixed unawaited coroutines in async mocks causing `TypeError` on Pytest environments.
|
|
- Fixed an incorrect payload key mapping in `APIClient` responses causing 500s (`AttributeError`).
|
|
- Mocked S3 and ARQ correctly globally to ensure local automated tests pass completely isolated from network logic.
|