Decision Gate Docs

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

Asset Core docs

Eines del Decision Gate MCP

Descarregar: tooling.json (326 KB) Descarregar: openapi/decision-gate.json (408 KB)

Pàgines de detall de l’eina

  • scenario_define - Registra un ScenarioSpec, valida’l i retorna el hash canònic utilitzat per a les comprovacions d’integritat.
  • scenario_start - Crea un nou estat d’execució per a un escenari i, opcionalment, emet paquets d’entrada.
  • scenario_status - Obteniu una instantània de lectura només i un resum segur sense canviar l’estat.
  • scenario_next - Avaluar les portes en resposta a una sol·licitud següent impulsada per un agent.
  • scenario_submit - Enviar artefactes externs a l’estat d’execució per a auditoria i avaluació posterior.
  • scenario_trigger - Enviar un esdeveniment de desencadenament (programador/external) i avaluar l’execució.
  • evidence_query - Consultar un proveïdor d’evidències amb el context d’execució complet i la política de divulgació.
  • runpack_export - Exporta artefactes de runpack deterministes per a la verificació fora de línia.
  • runpack_verify - Verifica un manifest de runpack i artefactes fora de línia.
  • providers_list - Llista de proveïdors d’evidències registrats i resum de capacitats.
  • provider_contract_get - Obtenir el contracte canònic del proveïdor en format JSON i el seu hash per a un proveïdor.
  • provider_check_schema_get - Obtenir detalls de l’esquema de comprovació (params/resultat/comparadors) per a un proveïdor.
  • schemas_register - Registra un esquema de forma de dades per a un inquilí i un espai de noms.
  • schemas_list - Llista de formes de dades registrades per a un inquilí i un espai de noms.
  • schemas_get - Obtenir una forma de dades específica mitjançant l’identificador i la versió.
  • scenarios_list - Llista de scenarios registrats per a un llogater i un espai de noms.
  • precheck - Avaluar un escenari contra dades afirmades sense mutar l’estat.
  • decision_gate_docs_search - Cerqueu la documentació de Decision Gate per a orientació en temps d’execució.
  • typed_providers_import - Importa OpenAPI en artefactes de proveïdor tipats i registra una versió de perfil.
  • typed_providers_register - Registra el contracte de proveïdor tipat preconstruït + artefactes de perfil d’execució.
  • typed_providers_list - Llista de catàlegs del cicle de vida dels proveïdors tipats i versions registrades.
  • typed_providers_get - Obtenir artefactes de proveïdors tipats + metadades del cicle de vida per a una versió.
  • typed_providers_activate - Activa una versió del cicle de vida d’un proveïdor tipificat.
  • typed_providers_deprecate - Descontinuar una versió del cicle de vida d’un proveïdor tipat, amb una reversió activa opcional.

Aquest document resumeix la superfície de l’eina MCP i l’ús esperat. Els esquemes complets es troben a tooling.json, amb esquemes de suport sota schemas/ i exemples sota examples/.

Inici ràpid del cicle de vida

  • scenario_define registra i valida un ScenarioSpec.
  • scenario_start crea una execució i opcionalment emet paquets d’entrada.
  • scenario_next avança una execució impulsada per agents; scenario_trigger avança el temps/activadors externs.
  • scenario_status consulta l’estat d’execució sense modificar-lo.
  • scenario_submit afegeix artefactes externs per a auditoria i verificacions posteriors.
  • runpack_export i runpack_verify suporten la verificació fora de línia.

Referències d’artefactes

  • authoring.md: formats d’autoria i orientació sobre normalització.
  • [scenario.json](/downloads/decision-gate/examples/scenario.json): exemple complet de ScenarioSpec.
  • examples/scenario.ron: exemple de ScenarioSpec amigable per a l’autoria.
  • [run-config.json](/downloads/decision-gate/examples/run-config.json): exemple de configuració d’execució per a scenario_start.
  • [decision-gate.toml](/downloads/decision-gate/examples/decision-gate.toml): exemple de configuració MCP per a proveïdors.
ToolDescription
scenario_defineRegistrar un ScenarioSpec, validar-lo i retornar el hash canònic utilitzat per a les comprovacions d’integritat.
scenario_startCrear un nou estat d’execució per a un escenari i opcionalment emetre paquets d’entrada.
scenario_statusObtenir una instantània d’execució de només lectura i un resum segur sense canviar l’estat.
scenario_nextAvaluar portes en resposta a una sol·licitud següent impulsada per un agent.
scenario_submitPresentar artefactes externs a l’estat d’execució per a auditoria i avaluació posterior.
scenario_triggerPresentar un esdeveniment de desencadenament (programador/external) i avaluar l’execució.
evidence_queryConsultar un proveïdor d’evidències amb el context complet d’execució i la política de divulgació.
runpack_exportExportar artefactes de runpack deterministes per a verificació fora de línia.
runpack_verifyVerificar un manifest de runpack i artefactes fora de línia.
providers_listLlistar proveïdors d’evidències registrats i resum de capacitats.
provider_contract_getObtenir el JSON del contracte canònic del proveïdor i el hash per a un proveïdor.
provider_check_schema_getObtenir detalls de l’esquema de comprovació (params/result/comparadors) per a un proveïdor.
schemas_registerRegistrar un esquema de forma de dades per a un llogater i un espai de noms.
schemas_listLlistar formes de dades registrades per a un llogater i un espai de noms.
schemas_getObtenir una forma de dades específica per identificador i versió.
scenarios_listLlistar escenaris registrats per a un llogater i un espai de noms.
precheckAvaluar un escenari contra dades afirmades sense mutar l’estat.
decision_gate_docs_searchCercar documentació de Decision Gate per a orientació en temps d’execució.
typed_providers_importImportar OpenAPI en artefactes de proveïdor tipat i registrar una versió de perfil.
typed_providers_registerRegistrar contracte de proveïdor tipat preconstruït + artefactes de perfil d’execució.
typed_providers_listLlistar catàlegs del cicle de vida del proveïdor tipat i versions registrades.
typed_providers_getObtenir artefactes de proveïdor tipat + metadades del cicle de vida per a una versió.
typed_providers_activateActivar una versió del cicle de vida del proveïdor tipat.
typed_providers_deprecateDeprecació d’una versió del cicle de vida del proveïdor tipat, amb retrocés actiu opcional.

