AssetCore Interop Runbook
Aviso de Acceso (Dependencia Privada)
Este runbook requiere acceso privado al repositorio de AssetCore y el paquete de imagen Docker del starter-pack de AssetCore. Estos activos no están incluidos en el repositorio OSS Decision Gate.
A primera vista
Qué: Validar la interoperabilidad entre Decision Gate y AssetCore Por qué: Asegurar que la evidencia de AssetCore se integre correctamente con las puertas de DG Quién: Ingenieros de integración, operadores de prueba Requisitos previos: Docker (modo en vivo), acceso al repositorio de AssetCore, CLI de Decision Gate construido
Fixture vs Modo en Vivo
Accesorios Offline Deterministas
- Utiliza un stub de proveedor con un mapa de fixture.
- Totalmente determinista y rápido.
Modo en Vivo (Integración)
- Ejecuta los servicios de AssetCore en Docker.
- Ejercicios de llamadas MCP reales y rutas de red.
Política de Anclaje
Decision Gate aplica las reglas de anclaje a través de la configuración, no del escenario:
[anchors]
[[anchors.providers]]
provider_id = "assetcore_read"
anchor_type = "assetcore.anchor_set"
required_fields = ["assetcore.namespace_id", "assetcore.commit_id", "assetcore.world_seq"]
Anclajes de evidencia: anchor_value es una string que contiene JSON canónico. Ejemplo de fragmento de EvidenceResult:
{
"evidence_anchor": {
"anchor_type": "assetcore.anchor_set",
"anchor_value": "{\"assetcore.namespace_id\":1,\"assetcore.commit_id\":\"c123\",\"assetcore.world_seq\":42}"
}
}
Validación de Fixture Offline (Recomendado)
cargo test -p system-tests \
--features system-tests \
--test providers \
-- \
--exact assetcore_integration::assetcore_interop_fixtures
Lo que sucede:
- El stub del proveedor carga
system-tests/tests/fixtures/assetcore/interop/fixture_map.json. - DG evalúa puertas utilizando evidencia de fijación.
Modo en Vivo (AssetCore Docker)
Paso 1: Cargar Imágenes de AssetCore
cd <ASSETCORE_REPO_ROOT>
starter-pack/scripts/load_images.sh --bundle starter-pack/docker-images
Paso 2: Iniciar AssetCore Stack
docker compose \
--env-file starter-pack/docker/images.env \
-f starter-pack/docker/docker-compose.yml \
up -d
Paso 3: Iniciar el Servidor MCP de Decision Gate
cargo run -p decision-gate-cli -- \
serve \
--config system-tests/tests/fixtures/assetcore/decision-gate.toml
Configuración de fixture relevante (campos exactos):
[server]
transport = "http"
bind = "127.0.0.1:8088"
[[providers]]
name = "assetcore_read"
type = "mcp"
url = "http://127.0.0.1:9000/mcp"
allow_insecure_http = true
capabilities_path = "system-tests/tests/fixtures/assetcore/providers/assetcore_read.json"
Paso 4: Ejecutar Evaluación de Interoperabilidad
cargo run -p decision-gate-cli -- \
interop eval \
--mcp-url http://127.0.0.1:8088/rpc \
--spec system-tests/tests/fixtures/assetcore/interop/scenarios/assetcore-interop-full.json \
--run-config system-tests/tests/fixtures/assetcore/interop/run-configs/assetcore-interop-full.json \
--trigger system-tests/tests/fixtures/assetcore/interop/triggers/assetcore-interop-full.json
Paso 5: Desmantelar la pila de AssetCore
docker compose \
--env-file starter-pack/docker/images.env \
-f starter-pack/docker/docker-compose.yml \
down
Accesorios Refrescantes
Cuando cambian los contratos de AssetCore, regenere los fixtures del repositorio de AssetCore y cópielos en este repositorio:
cp <ASSETCORE_GENERATED_DIR>/decision-gate/interop/fixture_map.json \
system-tests/tests/fixtures/assetcore/interop/fixture_map.json
cp <ASSETCORE_GENERATED_DIR>/decision-gate/providers/assetcore_read.json \
system-tests/tests/fixtures/assetcore/providers/assetcore_read.json
Solución de problemas
Conexión de AssetCore MCP rechazada
- Verificar que el adaptador AssetCore MCP esté en funcionamiento.
- Verifique la URL del proveedor en la configuración de Decision Gate (
http://127.0.0.1:9000/mcp).
Fallos en la validación de anclajes
- Confirmar la política de anclaje bajo
[anchors]. - Asegúrese de que
anchor_valuesea una cadena que contenga JSON canónico con los campos requeridos.
Notas
- Los fixtures de Interop utilizan marcas de tiempo deterministas (sin reloj de pared).
- Los fixtures de interoperabilidad en este repositorio son solo ASCII; manténgalos así para obtener diferencias deterministas.
Glosario
Ancla: Referencia externa que prueba la procedencia de la evidencia. Mapa de Instalaciones: Mapeo JSON de consultas a resultados de evidencia deterministas. Interop: Validación de interoperabilidad entre DG y AssetCore.