Compatibility Time Office API
Summary
Nine compatibility operations preserve shift and weekly-off contracts and add bare-body policy administration during independent Time Office cutover.
Audience
Existing frontend integrators, developers, QA/support engineers, architects, and implementation partners.
Reference Content
Authentication: downstream bearer context expected. Authenticated non-administrator Time Office mutations are denied by confirmed compatibility capability checks; complete enforcement remains an end-to-end deployment concern. Tenant: required by underlying services. Maturity: Compatibility/Transitional.
| Method and public route | Purpose | Contract | Status, side effects, and safe example |
|---|---|---|---|
GET /api/shifts | List shifts | none → MonolithShiftDto[] | 200 bare array; read-only; example → []. |
POST /api/shifts | Create shift | MonolithShiftRequest → MonolithShiftDto | 200; 400 invalid/conflict; 403 denied; audit/timeline. Fictional shift body → 200. |
PUT /api/shifts/{id:int} | Update shift | id + request → DTO | 200; 400 invalid; 403; 404 missing; audit/timeline. |
DELETE /api/shifts/{id:int} | Deactivate shift | id → plain success text | 200 text; 400 active-assignment conflict; 403; 404; audit/timeline. |
GET /api/weekly-offs | List active days | none → MonolithWeeklyOffDto[] | 200 bare array; read-only. |
PUT /api/weekly-offs | Replace active day set | bare string array → MonolithWeeklyOffDto[] | 200; 400 invalid; 403; audit/timeline. Fictional ["Friday"] → bare array. |
GET /api/attendance/policies | List policies | includeInactive? → AttendancePolicyDto[] | 200 bare array; read-only. |
POST /api/attendance/policies | Create policy | AttendancePolicySaveRequest → DTO | 200; 400 invalid/conflict; 403; audit/timeline. |
PUT /api/attendance/policies/{id:int} | Update policy | id + request → DTO | 200; 400 invalid/conflict; 403; 404; audit/timeline. |
Compatibility shift request fields are name, startTime, endTime, graceMinutes, and free-text overtimeRule. Response adds compatibility identity and tenant reference. The adapter extracts a supported numeric threshold from the compatibility overtime rule; invalid values use compatibility/application validation behavior.
Weekly-off replacement differs from direct upsert: the bare array represents the desired active set. Policy fields and embedded-rule fields match the direct policy page, but responses are bare. Policy compatibility is additive and has no monolith policy counterpart. No compatibility shift-assignment or effective-policy operation exists.
Source References
microservices/src/attendance-service/Api/ShiftPolicyCompatEndpoints.csmicroservices/src/attendance-service/Application/Compatibility/ShiftPolicyCompatContracts.csmicroservices/src/attendance-service/Application/Compatibility/ShiftPolicyCompatService.csmicroservices/src/attendance-service/Application/TimeOffice/ShiftPolicyDtos.csmicroservices/src/gateway-api/Program.cs
Related Articles
See Also
Keywords
- Attendance API
- Compatibility Time Office API
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly