Employee) — центральный ресурс API. Это карточка человека в
конкретном тенанте: скалярные поля и ссылки на связанные сущности. Получить её
можно списком GET /employees или поштучно GET /employees/{employee_id}.
Поля
Идентификаторы — UUID-строки, моменты времени — RFC 3339 в UTC, календарные
даты —
YYYY-MM-DD. Отсутствующие значения присутствуют в ответе (пустая строка
или null), а не пропадают из объекта. Незнакомые поля и значения enum
игнорируйте — состав ответа расширяется аддитивно.Связанные объекты
Поляperson, department, job_title и manager — это отдельные сущности,
доступные только по запросу через expand. В базовом ответе их нет, есть только
*_id-ссылки. Как обходить эти связи — на странице
Employee-graph.
person (expand=person)
department и job_title
Оба объекта — минимальные ссылки: id + title. Других полей (руководитель
отдела, иерархия, штатное расписание) в них нет.
manager (expand=manager)
Ссылка на руководителя: id + full_name. Это намеренно узкий объект — чтобы
получить полную карточку руководителя, запросите
GET /employees/{manager.id} своим ключом: так к ней применятся права и
редакция полей.
Модель доступа
Даже с областьюemployees:read ключ видит не всё. Эффективный доступ — это
пересечение областей ключа и прав владельца ключа. Область — необходимое, но не
достаточное условие: сотрудников и поля, недоступные профилю прав владельца, ключ
не увидит.
Поля, которые владелец не вправе видеть (например ИИН), в ответ не попадают, а их
ключи перечисляются в redacted_fields в формате объект.поле. Так, при
expand=person без права на ИИН:
Одиночная карточка неразличима по причине недоступности: «не существует», «нет
доступа» и «черновик/удалён» дают одинаковый
404 EMPLOYEE_NOT_FOUND. По коду
ответа нельзя выяснить, существует ли скрытый от вас сотрудник.Дальше
Employee-graph
Связи сотрудника и обход через
expand.Статусы и жизненный цикл
Значения
EmployeeStatus и переходы.Пагинация
Обход списков и инкрементальная синхронизация.