Skip to content

Add platform health dashboard - #3098

Draft
andreasohlund wants to merge 17 commits into
masterfrom
platform-health
Draft

Add platform health dashboard#3098
andreasohlund wants to merge 17 commits into
masterfrom
platform-health

Conversation

@andreasohlund

@andreasohlund andreasohlund commented Aug 28, 2026

Copy link
Copy Markdown
Member

Summary

  • add the first in-app Platform health page, nav item, support modal, and dev-mock controls
  • introduce a shared frontend platform model used by Platform health and Platform Capabilities
  • align dashboard capability status badges with Platform health navigation, add status-specific nav tooltips, link platform health instance names to their API URLs, remove duplicated instance widgets from capability cards, and remove footer ServiceControl/Monitoring widgets

Design decisions

  • Use a shared frontend platform model/store as the source of truth for both Platform health and Platform Capabilities.
  • Keep Platform health focused on instance and topology visibility, not configuration-readiness guidance.
  • PlatformModel.monitoring remains PlatformInstance | null and is shared by both Platform health and Platform Capabilities.
  • Do not model the multi-region concept explicitly in the shared frontend model; derive the needed behavior from instance roles instead (primary-error, remote-error, remote-audit, monitoring).
  • Keep PlatformHealthRow page-specific rather than pushing table-only display semantics into the shared model.
  • Keep the implementation frontend-only and mock-driven; do not introduce a new ServicePulse backend endpoint in this PR.
  • In Platform Capabilities, show grey Not configured badges for instance-not-configured states and keep capability-specific readiness semantics there.
  • Remove per-instance widgets from Platform Capabilities cards so instance-level visibility lives on the Platform health page, while capability-specific widgets such as Messages and Metrics stay on the cards.
  • Platform health nav icon precedence is danger > warning > info for outdated-only cases, and the menu item tooltip follows the same status precedence.
  • Platform health instance names link directly to each instance apiUrl from the shared platform model.

Keep this section up to date as implementation and product decisions evolve.

Test scenarios

Use cd src/Frontend && VITE_MOCK_SCENARIO=<name> npm run dev:mocks.

Startup scenarios:

  • platform-health
  • platform-health-outdated

Then switch live in the browser console with window.__platformHealth.setScenario(...):

  • single-region-healthy
  • single-region-warning: monitoring healthy, one degraded audit instance
  • single-region-danger
  • single-region-outdated
  • multi-region-healthy
  • multi-region-warning
  • multi-region-danger: remote error unavailable, no monitoring

Runtime helpers:

  • window.__platformHealth.getState()
  • window.__platformHealth.reset()
  • window.__platformHealth.setStatus('primary' | 'monitoring' | 'remote-0' | 'remote-1', 'healthy' | 'degraded' | 'unavailable')
  • window.__platformHealth.setWarnings([...])
  • window.__platformHealth.clearWarnings()

}

// 5. Audit instance is available and there are successful audit messages
// 4. All configured audit instances are available.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure about this one, needs disussion

@@ -53,34 +37,6 @@ const { configuration } = storeToRefs(configurationStore);
<a :href="newVersions.newSPVersion.newspversionlink" target="_blank">v{{ newVersions.newSPVersion.newspversionnumber }} available</a>)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs discussion: should we move this to the health page as well?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant