Decision Gate Docs

Avaluació de portes determinista, reproduïble amb decisions auditable.

Asset Core docs

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}"
  }
}

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_value sigui 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.