Skip to content

feat: sync-tracking dashboard at /dash - #24

Merged
perkinson1251 merged 10 commits into
devfrom
feat/dashboard
Sep 1, 2026
Merged

perkinson1251 merged 10 commits into
devfrom
feat/dashboard

Conversation

@perkinson1251

Copy link
Copy Markdown
Contributor

Summary

Adds a sync-tracking dashboard at /dash for monitoring schedule update status.

Changes

  • Nitro proxy server/routes/dash-api/[...].ts — proxies /dash-api/* → backend /api/dash/*, injects x-dash-key header
  • Basic Auth middleware server/middleware/dash-auth.ts — protects /dash* with timing-safe credential check, fails closed if unconfigured
  • Dashboard page app/pages/dash.vue — adaptive polling (5s running / 60s idle), 4 summary cards, runs table, per-run group drill-down, failures feed, DB table sizes panel
  • Custom layout app/layouts/dash.vue — full-width (no container constraint)
  • nuxt.config.ts — routeRules for /dash (ssr:false, noindex) and /dash-api/**, private runtimeConfig for dashApiBaseUrl, dashApiKey, dashUser, dashPassword
  • .env.example — documented NUXT_DASH_API_BASE_URL, NUXT_DASH_API_KEY, NUXT_DASH_USER, NUXT_DASH_PASSWORD

Auth

Browser Basic Auth prompt (shared credential). Middleware injects the x-dash-key header into backend proxy calls. Fails closed with 503 on /dash* if env vars unset — does not affect public routes.

Required env vars (Coolify)

NUXT_DASH_API_BASE_URL=http://<backend-internal-url>:8080
NUXT_DASH_API_KEY=<same value as backend DASH_API_KEY>
NUXT_DASH_USER=<username>
NUXT_DASH_PASSWORD=<password>

@perkinson1251
perkinson1251 merged commit 81ed6c9 into dev Sep 1, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant