Documentos de Decision Gate

Evaluación de puertas determinista, reproducible con decisiones auditables.

Documentación de Asset Core

Herramientas de Puerta de Decisión MCP

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

Páginas de detalles de herramientas

  • scenario_define - Registrar un ScenarioSpec, validarlo y devolver el hash canónico utilizado para las verificaciones de integridad.
  • scenario_start - Crear un nuevo estado de ejecución para un escenario y, opcionalmente, emitir paquetes de entrada.
  • scenario_status - Obtén una instantánea de ejecución de solo lectura y un resumen seguro sin cambiar el estado.
  • scenario_next - Evaluar puertas en respuesta a una solicitud siguiente impulsada por un agente.
  • scenario_submit - Enviar artefactos externos al estado de ejecución para auditoría y evaluación posterior.
  • scenario_trigger - Enviar un evento de activación (programador/externo) y evaluar la ejecución.
  • evidence_query - Consultar a un proveedor de evidencia con el contexto completo de ejecución y la política de divulgación.
  • runpack_export - Exportar artefactos de runpack deterministas para verificación offline.
  • runpack_verify - Verificar un manifiesto de runpack y artefactos sin conexión.
  • providers_list - Lista de proveedores de evidencia registrados y resumen de capacidades.
  • provider_contract_get - Obtener el JSON del contrato del proveedor canónico y el hash para un proveedor.
  • provider_check_schema_get - Obtener detalles del esquema de verificación (parámetros/resultados/comparadores) para un proveedor.
  • schemas_register - Registrar un esquema de forma de datos para un inquilino y un espacio de nombres.
  • schemas_list - Lista de formas de datos registradas para un inquilino y un espacio de nombres.
  • schemas_get - Recuperar una forma de datos específica por identificador y versión.
  • scenarios_list - Lista de escenarios registrados para un inquilino y un espacio de nombres.
  • precheck - Evaluar un escenario contra datos afirmados sin mutar el estado.
  • decision_gate_docs_search - Buscar documentación de Decision Gate para orientación en tiempo de ejecución.
  • typed_providers_import - Importar OpenAPI en artefactos de proveedores tipados y registrar una versión de perfil.
  • typed_providers_register - Registrar el contrato de proveedor tipado preconstruido + artefactos de perfil de tiempo de ejecución.
  • typed_providers_list - Lista de catálogos de ciclo de vida de proveedores tipados y versiones registradas.
  • typed_providers_get - Obtener artefactos de proveedores tipados + metadatos del ciclo de vida para una versión.
  • typed_providers_activate - Activar una versión del ciclo de vida de un proveedor tipado.
  • typed_providers_deprecate - Descontinuar una versión del ciclo de vida de un proveedor tipado, con retroceso activo opcional.

Este documento resume la superficie de la herramienta MCP y el uso esperado. Los esquemas completos están en tooling.json, con los esquemas de soporte en schemas/ y ejemplos en examples/.

Inicio rápido del ciclo de vida

  • scenario_define registra y valida un ScenarioSpec.
  • scenario_start crea una ejecución y opcionalmente emite paquetes de entrada.
  • scenario_next avanza una ejecución impulsada por un agente; scenario_trigger avanza el tiempo/disparadores externos.
  • scenario_status consulta el estado de ejecución sin mutarlo.
  • scenario_submit añade artefactos externos para auditoría y verificaciones posteriores.
  • runpack_export y runpack_verify admiten verificación fuera de línea.

Referencias de artefactos

  • authoring.md: formatos de autoría y guía de normalización.
  • [scenario.json](/downloads/decision-gate/examples/scenario.json): ejemplo completo de ScenarioSpec.
  • examples/scenario.ron: ejemplo de ScenarioSpec amigable para la autoría.
  • [run-config.json](/downloads/decision-gate/examples/run-config.json): ejemplo de configuración de ejecución para scenario_start.
  • [decision-gate.toml](/downloads/decision-gate/examples/decision-gate.toml): ejemplo de configuración de MCP para proveedores.
HerramientaDescripción
scenario_defineRegistrar un ScenarioSpec, validarlo y devolver el hash canónico utilizado para las verificaciones de integridad.
scenario_startCrear un nuevo estado de ejecución para un escenario y, opcionalmente, emitir paquetes de entrada.
scenario_statusObtener una instantánea de ejecución de solo lectura y un resumen seguro sin cambiar el estado.
scenario_nextEvaluar puertas en respuesta a una solicitud de siguiente impulsada por un agente.
scenario_submitPresentar artefactos externos en el estado de ejecución para auditoría y evaluación posterior.
scenario_triggerPresentar un evento de activación (programador/externo) y evaluar la ejecución.
evidence_queryConsultar a un proveedor de evidencia con el contexto completo de ejecución y la política de divulgación.
runpack_exportExportar artefactos de runpack deterministas para verificación fuera de línea.
runpack_verifyVerificar un manifiesto de runpack y artefactos fuera de línea.
providers_listListar proveedores de evidencia registrados y resumen de capacidades.
provider_contract_getObtener el JSON del contrato canónico del proveedor y el hash para un proveedor.
provider_check_schema_getObtener detalles del esquema de verificación (parámetros/resultados/comparadores) para un proveedor.
schemas_registerRegistrar un esquema de forma de datos para un inquilino y un espacio de nombres.
schemas_listListar formas de datos registradas para un inquilino y un espacio de nombres.
schemas_getObtener una forma de datos específica por identificador y versión.
scenarios_listListar escenarios registrados para un inquilino y un espacio de nombres.
precheckEvaluar un escenario contra datos afirmados sin mutar el estado.
decision_gate_docs_searchBuscar documentación de Decision Gate para orientación en tiempo de ejecución.
typed_providers_importImportar OpenAPI en artefactos de proveedor tipado y registrar una versión de perfil.
typed_providers_registerRegistrar contrato de proveedor tipado preconstruido + artefactos de perfil en tiempo de ejecución.
typed_providers_listListar catálogos del ciclo de vida del proveedor tipado y versiones registradas.
typed_providers_getObtener artefactos de proveedor tipado + metadatos del ciclo de vida para una versión.
typed_providers_activateActivar una versión del ciclo de vida del proveedor tipado.
typed_providers_deprecateDeclarar obsoleta una versión del ciclo de vida del proveedor tipado, con retroceso activo opcional.

escenario_definir

Registra un ScenarioSpec, valídalo y devuelve el hash canónico utilizado para las verificaciones de integridad.

Entradas

  • spec (requerido): Especificación del escenario a registrar.

Salidas

  • scenario_id (requerido): Identificador del escenario.
  • spec_hash (requerido): Tipo: object.

Notas

  • Usar antes de comenzar las ejecuciones; scenario_id se convierte en el identificador estable para llamadas posteriores.
  • Valida los IDs de etapa/puerta/condición, los árboles RET y las referencias de condición.
  • El hash de especificación es determinista; guárdalo para auditoría e integridad de descompresión.
  • Falla al cerrarse en especificaciones inválidas o IDs de escenario duplicados.

Ejemplo

Registra la especificación del escenario de ejemplo.

Entrada:

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

iniciodelescenario

Crea un nuevo estado de ejecución para un escenario y opcionalmente emite paquetes de entrada.

Entradas

  • issue_entry_packets (required): Emita paquetes de entrada de inmediato.
  • run_config (requerido): Configuración de ejecución y destinos de despacho.
  • scenario_id (requerido): Identificador del escenario.
  • started_at (requerido): Marca de tiempo de inicio de ejecución proporcionada por el llamador.

Salidas

  • current_stage_id (required): Identificador de la etapa actual.
  • decisiones (requerido): Tipo: array.
  • dispatch_targets (requerido): Tipo: array.
  • gate_evals (requerido): Tipo: array.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • paquetes (requerido): Tipo: array.
  • run_id (requerido): Identificador de ejecución.
  • scenario_id (requerido): Identificador del escenario.
  • spec_hash (requerido): Tipo: object.
  • stage_entered_at (requerido): Uno de: objeto, objeto.
  • estado (requerido): Tipo: string.
  • envíos (requerido): Tipo: array.
  • tenant_id (required): Identificador del inquilino.
  • tool_calls (requerido): Tipo: array.
  • triggers (requerido): Tipo: array.

Notas

  • Requiere RunConfig (tenant_id, run_id, scenario_id, dispatch_targets).
  • Utilice started_at para registrar la marca de tiempo de inicio proporcionada por el llamador.
  • Si issue_entry_packets es verdadero, los paquetes de entrada se divulgan inmediatamente.
  • Falla cerrada si run_id ya existe o scenario_id es unknown.

