Commit Graph

185 Commits

Author SHA1 Message Date
Chris Farhood c4938aa987 Merge pull request #7 from cpfarhood/fix/drawer-background-paper
fix: use background-paper for drawer to match Headlamp standard
2026-02-11 23:43:49 -05:00
Chris Farhood 9c4f34d134 fix: use background-paper for drawer to match Headlamp standard
Changed drawer backgroundColor from var(--mui-palette-background-default)
to var(--mui-palette-background-paper) to match Headlamp's standard drawer
and dialog style with proper opaque elevated surface.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 23:42:39 -05:00
Chris Farhood 2c2f04ff5d docs: enhance README with badges, documentation links, and updated features
Major improvements to README.md:

1. Added badges:
   - CI and E2E test status badges
   - License badge
   - Quick navigation links to docs sections

2. Updated features:
   - Added dark mode support (v0.3.5)
   - Highlighted critical Headlamp v0.39.0+ watchPlugins requirement
   - Updated installation instructions with current best practices

3. Added comprehensive documentation section:
   - Links to all docs/ files (ARCHITECTURE, DEPLOYMENT, SECURITY, TROUBLESHOOTING, TESTING)
   - Table of contents with descriptions
   - Quick reference troubleshooting table

4. Streamlined development section:
   - Quick start commands
   - Testing instructions with examples
   - Links to detailed guides in CONTRIBUTING.md and TESTING.md

5. Updated release process:
   - Reflects GitHub Actions (not Gitea)
   - Documents ArtifactHub 30-minute sync
   - Links to detailed release process in CONTRIBUTING.md

6. Added Contributing section:
   - Links to CONTRIBUTING.md
   - Highlights key development practices

7. General improvements:
   - Removed outdated Gitea references
   - Updated version references to v0.3.5
   - Better organization and navigation
   - Professional footer

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 23:36:07 -05:00
Chris Farhood d4fe2c9ea9 docs: add Priority 3 documentation (TROUBLESHOOTING, TESTING, JSDoc)
Priority 3 (Medium - Week 3) completion:

1. Created docs/TROUBLESHOOTING.md:
   - Comprehensive troubleshooting guide for all common issues
   - Plugin not showing, 403/404 errors, dark mode, data loading
   - RBAC and network debugging scripts
   - Browser console error solutions
   - ArtifactHub sync troubleshooting

2. Created docs/TESTING.md:
   - Complete testing guide covering unit, E2E, and CI/CD
   - Vitest and Playwright documentation
   - Test coverage goals and current status
   - Best practices for writing tests
   - Debugging strategies and common issues
   - Example test patterns

3. Added comprehensive JSDoc comments:
   - All exported functions in src/api/polaris.ts
   - All exported types and interfaces
   - React hooks with usage examples
   - Context provider and consumer hook

Documentation completeness: 85% → 95%

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 23:33:25 -05:00
github-actions[bot] 23f7a7ed73 ci: update artifact hub metadata for v0.3.5 v0.3.5 2026-02-12 04:26:55 +00:00
Chris Farhood 96a0cce17e chore: bump version to 0.3.5 2026-02-11 23:26:13 -05:00
Chris Farhood 8672ae8956 Merge pull request #6 from cpfarhood/fix/drawer-dark-mode
fix: use correct CSS variables for drawer dark mode support
2026-02-11 23:25:01 -05:00
Chris Farhood dfbff8d539 fix: use correct CSS variables for drawer dark mode support
Changed drawer background from var(--mui-palette-background-paper) to
var(--mui-palette-background-default) which properly adapts to dark mode.
Also removed fallback values that were preventing theme variables from
working correctly.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 23:21:58 -05:00
Chris Farhood 7ad5b7ecc3 docs: add Priority 2 documentation (ARCHITECTURE, DEPLOYMENT, SECURITY)
- Add docs/ARCHITECTURE.md with system architecture, data flow diagrams, component hierarchy, design decisions, and known limitations
- Add docs/DEPLOYMENT.md with comprehensive installation guide including Helm integration, RBAC configuration, network policies, plugin manager setup, and troubleshooting
- Add SECURITY.md with security model, RBAC requirements, network security, vulnerability reporting, dependency scanning, and compliance considerations

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 23:20:41 -05:00
Chris Farhood 0e711f5dfd docs: add CONTRIBUTING.md and CHANGELOG.md (Priority 1)
Add comprehensive contributor guidelines and complete changelog documenting
all 34 versions from v0.0.1 to v0.3.4. This implements Priority 1 from the
documentation-engineer analysis.

