НАЧАЛО >> API ИРБИС 64/128 >> SyncPolicy и ConflictPolicy📄 Скачать в DOCX
SyncPolicy и ConflictPolicy являются настройками модуля API для внешних интеграций, где одного mapping уже недостаточно. Они позволяют объяснимо определить, можно ли применить входящее или исходящее изменение, какие поля конфликтуют, какая policy выбрана и почему результат должен быть отклонен, отложен, передан доменному модулю или отправлен на ручное разрешение.
SyncPolicy хранится как отдельная API-запись с типом Политика синхронизации.
Политика описывает:
inbound, outbound или bidirectional;Операция SyncPolicy может быть только contract-уровнем. API строит SyncPlan и SyncApplyRequest, но не сохраняет доменную запись, не выполняет Workflow-переход, не публикует события и не ставит Queue job.
ConflictPolicy хранится как отдельная API-запись с типом Политика разрешения конфликтов.
Поддерживаемые стратегии:
reject-with-explanation;internal-wins;external-wins;last-writer-wins только с явной timestamp/version policy;manual-resolution;field-level-merge.Если policy не задана или неполна, безопасное поведение по умолчанию - reject-with-explanation. Неявное перезаписывание внутреннего или внешнего состояния запрещено.
Функция API/DryRunSync принимает sync context и payload, вызывает API/DryRunMapping, подбирает SyncPolicy/ConflictPolicy, классифицирует field-level conflicts и возвращает SyncPlan.
SyncPlan включает:
SyncApplyRequest для доменного модуля.Dry-run sync не имеет побочных эффектов.
API владеет SyncPolicy, ConflictPolicy, dry-run sync, explainable diff, SyncPlan, SyncApplyRequest/SyncApplyResult contract, where-used и API diagnostics.
EventBus владеет событиями, inbox/outbox, delivery, retry и dead-letter доставки.
Queue владеет фоновым выполнением, scheduling, retry/backoff, timeout, worker state и job dead-letter.
Security владеет правами, grants/denies, masking, field security и безопасными отказами доступа.
FieldConfiguration владеет stable field keys и семантикой полей.
Workflow* владеет workflow-проектами, статусами, переходами и доступностью workflow-действий.
Доменные модули применяют SyncApplyRequest, сохраняют записи, выполняют бизнес-валидацию и возвращают SyncApplyResult.