Files
ss-tools/specs/001-migration-ui-redesign/plan.md
busya 2ffc3cc68f feat(migration): implement interactive mapping resolution workflow
- Add SQLite database integration for environments and mappings
- Update TaskManager to support pausing tasks (AWAITING_MAPPING)
- Modify MigrationPlugin to detect missing mappings and wait for resolution
- Add frontend UI for handling missing mappings interactively
- Create dedicated migration routes and API endpoints
- Update .gitignore and project documentation
2025-12-25 22:27:29 +03:00

3.4 KiB

Implementation Plan: Migration Process and UI Redesign

Branch: 001-migration-ui-redesign | Date: 2025-12-20 | Spec: specs/001-migration-ui-redesign/spec.md

Summary

Redesign the migration process to support environment-based selection and automated database mapping. The technical approach involves using a SQLite database to persist mappings between source and target databases, implementing a fuzzy matching algorithm for empirical suggestions, and intercepting asset definitions during migration to apply these mappings.

Technical Context

Language/Version: Python 3.9+, Node.js 18+
Primary Dependencies: FastAPI, SvelteKit, Tailwind CSS, Pydantic, SQLite
Storage: SQLite (for database mappings and environment metadata)
Testing: pytest (Backend), Vitest/Playwright (Frontend)
Target Platform: Linux server
Project Type: Web application (FastAPI + SvelteKit SPA)
Performance Goals: SC-001: Users can complete a full database mapping for 5+ databases in under 60 seconds.
Constraints: SPA-First Architecture (Constitution Principle I), API-Driven Communication (Constitution Principle II).
Scale/Scope: Support for multiple environments and hundreds of database mappings.

Constitution Check

GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.

Principle Status Notes
I. SPA-First Architecture PASS SvelteKit will be built as a static SPA and served by FastAPI.
II. API-Driven Communication PASS All mapping and migration actions will go through FastAPI endpoints.
III. Modern Stack Consistency PASS Using FastAPI, SvelteKit, and Tailwind CSS.
IV. Semantic Protocol Adherence PASS Code will include GRACE-Poly anchors and contracts.

Project Structure

Documentation (this feature)

specs/001-migration-ui-redesign/
├── plan.md              # This file
├── research.md          # Phase 0 output
├── data-model.md        # Phase 1 output
├── quickstart.md        # Phase 1 output
├── contracts/           # Phase 1 output
└── tasks.md             # Phase 2 output

Source Code (repository root)

backend/
├── src/
│   ├── api/
│   │   └── routes/
│   │       ├── environments.py  # New: Env selection
│   │       └── mappings.py      # New: DB mapping management
│   ├── core/
│   │   └── migration_engine.py  # Update: DB replacement logic
│   └── models/
│       └── mapping.py           # New: SQLite models
└── tests/

frontend/
├── src/
│   ├── components/
│   │   ├── MappingTable.svelte  # New: DB mapping UI
│   │   └── EnvSelector.svelte   # New: Source/Target selection
│   └── routes/
│       └── migration/           # New: Migration dashboard
└── tests/

Structure Decision: Web application structure (Option 2) is selected to maintain separation between the FastAPI backend and SvelteKit frontend while adhering to the SPA-first principle.

Complexity Tracking

Fill ONLY if Constitution Check has violations that must be justified

Violation Why Needed Simpler Alternative Rejected Because
None N/A N/A