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

128 lines
2.6 KiB
Markdown

# 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
```text
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.