Pulse/internal/api
rcourtman 783537e1d2 feat(ai): make anomaly detection FREE and add learning status endpoint
Free Features (no license required):
- Anomaly detection - removed license gating, purely statistical analysis
- Learning status endpoint - GET /api/ai/intelligence/learning

Learning Status Response:
- resources_baselined: count of resources with learned baselines
- total_metrics: total metric baselines (cpu + memory + disk)
- metric_breakdown: {cpu: X, memory: Y, disk: Z}
- status: 'waiting' | 'learning' | 'active'
- message: human-readable description

This makes the AI intelligence features visible to all users,
encouraging upgrades for the full LLM-powered patrol experience.
2025-12-21 11:36:54 +00:00
..
ai_handlers.go feat(ai): add unified Intelligence orchestrator 2025-12-21 10:32:02 +00:00
ai_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
ai_intelligence_handlers.go feat(ai): make anomaly detection FREE and add learning status endpoint 2025-12-21 11:36:54 +00:00
ai_intelligence_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
ai_patrol_handlers_test.go
alerts.go feat: enhance AI baseline context visibility and incident timeline improvements 2025-12-21 00:14:20 +00:00
alerts_test.go
auth.go feat(oidc): Add refresh token support for long-lived sessions 2025-12-20 10:45:46 +00:00
auth_helpers_test.go
auth_scope_test.go
bootstrap_token.go
bootstrap_token_test.go
charts_test.go
config_handlers.go
config_handlers_auto_reg_test.go
config_handlers_auto_register_test.go
config_handlers_cluster_test.go
config_handlers_host_test.go
config_handlers_pve_user_test.go
config_handlers_sanitize_test.go
config_handlers_setup_script_test.go
config_handlers_temperature_test.go
config_handlers_transport_guard_test.go
csrf_store.go
csrf_store_test.go
demo_middleware.go
demo_middleware_test.go
diagnostics.go
diagnostics_test.go
DO_NOT_EDIT_FRONTEND_HERE.md
docker_agents.go
docker_agents_test.go
docker_metadata.go
export_test.go
frontend_embed.go
guest_metadata.go
host_agents.go
host_agents_test.go
host_metadata.go
http_metrics.go
http_metrics_test.go
kubernetes_agents.go
license_handlers.go
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
metadata_provider.go
middleware.go
middleware_test.go
notification_queue.go
notifications.go
notifications_test.go
oidc_handlers.go feat(oidc): Add refresh token support for long-lived sessions 2025-12-20 10:45:46 +00:00
oidc_handlers_test.go
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
rate_limit_config.go
rate_limit_config_test.go
ratelimit.go
ratelimit_test.go
README.md
recovery_tokens.go
recovery_tokens_test.go
resource_handlers.go
router.go feat(ai): make anomaly detection FREE and add learning status endpoint 2025-12-21 11:36:54 +00:00
router_arch_test.go
router_download_test.go
router_integration_test.go
router_test.go
security.go
security_oidc.go
security_oidc_response_test.go
security_setup_fix.go
security_setup_fix_test.go
security_test.go
security_tokens.go
security_tokens_test.go
sensor_proxy_gate.go
session_oidc_test.go feat(oidc): Add refresh token support for long-lived sessions 2025-12-20 10:45:46 +00:00
session_store.go feat(oidc): Add refresh token support for long-lived sessions 2025-12-20 10:45:46 +00:00
session_store_test.go
system_settings.go
system_settings_temperature_test.go
system_settings_utils_test.go
system_settings_validate_test.go
temperature_proxy.go
temperature_proxy_command_test.go
temperature_proxy_test.go
types.go
unified_agent.go
unified_agent_download_test.go
unified_agent_test.go
updates.go
updates_test.go

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.