busya
20071b8c7a
security: fullstack hardening — task ownership, mapping validation, API-key scoping, test fixes
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.
2026-07-15 23:02:23 +03:00
..
2026-06-05 15:43:35 +03:00
2026-07-15 23:02:23 +03:00
2026-06-15 17:31:43 +03:00
2026-06-04 20:57:20 +03:00
2026-06-17 16:22:30 +03:00
2026-06-17 16:22:30 +03:00
2026-06-15 13:55:57 +03:00
2026-06-18 14:41:13 +03:00
2026-06-10 14:56:48 +03:00
2026-07-01 20:47:25 +03:00
2026-07-14 15:56:31 +03:00
2026-06-15 13:55:57 +03:00
2026-06-14 15:41:46 +03:00
2026-07-12 19:30:57 +03:00
2026-06-16 12:01:03 +03:00
2026-06-18 23:54:57 +03:00
2026-06-10 14:56:48 +03:00
2026-06-04 20:30:43 +03:00
2026-07-14 16:05:28 +03:00
2026-05-26 19:18:28 +03:00
2026-06-17 16:22:30 +03:00
2026-06-10 14:57:18 +03:00
2026-06-14 15:41:46 +03:00
2026-07-15 23:02:23 +03:00
2026-06-05 08:31:18 +03:00
2026-06-14 15:41:46 +03:00