CONTRIBUTING.md includes:
- Development workflow and setup
- Branching strategy (feat/, fix/, docs/, etc.)
- Commit message conventions (Conventional Commits)
- Pull request process and checklist
- Code style guidelines (TypeScript, React, imports)
- Testing requirements (unit + E2E)
- Documentation update requirements
- Release process for maintainers

CHANGELOG.md includes:
- All 34 released versions with categorized changes
- Features, fixes, changes, infrastructure updates
- Links to GitHub releases for each version
- Follows Keep a Changelog format
- Semantic versioning

Documentation completeness: 65% → 75%

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 23:14:13 -05:00
Chris Farhood 67ced98bcd fix: resolve eslint import sorting and unused import issues
Run eslint autofix to sort imports and remove unused ResultCounts import
from InlineAuditSection. This fixes CI lint failures.

Changes:
- Sort imports in all source files per eslint-plugin-import rules
- Remove unused ResultCounts import from InlineAuditSection.tsx

All CI checks now pass:
-  Build successful
-  Lint clean (no warnings)
-  Type-check passing
-  Format check passing
-  Unit tests passing (50/50)

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 23:05:30 -05:00
Chris Farhood f02b4cf051 chore: migrate from Gitea to GitHub Actions exclusively
Remove Gitea workflows and consolidate to GitHub Actions as the single
CI/CD platform. GitHub is now the sole source of truth for the project.

Changes:
- Remove .gitea/workflows/ directory entirely
  - ai-review.yaml (Gitea-specific, not migrating)
  - e2e.yaml (replaced by .github/workflows/e2e.yaml)
  - release.yaml (already exists at .github/workflows/release.yaml)
- Migrate .gitea/workflows/ci.yaml → .github/workflows/ci.yaml
  - Add unit tests to CI workflow
  - Use Node.js 20 with npm caching
  - Add 10-minute timeout

GitHub Actions Workflows:
- ci.yaml: Lint, type-check, format-check, build, test
- e2e.yaml: End-to-end Playwright tests
- release.yaml: Build tarball, create GitHub release, update ArtifactHub metadata

Repository Setup:
- Single remote: https://github.com/cpfarhood/headlamp-polaris-plugin
- All development, CI/CD, and releases happen on GitHub
- ArtifactHub pulls releases from GitHub every 30 minutes

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 23:03:24 -05:00
Chris Farhood 51b174e68d docs: enhance E2E testing with comprehensive docs and new tests
Add comprehensive Playwright E2E testing documentation and additional
test coverage for app bar badge and plugin settings functionality.

Changes:
- Add GitHub Actions workflow for E2E tests (.github/workflows/e2e.yaml)
- Create .env.example for local test configuration
- Update .gitignore to exclude .env files
- Enhance e2e/README.md with:
  - Detailed test coverage documentation
  - Cluster requirements and prerequisites
  - Debugging guides and troubleshooting tips
  - CI/CD integration instructions for GitHub Actions
  - Best practices and examples for writing new tests
- Add e2e/settings.spec.ts:
  - Test plugin settings page visibility
  - Test refresh interval configuration
  - Test dashboard URL configuration
  - Test connection test button
- Add e2e/appbar.spec.ts:
  - Test badge displays cluster score
  - Test badge navigation to overview
  - Test badge color reflects score level
  - Test badge updates across clusters