Ejemplo

Inicie una ejecución para el escenario de ejemplo y emita paquetes de entrada.

Entrada:

{
  "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": []
}

estadodelescenario

Obtén una instantánea de ejecución de solo lectura y un resumen seguro sin cambiar el estado.

Entradas

  • request (required): Carga útil de solicitud de estado.
  • scenario_id (requerido): Identificador del escenario.

Salidas

  • current_stage_id (required): Identificador de la etapa actual.
  • issued_packet_ids (requerido): Tipo: array.
  • last_decision (requerido, nullable): Uno de: null, objeto.
  • namespace_id (opcional): Identificador de espacio de nombres.
  • run_id (requerido): Identificador de ejecución.
  • safe_summary (requerido, nullable): Uno de: null, objeto.
  • scenario_id (requerido): Identificador del escenario.
  • estado (requerido): Tipo: string.

Notas

  • Usar para encuestas o estado de UI; no evalúa puertas.
  • Los resúmenes seguros omiten los valores de evidencia y pueden incluir sugerencias de reintento.
  • Devuelve los IDs de paquetes emitidos para ayudar a rastrear divulgaciones.

Ejemplo

Estado de ejecución de la encuesta sin avanzar la ejecución.

Entrada:

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

escenario_siguiente

Evalúa las puertas en respuesta a una solicitud siguiente impulsada por un agente.

Entradas

  • feedback (opcional, nulo): Nivel de retroalimentación opcional para el escenario_siguiente.
  • request (required): Siguiente carga útil de solicitud de un agente.
  • scenario_id (requerido): Identificador del escenario.

Salidas

  • decisión (requerido): Tipo: object.
  • feedback (opcional, nullable): Uno de: null, objeto.
  • paquetes (requerido): Tipo: array.
  • estado (requerido): Tipo: string.

Notas

  • Idempotente por trigger_id; las llamadas repetidas devuelven la misma decisión.
  • Registra decisiones, evidencia y divulgaciones de paquetes en estado de ejecución.
  • Requiere una ejecución activa; las ejecuciones completadas o fallidas no avanzan.
  • La retroalimentación opcional puede incluir el rastro de la puerta o evidencia cuando lo permita la política de retroalimentación del servidor.

Ejemplo

Ejemplo 1: Evalúe el siguiente paso impulsado por el agente para una ejecución.

Entrada:

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

Ejemplo 2: Evalúe una ejecución y solicite comentarios sobre el seguimiento.

Entrada:

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

escenario_enviar

Enviar artefactos externos al estado de ejecución para auditoría y evaluación posterior.

Entradas

  • request (requerido): Carga útil de envío y metadatos.
  • scenario_id (requerido): Identificador del escenario.

Salidas

  • registro (requerido): Tipo: object.

Notas

  • La carga útil se hash y se almacena como un registro de envío.
  • La carga útil se persiste en los registros de estado de ejecución/runpack; no envíe secretos en bruto.
  • No avanza la ejecución por sí mismo.
  • Utilice para los artefactos el modelo o el operador proporciona.

Ejemplo

Enviar un artefacto externo para auditoría y evaluación posterior.

Entrada:

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

escenario_disparador

Envía un evento de activación (programador/externo) y evalúa la ejecución.

Entradas

  • scenario_id (requerido): Identificador del escenario.
  • trigger (requerido): Carga útil del evento de activación.

Salidas

  • decisión (requerido): Tipo: object.
  • paquetes (requerido): Tipo: array.
  • estado (requerido): Tipo: string.

Notas

  • El tiempo de activación es proporcionado por el llamador; no se leen relojes de pared.
  • Registra el evento desencadenante y la decisión resultante.
  • La carga útil se persiste en los registros de estado de ejecución/runpack; no envíe secretos en bruto.
  • Usar para desencadenadores basados en el tiempo o en sistemas externos.

Ejemplo

Avance una ejecución desde un programador o un desencadenador externo.

Entrada:

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

consultadeevidencia

Consulta a un proveedor de evidencia con el contexto completo de ejecución y la política de divulgación.

Entradas

  • contexto (requerido): Contexto de evidencia utilizado para la evaluación.
  • query (required): Carga útil de consulta de evidencia.

Salidas

  • resultado (requerido): Tipo: object.

