busya
ed3d5f3039
feat(027): Final Phase T038-T043 implementation
- T038: SessionEvent logger and persistence logic
- Added SessionEventLogger service with explicit audit event persistence
- Added SessionEvent model with events relationship on DatasetReviewSession
- Integrated event logging into orchestrator flows and API mutation endpoints
- T039: Semantic source version propagation
- Added source_version column to SemanticFieldEntry
- Added propagate_source_version_update() to SemanticResolver
- Preserves locked/manual field invariants during propagation
- T040: Batch approval API and UI actions
- Added batch semantic approval endpoint (/fields/semantic/approve-batch)
- Added batch mapping approval endpoint (/mappings/approve-batch)
- Added batch approval actions to SemanticLayerReview and ExecutionMappingReview components
- Aligned batch semantics with single-item approval contracts
- T041: Superset compatibility matrix tests
- Added test_superset_matrix.py with preview and SQL Lab fallback coverage
- Tests verify client method preference and matrix fallback behavior
- T042: RBAC audit sweep on session-mutation endpoints
- Added _require_owner_mutation_scope() helper
- Applied owner guards to update_session, delete_session, and all mutation endpoints
- Ensured no bypass of existing permission checks
- T043: i18n coverage for dataset-review UI
- Added workspace state labels (empty/importing/review) to en.json and ru.json
- Added batch action labels for semantics and mappings
- Fixed workspace state comparison to lowercase strings
- Removed hardcoded workspace state display strings
Signed-off-by: Implementation Specialist <impl@ss-tools>
2026-03-17 14:29:33 +03:00
..
2025-12-26 18:17:58 +03:00
2025-12-21 00:16:12 +03:00
2026-02-23 15:54:20 +03:00
2025-12-20 22:05:18 +03:00
2025-12-20 22:05:18 +03:00
2025-12-20 23:33:47 +03:00
2025-12-26 18:17:58 +03:00
2025-12-27 05:39:33 +03:00
2025-12-27 10:16:41 +03:00
2025-12-30 17:21:12 +03:00
2026-01-26 20:58:38 +03:00
2026-01-12 12:35:45 +03:00
2026-03-09 13:19:06 +03:00
2026-01-22 23:18:48 +03:00
2026-01-23 17:53:46 +03:00
2026-01-26 11:08:18 +03:00
2026-01-30 11:10:16 +03:00
2026-03-06 11:30:58 +03:00
2026-02-07 11:26:06 +03:00
2026-02-08 22:53:54 +03:00
2026-03-11 11:30:07 +03:00
2026-03-15 21:08:00 +03:00
2026-02-23 19:37:56 +03:00
2026-02-25 17:47:55 +03:00
2026-03-13 11:41:44 +03:00
2026-03-08 10:19:38 +03:00
2026-03-10 09:11:26 +03:00
2026-03-15 13:19:46 +03:00
2026-03-17 14:29:33 +03:00