escenari_definir

Registra un ScenarioSpec, valida’l i retorna el hash canònic utilitzat per a les comprovacions d’integritat.

Inputs

  • spec (requerit): Especificació de l’escenari per registrar.

Sortides

  • scenario_id (required): Identificador de l’escenari.
  • spec_hash (requerit): Tipus: object.

Notes

  • Utilitzeu abans d’iniciar les curses; scenario_id es converteix en el controlador estable per a les crides posteriors.
  • Valida els IDs d’etapa/port/condició, arbres RET i referències de condició.
  • El hash de l’especificació és determinista; emmagatzema-ho per a l’auditoria i la integritat del paquet.
  • Els errors es tanquen en especificacions no vàlides o IDs de scenario duplicats.

Exemple

Registra l’especificació de l’escenari d’exemple.

Input:

{
  "spec": {
    "conditions": [
      {
        "comparator": "equals",
        "condition_id": "env_is_prod",
        "expected": "production",
        "policy_tags": [],
        "query": {
          "check_id": "get",
          "params": {
            "key": "DEPLOY_ENV"
          },
          "provider_id": "env"
        }
      },
      {
        "comparator": "equals",
        "condition_id": "after_freeze",
        "expected": true,
        "policy_tags": [],
        "query": {
          "check_id": "after",
          "params": {
            "timestamp": 1710000000000
          },
          "provider_id": "time"
        }
      }
    ],
    "default_tenant_id": null,
    "namespace_id": 1,
    "policies": [],
    "scenario_id": "example-scenario",
    "schemas": [],
    "spec_version": "v1",
    "stages": [
      {
        "advance_to": {
          "kind": "terminal"
        },
        "entry_packets": [
          {
            "content_type": "application/json",
            "expiry": null,
            "packet_id": "packet-hello",
            "payload": {
              "kind": "json",
              "value": {
                "message": "hello",
                "purpose": "scenario entry packet"
              }
            },
            "policy_tags": [],
            "schema_id": "schema-hello",
            "visibility_labels": [
              "public"
            ]
          }
        ],
        "gates": [
          {
            "gate_id": "env_gate",
            "requirement": {
              "Condition": "env_is_prod"
            }
          },
          {
            "gate_id": "time_gate",
            "requirement": {
              "Condition": "after_freeze"
            }
          }
        ],
        "on_timeout": "fail",
        "stage_id": "main",
        "timeout": null
      }
    ]
  }
}

Output:

{
  "scenario_id": "example-scenario",
  "spec_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  }
}

escenari_inici

Crea un nou estat d’execució per a un escenari i opcionalment emet paquets d’entrada.

Inputs

  • issue_entry_packets (required): Emetre paquets d’entrada immediatament.
  • run_config (requerit): Configuració d’execució i objectius de despach.
  • scenario_id (required): Identificador de l’escenari.
  • started_at (requerit): Timestamp d’inici de la execució proporcionat pel cridant.

Sortides

  • current_stage_id (required): Identificador de l’etapa actual.
  • decisions (requerit): Tipus: array.
  • dispatch_targets (required): Tipus: array.
  • gate_evals (requerit): Tipus: array.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • paquets (requerit): Tipus: array.
  • run_id (requerit): Identificador de la execució.
  • scenario_id (required): Identificador de l’escenari.
  • spec_hash (requerit): Tipus: object.
  • stage_entered_at (requerit): Un dels: objecte, objecte.
  • status (requerit): Tipus: string.
  • submissions (requerit): Tipus: array.
  • tenant_id (required): Identificador del llogater.
  • tool_calls (required): Tipus: array.
  • triggers (requerit): Tipus: array.

Notes

  • Requereix RunConfig (tenant_id, run_id, scenario_id, dispatch_targets).
  • Utilitzeu started_at per enregistrar la marca de temps d’inici proporcionada pel que truca.
  • Si issue_entry_packets és cert, els paquets d’entrada es revelen immediatament.
  • Tanca si run_id ja existeix o scenario_id és desconegut.

Exemple

Inicieu una execució per a l’escenari d’exemple i emeteu paquets d’entrada.

Input:

{
  "issue_entry_packets": true,
  "run_config": {
    "dispatch_targets": [
      {
        "agent_id": "agent-alpha",
        "kind": "agent"
      }
    ],
    "namespace_id": 1,
    "policy_tags": [],
    "run_id": "run-0001",
    "scenario_id": "example-scenario",
    "tenant_id": 1
  },
  "scenario_id": "example-scenario",
  "started_at": {
    "kind": "unix_millis",
    "value": 1710000000000
  }
}

Output:

{
  "current_stage_id": "main",
  "decisions": [],
  "dispatch_targets": [
    {
      "agent_id": "agent-alpha",
      "kind": "agent"
    }
  ],
  "gate_evals": [],
  "namespace_id": 1,
  "packets": [],
  "run_id": "run-0001",
  "scenario_id": "example-scenario",
  "spec_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "stage_entered_at": {
    "kind": "unix_millis",
    "value": 1710000000000
  },
  "status": "active",
  "submissions": [],
  "tenant_id": 1,
  "tool_calls": [],
  "triggers": []
}

estat_escenari

Obteniu una instantània de lectura només i un resum segur sense canviar l’estat.

Inputs

  • request (required): Càrrega útil de la sol·licitud d’estat.
  • scenario_id (required): Identificador de l’escenari.

Sortides

  • current_stage_id (required): Identificador de l’etapa actual.
  • issued_packet_ids (required): Tipus: array.
  • last_decision (requerit, nullable): Un dels següents: null, objecte.
  • namespace_id (opcional): Identificador de l’espai de noms.
  • run_id (requerit): Identificador de la execució.
  • safe_summary (requerit, nullable): Un dels següents: null, objecte.
  • scenario_id (required): Identificador de l’escenari.
  • status (requerit): Tipus: string.

Notes

  • S’utilitza per a enquestes o estat de la interfície d’usuari; no avalua portes.
  • Els resums segurs ometen els valors d’evidència i poden incloure pistes de reintents.
  • Retorna els IDs de paquet emesos per ajudar a rastrejar les divulgacions.

Exemple

Estat de l’execució de la consulta sense avançar l’execució.

Input:

{
  "request": {
    "correlation_id": null,
    "namespace_id": 1,
    "requested_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "run_id": "run-0001",
    "tenant_id": 1
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "current_stage_id": "main",
  "issued_packet_ids": [],
  "last_decision": null,
  "run_id": "run-0001",
  "safe_summary": null,
  "scenario_id": "example-scenario",
  "status": "active"
}

escenari_seguent

Avalua les portes en resposta a una sol·licitud següent impulsada per un agent.

Inputs

  • feedback (opcional, nul·la): Nivell de retroalimentació opcional per sobreescriure per a scenario_next.
  • request (required): Proper següent del payload d’una agent.
  • scenario_id (required): Identificador de l’escenari.

Sortides

  • decisió (requerit): Tipus: objecte.
  • feedback (opcional, nul·la): Un dels següents: null, objecte.
  • paquets (requerit): Tipus: array.
  • status (requerit): Tipus: string.

Notes

  • Idempotent per trigger_id; les trucades repetides retornen la mateixa decisió.
  • Registres de decisió, proves i divulgacions de paquets en estat d’execució.
  • Requereix una execució activa; les execucions completades o fallides no avancen.
  • El comentari opcional pot incloure el rastreig de la porta o proves quan ho permeti la política de comentaris del servidor.

Exemple

Exemple 1: Avaluar el següent pas impulsat per agents per a una execució.

Input:

{
  "request": {
    "agent_id": "agent-alpha",
    "correlation_id": null,
    "namespace_id": 1,
    "run_id": "run-0001",
    "tenant_id": 1,
    "time": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "trigger_id": "trigger-0001"
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "decision": {
    "correlation_id": null,
    "decided_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "decision_id": "decision-0001",
    "outcome": {
      "kind": "complete",
      "stage_id": "main"
    },
    "seq": 0,
    "stage_id": "main",
    "trigger_id": "trigger-0001"
  },
  "packets": [],
  "status": "completed"
}

Exemple 2: Avaluar una execució i sol·licitar comentaris sobre el rastreig.

Input:

{
  "feedback": "trace",
  "request": {
    "agent_id": "agent-alpha",
    "correlation_id": null,
    "namespace_id": 1,
    "run_id": "run-0001",
    "tenant_id": 1,
    "time": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "trigger_id": "trigger-0001"
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "decision": {
    "correlation_id": null,
    "decided_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "decision_id": "decision-0001",
    "outcome": {
      "kind": "complete",
      "stage_id": "main"
    },
    "seq": 0,
    "stage_id": "main",
    "trigger_id": "trigger-0001"
  },
  "feedback": {
    "gate_evaluations": [],
    "level": "trace"
  },
  "packets": [],
  "status": "completed"
}

escenari_enviar

Presentar artefactes externs en l’estat d’execució per a auditoria i avaluació posterior.

Inputs

  • request (obligatori): Càrrega de la sol·licitud i metadades.
  • scenario_id (required): Identificador de l’escenari.

Sortides

  • registre (requerit): Tipus: objecte.

Notes

  • El payload es fa un hash i es desa com un registre de presentació.
  • La càrrega útil es manté en els registres de l’estat d’execució/runpack; no envieu secrets en brut.
  • No avança la carrera per si mateix.
  • Utilitzeu per als artefactes el model o operador subministrat.

Exemple

Presenta un artefacte extern per a auditoria i avaluació posterior.

Input:

{
  "request": {
    "content_type": "application/json",
    "correlation_id": null,
    "namespace_id": 1,
    "payload": {
      "kind": "json",
      "value": {
        "artifact": "attestation",
        "status": "approved"
      }
    },
    "run_id": "run-0001",
    "submission_id": "submission-0001",
    "submitted_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "tenant_id": 1
  },
  "scenario_id": "example-scenario"
}

Output:

{
  "record": {
    "content_hash": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "content_type": "application/json",
    "correlation_id": null,
    "payload": {
      "kind": "json",
      "value": {
        "artifact": "attestation",
        "status": "approved"
      }
    },
    "run_id": "run-0001",
    "submission_id": "submission-0001",
    "submitted_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    }
  }
}

escenari_disparador

Envia un esdeveniment de desencadenament (programador/external) i avalua l’execució.

Inputs

  • scenario_id (required): Identificador de l’escenari.
  • trigger (requerit): Payload de l’esdeveniment de desencadenament.

Sortides

  • decisió (requerit): Tipus: objecte.
  • paquets (requerit): Tipus: array.
  • status (requerit): Tipus: string.

Notes

  • El temps d’activació és subministrat pel qui crida; no es fan lectures del rellotge de paret.
  • Registra l’esdeveniment de desencadenament i la decisió resultant.
  • La càrrega útil es manté en els registres de l’estat d’execució/runpack; no envieu secrets en brut.
  • Utilitzeu per a desencadenants basats en el temps o sistemes externs.

Exemple

Avança una execució des d’un programador o un desencadenant extern.

Input:

{
  "scenario_id": "example-scenario",
  "trigger": {
    "correlation_id": null,
    "kind": "tick",
    "namespace_id": 1,
    "payload": null,
    "run_id": "run-0001",
    "source_id": "scheduler-01",
    "tenant_id": 1,
    "time": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "trigger_id": "trigger-0001"
  }
}

Output:

{
  "decision": {
    "correlation_id": null,
    "decided_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "decision_id": "decision-0001",
    "outcome": {
      "kind": "complete",
      "stage_id": "main"
    },
    "seq": 0,
    "stage_id": "main",
    "trigger_id": "trigger-0001"
  },
  "packets": [],
  "status": "completed"
}

evidència_consulta

Consulta un proveïdor d’evidències amb el context complet d’execució i la política de divulgació.

Inputs

  • context (required): Context de l’evidència utilitzat per a l’avaluació.
  • query (required): Càrrega de consulta d’evidències.

Sortides

  • result (required): Tipus: object.

Notes

  • La política de divulgació pot redactar valors en brut; els hashes/ancres encara es retornen.
  • Utilitzeu per a diagnòstics o comprovacions abans del vol; el temps d’execució utilitza la mateixa lògica del proveïdor.
  • Requereix provider_id, check_id i EvidenceContext complet.

Exemple

Consulta un proveïdor d’evidències utilitzant el context d’execució.

Input:

{
  "context": {
    "correlation_id": null,
    "namespace_id": 1,
    "run_id": "run-0001",
    "scenario_id": "example-scenario",
    "stage_id": "main",
    "tenant_id": 1,
    "trigger_id": "trigger-0001",
    "trigger_time": {
      "kind": "unix_millis",
      "value": 1710000000000
    }
  },
  "query": {
    "check_id": "get",
    "params": {
      "key": "DEPLOY_ENV"
    },
    "provider_id": "env"
  }
}

Output:

{
  "result": {
    "content_type": "text/plain",
    "error": null,
    "evidence_anchor": {
      "anchor_type": "env",
      "anchor_value": "DEPLOY_ENV"
    },
    "evidence_hash": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "evidence_ref": null,
    "lane": "verified",
    "signature": null,
    "value": {
      "kind": "json",
      "value": "production"
    }
  }
}

runpack_export

Exporta artefactes de runpack deterministes per a la verificació fora de línia.

Inputs

  • generated_at (requerit): Timestamp enregistrat al manifest.
  • include_verification (requerit): Generar un artefacte de informe de verificació.
  • manifest_name (opcional, nul): Substitució opcional per al nom del fitxer manifest.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • output_dir (opcional, nul·la): Directori de sortida opcional (requerit per a l’exportació del sistema de fitxers).
  • run_id (requerit): Identificador de la execució.
  • scenario_id (required): Identificador de l’escenari.
  • tenant_id (required): Identificador del llogater.

Sortides

  • manifest (requerit): Tipus: object.
  • report (requerit, nullable): Un dels següents: null, objecte.
  • storage_uri (opcional, nul): URI d’emmagatzematge opcional per a backend d’emmagatzematge de runpack gestionats.

Notes

  • Escriu el manifest i els registres a output_dir; generated_at es registra al manifest.
  • include_verification afegeix un artefacte de informe de verificació.
  • L’informe d’exportació checked_files exclou verifier_report.json; l’execució offline runpack_verify checked_files l’inclou (+1 per la mateixa runpack).
  • Utilitzeu després que les execucions es completin o per a instantànies d’auditoria.

Exemple

Exporta un runpack amb metadades del manifest.

Input:

{
  "generated_at": {
    "kind": "unix_millis",
    "value": 1710000000000
  },
  "include_verification": false,
  "manifest_name": "manifest.json",
  "namespace_id": 1,
  "output_dir": "/var/lib/decision-gate/runpacks/run-0001",
  "run_id": "run-0001",
  "scenario_id": "example-scenario",
  "tenant_id": 1
}

Output:

{
  "manifest": {
    "artifacts": [
      {
        "artifact_id": "decision_log",
        "content_type": "application/json",
        "hash": {
          "algorithm": "sha256",
          "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
        },
        "kind": "decision_log",
        "path": "decision_log.json",
        "required": true
      }
    ],
    "generated_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "hash_algorithm": "sha256",
    "integrity": {
      "file_hashes": [
        {
          "hash": {
            "algorithm": "sha256",
            "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
          },
          "path": "decision_log.json"
        }
      ],
      "root_hash": {
        "algorithm": "sha256",
        "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
      }
    },
    "manifest_version": "v1",
    "namespace_id": 1,
    "run_id": "run-0001",
    "scenario_id": "example-scenario",
    "spec_hash": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "tenant_id": 1,
    "verifier_mode": "offline_strict"
  },
  "report": null,
  "storage_uri": null
}

runpack_verify

Verifiqueu un manifest de runpack i artefactes fora de línia.

Inputs

  • manifest_path (required): Ruta del manifest relativa a la carpeta arrel de runpack.
  • runpack_dir (requerit): Directori arrel de Runpack.

Sortides

  • informe (requerit): Tipus: objecte.
  • estat (requerit): Estat de verificació de Runpack.

Notes

  • Valida els hashes, l’arrel d’integritat i l’estructura del registre de decisions.
  • Els fallos es tanquen en cas de fitxers perduts o manipulats.
  • Utilitzeu en CI o en canals d’auditoria fora de línia.

Exemple

Verifiqueu un manifest de runpack i artefactes fora de línia.

Input:

{
  "manifest_path": "manifest.json",
  "runpack_dir": "/var/lib/decision-gate/runpacks/run-0001"
}

Output:

{
  "report": {
    "checked_files": 12,
    "errors": [],
    "status": "pass"
  },
  "status": "pass"
}

llista_proveïdors

Llista de proveïdors d’evidències registrades i resum de capacitats.

Inputs

Sortides

  • proveïdors (requerit): Tipus: array.

Notes

  • Retorna identificadors de proveïdors i metadades de transport.
  • Els resultats estan limitats per la política d’autenticació.

Exemple

Llista de proveïdors d’evidència registrats.

Input:

{}

Output:

{
  "providers": [
    {
      "checks": [
        "get"
      ],
      "provider_id": "env",
      "transport": "builtin"
    }
  ]
}

proveedorcontracteobtenir

Obteniu el JSON del contracte del proveïdor canònic i el hash per a un proveïdor.

Inputs

  • provider_id (required): Identificador del proveïdor.

Sortides

  • contracte (requerit): Tipus: objecte.
  • contract_hash (requerit): Tipus: object.
  • provider_id (required): Identificador del proveïdor.
  • source (required): Origen de la font del contracte.
  • versió (requerida, nullable): Etiqueta de versió de contracte opcional.

Notes

  • Retorna el contracte del proveïdor tal com ha estat carregat pel servidor MCP.
  • Inclou un hash canònic per a l’auditoria i la reproductibilitat.
  • Sota la política de divulgació del proveïdor i l’autorització.

Exemple

Obteniu el JSON del contracte per a un proveïdor.

Input:

{
  "provider_id": "json"
}

Output:

{
  "contract": {
    "checks": [],
    "config_schema": {
      "additionalProperties": false,
      "type": "object"
    },
    "description": "Reads JSON or YAML files and evaluates JSONPath.",
    "name": "JSON Provider",
    "notes": [],
    "provider_id": "json",
    "transport": "builtin"
  },
  "contract_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "provider_id": "json",
  "source": "builtin",
  "version": null
}

proveidorcomprovaresquema_obtenir

Obteniu detalls de l’esquema de comprovació (paràmetres/resultat/comparadors) per a un proveïdor.

Inputs

  • check_id (required): Identificador de comprovació del proveïdor.
  • provider_id (required): Identificador del proveïdor.

Sortides

  • allowed_comparators (requerit): Llista blanca de comparadors per a aquesta comprovació.
  • anchor_types (required): Tipus d’ancora emesos per aquesta comprovació.
  • check_id (required): Identificador de comprovació.
  • content_types (required): Tipus de contingut per a la sortida de comprovació.
  • contract_hash (requerit): Tipus: object.
  • determinisme (requerit): Classificació del determinisme per a les comprovacions del proveïdor.
  • exemples (requerit): Tipus: array.
  • params_required (required): Si es requereixen paràmetres per a aquesta comprovació.
  • params_schema (required): esquema JSON per a comprovar els paràmetres.
  • provider_id (required): Identificador del proveïdor.
  • result_schema (requerit): esquema JSON per al valor del resultat de la comprovació.

Notes

  • Retorna metadades de l’esquema compilades per a una única comprovació.
  • Inclou llistes d’allow-list de comparadors i exemples de comprovació.
  • Sota la política de divulgació del proveïdor i l’autorització.

Exemple

Obteniu detalls de l’esquema de verificació per a un proveïdor.

Input:

{
  "check_id": "path",
  "provider_id": "json"
}

Output:

{
  "allowed_comparators": [
    "equals",
    "in_set",
    "exists",
    "not_exists"
  ],
  "anchor_types": [],
  "check_id": "path",
  "content_types": [
    "application/json"
  ],
  "contract_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "determinism": "external",
  "examples": [],
  "params_required": true,
  "params_schema": {
    "properties": {
      "file": {
        "type": "string"
      },
      "jsonpath": {
        "type": "string"
      }
    },
    "required": [
      "file"
    ],
    "type": "object"
  },
  "provider_id": "json",
  "result_schema": {
    "type": [
      "null",
      "string",
      "number",
      "boolean",
      "array",
      "object"
    ]
  }
}

esquemes_registre

Registreu un esquema de forma de dades per a un llogater i un espai de noms.

Inputs

  • registre (requerit): Tipus: objecte.

Sortides

  • registre (requerit): Tipus: objecte.

Notes

  • Els esquemes són immutables; registrar la mateixa versió dues vegades falla.
  • Proporciona created_at per enregistrar quan es va redactar l’esquema.

Exemple

Registra un esquema de forma de dades.

Input:

{
  "record": {
    "created_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "description": "Asserted payload schema.",
    "namespace_id": 1,
    "schema": {
      "additionalProperties": false,
      "properties": {
        "deploy_env": {
          "type": "string"
        }
      },
      "required": [
        "deploy_env"
      ],
      "type": "object"
    },
    "schema_id": "asserted_payload",
    "tenant_id": 1,
    "version": "v1"
  }
}

Output:

{
  "record": {
    "created_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "description": "Asserted payload schema.",
    "namespace_id": 1,
    "schema": {
      "additionalProperties": false,
      "properties": {
        "deploy_env": {
          "type": "string"
        }
      },
      "required": [
        "deploy_env"
      ],
      "type": "object"
    },
    "schema_id": "asserted_payload",
    "tenant_id": 1,
    "version": "v1"
  }
}

esquemes_llista

Llista de formes de dades registrades per a un llogater i un espai de noms.

Inputs

  • cursor (opcional, nul·la): Un dels: null, string.
  • limit (opcional): Nombre màxim de registres a retornar.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • tenant_id (required): Identificador del llogater.

Sortides

  • elements (requerit): Tipus: array.
  • next_token (requerit, nullable): Un d’aquests: null, string.

Notes

  • Requereix tenant_id i namespace_id.
  • Admet la paginació mitjançant cursor + límit.

Exemple

Llista de formes de dades per a un espai de noms.

Input:

{
  "cursor": null,
  "limit": 50,
  "namespace_id": 1,
  "tenant_id": 1
}

Output:

{
  "items": [
    {
      "created_at": {
        "kind": "unix_millis",
        "value": 1710000000000
      },
      "description": "Asserted payload schema.",
      "namespace_id": 1,
      "schema": {
        "additionalProperties": false,
        "properties": {
          "deploy_env": {
            "type": "string"
          }
        },
        "required": [
          "deploy_env"
        ],
        "type": "object"
      },
      "schema_id": "asserted_payload",
      "tenant_id": 1,
      "version": "v1"
    }
  ],
  "next_token": null
}

schemas_obtenir

Obteniu una forma de dades específica per identificador i versió.

Inputs

  • namespace_id (requerit): Identificador de l’espai de noms.
  • schema_id (requerit): Identificador de la forma de dades.
  • tenant_id (required): Identificador del llogater.
  • versió (requerida): Identificador de versió de la forma de dades.

Sortides

  • registre (requerit): Tipus: objecte.

Notes

  • Requereix tenant_id, namespace_id, schema_id i version.
  • Falla tancada quan falta l’esquema.

Exemple

Obteniu una forma de dades per identificador i versió.

Input:

{
  "namespace_id": 1,
  "schema_id": "asserted_payload",
  "tenant_id": 1,
  "version": "v1"
}

Output:

{
  "record": {
    "created_at": {
      "kind": "unix_millis",
      "value": 1710000000000
    },
    "description": "Asserted payload schema.",
    "namespace_id": 1,
    "schema": {
      "additionalProperties": false,
      "properties": {
        "deploy_env": {
          "type": "string"
        }
      },
      "required": [
        "deploy_env"
      ],
      "type": "object"
    },
    "schema_id": "asserted_payload",
    "tenant_id": 1,
    "version": "v1"
  }
}

escenaris_llista

Llista d’escenaris registrats per a un llogater i un espai de noms.

Inputs

  • cursor (opcional, nul·la): Un dels: null, string.
  • limit (opcional): Nombre màxim de registres a retornar.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • tenant_id (required): Identificador del llogater.

Sortides

  • elements (requerit): Tipus: array.
  • next_token (requerit, nullable): Un d’aquests: null, string.

Notes

  • Requereix tenant_id i namespace_id.
  • Retorna identificadors de scenario i hashes.

Exemple

Llista d’escenaris per a un espai de noms.

Input:

{
  "cursor": null,
  "limit": 50,
  "namespace_id": 1,
  "tenant_id": 1
}

Output:

{
  "items": [
    {
      "namespace_id": 1,
      "scenario_id": "example-scenario",
      "spec_hash": {
        "algorithm": "sha256",
        "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
      }
    }
  ],
  "next_token": null
}

precomprovació

Avaluar un escenari contra dades afirmades sense mutar l’estat.

Inputs

  • data_shape (requerit): Tipus: object.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • payload (requerit): Dades de càrrega afirmades.
  • scenario_id (opcional, nul·la): Un dels següents: null, cadena.
  • spec (opcional, nul·la): Un dels següents: null, ref decision-gate://contract/schemas/scenario.schema.json.
  • stage_id (opcional, nul·la): Un dels següents: nul, cadena.
  • tenant_id (required): Identificador del llogater.

Sortides

  • decisió (requerit): Un dels: objecte, objecte, objecte, objecte, objecte.
  • gate_evaluations (requerit): Tipus: array.

Notes

  • Valida les dades afirmades contra una forma registrada.
  • No muta l’estat d’execució; destinat a la simulació.

Exemple

Precomprovar un escenari amb dades afirmades.

Input:

{
  "data_shape": {
    "schema_id": "asserted_payload",
    "version": "v1"
  },
  "namespace_id": 1,
  "payload": {
    "deploy_env": "production"
  },
  "scenario_id": "example-scenario",
  "spec": null,
  "stage_id": null,
  "tenant_id": 1
}

Output:

{
  "decision": {
    "kind": "hold",
    "summary": {
      "policy_tags": [],
      "retry_hint": "await_evidence",
      "status": "hold",
      "unmet_gates": [
        "ready"
      ]
    }
  },
  "gate_evaluations": []
}

Cerca la documentació de Decision Gate per a orientació en temps d’execució.

Inputs

  • max_sections (opcional): Nombre màxim de seccions a retornar (per defecte 3, límit màxim 10).
  • query (required): Consulta de cerca per a seccions de documentació.

Sortides

  • docs_covered (requerit): Tipus: array.
  • seccions (requerit): Tipus: array.
  • suggested_followups (required): Suggeriments de seguiment conscients del rol.

Notes

  • Utilitzeu per a consultes ràpides sobre el flux d’evidències, comparadors i semàntica dels proveïdors.
  • Retorna seccions classificades amb etiquetes de rol i suggeriments de seguiment.
  • La cerca és determinista i està limitada al catàleg de documents configurat.

Exemple

Cerca evidències del flux i orientació del carril de confiança.

Input:

{
  "max_sections": 2,
  "query": "precheck vs live run trust lanes"
}

Output:

{
  "docs_covered": [
    {
      "doc_id": "evidence_flow_and_execution_model",
      "doc_role": "reasoning",
      "doc_title": "Evidence Flow + Execution Model"
    }
  ],
  "sections": [
    {
      "content": "...",
      "doc_id": "evidence_flow_and_execution_model",
      "doc_role": "reasoning",
      "doc_title": "Evidence Flow + Execution Model",
      "heading": "Core Data Flow",
      "rank": 0
    }
  ],
  "suggested_followups": [
    "Refine the query with comparator or provider keywords for targeted guidance."
  ]
}

typedprovidersimport

Importa OpenAPI en artefactes de proveïdor tipats i registra una versió de perfil.

Inputs

  • activate (opcional): Activa aquesta versió després del registre.
  • allow_unsafe_methods (opcional): Permetre mètodes HTTP no segurs durant la importació.
  • credential_bindings (requerit): id del esquema de seguretat OpenAPI per a metadades de vinculació de credencials estructurades (localitzador + valor_render). Utilitzeu {} per a importacions no autenticades.
  • external_ref_mode (opcional): Política de resolució de $ref externa opcional.
  • max_response_bytes (opcional): Sobrecàrrega opcional del límit de mida de resposta en temps d’execució.
  • media_support_mode (opcional): Mode de suport multimèdia opcional.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • openapi (requerit): document OpenAPI 3.x com a JSON.
  • openapi_conformance_mode (opcional): Mode de conformitat: els blocs estrictes bloquegen construccions no compatibles; informes d’auditoria sense activació.
  • openapi_semantics_mode (opcional): Sobreescriptura opcional del mode de semàntica OpenAPI.
  • openapi_source_path (opcional): Ruta de font opcional utilitzada per resoldre referències de fitxers locals.
  • operation_allowlist (requerit): Llista d’operacions explícites allowlist per a una importació estricta.
  • outbound_max_inflight (opcional): Sobrecàrrega opcional del límit d’inflight sortint.
  • provider_id (requerit): Identificador del proveïdor tipat.
  • retry_initial_backoff_ms (opcional): Substitució opcional de l’espera inicial de reintents sortints.
  • retry_max_attempts (opcional): Sobrecàrrega opcional del màxim nombre d’intents de reintents sortints.
  • retry_max_backoff_ms (opcional): Sobrecàrrega opcional del màxim retrocés de reintents sortints.
  • tenant_id (required): Identificador del llogater.
  • timeout_ms (opcional): Sobrecàrrega opcional de temps d’execució en mil·lisegons.
  • version (requerit): Identificador de la versió del cicle de vida.

Sortides

  • active_version (requerit, nullable): Un dels següents: null, string.
  • conformance_summary (requerit): Tipus: objecte.
  • contract_hash (requerit): Tipus: object.
  • operation_count (requerit): Tipus: enter.
  • profile_digest (requerit): Tipus: objecte.
  • provider_id (requerit): Identificador del proveïdor tipat.
  • register_outcome (requerit): Resultat del registre del cicle de vida del perfil tipificat.
  • source_digest (obligatori): Tipus: objecte.
  • version (requerit): Identificador de la versió del cicle de vida.

Notes

  • Requereix els camps de l’abast tenant_id i namespace_id.
  • La importació estrictament tancada requereix una llista d’operacions explícita permesa.
  • Requereix un mapeig explícit de credential_bindings; utilitzeu {} per a importacions no autenticades.
  • Suporta límits de sortida delimitats i una política de reintents per a perfils d’execució generats.
  • Genera artefactes de contracte de proveïdor determinístic + perfil d’execució.
  • Registra metadades del cicle de vida i opcionalment activa la versió importada.

Exemple

Importa un document OpenAPI en artefactes tipats.

Input:

{
  "activate": true,
  "allow_unsafe_methods": false,
  "credential_bindings": {},
  "external_ref_mode": "local_file_only",
  "max_response_bytes": 1048576,
  "media_support_mode": "json_only",
  "namespace_id": 1,
  "openapi": {
    "openapi": "3.1.0",
    "paths": {
      "/assets": {
        "get": {
          "operationId": "listAssets",
          "responses": {
            "200": {
              "content": {
                "application/json": {
                  "schema": {
                    "additionalProperties": false,
                    "properties": {
                      "items": {
                        "type": "array"
                      }
                    },
                    "required": [
                      "items"
                    ],
                    "type": "object"
                  }
                }
              },
              "description": "ok"
            }
          }
        }
      }
    }
  },
  "openapi_conformance_mode": "strict",
  "openapi_semantics_mode": "auto",
  "operation_allowlist": [
    "listAssets"
  ],
  "outbound_max_inflight": 32,
  "provider_id": "asset_api",
  "retry_initial_backoff_ms": 100,
  "retry_max_attempts": 3,
  "retry_max_backoff_ms": 2000,
  "tenant_id": 1,
  "timeout_ms": 5000,
  "version": "2026-02-17.1"
}

Output:

{
  "active_version": "2026-02-17.1",
  "conformance_summary": {
    "activation_allowed": true,
    "import_mode": "strict",
    "supported_feature_hits": [
      "openapi.version.3_1"
    ],
    "supported_features_covered": 1,
    "unsupported_codes": [],
    "unsupported_construct_count": 0,
    "unsupported_findings": []
  },
  "contract_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "operation_count": 1,
  "profile_digest": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "provider_id": "asset_api",
  "register_outcome": "registered",
  "source_digest": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "version": "2026-02-17.1"
}

typedprovidersregister

Registreu el contracte de proveïdor tipat preconstruït + artefactes de perfil d’execució.

Inputs

  • activate (opcional): Activa aquesta versió després del registre.
  • contracte (requerit): Tipus: objecte.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • provider_id (requerit): Identificador del proveïdor tipat.
  • runtime_profile (requerit): Artifact de perfil d’execució tipat.
  • tenant_id (required): Identificador del llogater.
  • version (requerit): Identificador de la versió del cicle de vida.

Sortides

  • active_version (requerit, nullable): Un dels següents: null, string.
  • contract_hash (requerit): Tipus: object.
  • operation_count (requerit): Tipus: enter.
  • profile_digest (requerit): Tipus: objecte.
  • provider_id (requerit): Identificador del proveïdor tipat.
  • register_outcome (requerit): Resultat del registre del cicle de vida del perfil tipificat.
  • source_digest (obligatori): Tipus: objecte.
  • version (requerit): Identificador de la versió del cicle de vida.

Notes

  • Requereix els camps de l’abast tenant_id i namespace_id.
  • Valida la coherència de la identitat del transportista/proveïdor introduïda.
  • Valida la integritat del resum del perfil d’execució abans del registre.
  • Registra metadades del cicle de vida i activa opcionalment la versió.

Exemple

Registra artefactes de proveïdor tipats preconstruïts.

Input:

{
  "activate": false,
  "contract": {
    "checks": [],
    "config_schema": {
      "additionalProperties": false,
      "type": "object"
    },
    "description": "Typed API provider",
    "name": "Asset API",
    "notes": [],
    "provider_id": "asset_api",
    "transport": "typed"
  },
  "namespace_id": 1,
  "provider_id": "asset_api",
  "runtime_profile": {
    "anchors": {
      "anchor_type": "typed_request"
    },
    "operations": [
      {
        "allowed_status_codes": [
          200
        ],
        "auth": {
          "alternatives": [
            {
              "kind": "none"
            }
          ]
        },
        "bindings": [],
        "check_id": "listAssets",
        "content_types": [
          "application/json"
        ],
        "extraction": {
          "kind": "json_body"
        },
        "method": "GET",
        "operation_id": "listAssets",
        "target": "https://api.example.com/assets"
      }
    ],
    "profile_digest": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "profile_version": "typed-runtime-v4",
    "protocol": "openapi_http",
    "provider_id": "asset_api",
    "security": {
      "allow_http": false,
      "allow_private_networks": false,
      "allowed_hosts": null,
      "max_response_bytes": 1048576,
      "outbound_max_inflight": 32,
      "retry": {
        "initial_backoff_ms": 100,
        "max_attempts": 3,
        "max_backoff_ms": 2000
      },
      "timeout_ms": 5000
    },
    "source_digest": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    }
  },
  "tenant_id": 1,
  "version": "2026-02-17.2"
}

Output:

{
  "active_version": null,
  "contract_hash": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "operation_count": 1,
  "profile_digest": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "provider_id": "asset_api",
  "register_outcome": "registered",
  "source_digest": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "version": "2026-02-17.2"
}

typedproviderslist

Llista els catàlegs del cicle de vida del proveïdor tipat i les versions registrades.

Inputs

  • cursor (opcional, nul·la): Un dels: null, string.
  • limit (opcional): Nombre màxim de catàlegs de proveïdors a retornar.
  • namespace_id (requerit): Identificador de l’espai de noms.
  • tenant_id (required): Identificador del llogater.

Sortides

  • elements (requerit): Tipus: array.
  • next_token (requerit, nullable): Un d’aquests: null, string.

Notes

  • Requereix els camps de l’abast tenant_id i namespace_id.
  • Suporta la paginació determinista mitjançant cursor + límit.
  • Els resultats estan limitats per la política de divulgació de descobriment del proveïdor.

Exemple

Llista de catàlegs del cicle de vida del proveïdor tipat.

Input:

{
  "cursor": null,
  "limit": 50,
  "namespace_id": 1,
  "tenant_id": 1
}

Output:

{
  "items": [
    {
      "active_version": "2026-02-17.1",
      "provider_id": "asset_api",
      "versions": [
        {
          "deprecated": false,
          "profile_digest": {
            "algorithm": "sha256",
            "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
          },
          "source_digest": {
            "algorithm": "sha256",
            "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
          },
          "version": "2026-02-17.1"
        }
      ]
    }
  ],
  "next_token": null
}

typedprovidersget

Obtenir artefactes del proveïdor escrits + metadades del cicle de vida per a una versió.

Inputs

  • namespace_id (requerit): Identificador de l’espai de noms.
  • observed_profile_digest (opcional, nullable): Observació opcional del resum del perfil per a comprovacions de deriva.
  • observed_source_digest (opcional, nul·la): Observació de digest de font opcional per a comprovacions de deriva.
  • provider_id (requerit): Identificador del proveïdor tipat.
  • tenant_id (required): Identificador del llogater.
  • version (opcional, nul·la): Un dels següents: null, string.

Sortides

  • active_version (requerit, nullable): Un dels següents: null, string.
  • catalog_version (requerit): Versió del esquema del catàleg del cicle de vida tipat.
  • contracte (requerit): Tipus: objecte.
  • drift_status (requerit, nullable): Un dels següents: null, string.
  • provider_id (requerit): Identificador del proveïdor tipat.
  • registre (requerit): Tipus: objecte.
  • runtime_profile (requerit): Artifact de perfil d’execució tipat.
  • selected_version (requerit): Versió del cicle de vida seleccionada.
  • source (required): Com es van registrar els artefactes escrits.

Notes

  • Requereix els camps de l’abast tenant_id i namespace_id.
  • Retorna el contracte del proveïdor + perfil d’execució per a la versió seleccionada.
  • Pot avaluar la deriva del digest contra els digests de font/perfil observats.
  • Si es omet la versió, es selecciona la versió activa.

Exemple

Obteniu artefactes de proveïdor escrits i metadades del cicle de vida.

Input:

{
  "namespace_id": 1,
  "observed_profile_digest": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "observed_source_digest": {
    "algorithm": "sha256",
    "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
  },
  "provider_id": "asset_api",
  "tenant_id": 1,
  "version": "2026-02-17.1"
}

Output:

{
  "active_version": "2026-02-17.1",
  "catalog_version": "typed-lifecycle-v1",
  "contract": {
    "checks": [],
    "config_schema": {
      "additionalProperties": false,
      "type": "object"
    },
    "description": "Typed API provider",
    "name": "Asset API",
    "notes": [],
    "provider_id": "asset_api",
    "transport": "typed"
  },
  "drift_status": "in_sync",
  "provider_id": "asset_api",
  "record": {
    "deprecated": false,
    "profile_digest": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "source_digest": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "version": "2026-02-17.1"
  },
  "runtime_profile": {
    "anchors": {
      "anchor_type": "typed_request"
    },
    "operations": [
      {
        "allowed_status_codes": [
          200
        ],
        "auth": {
          "alternatives": [
            {
              "kind": "none"
            }
          ]
        },
        "bindings": [],
        "check_id": "listAssets",
        "content_types": [
          "application/json"
        ],
        "extraction": {
          "kind": "json_body"
        },
        "method": "GET",
        "operation_id": "listAssets",
        "target": "https://api.example.com/assets"
      }
    ],
    "profile_digest": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    },
    "profile_version": "typed-runtime-v4",
    "protocol": "openapi_http",
    "provider_id": "asset_api",
    "security": {
      "allow_http": false,
      "allow_private_networks": false,
      "allowed_hosts": null,
      "max_response_bytes": 1048576,
      "outbound_max_inflight": 32,
      "retry": {
        "initial_backoff_ms": 100,
        "max_attempts": 3,
        "max_backoff_ms": 2000
      },
      "timeout_ms": 5000
    },
    "source_digest": {
      "algorithm": "sha256",
      "value": "5c3a5b6bce0f4a2c9e22c4fa6a1e6d8d90b0f2dfed1b7f1e9b3d3b3d1f0c9b21"
    }
  },
  "selected_version": "2026-02-17.1",
  "source": "openapi_import"
}

typedprovidersactivate

Activa una versió del cicle de vida del proveïdor tipat.

Inputs

  • namespace_id (requerit): Identificador de l’espai de noms.
  • provider_id (requerit): Identificador del proveïdor tipat.
  • tenant_id (required): Identificador del llogater.
  • version (requerit): Versió del cicle de vida a activar.

Sortides

  • active_version (requerit): Versió activada.
  • previous_active_version (requerit, nullable): Un dels següents: null, string.
  • provider_id (requerit): Identificador del proveïdor tipat.

Notes

  • Requereix els camps de l’abast tenant_id i namespace_id.
  • Els registres d’activació de les versions actives anteriors per a la reversió.
  • Les versions obsoletes no es poden activar.

Exemple

Activa una versió del proveïdor tipada.

Input:

{
  "namespace_id": 1,
  "provider_id": "asset_api",
  "tenant_id": 1,
  "version": "2026-02-17.2"
}

Output:

{
  "active_version": "2026-02-17.2",
  "previous_active_version": "2026-02-17.1",
  "provider_id": "asset_api"
}

typedprovidersdeprecate

Desaconsellar una versió del cicle de vida del proveïdor tipat, amb una reversió activa opcional.

Inputs

  • namespace_id (requerit): Identificador de l’espai de noms.
  • provider_id (requerit): Identificador del proveïdor tipat.
  • rollback_if_active (opcional): Revertir la versió activa abans de desactivar-la quan sigui necessari.
  • tenant_id (required): Identificador del llogater.
  • version (requerit): Versió del cicle de vida a desactivar.

Sortides

  • active_version (requerit, nullable): Un dels següents: null, string.
  • deprecated_version (requerit): Versió del cicle de vida obsoleta.
  • provider_id (requerit): Identificador del proveïdor tipat.
  • rolled_back_from (requerit, nullable): Un dels següents: null, string.

Notes

  • Requereix els camps de l’abast tenant_id i namespace_id.
  • La desactivació de la versió activa requereix un rollback_if_active=true explícit.
  • La reversió selecciona la versió activa anterior més recent que no està obsoleta.

Exemple

Deprecació d’una versió de proveïdor tipada amb retrocés.

Input:

{
  "namespace_id": 1,
  "provider_id": "asset_api",
  "rollback_if_active": true,
  "tenant_id": 1,
  "version": "2026-02-17.2"
}

Output:

{
  "active_version": "2026-02-17.1",
  "deprecated_version": "2026-02-17.2",
  "provider_id": "asset_api",
  "rolled_back_from": "2026-02-17.2"
}