Notas

  • La política de divulgación puede redactar valores en bruto; hashes/anclas aún se devuelven.
  • Utilizar para diagnósticos o verificaciones previas al vuelo; el tiempo de ejecución utiliza la misma lógica del proveedor.
  • Requiere provider_id, check_id y EvidenceContext completo.

Ejemplo

Consulta a un proveedor de evidencia utilizando el contexto de ejecución.

Entrada:

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

Exportar artefactos de runpack deterministas para verificación offline.

Entradas

  • generated_at (requerido): Marca de tiempo registrada en el manifiesto.
  • include_verification (requerido): Generar un artefacto de informe de verificación.
  • manifest_name (opcional, nullable): Sobrescritura opcional para el nombre del archivo de manifiesto.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • output_dir (opcional, anulable): Directorio de salida opcional (requerido para la exportación del sistema de archivos).
  • run_id (requerido): Identificador de ejecución.
  • scenario_id (requerido): Identificador del escenario.
  • tenant_id (required): Identificador del inquilino.

Salidas

  • manifest (requerido): Tipo: object.
  • report (requerido, nullable): Uno de: null, objeto.
  • storage_uri (opcional, anulable): URI de almacenamiento opcional para backends de almacenamiento de runpack gestionados.

Notas

  • Escribe el manifiesto y los registros en output_dir; generated_at se registra en el manifiesto.
  • include_verification agrega un artefacto de informe de verificación.
  • El informe de tiempo de exportación .checked_files excluye verifier_report.json; la verificación offline de runpack_verify incluye este archivo (+1 para el mismo runpack).
  • Utilice después de que las ejecuciones se completen o para instantáneas de auditoría.

Ejemplo

Exportar un runpack con metadatos de manifiesto.

Entrada:

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

Verifique un manifiesto de runpack y artefactos sin conexión.

Entradas

  • manifest_path (requerido): Ruta del manifiesto relativa a la raíz de runpack.
  • runpack_dir (requerido): Directorio raíz de Runpack.

Salidas

  • informe (requerido): Tipo: object.
  • estado (requerido): Estado de verificación de Runpack.

Notas

  • Valida hashes, raíz de integridad y estructura del registro de decisiones.
  • Falla al cerrarse en archivos faltantes o manipulados.
  • Usar en CI o en auditorías fuera de línea.

Ejemplo

Verifique un manifiesto de runpack y artefactos sin conexión.

Entrada:

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

Output:

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

providers_list

Lista de proveedores de evidencia registrados y resumen de capacidades.

Entradas

Salidas

  • proveedores (requerido): Tipo: array.

Notas

  • Devuelve identificadores de proveedores y metadatos de transporte.
  • Los resultados están limitados por la política de autenticación.

Ejemplo

Listar proveedores de evidencia registrados.

Entrada:

{}

Output:

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

providercontractget

Obtén el JSON del contrato del proveedor canónico y el hash para un proveedor.

Entradas

  • provider_id (required): Identificador del proveedor.

Salidas

  • contrato (requerido): Tipo: object.
  • contract_hash (requerido): Tipo: object.
  • provider_id (required): Identificador del proveedor.
  • source (required): Origen de la fuente del contrato.
  • version (requerido, nullable): Etiqueta de versión de contrato opcional.

Notas

  • Devuelve el contrato del proveedor tal como lo carga el servidor MCP.
  • Incluye un hash canónico para auditoría y reproducibilidad.
  • Sujeto a la política de divulgación del proveedor y autorización.

Ejemplo

Obtén el JSON del contrato para un proveedor.

Entrada:

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

providercheckschema_get

Obtener detalles del esquema de verificación (parámetros/resultados/comparadores) para un proveedor.

Entradas

  • check_id (required): Identificador de verificación del proveedor.
  • provider_id (required): Identificador del proveedor.

Salidas

  • allowed_comparators (requerido): Lista de permitidos de comparadores para esta verificación.
  • anchor_types (requerido): Tipos de anclaje emitidos por esta verificación.
  • check_id (required): Identificador de verificación.
  • content_types (requerido): Tipos de contenido para la salida de verificación.
  • contract_hash (requerido): Tipo: object.
  • determinismo (requerido): Clasificación de determinismo para verificaciones de proveedor.
  • ejemplos (requerido): Tipo: array.
  • params_required (required): Si se requieren parámetros para esta verificación.
  • params_schema (requerido): esquema JSON para verificar parámetros.
  • provider_id (required): Identificador del proveedor.
  • result_schema (requerido): esquema JSON para el valor del resultado de la verificación.

