Files
Imago/CHANGELOG.md
T
bruno 2f2a5e9b4a
CI / Lint & Format (push) Failing after 28s
CI / Tests (push) Has been skipped
CI / Security Scan (push) Failing after 8s
CI / Docker Build (push) Has been skipped
Add admin panel, WebSocket support, and API versioning
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.
2026-06-22 11:25:22 -04:00

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).
  • 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.