Test Results (v0.3.4):
- 5/16 tests passing (sidebar, namespaces, drawer functionality)
- 11/16 failing due to missing v0.3.4 features (settings, app bar badge)
- Tests will pass once plugin is updated to v0.3.4 in cluster

The E2E test suite now provides comprehensive coverage of:
- Plugin registration and loading
- Navigation and routing
- Settings configuration
- App bar integration
- Dark mode support
- Data fetching and rendering

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 23:02:05 -05:00
github-actions[bot] 5188bc289e ci: update artifact hub metadata for v0.3.4 v0.3.4 2026-02-12 03:45:07 +00:00
Chris Farhood 33ef816826 chore: bump version to 0.3.4 2026-02-11 22:44:29 -05:00
Chris Farhood ea28ab3a81 Merge pull request #5 from cpfarhood/fix/dark-mode-theme-support
fix: add dark mode support using MUI CSS variables
2026-02-11 22:44:06 -05:00
Chris Farhood 57f0bf6b4b fix: add dark mode support using MUI CSS variables
Replace all hardcoded colors with Headlamp's MUI CSS variables to ensure
proper theme support in both light and dark modes. This fixes the issue
where plugin UI elements had white backgrounds when the site switched to
dark mode.

Changes:
- PolarisSettings: Use theme variables for input, button, text colors
- ExemptionManager: Use theme variables for all buttons and UI elements
- DashboardView: Use theme variables for refresh button
- AppBarScoreBadge: Keep semantic colors (green/orange/red) for status

CSS Variables Used:
- --mui-palette-primary-main: Primary action color
- --mui-palette-primary-contrastText: Text on primary bg
- --mui-palette-background-paper: Card/paper backgrounds
- --mui-palette-text-primary: Primary text color
- --mui-palette-text-secondary: Secondary text color
- --mui-palette-divider: Border/divider colors
- --mui-palette-action-disabled: Disabled text color
- --mui-palette-action-disabledBackground: Disabled bg color
- --mui-palette-error-main: Error/danger actions

All tests passing (50/50), build successful.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 22:43:52 -05:00
github-actions[bot] 8dd71772f5 ci: update artifact hub metadata for v0.3.3 v0.3.3 2026-02-12 03:41:49 +00:00
Chris Farhood c3b2877c51 chore: bump version to 0.3.3 2026-02-11 22:41:11 -05:00
Chris Farhood 62aa181433 Merge pull request #4 from cpfarhood/fix/plugin-settings-registration
fix: correct plugin settings registration name and add save button
2026-02-11 22:40:45 -05:00
Chris Farhood 2c077907e9 fix: correct plugin settings registration name and add save button
The plugin settings were not showing because the registration name was
incorrect. Changed from 'polaris' to 'headlamp-polaris-plugin' (matching
package.json name) and added displaySaveButton=true parameter.

According to Headlamp plugin API:
registerPluginSettings(name, component, displaySaveButton)

The name must match the plugin name from package.json.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 22:40:34 -05:00
github-actions[bot] 17495d4883 ci: update artifact hub metadata for v0.3.2 v0.3.2 2026-02-12 03:19:50 +00:00
Chris Farhood 01eed82efc chore: bump version to 0.3.2 2026-02-11 22:19:07 -05:00
Chris Farhood 5dab426fe8 Merge pull request #3 from cpfarhood/fix/remove-mui-dependencies
fix: remove all MUI dependencies causing plugin load failure
2026-02-11 22:18:43 -05:00
Chris Farhood 5eaa6603f1 fix: remove all MUI dependencies causing plugin load failure
Replace all @mui/material and @mui/icons-material imports with standard
HTML elements and inline styles. This fixes the browser error:
"TypeError: undefined is not an object (evaluating 'q.createSvgIcon')"

The Headlamp plugin environment doesn't provide the full MUI library,
so plugins must use only Headlamp CommonComponents or standard HTML.

