Commit graph

20 commits

Author SHA1 Message Date
Ochenstarik
ef9e00ce80 fix(sync): compute org unit status dynamically in bootstrap pull
Таблица staff_org_units не имеет отдельной колонки status, активность определяется полями is_active и deleted_at. Прямой запрос status при начальной загрузке без курсора приводил к 500 ошибке (дефект SYNC-C0). Статус вычисляется через CASE-выражение. Очистка интеграционного теста выполняется ролью мигратора.
2026-09-26 16:12:20 +07:00
Ochenstarik
b283736312 fix(sync): reject work session and timesheet mutations from devices
Предотвращение несанкционированного создания подтверждённых смен и начислений с устройств синхронизации. Команды upsert_work_session и upsert_timesheet_entry отклоняются сервером со статусом rejected и кодом COMMAND_NOT_SUPPORTED без записи в базу данных. Очистка интеграционного теста выполняется соединением мигратора, вставка в staff_employees согласована со схемой миграций.
2026-09-26 16:12:02 +07:00
Ochenstarik
331e4909c9 feat(portal): rebuild staff operational workspace
Some checks are pending
ci / verify (push) Waiting to run
2026-09-26 14:13:21 +07:00
Ochenstarik
778ba2d15b fix(portal): hide login after successful session
Some checks are pending
ci / verify (push) Waiting to run
2026-09-26 13:50:36 +07:00
Ochenstarik
3595792ef3 merge: offline sync backend with library portal
Some checks are pending
ci / verify (push) Waiting to run
2026-09-26 13:28:50 +07:00
Ochenstarik
5ee75177b9 feat(sync): add offline sync backend foundation
- Add PostgreSQL migrations with strict RLS policies (0011)
- Introduce SyncService for handling auth, token-based registration
- Add payload size and replay attack mitigations
- Provide HTTP fastify routes (pull, push, ack, device management)
- Validate openapi contracts and add comprehensive tests
2026-09-26 13:10:27 +07:00
Ochenstarik
1812870dd3 feat(portal): align workspace with Krona library 2026-09-26 12:58:51 +07:00
Ochenstarik
3e2054480c fix(push): isolate employee data and preserve platform outbox
Some checks are pending
ci / verify (push) Waiting to run
2026-09-26 12:31:10 +07:00
Ochenstarik
2f1bdf549d test(push): tenant isolation and web-push idempotency tests 2026-09-26 12:08:36 +07:00
Ochenstarik
5b159f785c feat(staff): import workbook professions and dated payroll 2026-09-24 21:14:03 +07:00
Ochenstarik
4fe2f8799a fix(terminal): secure local state and background IPC 2026-09-24 21:13:46 +07:00
Ochenstarik
96a28f575f test(tenant): fix payroll ledger isolation query and verify migration rls 2026-09-24 19:11:45 +07:00
Ochenstarik
37da6f0418 feat(payroll): automatic payroll calculation, owner schemes, and UI integration 2026-09-24 19:00:25 +07:00
Ochenstarik
88804a0eea feat(staff): add finance calendar and employee portal 2026-09-24 18:12:24 +07:00
Ochenstarik
2f6b367638 feat: reconcile and review attendance sessions 2026-09-24 17:00:08 +07:00
Ochenstarik
32e3c6f7f7 feat: add manager employee and timesheet workflows 2026-09-24 16:32:30 +07:00
Ochenstarik
3464998168 feat: add secure attendance portal and payroll foundation
Some checks are pending
ci / verify (push) Waiting to run
2026-09-24 15:59:38 +07:00
Ochenstarik
d45bee960a fix: harden terminal recovery and deployment
Some checks are pending
ci / verify (push) Waiting to run
2026-09-18 11:10:28 +07:00
Ochenstarik
64ac5c0c66 fix: enforce tenant isolation and runtime contracts 2026-09-18 01:34:12 +07:00
Ochenstarik
fcf014cf71 feat: establish tenant-safe Staff service foundation 2026-09-10 23:29:26 +07:00