Данная политика регламентирует жизненный цикл версий пакетов профилей FHIR, используемых в API. Её цель — обеспечить предсказуемость изменений, снизить риски для клиентов и установить четкие сроки миграции.
Поддерживаемые версии пакетов FHIR BY для валидации профилей
Загрузка данных...
Управление версиями через HTTP-заголовок
Для указания желаемой версии пакета профилей клиенты должны использовать заголовок X-Fhir-By-Version.
Назначение
Позволяет явно указать, какая версия пакета должна использоваться сервером для обработки запроса, обеспечивая согласованность и контроль совместимости.
Формат
X-Fhir-By-Version: <version>
Поддерживаемые форматы версий:
Полная версия: x.y.z - точное совпадение.
Частичная версия: x.y - используется последняя доступная версия в указанной мажорной.минорной ветке.
Минорная версия: x - используется последняя доступная версия в указанной мажорной ветке.
Ключевые слова:
active (активная версия) - используется последняя активная версия.
deprecated (устаревшая версия) - используется самая ранняя устаревшая версия.
X-Fhir-By-Version: 1.3.4934
X-Fhir-By-Version: 1.3
X-Fhir-By-Version: 1
X-Fhir-By-Version: active
X-Fhir-By-Version: deprecated
Жизненный цикл версий
Каждая версия пакета проходит три этапа:
Активная поддержка
Версия считается рекомендуемой и полностью поддерживаемой.
Сервер гарантирует:
Корректную обработку запросов с указанием этой версии.
Исправление критических ошибок и уязвимостей.
Соответствие спецификациям FHIR и профилям, заявленным в пакете.
Новые функциональные изменения вносятся только в более новые версии.
Устаревшая версия
Версия помечается как устаревшая (deprecated).
Версия более не рекомендуется к использованию.
Сервер:
Продолжает работать с этой версией, но выдает предупреждения в заголовках.
Не гарантирует исправление ошибок.
Клиенты должны планировать переход на поддерживаемую версию в течение grace period.
Пример предупреждения при успешном статусе обработки:
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "warning",
"code": "informational",
"diagnostics": "Ресурс провалидирован с использованием пакета fhir.by версии 0.1.2161\r\n. Поддержка пакета будет прекращена - 05/11/2027 16:56:50 +03:00. Для использования новой версии пакета необходимо указать заголовок X-Fhir-By-Version с необходимой версией"
},
{
"severity": "information",
"code": "informational",
"diagnostics": "All OK"
}
]
}
Пример предупреждения при получении ошибок валидации:
{
"resourceType": "OperationOutcome",
"issue": [
{
"severity": "warning",
"code": "informational",
"diagnostics": "Ресурс провалидирован с использованием пакета fhir.by версии 0.1.2161\r\n. Поддержка пакета будет прекращена - 05/11/2027 16:56:50 +03:00. Для использования новой версии пакета необходимо указать заголовок X-Fhir-By-Version с необходимой версией"
},
{
"severity": "error",
"code": "code-invalid",
"details": {
"coding": [
{
"system": "http://hl7.org/fhir/dotnet-api-operation-outcome",
"code": "6007"
},
{
"system": "http://fire.ly/dotnet-sdk-operation-outcome-structdef-reference",
"code": "Bundle(https://fhir.by/AbstractArea/StructureDefinition/Bundle/MedicationDocument).entry.resource->Composition(https://fhir.by/StructureDefinition/CompDocument).type"
}
],
"text": "No code supplied."
},
"diagnostics": "Resource was validated using fhir.by package with version 0.1.2161",
"expression": [
"Bundle.entry[0].resource[0].type[0], element Bundle(https://fhir.by/AbstractArea/StructureDefinition/Bundle/MedicationDocument).entry.resource->Composition(https://fhir.by/StructureDefinition/CompDocument).type"
]
}
]
}
Неподдерживаемая версия
Версия полностью снимается с поддержки.
Сервер:
Возвращает 400 BadRequest при запросе с этой версией.
Удаляет соответствующую валидацию и обработку.
Клиенты обязаны перейти на актуальную версию.
Пример ошибки при передаче неподдерживаемой версии пакета:
Если изменение ломает обратную совместимость, оно вносится только в новую мажорную версию.
Критические уязвимости могут требовать внепланового перевода в неподдерживаемые версии для небезопасных версий.
Сроки поддержки
Тип версии
Активная поддержка
Устаревшая (Deprecated)
Неподдерживаемая версия
Мажорная (X.0.0)
До выхода следующей мажорной версии
90 дней после выхода новой мажорной версии
Через 90 дней после перевода в статус Устаревшая
Минорная(X.Y.0)
До выхода следующей минорной версии
90 дней после выхода новой минорной версии
Через 90 дней после перевода в статус Устаревшая
Патч (X.Y.Z)
До выхода следующего патча
Не переводится в статус Устаревшая
Автоматически при выходе нового патча
Поведение сервера
Обработка запросов
Если заголовок присутствует:
Сервер должен использовать указанную версию пакета для валидации и обработки ресурсов
Если запрашиваемая версия не поддерживается, сервер возвращает ошибку HTTP 400(BadRequest)
Поддерживаются частичные версии - сервер автоматически выбирает последнюю доступную версию в указанной ветке
Если заголовок отсутствует:
Сервер использует версию по умолчанию. Версией по умолчанию считается та версия которая является самой ранней в списке поддерживаемых, в статусе Устаревшая (Deprecated)