Skip to content

Add Actix-web UI adapter for observability endpoints #61

@alob-mtc

Description

@alob-mtc

Summary

Add support for Actix-web as an alternative HTTP framework for the observability UI endpoints.

Context

The observability UI module has been refactored to be framework-agnostic (see src/observability/ui/). Currently, only Axum is supported via the axum-ui feature flag. This issue tracks adding Actix-web support.

Requirements

  • Create src/observability/ui/actix.rs with Actix-web handlers
  • Add actix-ui feature flag in Cargo.toml
  • Update src/observability/ui/mod.rs to conditionally export Actix routes
  • Implement the following endpoints:
    • GET / - Serve console HTML
    • GET /stats - Queue statistics
    • GET /activities/:key - List activities by status or get by ID
    • GET /activities/:id/events - Activity event history
    • GET /activities/:id/result - Activity result
    • GET /dead-letter - Dead letter queue listing
    • GET /stream - SSE event stream
  • Add example demonstrating Actix-web usage
  • Update documentation

Technical Notes

  • Use actix-web crate
  • SSE can be implemented using actix-web-lab or similar
  • Follow the same pattern as src/observability/ui/axum.rs
  • All data operations should go through QueueInspector

Feature Flag

[features]
actix-ui = ["dep:actix-web", "dep:actix-web-lab"]

Related

  • Axum implementation: src/observability/ui/axum.rs
  • Static HTML: src/observability/ui/html.rs

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions