Skip to main content

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 routePurposeContractStatus, side effects, and safe example
GET /api/shiftsList shiftsnone → MonolithShiftDto[]200 bare array; read-only; example → [].
POST /api/shiftsCreate shiftMonolithShiftRequest → MonolithShiftDto200; 400 invalid/conflict; 403 denied; audit/timeline. Fictional shift body → 200.
PUT /api/shifts/{id:int}Update shiftid + request → DTO200; 400 invalid; 403; 404 missing; audit/timeline.
DELETE /api/shifts/{id:int}Deactivate shiftid → plain success text200 text; 400 active-assignment conflict; 403; 404; audit/timeline.
GET /api/weekly-offsList active daysnone → MonolithWeeklyOffDto[]200 bare array; read-only.
PUT /api/weekly-offsReplace active day setbare string array → MonolithWeeklyOffDto[]200; 400 invalid; 403; audit/timeline. Fictional ["Friday"] → bare array.
GET /api/attendance/policiesList policiesincludeInactive? → AttendancePolicyDto[]200 bare array; read-only.
POST /api/attendance/policiesCreate policyAttendancePolicySaveRequest → DTO200; 400 invalid/conflict; 403; audit/timeline.
PUT /api/attendance/policies/{id:int}Update policyid + request → DTO200; 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.cs
  • microservices/src/attendance-service/Application/Compatibility/ShiftPolicyCompatContracts.cs
  • microservices/src/attendance-service/Application/Compatibility/ShiftPolicyCompatService.cs
  • microservices/src/attendance-service/Application/TimeOffice/ShiftPolicyDtos.cs
  • microservices/src/gateway-api/Program.cs

See Also

Keywords

  • Attendance API
  • Compatibility Time Office API

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-15
  • Review cycle: Quarterly