Fix getNamespaces() to skip cluster-scoped resources (Namespace: "")
that caused Router.createRouteURL to throw TypeError on the Namespaces
page. Add Playwright E2E smoke tests with Authentik OIDC auth for CI
and K8s token fallback for local dev. Add Gitea Actions E2E workflow,
vitest unit test infrastructure, and test-utils fixtures.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Fix skipped count showing empty by rendering as plain text instead
of StatusLabel with empty status (which renders near-invisible)
- Fix namespace link crash by using Router.createRouteURL to generate
cluster-prefixed URLs with react-router-dom Link, instead of
Headlamp's Link component which crashes on plugin-registered routes
- Redesign overview page with PercentageCircle score chart and
PercentageBar check distribution for a better visual experience
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove references to deleted Full Audit page and DynamicSidebarRegistrar.
Add Namespaces page, skipped checks, test commands, and NamespacesListView
to project structure. Fix stale version numbers in install examples.
Consolidate CI/release docs to match single Gitea Actions workflow.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Merge Overview and Full Audit into a single dashboard page that always
shows the skipped check count. Fix namespace link 404s by using
Headlamp's Link component (which generates cluster-prefixed URLs)
instead of raw react-router-dom Link. Add vitest unit tests for all
polaris.ts utility functions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Headlamp's sidebar Collapse only opens when an item is selected via
route matching, so 3-level nesting (Polaris > Namespaces > ns) never
expanded. Replace the DynamicSidebarRegistrar with a dedicated
/polaris/namespaces route that shows a table of namespaces with
scores and clickable links to the detail views.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fetch latest main before pushing metadata update to prevent
non-fast-forward rejections when main moves during the release run.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The README, CLAUDE.md, and artifacthub-pkg.yml all referenced the old
ConfigMap-based data source. Updated to document the actual Kubernetes
service proxy path, the correct RBAC Role/RoleBinding (services/proxy
get), and added sections for token-auth mode, NetworkPolicy, audit
logging, and troubleshooting. Also updated the project structure and
feature descriptions to match the current codebase.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reorganize the sidebar into a proper hierarchy (Overview, Full Audit,
Namespaces) and add a Full Audit dashboard view that includes skipped
checks. Namespace routes move to /polaris/ns/:namespace to avoid
path collisions, and namespace detail pages now link out to the
Polaris dashboard.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Aligns npm package name with the repo and ArtifactHub package name.
Updates all references: package.json, registerPluginSettings, Dockerfile,
release workflow tarball URLs, artifacthub-pkg.yml archive-url, and README.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rename package from polaris-headlamp-plugin to headlamp-polaris-plugin
so the ArtifactHub URL becomes /headlamp/polaris/headlamp-polaris-plugin.
Also fix the archive checksum to match the actual v0.0.7 tarball on GitHub.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Two GitHub API URLs still had the old repo name (polaris-headlamp-plugin
instead of headlamp-polaris-plugin), causing the GitHub release step to
target the wrong repository.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Avoid recalculating per-resource counts 3x per table row by precomputing
them into a Map. Add explicit ResultCounts return type to resourceCounts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add drill-down namespace views under the Polaris sidebar entry. Each
namespace gets a sidebar sub-item registered dynamically from audit data,
linking to /polaris/:namespace with a score summary and per-resource table.
Introduces a shared PolarisDataContext so the sidebar registrar and view
components share a single data fetch. Also updates the Artifact Hub
repository ID.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Register plugin settings via registerPluginSettings so the refresh
interval is configurable from Headlamp's plugin config page instead
of being embedded in the main view header.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace inline-styled divs and native HTML elements with Headlamp's
built-in NameValueTable, StatusLabel, and HeaderLabel components so the
plugin matches the look and feel of native pages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>