API и протоколы#
Метаданные#
Документ ID:
REG-TECH-002Версия:
0.1.1Ответственный:
ООО "Аросса"Статус:
Готово
1. API-контур#
Протокольная модель:
REST APIна базеSwagger/OpenAPI.Префикс API:
/api/v1.Политика версионирования: изменения внутри
v1только обратно-совместимые; несовместимые правки только в новой major-ветке.Формат данных
list/scheme:GET /api/v1/<resource>/list— отбор + фильтры + пагинация.GET /api/v1/<resource>/scheme— схема UI/backend.POST /api/v1/<resource>— создание сущности/команды.GET /api/v1/<resource>/{id}— чтение сущности.PATCH /api/v1/<resource>/{id}— изменение.DELETE /api/v1/<resource>/{id}— архивирование/удаление.
2. Протоколы обмена#
MQTT: телеметрия, события и команды, двусторонняя синхронизация между
localиtenant/master.CANopen:
PDO/SDOдля полевого контура, включительно с интеграцией IOOT PRO.RS485 Modbus RTU: интеграции внешних узлов и привязанных датчиков.
Обработка отказов:
для команд используется подтверждение и ретрай;
при потере связи выполняется локальная очередь и досинхронизация после возврата канала.
3. Полный runtime-реестр маршрутов#
Служба здоровья:
GET /healthGET /api/v1/app/context(deployment_mode, tenant/site, active industry, feature flags,policy.permissions/capabilities/guards)
Модульный runtime:
GET /api/v1/modules/scheme(display_module,show_filters,module_view,catalog_enrichment)GET /api/v1/modules/listGET /api/v1/modules/database/schemeGET /api/v1/modules/database/listGET /api/v1/modules/permissions/schemeGET /api/v1/modules/permissions/listPOST /api/v1/modules/permissions/commands/updateGET /api/v1/auth/ui-access/listPOST /api/v1/auth/ui-access/commands/updateGET /api/v1/auth/ui-preferences/listPOST /api/v1/auth/ui-preferences/commands/updateGET /api/v1/auth/shell-profile/listPOST /api/v1/auth/shell-profile/commands/exportPOST /api/v1/auth/shell-profile/commands/importPOST /api/v1/auth/shell-profile/commands/rollbackGET /api/v1/modules/access-audit/schemeGET /api/v1/modules/access-audit/listGET /api/v1/modules/site-policy/schemeGET /api/v1/modules/site-policy/listPOST /api/v1/modules/site-policy/commands/setPOST /api/v1/modules/commands/installPOST /api/v1/modules/commands/uninstall
Супервизия и инциденты:
GET /api/v1/status/listGET /api/v1/status/stream(WebSocket)GET /api/v1/alarms/schemeGET /api/v1/alarms/listPOST /api/v1/alarms/commands/ackGET /api/v1/tasks/schemeGET /api/v1/tasks/listPOST /api/v1/tasksGET /api/v1/tasks/{id}POST /api/v1/tasks/commands/transitionGET /api/v1/audit/schemeGET /api/v1/audit/listPOST /api/v1/audit/commands/logGET /api/v1/devices/telemetry/schemeGET /api/v1/devices/telemetry/listGET /api/v1/devices/telemetry/kpi
Клиентская устойчивость runtime:
UI использует
app/contextкак source-of-truth для role/scope/capability guards;при недоступности
status/streamклиент переключается на reconnect/backoff и fallbackstatus/listpolling.
Tenant/master и governance:
GET /api/v1/tenant-master/schemeGET /api/v1/tenant-master/listPOST /api/v1/tenant-master/commands/publishGET /api/v1/tenant-master-sync/schemeGET /api/v1/tenant-master-sync/listPOST /api/v1/tenant-master-sync/commands/runPOST /api/v1/tenant-master-sync/commands/set-modeGET /api/v1/subscriptions/schemeGET /api/v1/subscriptions/listPOST /api/v1/subscriptions/commands/set-statusGET /api/v1/sla-profiles/schemeGET /api/v1/sla-profiles/listPOST /api/v1/sla-profiles/commands/assignGET /api/v1/version-policies/schemeGET /api/v1/version-policies/listPOST /api/v1/version-policies/commands/setPOST /api/v1/version-policies/commands/checkGET /api/v1/analytics/metrics/schemeGET /api/v1/analytics/metrics/listGET /api/v1/analytics/summary
Аутентификация и безопасность:
GET /api/v1/passkeys/schemeGET /api/v1/passkeys/listPOST /api/v1/passkeys/commands/issuePOST /api/v1/passkeys/commands/revokePOST /api/v1/auth/passkey/commands/startPOST /api/v1/auth/passkey/commands/completeGET /api/v1/auth/passkey/statusGET /api/v1/auth/mePOST /api/v1/auth/commands/logoutGET /api/v1/auth/permissions/schemeGET /api/v1/auth/permissions/listGET /api/v1/auth/ui-access/listPOST /api/v1/auth/ui-access/commands/updateGET /api/v1/auth/ui-preferences/listPOST /api/v1/auth/ui-preferences/commands/updateGET /api/v1/auth/shell-profile/listPOST /api/v1/auth/shell-profile/commands/exportPOST /api/v1/auth/shell-profile/commands/importPOST /api/v1/auth/shell-profile/commands/rollbackGET /api/v1/auth/security-log/schemeGET /api/v1/auth/security-log/list
Профили и отраслевые каталоги:
GET /api/v1/industry-profiles/schemeGET /api/v1/industry-profiles/listPOST /api/v1/industry-profiles/commands/importPOST /api/v1/industry-profiles/commands/exportPOST /api/v1/industry-profiles/commands/publishPOST /api/v1/industry-profiles/commands/rollbackPOST /api/v1/poultry-profiles/commands/import-yamlPOST /api/v1/poultry-profiles/commands/export-yamlPOST /api/v1/poultry-profiles/commands/publishPOST /api/v1/poultry-profiles/commands/rollbackGET /api/v1/industry-alarms/schemeGET /api/v1/industry-alarms/listPOST /api/v1/industry-alarms/commands/publish
Мелиорация:
GET /api/v1/melioration-field/scheme,GET /api/v1/melioration-field/listGET /api/v1/melioration-alerts/scheme,GET /api/v1/melioration-alerts/listGET /api/v1/melioration-irrigation-machine/scheme,GET /api/v1/melioration-irrigation-machine/list,POST /api/v1/melioration-irrigation-machine/commands/ingestGET /api/v1/melioration-irrigation-drip/scheme,GET /api/v1/melioration-irrigation-drip/list,POST /api/v1/melioration-irrigation-drip/commands/ingestGET /api/v1/melioration-soil-moisture/scheme,GET /api/v1/melioration-soil-moisture/list,POST /api/v1/melioration-soil-moisture/commands/ingestGET /api/v1/melioration-weather/scheme,GET /api/v1/melioration-weather/list,POST /api/v1/melioration-weather/commands/ingest,POST /api/v1/melioration-weather/commands/telemetryGET /api/v1/melioration-control-mode/scheme,GET /api/v1/melioration-control-mode/list,POST /api/v1/melioration-control-mode/commands/set,POST /api/v1/melioration-control-mode/commands/degrade
Отраслевые модули птицеводства:
GET /api/v1/poultry-climate/scheme,GET /api/v1/poultry-climate/list,POST /api/v1/poultry-climate/commands/setpoint,POST /api/v1/poultry-climate/commands/ack,POST /api/v1/poultry-climate/commands/telemetry,POST /api/v1/poultry-climate/sensors/commands/ingestGET /api/v1/poultry-flock/scheme,GET /api/v1/poultry-flock/listGET /api/v1/poultry-feedwater/scheme,GET /api/v1/poultry-feedwater/list,POST /api/v1/poultry-feedwater/commands/ingestGET /api/v1/poultry-production/scheme,GET /api/v1/poultry-production/list,GET /api/v1/poultry-production/kpiGET /api/v1/poultry-alarms/scheme,GET /api/v1/poultry-alarms/list,POST /api/v1/poultry-alarms/commands/evaluate,POST /api/v1/poultry-alarms/commands/publish,POST /api/v1/poultry-alarms/commands/ack,POST /api/v1/poultry-alarms/commands/escalate
Отраслевые модули свиноводства:
GET /api/v1/swine-climate/scheme,GET /api/v1/swine-climate/list,POST /api/v1/swine-climate/commands/setpoint,POST /api/v1/swine-climate/commands/telemetry,POST /api/v1/swine-climate/sensors/commands/ingestGET /api/v1/swine-feeding/scheme,GET /api/v1/swine-feeding/list,POST /api/v1/swine-feeding/commands/ingestGET /api/v1/swine-water/scheme,GET /api/v1/swine-water/list,POST /api/v1/swine-water/commands/ingestGET /api/v1/swine-production/scheme,GET /api/v1/swine-production/list,GET /api/v1/swine-production/kpi,POST /api/v1/swine-production/commands/ingestGET /api/v1/swine-biosecurity/scheme,GET /api/v1/swine-biosecurity/list,POST /api/v1/swine-biosecurity/commands/ingest,POST /api/v1/swine-biosecurity/commands/ack
Беспилотные весы:
GET /api/v1/weighbridge-session/scheme,GET /api/v1/weighbridge-session/list,GET /api/v1/weighbridge-session/offline-queuePOST /api/v1/weighbridge-session/commands/detect,POST /api/v1/weighbridge-session/commands/complete-phase,POST /api/v1/weighbridge-session/commands/interlock,POST /api/v1/weighbridge-session/commands/erp-syncGET /api/v1/weighbridge-identity/scheme,GET /api/v1/weighbridge-identity/list,POST /api/v1/weighbridge-identity/commands/resolve,POST /api/v1/weighbridge-identity/commands/attachGET /api/v1/weighbridge-media/scheme,GET /api/v1/weighbridge-media/list,POST /api/v1/weighbridge-media/commands/ingestGET /api/v1/weighbridge-alarms/scheme,GET /api/v1/weighbridge-alarms/list,POST /api/v1/weighbridge-alarms/commands/publish,POST /api/v1/weighbridge-alarms/commands/acklifecycle baseline:
completed|manual_review|rejected, причемrejectedне используется как silent fallbackduplicate detection обязан переиспользовать открытый
session_id, а не создавать вторую карточкуmedia evidence хранится через
storage_ref/preview_ref;cargo_top(gross)обязателен для automatic closeoffline-queueудерживает session/media/alarm entities до подтвержденного sync
Demo и пульт:
GET /api/v1/pult/schemeGET /api/v1/pult/statePOST /api/v1/pult/commands/dispatchGET /api/v1/demo/schemeGET /api/v1/demo/stateGET /api/v1/demo/stream(WebSocket)POST /api/v1/demo/commands/startPOST /api/v1/demo/commands/stopPOST /api/v1/demo/commands/pulse
Generic resource API:
GET /api/v1/tables/scheme,GET /api/v1/tables/list,POST /api/v1/tables,GET /api/v1/tables/{id},PATCH /api/v1/tables/{id},DELETE /api/v1/tables/{id}GET /api/v1/forms/scheme,GET /api/v1/forms/list,POST /api/v1/forms,GET /api/v1/forms/{id},PATCH /api/v1/forms/{id},DELETE /api/v1/forms/{id}
Расширения runtime green-robot:
GET /api/v1/accounts/schemeGET /api/v1/accounts/listGET /api/v1/accounts/{id}POST /api/v1/accountsPATCH /api/v1/accounts/{id}POST /api/v1/accounts/{id}/blockPOST /api/v1/accounts/{id}/unblockGET /api/v1/roles/listPOST /api/v1/accounts/{id}/rolesDELETE /api/v1/accounts/{id}/roles/{role_id}GET /api/v1/audit-events/list?scope=auth
4. Обязательные query-параметры list-маршрутов#
Для всех
GET /api/v1/.../listмаршрутов из runtime-реестра обязательны query-параметры:limit,offset.Для
GET /api/v1/modules/site-policy/listдополнительно обязателенsite_id.Для
GET /api/v1/audit-events/list?scope=authдополнительно обязателенscope=auth.Дополнительные фильтры (
sort,order,q, бизнес-поля ресурса) не отменяют обязательные параметры и задаются контрактом ресурса.
5. Интеграционные требования#
Точки интеграции между embedded и cloud-контуром должны иметь:
трассируемую метку
request_id;проверяемый scope (
local/tenant/master);понятную обратную совместимость ответов (
meta/errorenvelope).