feat: add soap adapter foundation

This commit is contained in:
a.tolmachev
2026-04-07 00:00:19 +03:00
parent 31fbdfdc02
commit a6388e4353
24 changed files with 1346 additions and 25 deletions
+9
View File
@@ -117,7 +117,16 @@
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/drafts/generate`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/descriptors/proto`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/descriptors/descriptor-set`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/descriptors/wsdl`
- `POST /api/admin/workspaces/{workspace_id}/operations/{operation_id}/descriptors/xsd`
- `GET /api/admin/workspaces/{workspace_id}/operations/{operation_id}/grpc/services`
- `GET /api/admin/workspaces/{workspace_id}/operations/{operation_id}/soap/services`
Контракт:
- `POST /descriptors/wsdl` принимает raw WSDL payload и сохраняет inspection metadata для SOAP;
- `POST /descriptors/xsd` принимает supporting XSD artifacts для SOAP operation;
- `GET /soap/services` возвращает нормализованный список `service -> port -> operation` из последнего WSDL текущего draft version.
### 5.5. Upstream auth profiles
+14
View File
@@ -125,6 +125,20 @@
- `package_index_json`
- `created_at`
`descriptor_kind` дополнительно поддерживает:
- `wsdl_upload`
- `xsd_upload`
`package_index_json` для `wsdl_upload` хранит нормализованный inspection result:
- `service_name`
- `port_name`
- `binding_name`
- `endpoint`
- `soap_version`
- `operations[]`
### `yaml_import_jobs`
- `id`
+18 -10
View File
@@ -96,19 +96,27 @@ Execution constraints:
- `Protocol::Soap` поддерживает только `unary` и `async_job`;
- `window` и `session` для SOAP не поддерживаются;
- runtime до появления SOAP adapter обязан отклонять выполнение как `unsupported protocol`.
- runtime foundation поддерживает `unary` SOAP request-response execution;
- `window` и `session` execution по-прежнему отклоняются как unsupported mode.
## 7. Как оператор настраивает SOAP operation
1. Загружает WSDL.
2. Система извлекает services, ports, operations и XSD schemas.
3. Оператор выбирает service, port и operation.
4. UI показывает input/output schema в JSON-oriented виде.
5. Оператор настраивает mapping `MCP input -> SOAP body`.
6. При необходимости задает SOAP headers и auth profile.
7. Настраивает output mapping и fault handling.
8. Выполняет test run.
9. Публикует operation как MCP tool.
2. При необходимости загружает supporting XSD.
3. Система извлекает services, ports и operations из WSDL.
4. Оператор выбирает service, port и operation.
5. UI показывает input/output schema в JSON-oriented виде.
6. Оператор настраивает mapping `MCP input -> SOAP body`.
7. При необходимости задает SOAP headers и auth profile.
8. Настраивает output mapping и fault handling.
9. Выполняет test run.
10. Публикует operation как MCP tool.
Foundation routes:
- `POST /operations/{operation_id}/descriptors/wsdl`
- `POST /operations/{operation_id}/descriptors/xsd`
- `GET /operations/{operation_id}/soap/services`
## 8. Поведение runtime
@@ -116,7 +124,7 @@ Execution constraints:
1. Валидировать MCP input.
2. Построить XML envelope.
3. Подставить namespaces и headers.
3. Подставить namespaces, `Content-Type` и `SOAPAction`.
4. Выполнить HTTP request.
5. Разобрать SOAP response и SOAP Fault.
6. Нормализовать XML result в JSON.