Skip to content

[Observability] Tenant-scoped query gateway and dashboard shell #5370

Description

@Ma77Ball

Feature Summary

The dashboard needs a read path to query the telemetry backends that enforces tenant isolation and rate limits, plus an Angular shell to host the per-signal panels. Without it there is no safe, user-facing surface for observability data.

Proposed Solution or Design

  • Backend: BackendClient (HTTP client to the telemetry backends); ScopeResolver (derives the caller's tenant scope and constrains every query to it); RateLimiter, AuditLogger, and GatewayContext (per-request rate limiting, audit logging, and shared request context); typed request DTOs with validators (time window, page size, free text, service name); ObservabilityResources with an /observability/health endpoint registered in TexeraWebApplication; RequestContextMdcFilter and UserContextMdcFilter to inject request and user context into the logging MDC; ObservabilityGatewayConfig and its configuration file.
  • Frontend: an observability dashboard page, route, and navigation entry; observability.service, observability.types, and the traces-pivot.service; health gating so each tab is guarded by a per-signal reachability check, and an unreachable signal renders an explicit state rather than a broken panel.
  • Tenancy enforcement and rate limiting are the security-critical surface here and warrant close review.

Affected Area

Workflow UI, Other

Related

Part of #4070. Depends on #5369. Signal panels tracked in #5371, #5372, #5373, and #5374.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions