AssetCore Interop Runbook
Avís d’Accés (Dependència Privada)
Aquest runbook requereix accés privat al repositori AssetCore i el paquet d’imatge Docker del paquet inicial d’AssetCore. Aquests actius no estan inclosos al repositori OSS Decision Gate.
A Simple Vista
Què: Validar la interoperabilitat entre Decision Gate i AssetCore Per què: Assegurar que les evidències d’AssetCore s’integrin correctament amb les portes de DG Qui: Enginyers d’integració, operadors de proves Prerequisits: Docker (mode en viu), accés al repositori d’AssetCore, CLI de Decision Gate construït
Fixture vs Mode en Directe
Fixtures Offline Deterministes
- Utilitza un stub de proveïdor amb un mapa de fixtures.
- Totalment determinista i ràpid.
Mode en viu (Integració)
- Executa serveis d’AssetCore en Docker.
- Exercicis de trucades MCP reals i rutes de xarxa.
Política d’Ancoratge
Decision Gate aplica les regles d’ancoratge a través de la configuració, no del escenari:
[anchors]
[[anchors.providers]]
provider_id = "assetcore_read"
anchor_type = "assetcore.anchor_set"
required_fields = ["assetcore.namespace_id", "assetcore.commit_id", "assetcore.world_seq"]
Evidence anchors: anchor_value és una string que conté JSON canònic. Exemple de fragment EvidenceResult:
{
"evidence_anchor": {
"anchor_type": "assetcore.anchor_set",
"anchor_value": "{\"assetcore.namespace_id\":1,\"assetcore.commit_id\":\"c123\",\"assetcore.world_seq\":42}"
}
}
Validació de Fixtures Offline (Recomanat)
cargo test -p system-tests \
--features system-tests \
--test providers \
-- \
--exact assetcore_integration::assetcore_interop_fixtures
Què passa:
- El stub del proveïdor carrega
system-tests/tests/fixtures/assetcore/interop/fixture_map.json. - DG avalua les portes utilitzant proves de fixació.
Mode en directe (AssetCore Docker)
Pas 1: Carregar Imatges d’AssetCore
cd <ASSETCORE_REPO_ROOT>
starter-pack/scripts/load_images.sh --bundle starter-pack/docker-images
Pas 2: Iniciar l’AssetCore Stack
docker compose \
--env-file starter-pack/docker/images.env \
-f starter-pack/docker/docker-compose.yml \
up -d
Pas 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ó de fixture rellevant (camps exactes):
[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"
Pas 4: Executar l’Avaluació d’Interop
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
Pas 5: Desmuntar l’AssetCore Stack
docker compose \
--env-file starter-pack/docker/images.env \
-f starter-pack/docker/docker-compose.yml \
down
Actualitzant fixtures
Quan els contractes d’AssetCore canvien, regenerar fixtures del repositori d’AssetCore i copiar-los en aquest repositori:
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ó de problemes
Connexió AssetCore MCP rebutjada
- Verifiqueu que l’adaptador MCP d’AssetCore estigui en funcionament.
- Comproveu l’URL del proveïdor a la configuració de Decision Gate (
http://127.0.0.1:9000/mcp).
Errors de validació de l’ancora
- Confirmeu la política d’ancoratge sota
[anchors]. - Assegureu-vos que
anchor_valuesigui una cadena que contingui JSON canònic amb els camps requerits.
Notes
- Les fixtures d’interoperabilitat utilitzen caràcters temporals deterministes (sense rellotge de paret).
- Els fixtures d’Interop en aquest repositori són només ASCII; mantingueu-los així per a diferències deterministes.
Glossari
Ancoratge: Referència externa que prova la procedència de les proves. Mapa de fixtures: Mapeig JSON de consultes a resultats de proves deterministes. Interop: Validació d’interoperabilitat entre DG i AssetCore.