mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-22 19:36:46 +00:00
Audit pass against the live mock backend (PULSE_MOCK_MODE=true) revealed
three platform sub-tabs that could never populate from canonical
resources today, even with a mature fixture environment:
- Docker > Swarm services: no `docker-service` resource is emitted by
the unified resource adapter at the /api/resources boundary.
- Kubernetes > Services: no `k8s-service` resource type is defined in
internal/unifiedresources; only k8s-cluster, k8s-node, pod, and
k8s-deployment are projected.
- TrueNAS > Hosts: TrueNAS connections produce storage, datasets,
physical disks, and app-containers but no top-level `agent` row
tagged with the `truenas` platform.
Per the platform-pages goal ("if a platform lacks enough canonical data
model support to make a useful page even after fixture work, do not
invent speculative UI — report the data-model gap and skip or gate
that surface deliberately"), the three sub-tabs are removed from the
page navigation and the resource queries are tightened to drop the
unused types. TrueNAS now defaults to /truenas/storage as the first
canonical operator entry point.
Kubernetes Nodes now also includes agent rows whose `sources` array
reports `kubernetes`, because the backend registry merges Pulse-Agent-
linked Kubernetes nodes onto the linked agent row. The merged agents
are the canonical projection of K8s nodes when an agent is installed
on them; treating them as Nodes makes the tab populate against mock
mode and live agent fleets alike.
Browser verification (Playwright, chromium, against live mock-mode
Pulse dev runtime):
- 8 tests, all pass. Every declared platform sub-tab now asserts at
least one canonical row populates under mock mode:
- docker: /docker/overview (2 hosts), /docker/containers
- kubernetes: /kubernetes/overview (1 cluster),
/kubernetes/nodes (3 merged agents), /kubernetes/pods (10),
/kubernetes/deployments (4)
- truenas: /truenas/storage (9), /truenas/apps (5)
- vmware: /vmware/overview (4 ESXi hosts), /vmware/vms (8),
/vmware/storage (datastores)
Targeted tests:
- dockerPageModel, kubernetesPageModel, truenasPageModel suites
updated and passing.
- resourceLinks.test.ts asserts the new TrueNAS default sub-tab.
Contracts updated:
- unified-resources.md Extension Points: platform default sub-tab must
land on a canonical surface that actually populates.
- storage-recovery.md Shared Boundaries: same; calls out TrueNAS
defaulting to /truenas/storage today.
Remaining canonical data-model gaps (intentionally not surfaced as
empty platform sub-tabs in the UI):
- internal/unifiedresources does not emit `docker-service` resources
even though mock.generateDockerServicesAndTasks() generates them in
the StateSnapshot; revisit when adding a docker-service projection.
- internal/unifiedresources does not define ResourceTypeK8sService;
revisit when k8s-service rows are added to the canonical model.
- internal/unifiedresources does not project a top-level TrueNAS
system as an `agent` row; revisit when the TrueNAS adapter promotes
the connection target into a canonical infrastructure row.
|
||
|---|---|---|
| .. | ||
| 06-theme-visual.spec.ts-snapshots | ||
| journeys | ||
| 00-diagnostic.spec.ts | ||
| 01-core-e2e.spec.ts | ||
| 02-navigation-perf.spec.ts | ||
| 03-multi-tenant.spec.ts | ||
| 04-mobile.spec.ts | ||
| 05-settings-mobile-audit.spec.ts | ||
| 06-theme-visual.spec.ts | ||
| 07-retired-trial-acquisition.spec.ts | ||
| 08-cloud-hosting.spec.ts | ||
| 09-cloud-billing-lifecycle.spec.ts | ||
| 10-v6-license-activation.spec.ts | ||
| 11-first-session.spec.ts | ||
| 12-v5-commercial-migration.spec.ts | ||
| 13-api-token-scope.spec.ts | ||
| 14-commercial-cancellation-reactivation.spec.ts | ||
| 15-settings-shell-consistency.spec.ts | ||
| 16-dev-runtime-recovery.spec.ts | ||
| 17-recovery-layout.spec.ts | ||
| 18-patrol-runtime-state.spec.ts | ||
| 19-telemetry-disclosure.spec.ts | ||
| 20-local-doc-links.spec.ts | ||
| 21-truenas-settings-platform-connections.spec.ts | ||
| 22-truenas-workloads-platform-filter.spec.ts | ||
| 22-vmware-settings-platform-connections.spec.ts | ||
| 23-truenas-infrastructure-storage-links.spec.ts | ||
| 24-truenas-storage-source-filter.spec.ts | ||
| 25-truenas-recovery-route-filter.spec.ts | ||
| 26-truenas-alert-thresholds.spec.ts | ||
| 27-truenas-storage-disk-history.spec.ts | ||
| 28-truenas-alert-resource-links.spec.ts | ||
| 29-truenas-patrol-finding-links.spec.ts | ||
| 30-setup-platform-connections-handoff.spec.ts | ||
| 31-truenas-ai-chat-mentions.spec.ts | ||
| 32-truenas-workloads-resource-deeplink.spec.ts | ||
| 33-truenas-infrastructure-route-filter.spec.ts | ||
| 34-truenas-patrol-history-breakdown.spec.ts | ||
| 35-vmware-infrastructure-source-filter.spec.ts | ||
| 36-vmware-alert-history-resource-incidents.spec.ts | ||
| 37-vmware-resource-history-drawer.spec.ts | ||
| 38-vmware-ai-chat-mentions.spec.ts | ||
| 39-vmware-resource-detail-drawer.spec.ts | ||
| 40-vmware-storage-source-filter.spec.ts | ||
| 41-vmware-phase1-exclusion-integrity.spec.ts | ||
| 42-vmware-ai-chat-read-recovery.spec.ts | ||
| 43-platform-mock-runtime.spec.ts | ||
| 44-workloads-chart-spacing.spec.ts | ||
| 45-workloads-memory-tail.spec.ts | ||
| 46-storage-summary-continuity.spec.ts | ||
| 47-inline-selection-scroll-stability.spec.ts | ||
| 48-summary-hover-selection.spec.ts | ||
| 49-demo-scenario-curation.spec.ts | ||
| 50-storage-physical-disk-io-history.spec.ts | ||
| 51-quickstart-cross-surface.spec.ts | ||
| 52-ai-settings-provider-setup.spec.ts | ||
| 53-demo-mode-commercial-boundary.spec.ts | ||
| 54-monitored-system-billing-focus.spec.ts | ||
| 55-self-hosted-upgrade-return.spec.ts | ||
| 56-pulse-account-upgrade-bootstrap.spec.ts | ||
| 57-release-candidate-shell.spec.ts | ||
| 58-self-hosted-trial-rate-limit-ui.spec.ts | ||
| 59-self-hosted-plans-entitlement-summary.spec.ts | ||
| 59-workloads-column-layout.spec.ts | ||
| 60-page-header-consistency.spec.ts | ||
| 61-diagnostics-commercial-funnel.spec.ts | ||
| 61-infrastructure-column-layout.spec.ts | ||
| 62-runtime-home-onboarding-contract.spec.ts | ||
| 62-storage-growth-column.spec.ts | ||
| 63-pbs-active-tasks.spec.ts | ||
| 64-workloads-proxmox-refresh-stability.spec.ts | ||
| 65-offline-proxmox-node-visibility.spec.ts | ||
| 66-ceph-alert-thresholds.spec.ts | ||
| 66-organization-sharing-approval-ui.spec.ts | ||
| 67-tls-verification-warning-banners.spec.ts | ||
| 68-infrastructure-onboarding.spec.ts | ||
| 68-platform-pages-shell.spec.ts | ||
| 69-diagnostics-onboarding.spec.ts | ||
| 70-self-hosted-manual-activation-success.spec.ts | ||
| 72-docker-workloads-host-filter.spec.ts | ||
| 73-patrol-assistant-operator-briefing.spec.ts | ||
| 74-infrastructure-workloads-resource-coherence.spec.ts | ||
| 75-settings-infrastructure-fleet-status-coherence.spec.ts | ||
| helpers.ts | ||
| runtime-defaults.ts | ||
| stripe-sandbox.ts | ||
| stripe-webhooks.ts | ||