Notas

  • Devuelve metadatos de esquema compilados para una única verificación.
  • Incluye listas de permitidos de comparadores y ejemplos de verificación.
  • Sujeto a la política de divulgación del proveedor y autorización.

Ejemplo

Obtén detalles del esquema de verificación para un proveedor.

Entrada:

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

schemas_register

Registra un esquema de forma de datos para un inquilino y un espacio de nombres.

Entradas

  • registro (requerido): Tipo: object.

Salidas

  • registro (requerido): Tipo: object.

Notas

  • Los esquemas son inmutables; registrar la misma versión dos veces falla.
  • Proporcione created_at para registrar cuándo se creó el esquema.

Ejemplo

Registrar un esquema de forma de datos.

Entrada:

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

listasdeesquemas

Lista de formas de datos registradas para un inquilino y un espacio de nombres.

Entradas

  • cursor (opcional, nullable): Uno de: null, string.
  • límite (opcional): Número máximo de registros a devolver.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • tenant_id (required): Identificador del inquilino.

Salidas

  • items (requerido): Tipo: array.
  • next_token (requerido, nullable): Uno de: null, string.

Notas

  • Requiere tenant_id y namespace_id.
  • Soporta la paginación a través de cursor + límite.

Ejemplo

Lista las formas de datos para un espacio de nombres.

Entrada:

