Files
proxmox/docs/02-architecture/PHOENIX_E2E_PORTAL_API_RAILING.md
defiQUG c05aa50e27
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
Phoenix Deploy API: alert webhook, .env.example, Site24x7 and E2E docs
- PHOENIX_ALERT_WEBHOOK_URL: POST on alerts when firing
- .env.example: PROXMOX_*, PROMETHEUS_*, webhooks, partner keys
- PHOENIX_SITE24X7_API_KEYS.md: how to issue API keys for Site24x7
- PHOENIX_E2E_PORTAL_API_RAILING.md: E2E test steps and references

Made-with: Cursor
2026-03-11 13:00:53 -07:00

1.7 KiB

E2E: Portal → Phoenix API → Railing

Purpose: How to run and extend E2E tests for the flow: Portal (browser) → Sankofa Phoenix API → Phoenix Deploy API (railing).

Flow

  1. User signs in to Portal (NextAuth / Keycloak).
  2. Portal calls Sankofa API with Authorization: Bearer <accessToken> (or session cookie).
  3. Sankofa API proxies /api/v1/infra/*, /api/v1/ve/*, /api/v1/health/* to PHOENIX_RAILING_URL when set.
  4. Tenant-scoped routes (/api/v1/tenants/me/resources, /api/v1/tenants/me/health) use JWT or X-API-Key tenant context.

Manual E2E

  1. Start Phoenix Deploy API: cd phoenix-deploy-api && npm start (optional: set PROXMOX_* for live data).
  2. Start Sankofa API: set PHOENIX_RAILING_URL=http://localhost:4001, then npm run dev.
  3. Start Portal: set NEXT_PUBLIC_GRAPHQL_ENDPOINT=http://localhost:4000/graphql (or API URL), then npm run dev.
  4. Sign in, open Infrastructure page (/infrastructure), verify nodes/storage load; open Dashboard and verify Phoenix Health tile; open VMs and verify list (if Crossplane or railing VMs are used).

Automated E2E (optional)

  • Playwright/Cypress: Add tests that sign in, navigate to /infrastructure, /vms, dashboard, and assert presence of data or “Loading”/error states.
  • API-only: Use Sankofa API integration tests: start server with test config, fetch('/api/v1/health/summary', { headers: { Authorization: 'Bearer <test-jwt>' } }) and assert 200 and body shape. See api/src/__tests__/integration/phoenix-railing.test.ts for tenant-me routes.

References