Pulse/internal/api
rcourtman 6bfaa8b79a fix: OIDC redirect URL now respects X-Forwarded-Proto header
Addresses #327 - Users behind reverse proxies (Traefik, nginx, etc) were
experiencing redirect loop issues because the redirect URL was being built
with http:// instead of https:// when X-Forwarded-Proto was set.

Changes:
- Build OIDC redirect URL dynamically from each request instead of at startup
- Respect X-Forwarded-Proto and X-Forwarded-Host headers from reverse proxies
- Update UI help text to clarify auto-detection behavior
- Add debug logging to show how redirect URL is constructed

When redirect URL is not explicitly configured, Pulse now builds it from
the incoming request headers, properly detecting HTTPS when behind a proxy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 21:06:20 +00:00
..
alerts.go fix: improve alert system robustness and security 2025-09-30 15:35:39 +00:00
auth.go feat: add OIDC single sign-on 2025-09-29 10:22:27 +00:00
config_handlers.go rebalance temperature monitoring messaging - reassuring but honest 2025-09-30 19:16:30 +00:00
csrf_store.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
demo_middleware.go fix CI errors: remove unused imports and format Go code 2025-09-30 19:59:55 +00:00
diagnostics.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
DO_NOT_EDIT_FRONTEND_HERE.md enhance: improve mock data realism and alert system 2025-09-02 21:11:01 +00:00
frontend_embed.go feat: add OIDC single sign-on 2025-09-29 10:22:27 +00:00
guest_metadata.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
middleware.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
notifications.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
oidc_handlers.go fix: OIDC redirect URL now respects X-Forwarded-Proto header 2025-09-30 21:06:20 +00:00
oidc_service.go improve: add comprehensive debug logging for OIDC troubleshooting 2025-09-30 18:45:30 +00:00
rate_limit_config.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
ratelimit.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
README.md enhance: improve mock data realism and alert system 2025-09-02 21:11:01 +00:00
recovery_tokens.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
router.go feat: add demo mode with read-only protection 2025-09-30 14:46:20 +00:00
security.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
security_oidc.go feat: add OIDC single sign-on 2025-09-29 10:22:27 +00:00
security_setup_fix.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
session_store.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
settings.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
system_settings.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
types.go chore: tidy repo formatting and linting 2025-09-29 20:19:18 +00:00
updates.go chore: tidy repo formatting and linting 2025-09-29 20:19: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.