DAT CMS
DAT CMS — необязательный сервис, который создаёт, хранит и распространяет сертификаты клиентским менеджерам. Документ описывает контракт синхронизации клиентов и сервера. Установку и эксплуатацию см. в руководстве по сервису DAT CMS.
Конечные точки по ролям
| Роль | Путь | Используется |
|---|---|---|
| Получение полных сертификатов | GET /v1/certs?version=<n> | Сервисами, выпускающими DAT |
| Получение сертификатов verify-only | GET /v1/certs/verify-only?version=<n> | Сервисами только для проверки и расшифровки |
| Регистрация сертификата | POST /v1/cert/{signature}/{crypto}/{propagation}/{issuance}/{ttl} | Операторами или задачами генерации сертификатов |
Получение полных сертификатов и verify-only может защищаться разными ролями токенов. Задайте параметр verifyOnly клиентского менеджера, чтобы сервис verify-only не запрашивал полные сертификаты.
Курсор версии
Клиент отправляет серверу последнюю применённую версию. Если состояние сервера не изменилось, сертификаты повторно не отправляются. При новом состоянии первая строка ответа содержит версию, а последующие — сертификаты.
Если успешный ответ содержит только версию без сертификатов, клиент сохраняет существующие сертификаты и issuer. Версия сервера ниже клиентской считается ошибкой, состояние не откатывается.
Правила импорта сертификатов
- Если один
cidвстречается в ответе несколько раз, отклоните весь ответ. - Если новый ответ содержит уже имеющийся
cid, сохраните существующий сертификат. - Разберите и проверьте каждый сертификат до атомарного применения состояния.
- Не оставляйте частичный набор успешно импортированных сертификатов.
- Выберите подходящий issuer из сертификатов, доступных для выпуска сейчас.
Начальная и ручная синхронизация
Первая синхронизация при создании клиентского менеджера обычно выполняется в режиме best-effort. При ошибке менеджер всё равно создаётся и хранит конкретную последнюю ошибку. Если приложение должно завершить запуск, вызовите API немедленной синхронизации, чтобы ошибка дошла до вызывающей стороны.
Среды без автоматической синхронизации могут отключить интервал и синхронизироваться напрямую по мере необходимости. При включённой автоматической синхронизации закрывайте или останавливайте менеджер при завершении приложения.
Сеть и ошибки
Настройте тайм-ауты соединения и всего запроса для production environment. Политики redirect зависят от runtime, поэтому сверяйтесь с документацией библиотеки. Текущие клиенты классифицируют ответы CMS не 2xx как ошибки DAT_CMS_* по HTTP status и не сохраняют подробный error code из JSON response сервера.
При временном сбое storage сервер может продолжать отдавать последний успешный snapshot сертификатов. Если успешного snapshot ещё нет, он отвечает DAT_STORE_UNAVAILABLE.
Документация сервиса
Сведения о deployment, databases, access tokens и runtime configuration см. в руководстве по сервису DAT CMS.