Files
marketplaces/docs/Diagnostics.md
2026-07-10 13:34:25 +04:00

2.6 KiB

Marketplace Diagnostics & Health Engine - Sprint 14

Scope

Sprint 14 adds a development-only diagnostics feature for marketplace configuration and runtime health.

Constraints respected:

  • No runtime behavior changes
  • No business logic changes
  • No authentication changes
  • No payment changes

Architecture

src/app/features/diagnostics/
  components/
    diagnostics-page.component.*
  services/
    diagnostics-logger.service.ts
  models/
    diagnostics.model.ts
  validators/
    bootstrap-diagnostics.validator.ts
    runtime-diagnostics.validator.ts
    diagnostics-health-score.util.ts
  facade/
    diagnostics.facade.ts

Health Checks

Current checks cover:

  • bootstrap loaded
  • tenant resolved
  • runtime initialized
  • theme loaded
  • widget manifest loaded
  • section engine reachable
  • configuration engine initialized
  • translations available
  • required assets health

Bootstrap Validation

Current validator detects:

  • missing required properties
  • unknown widget types
  • duplicate page/section/widget ids
  • unknown layout values
  • invalid feature flags
  • broken page definitions
  • invalid navigation targets
  • missing translations in navigation label keys
  • missing branding media

Runtime Validation

Current validator detects:

  • missing datasource declarations for widgets that support them
  • widget rendering failures from runtime diagnostics stream
  • broken route expectations
  • configuration fallback usage in local development
  • failed image loading where DOM can observe it
  • missing optional data

Severity Model

Each entry includes:

  • code
  • severity
  • title
  • description
  • affected component
  • suggested resolution

Levels:

  • info
  • warning
  • error
  • critical

Health Score

Simple weighted score:

  • critical: -15
  • error: -8
  • warning: -3
  • info: 0

Minimum 0, maximum 100.

Developer Page

Development-only route:

  • /__diagnostics

Page shows:

  • summary
  • health score
  • passed checks
  • warnings/errors/critical counts
  • detailed diagnostics entries

Logging Abstraction

DiagnosticsLoggerService stores diagnostic entries in memory.

RuntimeDiagnosticsService now keeps unknown widget events in memory for diagnostics consumption only.

No external logging integration in this sprint.

Extension Points

Future additions can plug into:

  • new validators under validators/
  • new runtime event collectors
  • remote diagnostics export service
  • monitoring integrations (Sentry, Datadog, Grafana, OpenTelemetry)
  • asset/network checks
  • widget render timing checks

Performance

Production route excluded.

Diagnostics work runs only on diagnostics page access in development mode.