Pulse/internal/api
rcourtman 8597eca010 Fix backup indicator being reset when VMs/Containers are re-polled
UpdateVMsForInstance and UpdateContainersForInstance were replacing
guest data without preserving the LastBackup field that was populated
by SyncGuestBackupTimes. This caused backup indicators to always show
"no backup found" since the LastBackup would be wiped every time
guests were polled (which happens more frequently than backup polling).

Now both functions preserve LastBackup from existing data when the
incoming guest data has a zero value.

Related to #762
2025-12-02 00:12:31 +00:00
..
alerts.go Add recovery notifications and grouping controls 2025-11-21 22:07:00 +00:00
alerts_test.go Allow printable alert IDs for acknowledgements (#550) 2025-10-14 16:48:22 +00:00
auth.go style: fix revive linter warnings 2025-11-27 10:26:26 +00:00
auth_helpers_test.go Add unit tests for auth helper functions (internal/api) 2025-11-30 23:04:44 +00:00
auth_scope_test.go test: Add edge case for RequireScope empty scope 2025-12-01 23:33:11 +00:00
bootstrap_token.go Improve temperature proxy control-plane flow 2025-11-15 21:49:51 +00:00
bootstrap_token_test.go test: Add edge case for clearBootstrapToken remove failure 2025-12-01 23:47:58 +00:00
config_handlers.go refactor: Remove dead HandleTestExistingNode function 2025-12-01 10:21:50 +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 Harden setup token flow and enforce encrypted persistence 2025-10-25 16:00:37 +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 test: Add edge case for normalizeNodeHost URL parse error 2025-12-01 23:28:32 +00:00
config_handlers_pve_user_test.go test: Add tests for instance lookup and setup token validation 2025-12-01 22:19:30 +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 WIP: Fix temperature proxy registration persistence (incomplete) 2025-11-19 20:12:19 +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
csrf_store.go chore: fix staticcheck U1000 unused code warnings 2025-11-27 09:12:17 +00:00
csrf_store_test.go Add unit tests for CSRF token store (api) 2025-11-30 14:55:47 +00:00
demo_middleware.go Fix demo mode to allow authentication endpoints 2025-11-06 13:48:28 +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 fix: mark unused parameters to satisfy unparam linter 2025-11-27 10:12:48 +00:00
diagnostics_test.go test: Add tests for config handler utility functions 2025-12-01 14:09:35 +00:00
DO_NOT_EDIT_FRONTEND_HERE.md Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
docker_agents.go ADA: Add normalizeCommandStatus helper with unit tests 2025-11-29 17:06:18 +00:00
docker_agents_test.go ADA: Add normalizeCommandStatus helper with unit tests 2025-11-29 17:06:18 +00:00
docker_metadata.go chore: cleanup proxmox IsAuthError and remove stray comment 2025-11-27 08:59:01 +00:00
frontend_embed.go Improve static asset caching for hashed files 2025-11-06 13:54:26 +00:00
guest_metadata.go Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
host_agents.go Fix host agent registration verification issues (#746) 2025-11-24 14:28:09 +00:00
host_agents_test.go Add unit tests for HandleLookup hostname matching 2025-11-29 20:20:15 +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
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
notification_queue.go Add comprehensive alert system reliability improvements 2025-11-06 16:46:30 +00:00
notifications.go Fix redactSecretsFromURL matching params with prefixed names 2025-11-29 22:03:15 +00:00
notifications_test.go Fix redactSecretsFromURL matching params with prefixed names 2025-11-29 22:03:15 +00:00
oidc_handlers.go Add OIDC CA bundle support 2025-11-22 09:44:03 +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_service.go Add OIDC CA bundle support 2025-11-22 09:44:03 +00:00
oidc_service_test.go Add OIDC CA bundle support 2025-11-22 09:44:03 +00:00
rate_limit_config.go Improve temperature proxy control-plane flow 2025-11-15 21:49:51 +00:00
rate_limit_config_test.go test: Add tests for ResetRateLimitForIP function 2025-12-01 14:38:26 +00:00
ratelimit.go Fix P1: Resource leaks in Recovery Tokens, Rate Limiter, and OIDC Service 2025-11-07 10:18:44 +00:00
ratelimit_test.go Add unit tests for RateLimiter (internal/api/ratelimit.go) 2025-11-30 04:33:59 +00:00
README.md Fix settings security tab navigation 2025-10-11 23:29:47 +00:00
recovery_tokens.go chore: remove unused store methods 2025-11-27 08:31:50 +00:00
recovery_tokens_test.go test: Add edge case for recovery token load read error 2025-12-01 23:54:42 +00:00
router.go fix: mark unused parameters to satisfy unparam linter 2025-11-27 10:12:48 +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 test: Add edge case for handleServerInfo method not allowed 2025-12-02 00:01:17 +00:00
router_test.go test: Add tests for hostAgentSearchCandidates parameter variants 2025-12-02 00:03:19 +00:00
security.go chore: fix staticcheck U1000 unused code warnings 2025-11-27 09:12:17 +00:00
security_oidc.go fix: mark unused parameters to satisfy unparam linter 2025-11-27 10:12:48 +00:00
security_setup_fix.go Add mutex protection for config watcher reloads (re #748) 2025-11-24 07:45:21 +00:00
security_setup_fix_test.go ADA: Add unit tests for validateBcryptHash helper function 2025-11-29 18:06:19 +00:00
security_test.go Fix backup indicator being reset when VMs/Containers are re-polled 2025-12-02 00:12:31 +00:00
security_tokens.go Add mutex protection for config watcher reloads (re #748) 2025-11-24 07:45:21 +00:00
security_tokens_test.go Add API token scopes and standalone host agent 2025-10-23 11:40:31 +00:00
session_store.go chore: fix staticcheck U1000 unused code warnings 2025-11-27 09:12:17 +00:00
session_store_test.go Add unit tests for SessionStore (internal/api) 2025-11-30 23:18:34 +00:00
system_settings.go Show CPU core count on EnhancedCPUBar progress bar 2025-11-29 21:47:22 +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 cluster proxy token collision - store per-node control tokens 2025-11-30 20:37:58 +00:00
temperature_proxy_command_test.go Improve temperature proxy workflow 2025-11-17 14:25:46 +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 chore: remove unused API response types 2025-11-27 08:37:22 +00:00
unified_agent.go fix: use correct script paths in unified agent handlers 2025-11-26 10:05:43 +00:00
unified_agent_test.go Add unit tests for normalizeUnifiedAgentArch and getClientIP (api) 2025-11-30 15:05:37 +00:00
updates.go Improve update procedure tracking 2025-11-15 16:43:42 +00:00
updates_test.go Add unit tests for normalizeUnifiedAgentArch and getClientIP (api) 2025-11-30 15:05:37 +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.