Changes:
- AppBarScoreBadge: Replace Chip and ShieldIcon with button and emoji
- DashboardView: Replace Button and RefreshIcon with button and emoji
- ExemptionManager: Replace all MUI form components with HTML equivalents
- PolarisSettings: Replace Button with HTML button

All tests passing (50/50), TypeScript compilation clean, build successful.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 22:18:20 -05:00
github-actions[bot] b67f770660 ci: update artifact hub metadata for v0.3.1 v0.3.1 2026-02-12 02:49:01 +00:00
Chris Farhood 20e8063cbb chore: bump version to 0.3.1
- Update package.json version
- Update artifacthub-pkg.yml version and archive URL
- Add PROJECT_ASSESSMENT.md for tracking improvements
- Add deployment/ directory with plugin loading fix documentation

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 21:48:04 -05:00
Chris Farhood c1156e5cf5 Merge pull request #2 from cpfarhood/fix/typescript-errors-and-tests
fix: resolve TypeScript compilation errors and failing tests
2026-02-11 21:47:50 -05:00
Chris Farhood cab2118a88 fix: resolve TypeScript compilation errors and failing tests
- Update registerDetailsViewSection and registerAppBarAction calls to match new Headlamp plugin API (single argument)
- Add SimpleTable mock to DashboardView tests
- Fix all TypeScript compilation errors
- All 50 tests now passing

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 21:47:32 -05:00
github-actions[bot] a18710ccb1 ci: update artifact hub metadata for v0.3.0 v0.3.0 2026-02-12 01:24:24 +00:00
Chris Farhood 811059cf75 feat: comprehensive Polaris integration enhancements
Major new features:
- App bar score badge showing cluster Polaris score
- Inline audit results in Deployment/StatefulSet/DaemonSet/Job/CronJob detail views
- Exemption management UI with annotation PATCH support
- Top issues table on overview dashboard
- Audit time display and manual refresh button
- Connection test button in settings
- Check ID to human-readable name mapping
- Enhanced error messages with context

Technical improvements:
- Added triggerRefresh to PolarisDataContext for manual refresh
- Created checkMapping.ts for check metadata
- Created topIssues.ts for extracting common failures
- Enhanced DashboardView with top issues and refresh
- Enhanced PolarisSettings with connection test
- Created InlineAuditSection for details view integration
- Created AppBarScoreBadge for app bar integration
- Created ExemptionManager for annotation patches

