Files
tiny-forge/plans/observability-proxy-mgmt/phase-6-proxy-creation-ui.md
T
alexei.dolgolyov c38b7d4c78 feat(observability): phase 1 - schema, models & event log backend
Add database foundation for observability features:
- event_log table with severity/source filtering and pagination
- standalone_proxies table for user-created reverse proxies
- stale_threshold_days setting (default 7 days)
- Auto-persist warn/error events from event bus to database
- SSE broadcast of persistent events for real-time UI updates
- Frontend types and API functions for downstream UI phases
2026-03-30 10:59:13 +03:00

2.7 KiB

Phase 6: Direct Proxy Creation UI

Status: Not Started Parent plan: PLAN.md Domain: frontend

Objective

Build the proxy creation form with live validation feedback, diagnostic hints, and management actions (edit/delete).

Tasks

  • Task 1: Create "Create Proxy" form component — fields: destination URL/IP, port, domain (auto-suggested from subdomain pattern), optional custom subdomain override
  • Task 2: Live validation — debounced calls to POST /api/proxies/validate as user types (300ms debounce)
  • Task 3: Validation result display — step-by-step checklist with icons:
    • DNS resolution OK / DNS resolution failed
    • TCP port reachable / TCP port not reachable
    • HTTP responding / HTTP not responding
    • Each failure shows the diagnostic hint from the backend
  • Task 4: Create proxy submission — calls POST /api/proxies, shows success toast with health indicator
  • Task 5: Edit proxy — modal or inline form, pre-populated with current values, re-validates on save
  • Task 6: Delete proxy — ConfirmDialog with domain name confirmation
  • Task 7: Integration with proxy viewer page — "Create Proxy" button in the proxy viewer header
  • Task 8: Domain auto-suggestion — when user enters destination, suggest domain based on subdomain_pattern from settings
  • Task 9: Add i18n keys for proxy creation

Files to Modify/Create

  • web/src/lib/components/ProxyForm.svelte — NEW: Create/edit proxy form
  • web/src/lib/components/ValidationChecklist.svelte — NEW: Step-by-step validation display
  • web/src/routes/proxies/+page.svelte — Add "Create Proxy" button and modal/panel
  • web/src/lib/api.ts — Ensure validateProxy, createProxy, updateProxy, deleteProxy are present (from Phase 3)

Acceptance Criteria

  • Form validates destination in real-time with debouncing
  • Each validation step shows pass/fail with diagnostic hints
  • Proxy creation works end-to-end (form → API → NPM → success)
  • Edit and delete work for existing standalone proxies
  • Domain auto-suggestion works from settings pattern
  • Error states handled gracefully (network errors, API failures)

Notes

  • Validation should show a loading spinner while in progress
  • Don't validate on every keystroke — use 300ms debounce
  • If all validation steps fail, still allow creation (user might know better — just warn)
  • SSL certificate is applied automatically from global settings (no cert picker in form)

Review Checklist

  • All tasks completed
  • Code follows project conventions
  • No unintended side effects
  • Build passes
  • Tests pass (new + existing)

Handoff to Next Phase