Files
tiny-forge/plans/docker-watcher-core/phase-10-settings-deploy.md
T
alexei.dolgolyov 0bb52f9ec6 chore: add feature planner setup for docker-watcher-core
Create structured plan files with 12 phases covering the full
implementation: scaffold, store, crypto, Docker/NPM clients,
registry poller, webhook, deployer, API layer, SvelteKit frontend,
embedding, and hardening.
2026-03-27 20:42:42 +03:00

3.1 KiB

Phase 10: Quick Deploy & Settings Pages

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

Objective

Build the Quick Deploy page (paste image, auto-inspect, one-click deploy) and all Settings pages (registries, credentials, global settings, webhook URL).

Tasks

  • Task 1: Quick Deploy page (routes/deploy/+page.svelte) — image URL input, inspect button
  • Task 2: Quick Deploy inspect flow — call /api/deploy/inspect, display auto-filled form (project name, port, stage, subdomain)
  • Task 3: Quick Deploy submit — user reviews defaults, clicks Deploy, calls /api/deploy/quick
  • Task 4: Settings layout (routes/settings/+layout.svelte) — sub-navigation for settings sections
  • Task 5: Global settings page (routes/settings/+page.svelte) — domain, server IP, network, subdomain pattern, polling interval
  • Task 6: Registries page (routes/settings/registries/+page.svelte) — list, add, edit, delete, test connection
  • Task 7: Credentials page (routes/settings/credentials/+page.svelte) — NPM credentials, registry tokens (masked display)
  • Task 8: Webhook URL display and regenerate button in settings
  • Task 9: Projects config page (routes/projects/config/+page.svelte or integrated into project detail) — add/edit/delete projects, configure stages
  • Task 10: Stage configuration form — tag patterns, auto_deploy toggle, max_instances, subdomain override
  • Task 11: Form validation on all input pages — required fields, URL format, port range
  • Task 12: Success/error toast notifications for all form submissions

Files to Modify/Create

  • web/src/routes/deploy/+page.svelte — quick deploy
  • web/src/routes/settings/+layout.svelte — settings layout
  • web/src/routes/settings/+page.svelte — global settings
  • web/src/routes/settings/registries/+page.svelte — registry management
  • web/src/routes/settings/credentials/+page.svelte — credential management
  • web/src/lib/components/Toast.svelte — toast notifications
  • web/src/lib/components/FormField.svelte — reusable form field with validation

Acceptance Criteria

  • Quick Deploy: paste image URL → inspect → review defaults → deploy works end-to-end
  • All settings are editable and saved via API
  • Registry test connection shows success/failure
  • Credentials are masked in display (••••••••)
  • Webhook URL is shown with copy button and regenerate option
  • Form validation prevents bad submissions

Notes

  • Quick Deploy is the zero-config entry point — should be dead simple UX
  • Credential fields: show mask, edit replaces entirely (no partial edit)
  • Registry test: calls POST /api/registries/:id/test, shows connection result
  • Toast component: appears top-right, auto-dismiss after 5s, color-coded (green/red)

Review Checklist

  • All tasks completed
  • Quick deploy flow is intuitive (minimal clicks)
  • Credentials never shown in plaintext in UI
  • Form validation covers required fields and formats
  • Error states are handled with user-friendly messages

Handoff to Next Phase