Backend: - Add validate_mapping_database_ownership() to verify source/target UUIDs belong to declared environments before persisting mappings (mappings.py) - Add API-key environment scoping to get_mappings (filter) and suggest_mappings_api (enforce) (mappings.py) - Add user_id Column to TaskRecord model + Alembic migration (task.py) - Persist task.user_id on save, restore on load (persistence.py) - Wire current_user.id into migrate_dashboards + backup_dashboards task creation (_action_routes.py) - Fix test_migration_routes.py: module-level patch leak → autouse fixture, SupersetClient→AsyncSupersetClient, AsyncMock for sync_environment/run - Fix 7 Pydantic serializer warnings: 'PENDING'→TaskStatus.PENDING in test_tasks.py + import TaskStatus Frontend: - Deepen isDryRunResult(): validate selection field, risk.items entries (all 5 fields), and diff object uuids individually (ExecutorModel.svelte.ts) Prior work included: task password redaction, resume ownership checks, canonical dry-run DTO alignment, migration UI callback fixes, credential exposure reduction, assistant dry-run await fix.
65 lines
3.7 KiB
JSON
65 lines
3.7 KiB
JSON
{
|
|
"source_env": "Source Environment",
|
|
"target_env": "Target Environment",
|
|
"loading_envs": "Loading environments...",
|
|
"loading_envs_failed": "Failed to load environments",
|
|
"select_both_envs": "Please select both source and target environments.",
|
|
"different_envs": "Source and target environments must be different.",
|
|
"select_dashboards": "Please select at least one dashboard to migrate.",
|
|
"select_dashboards_title": "Select Dashboards",
|
|
"replace_db": "Replace Database (Apply Mappings)",
|
|
"database_mappings": "Database Mappings",
|
|
"select_target_database": "Select target database",
|
|
"mapping_custom_selection": "Selected manually",
|
|
"loading_dbs": "Loading databases and suggestions...",
|
|
"refresh_dbs": "Refresh Databases & Suggestions",
|
|
"start": "Start Migration",
|
|
"resume_failed": "Failed to resume task",
|
|
"mapping_saved": "Mapping saved successfully",
|
|
"mapping_management": "Database Mapping Management",
|
|
"fetch_dbs": "Fetch Databases & Suggestions",
|
|
"mapping_hint": "Select environments and click \"Fetch Databases\" to start mapping.",
|
|
"help_source_env": "Select the source environment — where dashboards will be migrated from. Databases from this environment will be mapped to target environment databases.",
|
|
"help_target_env": "Select the target environment — where dashboards will be migrated to. Each source database needs to be mapped to a target database.",
|
|
"help_fetch_dbs": "Loads the list of databases from both environments and automatically suggests matches based on database name similarity.",
|
|
"help_mapping_status": "Database mapping status: «Saved» — mapping confirmed, «Suggested X%» — automatic name-based recommendation, «Not mapped» — no mapping set.",
|
|
"instructions_title": "How It Works",
|
|
"instructions_step1": "Select environments",
|
|
"instructions_step1_desc": "Source environment — where dashboards are migrated from, target — where they go. Environments must be different.",
|
|
"instructions_step2": "Click \"Fetch Databases & Suggestions\"",
|
|
"instructions_step2_desc": "Databases from both environments, existing mappings, and automatic suggestions based on name similarity will be loaded.",
|
|
"instructions_step3": "Map databases",
|
|
"instructions_step3_desc": "Use the dropdown to select the corresponding target database for each source database. Rows with auto-suggestions are highlighted in green.",
|
|
"instructions_step4": "Save mappings",
|
|
"instructions_step4_desc": "Mapping is saved automatically when you select a database in the dropdown. The status will change to «Saved».",
|
|
"task_placeholder_warn": "Could not fetch task details immediately, using placeholder.",
|
|
"dry_run": "Dry Run",
|
|
"calculating_dry_run": "Running pre-flight analysis...",
|
|
"starting": "Starting...",
|
|
"step_environments": "Environments",
|
|
"step_dashboards": "Dashboards",
|
|
"step_review": "Review",
|
|
"step_migrate": "Migrate",
|
|
"options": "Options",
|
|
"review_validate": "Review & Validate",
|
|
"selected_dashboards": "Selected Dashboards",
|
|
"dashboards": "Dashboards",
|
|
"charts": "Charts",
|
|
"datasets": "Datasets",
|
|
"create": "Create",
|
|
"update": "Update",
|
|
"delete": "Delete",
|
|
"risk_assessment": "Risk Assessment",
|
|
"risk_score": "Score",
|
|
"risk_level_low": "Low",
|
|
"risk_level_medium": "Medium",
|
|
"risk_level_high": "High",
|
|
"no_issues": "No issues detected.",
|
|
"no_dry_run": "Run a dry-run to see the migration summary here.",
|
|
"get_started": "Get Started",
|
|
"select_environment_prompt": "Select environments to start",
|
|
"diff_json": "Diff JSON",
|
|
"migration_starting": "Starting Migration...",
|
|
"dry_run_summary": "Dry-run report: {total} items will be changed (Dashboards: {dashboards}, Charts: {charts}, Datasets: {datasets})"
|
|
}
|