Pulse/internal/api
rcourtman a6a8efaa65 test: Add comprehensive test coverage across packages
New test files with expanded coverage:

API tests:
- ai_handler_test.go: AI handler unit tests with mocking
- agent_profiles_tools_test.go: Profile management tests
- alerts_endpoints_test.go: Alert API endpoint tests
- alerts_test.go: Updated for interface changes
- audit_handlers_test.go: Audit handler tests
- frontend_embed_test.go: Frontend embedding tests
- metadata_handlers_test.go, metadata_provider_test.go: Metadata tests
- notifications_test.go: Updated for interface changes
- profile_suggestions_test.go: Profile suggestion tests
- saml_service_test.go: SAML authentication tests
- sensor_proxy_gate_test.go: Sensor proxy tests
- updates_test.go: Updated for interface changes

Agent tests:
- dockeragent/signature_test.go: Docker agent signature tests
- hostagent/agent_metrics_test.go: Host agent metrics tests
- hostagent/commands_test.go: Command execution tests
- hostagent/network_helpers_test.go: Network helper tests
- hostagent/proxmox_setup_test.go: Updated setup tests
- kubernetesagent/*_test.go: Kubernetes agent tests

Core package tests:
- monitoring/kubernetes_agents_test.go, reload_test.go
- remoteconfig/client_test.go, signature_test.go
- sensors/collector_test.go
- updates/adapter_installsh_*_test.go: Install adapter tests
- updates/manager_*_test.go: Update manager tests
- websocket/hub_*_test.go: WebSocket hub tests

Library tests:
- pkg/audit/export_test.go: Audit export tests
- pkg/metrics/store_test.go: Metrics store tests
- pkg/proxmox/*_test.go: Proxmox client tests
- pkg/reporting/reporting_test.go: Reporting tests
- pkg/server/*_test.go: Server tests
- pkg/tlsutil/extra_test.go: TLS utility tests

Total: ~8000 lines of new test code
2026-01-19 19:26:18 +00:00
..
agent_profiles_tools.go refactor(api): Update handlers for native AI chat service 2026-01-19 19:20:00 +00:00
agent_profiles_tools_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
ai_handler.go refactor(api): Update handlers for native AI chat service 2026-01-19 19:20:00 +00:00
ai_handler_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
ai_handlers.go refactor(api): Update handlers for native AI chat service 2026-01-19 19:20:00 +00:00
ai_handlers_test.go Enhance devcontainer and CI workflows 2026-01-01 22:29:15 +00:00
ai_intelligence_handlers.go fix: replace hallucinated upgrade URLs with correct pulserelay.pro 2026-01-10 22:45:40 +00:00
ai_intelligence_handlers_test.go fix: Update tests for RAID alerting md0/md1 skip and AI gating message change 2025-12-30 23:39:55 +00:00
ai_patrol_handlers_test.go test: improve test coverage for AI, license, config, and monitoring packages 2025-12-19 22:49:30 +00:00
alerts.go refactor(api): Add interfaces to handlers for testability 2026-01-19 19:21:46 +00:00
alerts_endpoints_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
alerts_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
audit_handlers.go refactor(api): Add interfaces to handlers for testability 2026-01-19 19:21:46 +00:00
audit_handlers_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
auth.go fix: Add robustness improvements to approval, auth, and server 2026-01-19 19:24:45 +00:00
auth_helpers_test.go feat(license): add audit_logging, advanced_sso, advanced_reporting to Pro tier 2026-01-10 12:55:02 +00:00
auth_scope_test.go feat(rbac): add OIDC group mapping tests and audit logging for RBAC actions 2026-01-09 19:25:33 +00:00
bootstrap_token.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
bootstrap_token_test.go test: Add edge case for initializeBootstrapToken error path 2025-12-02 00:51:44 +00:00
charts_test.go Enhance devcontainer and CI workflows 2026-01-01 22:29:15 +00:00
config_handlers.go fix: add mutex to prevent concurrent map writes in Docker agent CPU tracking 2026-01-15 21:10:55 +00:00
config_handlers_auto_reg_test.go test: Add edge cases for markAutoRegistered empty inputs 2025-12-01 23:50:10 +00:00
config_handlers_auto_register_test.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
config_handlers_cluster_test.go test: Improve coverage for cluster config handler functions 2025-12-01 14:46:00 +00:00
config_handlers_host_test.go style: Apply gofmt to 37 files 2025-12-02 17:21:48 +00:00
config_handlers_pve_user_test.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
config_handlers_sanitize_test.go test: Add tests for config handler utility functions 2025-12-01 14:09:35 +00:00
config_handlers_setup_script_test.go test: Add HandleSetupScript PBS path tests for API package 2025-12-02 13:36:23 +00:00
config_handlers_temperature_test.go Improve temperature proxy workflow 2025-11-17 14:25:46 +00:00
config_handlers_transport_guard_test.go Improve temperature proxy workflow 2025-11-17 14:25:46 +00:00
config_profiles.go fix: add mutex to prevent concurrent map writes in Docker agent CPU tracking 2026-01-15 21:10:55 +00:00
config_profiles_test.go fix: add mutex to prevent concurrent map writes in Docker agent CPU tracking 2026-01-15 21:10:55 +00:00
csrf_store.go Show AI cost refresh errors and harden log redaction 2025-12-12 11:05:24 +00:00
csrf_store_test.go fix: Update runtime config when toggling Docker update actions setting 2026-01-03 11:14:17 +00:00
demo_middleware.go fix(demo): allow AI chat in read-only mode 2025-12-23 18:52:13 +00:00
demo_middleware_test.go test: Add edge case for DemoModeMiddleware WebSocket POST upgrade 2025-12-01 23:24:06 +00:00
diagnostics.go feat(profiles): add AI-assisted profile suggestions 2026-01-15 13:24:18 +00:00
diagnostics_test.go test: fix flaky tests with nonexistent path assertions 2026-01-04 15:38:30 +00:00
DO_NOT_EDIT_FRONTEND_HERE.md Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
docker_agents.go fix(api): increase Docker agent report size limit from 512KB to 2MB 2026-01-14 12:20:39 +00:00
docker_agents_test.go ADA: Add normalizeCommandStatus helper with unit tests 2025-11-29 17:06:18 +00:00
docker_metadata.go Fix flaky tests and improve coverage across alerts, api, and config packages 2026-01-03 18:36:17 +00:00
export_test.go fix: Update TestPublicURLDetectionUsesForwardedHeaders for proxy hardening 2025-12-02 03:16:52 +00:00
frontend_embed.go Improve static asset caching for hashed files 2025-11-06 13:54:26 +00:00
frontend_embed_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
guest_metadata.go Fix flaky tests and improve coverage across alerts, api, and config packages 2026-01-03 18:36:17 +00:00
host_agents.go fix: add mutex to prevent concurrent map writes in Docker agent CPU tracking 2026-01-15 21:10:55 +00:00
host_agents_test.go fix: add mutex to prevent concurrent map writes in Docker agent CPU tracking 2026-01-15 21:10:55 +00:00
host_metadata.go Fix flaky tests and improve coverage across alerts, api, and config packages 2026-01-03 18:36:17 +00:00
http_metrics.go feat: comprehensive diagnostics and observability improvements 2025-10-21 12:37:39 +00:00
http_metrics_test.go Add unit tests for HTTP metrics utility functions 2025-11-30 02:48:05 +00:00
kubernetes_agents.go feat: add Kubernetes platform support 2025-12-12 21:31:11 +00:00
license_handlers.go Initialize SQLite audit logger for Pro license with audit_logging feature 2026-01-13 10:06:48 +00:00
license_handlers_test.go fix: Allow Host Agent thresholds to be set to 0 to disable alerting. Related to #864 2025-12-20 20:25:20 +00:00
log_redact.go Show AI cost refresh errors and harden log redaction 2025-12-12 11:05:24 +00:00
metadata_handlers_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
metadata_provider.go feat(ai): Add URL discovery tool - AI can find and set resource URLs 2025-12-10 00:29:07 +00:00
metadata_provider_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
middleware.go style: fix whitespace in middleware.go 2025-11-27 08:34:31 +00:00
middleware_test.go test: Add edge case for writeErrorResponse encode failure 2025-12-01 23:52:21 +00:00
monitor_wrappers.go refactor(api): Update handlers for native AI chat service 2026-01-19 19:20:00 +00:00
notification_queue.go security: Add request body size limits to remaining API handlers 2025-12-02 16:47:13 +00:00
notifications.go refactor(api): Add interfaces to handlers for testability 2026-01-19 19:21:46 +00:00
notifications_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
oidc_handlers.go feat(license): add audit_logging, advanced_sso, advanced_reporting to Pro tier 2026-01-10 12:55:02 +00:00
oidc_handlers_test.go test: Add edge case test for addQueryParam URL parse error 2025-12-01 23:08:36 +00:00
oidc_mapping_test.go feat(rbac): add OIDC group mapping tests and audit logging for RBAC actions 2026-01-09 19:25:33 +00:00
oidc_service.go feat(oidc): Add refresh token support for long-lived sessions 2025-12-20 10:45:46 +00:00
oidc_service_test.go test: Add invalid PEM data test for newOIDCHTTPClient 2025-12-02 01:00:06 +00:00
profile_suggestions.go refactor(api): Add interfaces to handlers for testability 2026-01-19 19:21:46 +00:00
profile_suggestions_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
rate_limit_config.go fix: exclude WebSocket from rate limiting to prevent UI lockout 2025-12-19 14:51:52 +00:00
rate_limit_config_test.go style: Apply gofmt to 37 files 2025-12-02 17:21:48 +00:00
ratelimit.go docs: Add godoc comments to exported functions 2025-12-02 15:58:59 +00:00
ratelimit_test.go Add unit tests for RateLimiter (internal/api/ratelimit.go) 2025-11-30 04:33:59 +00:00
rbac_handlers.go fix(agent): add FreeBSD platform support to agent download and UI (#1051) 2026-01-11 23:51:12 +00:00
rbac_handlers_test.go feat(rbac): implement RBAC UI, OIDC group mapping, and API standard auth 2026-01-09 19:16:34 +00:00
rbac_test.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
README.md Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
recovery_tokens.go Show AI cost refresh errors and harden log redaction 2025-12-12 11:05:24 +00:00
recovery_tokens_test.go fix: Update runtime config when toggling Docker update actions setting 2026-01-03 11:14:17 +00:00
reporting_handlers.go feat(license): add audit_logging, advanced_sso, advanced_reporting to Pro tier 2026-01-10 12:55:02 +00:00
resource_handlers.go fix: Populate resources on-demand when /api/resources is called 2025-12-07 14:47:29 +00:00
router.go refactor(api): Update handlers for native AI chat service 2026-01-19 19:20:00 +00:00
router_arch_test.go test: Add tests for API helper functions 2025-12-01 21:33:45 +00:00
router_download_test.go Fix #735: Allow HEAD requests for download endpoints and fix routing 2025-11-24 15:16:14 +00:00
router_integration_test.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
router_test.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
saml_handlers.go feat(sso): implement SAML session storage for Single Logout support 2026-01-12 16:37:07 +00:00
saml_service.go feat(sso): add SAML 2.0 and multi-provider SSO support 2026-01-12 15:19:59 +00:00
saml_service_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
security.go feat(profiles): add AI-assisted profile suggestions 2026-01-15 13:24:18 +00:00
security_oidc.go fix: mark unused parameters to satisfy unparam linter 2025-11-27 10:12:48 +00:00
security_oidc_response_test.go Enhance devcontainer and CI workflows 2026-01-01 22:29:15 +00:00
security_setup_fix.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
security_setup_fix_test.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
security_test.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
security_tokens.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
security_tokens_test.go test: Add edge cases for normalizeRequestedScopes 2025-12-02 00:19:20 +00:00
sensor_proxy_gate.go v5: gate legacy sensor-proxy and prune dev docs 2025-12-18 21:51:25 +00:00
sensor_proxy_gate_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00
session_oidc_test.go feat(license): add audit_logging, advanced_sso, advanced_reporting to Pro tier 2026-01-10 12:55:02 +00:00
session_store.go feat(sso): implement SAML session storage for Single Logout support 2026-01-12 16:37:07 +00:00
session_store_test.go feat(license): add audit_logging, advanced_sso, advanced_reporting to Pro tier 2026-01-10 12:55:02 +00:00
sso_handlers.go feat(sso): add SAML 2.0 and multi-provider SSO support 2026-01-12 15:19:59 +00:00
sso_handlers_test.go feat(sso): add SAML 2.0 and multi-provider SSO support 2026-01-12 15:19:59 +00:00
system_settings.go Fix flaky tests and improve coverage across alerts, api, and config packages 2026-01-03 18:36:17 +00:00
system_settings_handlers_test.go feat: remove Enterprise badges, simplify Pro upgrade prompts 2026-01-09 16:51:08 +00:00
system_settings_temperature_test.go feat: make PVE polling interval configurable (related to #467) 2025-11-18 21:30:04 +00:00
system_settings_utils_test.go Add unit tests for system_settings.go map utility functions 2025-12-01 01:05:07 +00:00
system_settings_validate_test.go Show CPU core count on EnhancedCPUBar progress bar 2025-11-29 21:47:22 +00:00
temperature_proxy.go fix: add cluster endpoint IP override and Windows agent download support 2026-01-08 23:04:25 +00:00
temperature_proxy_command_test.go fix: Use --ctid instead of --standalone --http-mode in quick-setup command 2025-12-02 11:38:47 +00:00
temperature_proxy_test.go Add unit tests for temperature proxy utility functions (api) 2025-11-30 14:07:04 +00:00
types.go feat: AI integration, Docker metrics, RAID display, and infrastructure improvements 2025-12-09 09:29:27 +00:00
unified_agent.go fix(agent): add FreeBSD platform support to agent download and UI (#1051) 2026-01-11 23:51:12 +00:00
unified_agent_download_test.go Enhance devcontainer and CI workflows 2026-01-01 22:29:15 +00:00
unified_agent_test.go fix(agent): add FreeBSD platform support to agent download and UI (#1051) 2026-01-11 23:51:12 +00:00
update_detection.go Enhance devcontainer and CI workflows 2026-01-01 22:29:15 +00:00
update_detection_test.go Enhance devcontainer and CI workflows 2026-01-01 22:29:15 +00:00
updates.go refactor(api): Add interfaces to handlers for testability 2026-01-19 19:21:46 +00:00
updates_test.go test: Add comprehensive test coverage across packages 2026-01-19 19:26:18 +00:00

Internal API Package

This directory contains the API server implementation for Pulse.

Important Note About frontend-modern/

The frontend-modern/ subdirectory that appears here is:

  • AUTO-GENERATED during builds
  • NOT the source code - just a build artifact
  • IN .gitignore - never committed
  • REQUIRED BY GO - The embed directive needs it here

Frontend Development Location

👉 Edit frontend files at: /opt/pulse/frontend-modern/src/

Why This Structure?

Go's //go:embed directive has limitations:

  1. Cannot use ../ paths to access parent directories
  2. Cannot follow symbolic links
  3. Must embed files within the Go module

This is a known Go limitation and our structure works around it.