Pulse/internal/api
rcourtman 358d38f97f fix: Allow printable ASCII in alert IDs for acknowledge requests
Reverts overly strict alert ID validation that was rejecting valid
alert IDs containing special characters. Docker host IDs can contain
user-supplied data like hostnames which may include parentheses,
brackets, or other printable ASCII characters.

The previous validation only allowed alphanumeric + limited punctuation,
which caused 400 errors when acknowledging alerts from Docker hosts
with special characters in their identifiers.

Related to #852
2025-12-16 20:10:31 +00:00
..
ai_handlers.go feat(ai): improve AI settings first-time setup UX 2025-12-15 18:59:19 +00:00
ai_intelligence_handlers.go feat(api): Add AI intelligence API endpoints 2025-12-12 14:49:46 +00:00
alerts.go fix: Allow printable ASCII in alert IDs for acknowledge requests 2025-12-16 20:10:31 +00:00
alerts_test.go
auth.go feat: support token query parameter for WebSocket authentication 2025-12-13 21:28:50 +00:00
auth_helpers_test.go style: Apply gofmt to 37 files 2025-12-02 17:21:48 +00:00
auth_scope_test.go test: Add ensureScope tests for API package 2025-12-02 13:19:11 +00:00
bootstrap_token.go
bootstrap_token_test.go
charts_test.go feat: AI integration, Docker metrics, RAID display, and infrastructure improvements 2025-12-09 09:29:27 +00:00
config_handlers.go fix: cluster-aware guest deduplication and multi-agent token binding 2025-12-14 10:16:17 +00:00
config_handlers_auto_reg_test.go
config_handlers_auto_register_test.go
config_handlers_cluster_test.go
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 style: Apply gofmt to 37 files 2025-12-02 17:21:48 +00:00
config_handlers_sanitize_test.go
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
config_handlers_transport_guard_test.go
csrf_store.go Show AI cost refresh errors and harden log redaction 2025-12-12 11:05:24 +00:00
csrf_store_test.go test: Add CSRFTokenStore.load format tests for API package 2025-12-02 14:07:00 +00:00
demo_middleware.go
demo_middleware_test.go
diagnostics.go
diagnostics_test.go style: Apply gofmt to 37 files 2025-12-02 17:21:48 +00:00
DO_NOT_EDIT_FRONTEND_HERE.md
docker_agents.go security: Add request body size limits to API handlers 2025-12-02 16:43:13 +00:00
docker_agents_test.go
docker_metadata.go feat(ai): Add URL discovery tool - AI can find and set resource URLs 2025-12-10 00:29:07 +00:00
export_test.go fix: Update TestPublicURLDetectionUsesForwardedHeaders for proxy hardening 2025-12-02 03:16:52 +00:00
frontend_embed.go
guest_metadata.go feat(ai): Add URL discovery tool - AI can find and set resource URLs 2025-12-10 00:29:07 +00:00
host_agents.go security: Add request body size limits to remaining API handlers 2025-12-02 16:47:13 +00:00
host_agents_test.go
host_metadata.go feat(ai): Add URL discovery tool - AI can find and set resource URLs 2025-12-10 00:29:07 +00:00
http_metrics.go
http_metrics_test.go
kubernetes_agents.go feat: add Kubernetes platform support 2025-12-12 21:31:11 +00:00
log_redact.go Show AI cost refresh errors and harden log redaction 2025-12-12 11:05:24 +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
middleware.go
middleware_test.go
notification_queue.go security: Add request body size limits to remaining API handlers 2025-12-02 16:47:13 +00:00
notifications.go security: Add request body size limits to notification handlers 2025-12-02 16:37:30 +00:00
notifications_test.go
oidc_handlers.go
oidc_handlers_test.go
oidc_service.go
oidc_service_test.go
rate_limit_config.go fix: Retry-After header now uses actual limiter window 2025-12-16 10:07:16 +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
README.md
recovery_tokens.go Show AI cost refresh errors and harden log redaction 2025-12-12 11:05:24 +00:00
recovery_tokens_test.go
resource_handlers.go fix: Populate resources on-demand when /api/resources is called 2025-12-07 14:47:29 +00:00
router.go feat(ui): make AI settings page more compact and user-friendly 2025-12-16 09:20:09 +00:00
router_arch_test.go
router_download_test.go
router_integration_test.go fix: Update TestPublicURLDetectionUsesForwardedHeaders for proxy hardening 2025-12-02 03:16:52 +00:00
router_test.go style: Apply gofmt to 37 files 2025-12-02 17:21:48 +00:00
security.go Show AI cost refresh errors and harden log redaction 2025-12-12 11:05:24 +00:00
security_oidc.go
security_setup_fix.go fix: clear agents that connected during unauthenticated setup window 2025-12-13 21:22:04 +00:00
security_setup_fix_test.go
security_test.go test: Add CheckCSRF valid token test for 100% coverage 2025-12-02 13:51:27 +00:00
security_tokens.go refactor: Remove unreachable dead code branches 2025-12-02 14:41:53 +00:00
security_tokens_test.go
session_store.go Show AI cost refresh errors and harden log redaction 2025-12-12 11:05:24 +00:00
session_store_test.go test: Add SessionStore.load legacy format tests for API package 2025-12-02 14:12:32 +00:00
system_settings.go security: Add request body size limits to remaining API handlers 2025-12-02 16:47:13 +00:00
system_settings_temperature_test.go
system_settings_utils_test.go
system_settings_validate_test.go
temperature_proxy.go security: Add request body size limits to remaining API handlers 2025-12-02 16:47:13 +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
types.go feat: AI integration, Docker metrics, RAID display, and infrastructure improvements 2025-12-09 09:29:27 +00:00
unified_agent.go feat(ai): Add enriched context with historical trends and predictions 2025-12-12 09:45:57 +00:00
unified_agent_download_test.go feat(ai): Add enriched context with historical trends and predictions 2025-12-12 09:45:57 +00:00
unified_agent_test.go
updates.go security: Add request body size limits to remaining API handlers 2025-12-02 16:47:13 +00:00
updates_test.go style: Apply gofmt to 37 files 2025-12-02 17:21:48 +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.