Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
1. GDPR org export — domain OrgExport + Phase22a миграция, OrgExportJob
собирает ZIP с JSON по каждой сущности через IObjectStorage,
DownloadToken 64-hex + 24h TTL + email-notify.
POST /api/org/export, GET /api/org/export[/{id}], GET download/{token}.
2. 1C CSV import — POST /api/catalog/products/import/1c-csv:
Windows-1251/UTF-8 BOM auto-detect, разделитель ;/, русские заголовки
(Артикул/Наименование/Единица/Цена/Группа/Штрихкод) или английские.
Нормализация unit-кодов (шт/кг/г/л/мл/упак). Делегирует на ImportCsv
(транзакция, multi-tenant). docs/imports.md.
3. deploy/anonymize-prod.sh — pg_dump прода → restore во временную БД →
UPDATE PII (email→user{N}@example.kz, phone→+7700111{N:04}, password→
тестовый hash, BIN/IIN синтетические, MoySkladToken=NULL, аудиты
TRUNCATE) → pg_dump → gz файл.
4. DbSchemaDocsJob (weekly вс 05:00 UTC) — information_schema → md с
таблицами + колонками + FK + mermaid ER-диаграммой (топ-20 таблиц).
Сохраняет в content-root db-schema-generated.md.
5. POST /api/admin/audit-log/export?format=csv|jsonl — streaming через
AsAsyncEnumerable. UTF-8 BOM для CSV, JSONL для grep'a. Multi-tenant.
6. GET /api/moysklad/sync-status — агрегат по import_jobs:
{ configured, lastSuccessAt, errorCountLast7Days, pendingCount,
byKind: { products: KindStatus, counterparties: KindStatus } }.
Stub если MoySkladToken=null.
7. docs/ARCHITECTURE.md — финальный итог 22 спринтов:
- Sprint 13-22 changes-сводка
- «Реализовано полностью» секция
- «Scaffolding» таблица с указанием что нужно от user'а
- «Не реализовано» секция (прод, SSO callback, KZ-перевод, POS-тест)
- Актуальная файловая структура
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
Sprint 22 — data tooling: export/import, schema docs, anonymized dump
Цель: финальный спринт автономной работы. GDPR-ready export, 1С-import, схема-документация, audit-export, anonymized stage dump, MoySklad status endpoint, итоговый ARCHITECTURE.
Старт: 2026-06-07 (после Sprint 21). Исполнитель: Claude Opus 4.7. Последний автономный спринт — после очередь пустая, watchdog молчит.
Принципы
- Все export/import — multi-tenant строго (нельзя выгрузить чужое).
- Долгие операции — Hangfire job + status polling (не блокировать HTTP).
- НЕ трогать:
global.json, prod admin.food-market.kz, POS WPF.
Чек-лист
- 1. GDPR-export организации —
POST /api/org/exportдля админа, Hangfire job, ZIP с JSON каждой сущности, signed URL 24h, email-notify. - 2. CSV-импорт каталога из 1С —
POST /api/catalog/import/1c-csv, preview → транзакция, multi-tenant. docs/imports.md. - 3. Anonymized stage dump —
deploy/anonymize-prod.sh: pg_dump + PII-обфускация (email/phone/passwords/IIN). - 4. DB schema auto-docs — Hangfire weekly:
docs/db-schema.mdс mermaid ER-диаграммой. - 5. Audit-log export API —
POST /api/admin/audit/exportcsv/jsonl streaming, multi-tenant. - 6. MoySklad sync-status —
GET /api/moysklad/sync-status, stub если не настроено. - 7. Final ARCHITECTURE — итоговый
docs/ARCHITECTURE.md.
Журнал
2026-06-07 старт
Sprint 21 закрыт (7/7 ✓). Поехали по data tooling — финальный sprint.