UI enhancements:
- 1000px namespace detail panel
- Theme-aware styling throughout
- Improved formatting and layout
- Better status indicators

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 20:21:45 -05:00
github-actions[bot] a404c075d6 ci: update artifact hub metadata for v0.2.5 v0.2.5 2026-02-12 00:25:14 +00:00
Chris Farhood db17a08d26 fix: improve theming and settings visibility
- Fix namespace detail panel to follow system dark/light theme
- Use proper CSS custom properties for background and text colors
- Fix plugin settings registration (remove deprecated third parameter)
- Ensure close button and headers respect theme colors
- Version bump to 0.2.5

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 19:24:33 -05:00
github-actions[bot] e52670dee4 ci: update artifact hub metadata for v0.2.4 v0.2.4 2026-02-11 23:07:13 +00:00
Chris Farhood 8d219a9c6e ui: increase namespace detail panel width to 1000px
- Expand side panel from 800px to 1000px for better content viewing
- Version bump to 0.2.4

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 18:06:29 -05:00
github-actions[bot] b2cbce16c1 ci: update artifact hub metadata for v0.2.3 v0.2.3 2026-02-11 18:36:20 +00:00
Chris Farhood c95aab3ca3 feat: add full URL support for custom Polaris dashboards
- Add isFullUrl() helper to detect full vs proxy URLs
- Support both K8s proxy URLs and direct HTTP/HTTPS URLs
- Use fetch() for full URLs, ApiProxy for K8s proxy URLs
- Improve error messages with context-specific guidance
- Update settings with examples for both URL types
- Version bump to 0.2.3

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 13:35:35 -05:00
github-actions[bot] 604106c688 ci: update artifact hub metadata for v0.2.2 v0.2.2 2026-02-11 18:32:26 +00:00
Chris Farhood 44a0016a4d feat: add configurable Polaris dashboard URL setting
- Add getDashboardUrl() and setDashboardUrl() functions to polaris.ts
- Update PolarisSettings with dashboard URL input field
- Replace hardcoded POLARIS_DASHBOARD_PROXY with configurable getPolarisProxyUrl()
- Increase namespace detail panel width to 800px
- Remove unused 'Skipped' field from overview dashboard
- Version bump to 0.2.2

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 13:31:40 -05:00
github-actions[bot] 03d7379e13 ci: update artifact hub metadata for v0.2.1 v0.2.1 2026-02-11 17:07:01 +00:00
Chris Farhood 861dff6901 chore: bump version to 0.2.1
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-11 12:05:57 -05:00
Chris Farhood 03b75a836b Migrate to GitHub as primary repository + fix v0.2.0 checksum (#1)
* ci: fix checksum for manually created GitHub release v0.2.0

The GitHub release was created manually with gh CLI, so the checksum
in metadata didn't match. This updates the checksum to match the actual
tarball on GitHub.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>

* refactor: migrate to GitHub as primary repository

- Move release workflow from Gitea Actions to GitHub Actions
- Update checksum to match manually created GitHub v0.2.0 release
- Simplify workflow by removing Gitea-specific steps
- Use softprops/action-gh-release for easier release management

This eliminates the complexity of Gitea mirroring and the issues
with GH_TOKEN authentication in Gitea Actions.

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Happy <yesreply@happy.engineering>
2026-02-10 16:59:37 -05:00
Chris Farhood 83a5342011 Merge pull request 'fix: use GH_TOKEN secret instead of GITHUB_TOKEN' (#31) from fix/use-gh-token-secret into main
Reviewed-on: farhoodliquor/headlamp-polaris-plugin#31
v0.2.0
2026-02-10 15:35:40 -05:00
Chris Farhood 3daa1cbc14 fix: use GH_TOKEN secret instead of GITHUB_TOKEN 2026-02-10 15:34:36 -05:00
Chris Farhood 9c03d912df Merge pull request 'fix: add GitHub release creation to workflow' (#30) from fix/add-github-release into main
Reviewed-on: farhoodliquor/headlamp-polaris-plugin#30
2026-02-10 15:30:46 -05:00
Chris Farhood 00d4b224eb fix: add GitHub release creation to workflow
Gitea's push mirroring syncs git objects (branches, tags, commits)
but does not sync GitHub release objects or assets. Since ArtifactHub
needs to download the plugin tarball from the GitHub release URL,
the workflow must create releases on both Gitea and GitHub.

Changes:
- Added "Create GitHub release" step after Gitea release
- Uses GITHUB_TOKEN secret for GitHub API authentication
- Creates release and uploads tarball to GitHub
- Mirroring still handles git data sync

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-10 15:28:41 -05:00
Chris Farhood c1248ec3c4 Merge pull request 'chore: update artifact hub metadata for v0.2.0' (#29) from chore/update-checksum-v0.2.0 into main
Reviewed-on: farhoodliquor/headlamp-polaris-plugin#29
2026-02-10 15:20:08 -05:00
Chris Farhood 7ac5d0a494 ci: update artifact hub metadata for v0.2.0
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
2026-02-10 09:02:43 -05:00
Chris Farhood 59c1d4e844 Merge pull request 'chore: bump version to 0.2.0' (#28) from release/0.2.0 into main
Reviewed-on: farhoodliquor/headlamp-polaris-plugin#28
2026-02-10 07:07:52 -05:00
Chris Farhood a507ba1d4a chore: bump version to 0.2.0 2026-02-10 06:49:39 -05:00