{
  "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_get

Obtén una forma de datos específica por identificador y versión.

Entradas

  • namespace_id (requerido): Identificador de espacio de nombres.
  • schema_id (requerido): Identificador de forma de datos.
  • tenant_id (required): Identificador del inquilino.
  • version (requerido): Identificador de versión de la forma de datos.

Salidas

  • registro (requerido): Tipo: object.

Notas

  • Requiere tenant_id, namespace_id, schema_id y version.
  • Falla al cerrarse cuando falta el esquema.

Ejemplo

Obtén una forma de datos por identificador y versión.

Entrada:

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

listadeescenarios

Lista de escenarios registrados para un inquilino y un espacio de nombres.

Entradas

  • cursor (opcional, nullable): Uno de: null, string.
  • límite (opcional): Número máximo de registros a devolver.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • tenant_id (required): Identificador del inquilino.

Salidas

  • items (requerido): Tipo: array.
  • next_token (requerido, nullable): Uno de: null, string.

Notas

  • Requiere tenant_id y namespace_id.
  • Devuelve identificadores de escenario y hashes.

Ejemplo

Enumera los escenarios para un espacio de nombres.

Entrada:

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

preverificación

Evalúa un escenario contra datos afirmados sin mutar el estado.

Entradas

  • data_shape (requerido): Tipo: object.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • payload (requerido): Carga de datos afirmada.
  • scenario_id (opcional, nullable): Uno de: null, string.
  • spec (opcional, nullable): Uno de: null, ref decision-gate://contract/schemas/scenario.schema.json.
  • stage_id (opcional, nullable): Uno de: null, string.
  • tenant_id (required): Identificador del inquilino.

Salidas

  • decision (requerido): Uno de: objeto, objeto, objeto, objeto, objeto.
  • evaluaciones_de_puerta (requerido): Tipo: array.

Notas

  • Valida los datos afirmados contra una forma registrada.
  • No muta el estado de ejecución; destinado a simulación.

Ejemplo

Prever un escenario con datos afirmados.

Entrada:

{
  "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": []
}

Busque la documentación de Decision Gate para obtener orientación en tiempo de ejecución.

Entradas

  • max_sections (opcional): Número máximo de secciones a devolver (por defecto 3, límite máximo 10).
  • query (required): Consulta de búsqueda para secciones de documentación.

Salidas

  • docs_covered (required): Tipo: array.
  • secciones (requerido): Tipo: array.
  • sugerencias_de_seguimiento (requerido): Indicaciones de seguimiento conscientes del rol.

Notas

  • Utilice para búsquedas rápidas sobre el flujo de evidencia, comparadores y semántica del proveedor.
  • Devuelve secciones clasificadas con etiquetas de rol y seguimientos sugeridos.
  • La búsqueda es determinista y está limitada al catálogo de documentos configurado.

Ejemplo

Busca evidencia de flujo y orientación de carriles de confianza.

Entrada:

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

Importar OpenAPI en artefactos de proveedor tipados y registrar una versión de perfil.

Entradas

  • activate (opcional): Activa esta versión después del registro.
  • allow_unsafe_methods (opcional): Permitir métodos HTTP no seguros durante la importación.
  • credential_bindings (requerido): id del esquema de seguridad OpenAPI para metadatos de enlace de credenciales estructuradas (localizador + valor_render). Use {} para importaciones no autenticadas.
  • external_ref_mode (opcional): Política de resolución de $ref externa opcional.
  • max_response_bytes (opcional): Límite de tamaño de respuesta en tiempo de ejecución opcional.
  • media_support_mode (opcional): Modo de soporte de medios opcional.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • openapi (requerido): Documento OpenAPI 3.x en formato JSON.
  • openapi_conformance_mode (opcional): Modo de conformidad: estricto bloquea construcciones no soportadas; informes de auditoría sin activación.
  • openapi_semantics_mode (opcional): Anulación opcional del modo de semántica OpenAPI.
  • openapi_source_path (opcional): Ruta de origen opcional utilizada para resolver referencias de archivos locales.
  • operation_allowlist (requerido): Lista de permitidos de operationId explícita para importación estricta.
  • outbound_max_inflight (opcional): Anulación opcional del límite de inflight saliente.
  • provider_id (requerido): Identificador de proveedor tipado.
  • retry_initial_backoff_ms (opcional): Sobrescritura opcional del retroceso inicial de reintento saliente.
  • retry_max_attempts (opcional): Sobrescritura opcional del número máximo de intentos de reintento saliente.
  • retry_max_backoff_ms (opcional): Anulación opcional del tiempo máximo de espera para reintentos salientes.
  • tenant_id (required): Identificador del inquilino.
  • timeout_ms (opcional): Sobrescritura opcional del tiempo de espera en milisegundos.
  • version (requerido): Identificador de versión del ciclo de vida.

Salidas

  • active_version (requerido, nullable): Uno de: null, string.
  • conformance_summary (requerido): Tipo: object.
  • contract_hash (requerido): Tipo: object.
  • operation_count (requerido): Tipo: entero.
  • profile_digest (requerido): Tipo: object.
  • provider_id (requerido): Identificador de proveedor tipado.
  • register_outcome (requerido): Resultado del registro del ciclo de vida del perfil tipado.
  • source_digest (requerido): Tipo: objeto.
  • version (requerido): Identificador de versión del ciclo de vida.

Notas

  • Requiere los campos de ámbito tenant_id y namespace_id.
  • La importación estricta que falla en cerrado requiere una lista de operaciones permitidas explícita.
  • Requiere un mapeo explícito de credential_bindings; use {} para importaciones no autenticadas.
  • Soporta límites de salida acotados y una política de reintentos para los perfiles de tiempo de ejecución generados.
  • Genera artefactos de contrato de proveedor determinista + perfil de tiempo de ejecución.
  • Registra metadatos del ciclo de vida y, opcionalmente, activa la versión importada.

Ejemplo

Importar un documento OpenAPI en artefactos tipados.

Entrada:

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

Registrar contrato de proveedor tipado preconstruido + artefactos de perfil de tiempo de ejecución.

Entradas

  • activate (opcional): Activa esta versión después del registro.
  • contrato (requerido): Tipo: object.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • provider_id (requerido): Identificador de proveedor tipado.
  • runtime_profile (requerido): Artefacto de perfil de ejecución tipado.
  • tenant_id (required): Identificador del inquilino.
  • version (requerido): Identificador de versión del ciclo de vida.

Salidas

  • active_version (requerido, nullable): Uno de: null, string.
  • contract_hash (requerido): Tipo: object.
  • operation_count (requerido): Tipo: entero.
  • profile_digest (requerido): Tipo: object.
  • provider_id (requerido): Identificador de proveedor tipado.
  • register_outcome (requerido): Resultado del registro del ciclo de vida del perfil tipado.
  • source_digest (requerido): Tipo: objeto.
  • version (requerido): Identificador de versión del ciclo de vida.

Notas

  • Requiere los campos de ámbito tenant_id y namespace_id.
  • Valida la consistencia de la identidad del transportista/proveedor ingresada.
  • Valida la integridad del resumen del perfil de tiempo de ejecución antes del registro.
  • Registra metadatos del ciclo de vida y, opcionalmente, activa la versión.

Ejemplo

Registrar artefactos de proveedor tipados preconstruidos.

Entrada:

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

Enumere los catálogos de ciclo de vida del proveedor tipados y las versiones registradas.

Entradas

  • cursor (opcional, nullable): Uno de: null, string.
  • limit (opcional): Número máximo de catálogos de proveedores a devolver.
  • namespace_id (requerido): Identificador de espacio de nombres.
  • tenant_id (required): Identificador del inquilino.

Salidas

  • items (requerido): Tipo: array.
  • next_token (requerido, nullable): Uno de: null, string.

Notas

  • Requiere los campos de ámbito tenant_id y namespace_id.
  • Soporta la paginación determinista a través de cursor + límite.
  • Los resultados están limitados por la política de divulgación de descubrimiento del proveedor.

Ejemplo

Lista de catálogos del ciclo de vida del proveedor tipado.

Entrada:

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

Obtén artefactos de proveedor tipados + metadatos del ciclo de vida para una versión.

Entradas

  • namespace_id (requerido): Identificador de espacio de nombres.
  • observed_profile_digest (opcional, nullable): Observación de digestión de perfil opcional para verificaciones de deriva.
  • observed_source_digest (opcional, nullable): Observación de digestión de fuente opcional para verificaciones de deriva.
  • provider_id (requerido): Identificador de proveedor tipado.
  • tenant_id (required): Identificador del inquilino.
  • version (opcional, nullable): Uno de: null, string.

Salidas

  • active_version (requerido, nullable): Uno de: null, string.
  • catalog_version (requerido): Versión del esquema del catálogo de ciclo de vida tipado.
  • contrato (requerido): Tipo: object.
  • drift_status (requerido, nullable): Uno de: null, string.
  • provider_id (requerido): Identificador de proveedor tipado.
  • registro (requerido): Tipo: object.
  • runtime_profile (requerido): Artefacto de perfil de ejecución tipado.
  • selected_version (requerido): Versión del ciclo de vida seleccionada.
  • source (requerido): Cómo se registraron los artefactos tipeados.

Notas

  • Requiere los campos de ámbito tenant_id y namespace_id.
  • Devuelve el contrato del proveedor + perfil de tiempo de ejecución para la versión seleccionada.
  • Puede evaluar la desviación del resumen en comparación con los resúmenes de origen/perfil observados.
  • Si se omite la versión, se selecciona la versión activa.

Ejemplo

Obtenga artefactos de proveedor escritos y metadatos del ciclo de vida.

Entrada:

{
  "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ón del ciclo de vida del proveedor tipado.

Entradas

  • namespace_id (requerido): Identificador de espacio de nombres.
  • provider_id (requerido): Identificador de proveedor tipado.
  • tenant_id (required): Identificador del inquilino.
  • version (requerido): versión del ciclo de vida a activar.

Salidas

  • active_version (requerido): Versión activada.
  • previous_active_version (requerido, nullable): Uno de: null, string.
  • provider_id (requerido): Identificador de proveedor tipado.

Notas

  • Requiere los campos de ámbito tenant_id y namespace_id.
  • Los registros de activación versiones activas anteriores para retroceder.
  • Las versiones obsoletas no se pueden activar.

Ejemplo

Active una versión del proveedor tipado.

Entrada:

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

Descontinuar una versión del ciclo de vida del proveedor tipado, con retroceso activo opcional.

Entradas

  • namespace_id (requerido): Identificador de espacio de nombres.
  • provider_id (requerido): Identificador de proveedor tipado.
  • rollback_if_active (opcional): Revertir la versión activa antes de descontinuar cuando sea necesario.
  • tenant_id (required): Identificador del inquilino.
  • version (requerido): Versión del ciclo de vida a desaprobar.

Salidas

  • active_version (requerido, nullable): Uno de: null, string.
  • deprecated_version (requerido): Versión del ciclo de vida obsoleta.
  • provider_id (requerido): Identificador de proveedor tipado.
  • rolled_back_from (requerido, nullable): Uno de: null, string.

Notas

  • Requiere los campos de ámbito tenant_id y namespace_id.
  • La desactivación de la versión activa requiere un rollback_if_active=true explícito.
  • La reversión selecciona la versión activa más reciente que no está en desuso.

Ejemplo

Descontinuar una versión de proveedor tipado con reversión.

Entrada:

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