Connect

Sincronizar cartera de Poder Judicial

Lee la cartera elegida con ClaveÚnica y guarda causas, actuaciones y documentos disponibles.

Tool IDpjud.conexion.sincronizar
Nombre MCPpjud__conexion__sincronizar
Conectorpjud
Planoread
Alcancesexpedientes
Scope (permiso)pjud:read
Authconnection_credentials
Versión2
Sensiblesí
Deprecadono
ComportamientoreadOnly=false, destructive=false, idempotent=true, openWorld=true

Requiere conexión. Indica cuál en cada llamada: header X-Connect-Connection en REST, campo connectionId en el execute_write de MCP y en las opciones del SDK. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale de conexiones.estado.consultar.

Qué hace

El piloto incorpora causas civiles y laborales accesibles al titular; conserva el ámbito de historia y declara anexos y secciones pendientes. No presenta escritos ni calcula plazos legales. El período organiza la ejecución de Connect: no filtra la historia judicial.

Entrada

CampoTipoRequeridoDescripción
periodostring `^\d4-(0[1-9]1[0-2])$`no
alcanceslista de stringno · default ["expedientes"]Módulo judicial que se sincroniza en esta llamada.
JSON Schema de entrada
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "periodo": {
      "description": "Período de ejecución en AAAA-MM; si se omite, usa el mes actual en Santiago al ejecutar. No filtra la historia de las causas.",
      "type": "string",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
    },
    "alcances": {
      "default": [
        "expedientes"
      ],
      "description": "Módulo judicial que se sincroniza en esta llamada.",
      "minItems": 1,
      "maxItems": 1,
      "type": "array",
      "items": {
        "type": "string",
        "const": "expedientes"
      }
    }
  },
  "additionalProperties": false
}

Salida

CampoTipoRequeridoDescripción
periodostringsíPeríodo de ejecución en AAAA-MM.
estado"encolado" · "completado"sí'encolado' = la sincronización quedó en cola y va a empezar enseguida; esta respuesta NO trae datos todavía, y el trabajo se sigue por 'jobId'. 'completado' = la sincronización ya corrió y su resumen por alcance viene en 'results'. Un cliente recibe siempre 'encolado': un sync abre una sesión real contra el sistema externo y puede tardar minutos, así que no se te hace esperar por él.
jobIdstringnullno
yaEnCursobooleanono'true' significa que ya había una sincronización viva para esa conexión y ese período, y que 'jobId' es la de ella. No es un error ni un rechazo: pedir dos veces el mismo período es inofensivo y te devuelve el trabajo que ya está andando. Ojo con el otro lado: 'false' NO garantiza que la hayas creado tú: dos llamadas a la vez pueden recibir las dos 'false' y el MISMO 'jobId'. Lo que sí vale siempre es que hay una sola sincronización activa por conexión y período, así que el 'jobId' que recibes es el trabajo que cubre tu pedido, lo hayas encolado tú o no.
resultslista de objetonoEl resumen por alcance, una fila por alcance sincronizado. AUSENTE cuando 'estado' es 'encolado': el trabajo todavía no corrió. Ausente no es lo mismo que vacío: un arreglo vacío significaría que se miró y no había nada.
results[].alcancestringsíMódulo de expedientes judiciales.
results[].status"ok" · "partial"síPartial indica que se guardaron avances con cobertura pendiente; no equivale a una revisión completa.
results[].recordsSyncedenterosíRegistros entregados a persistencia por esta ejecución; no es el total histórico de la conexión.
results[].causasRevisadasenterosíCausas con una observación recuperada, aun cuando alguna sección quedó pendiente.
results[].causasPendientesenterosíCausas elegidas cuya lectura no pudo completarse en esta ejecución.
results[].documentosDescargadosenterosíOriginales recuperados e incluidos en el guardado de esta ejecución.
results[].detallestringsíExplicación de la cobertura o de una cartera sin selección.
JSON Schema de salida
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "periodo": {
      "type": "string",
      "description": "Período de ejecución en AAAA-MM."
    },
    "estado": {
      "type": "string",
      "enum": [
        "encolado",
        "completado"
      ],
      "description": "'encolado' = la sincronización quedó en cola y va a empezar enseguida; esta respuesta NO trae datos todavía, y el trabajo se sigue por 'jobId'. 'completado' = la sincronización ya corrió y su resumen por alcance viene en 'results'. Un cliente recibe siempre 'encolado': un sync abre una sesión real contra el sistema externo y puede tardar minutos, así que no se te hace esperar por él."
    },
    "jobId": {
      "description": "El identificador de la sincronización encolada. Por la API REST, el avance se consulta en 'GET /v1/syncs/{jobId}'; por MCP, búscalo en 'trabajos' de 'conexiones.estado.consultar' y revisa 'datosListos' ahí mismo. Es el mismo id que viaja en el webhook 'sync.completed' o 'sync.failed' si tu plan los incluye. Es null cuando 'estado' es 'completado': ahí el resultado ya está en la respuesta y no hay nada que seguir.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "yaEnCurso": {
      "description": "'true' significa que ya había una sincronización viva para esa conexión y ese período, y que 'jobId' es la de ella. No es un error ni un rechazo: pedir dos veces el mismo período es inofensivo y te devuelve el trabajo que ya está andando. Ojo con el otro lado: 'false' NO garantiza que la hayas creado tú: dos llamadas a la vez pueden recibir las dos 'false' y el MISMO 'jobId'. Lo que sí vale siempre es que hay una sola sincronización activa por conexión y período, así que el 'jobId' que recibes es el trabajo que cubre tu pedido, lo hayas encolado tú o no.",
      "type": "boolean"
    },
    "results": {
      "description": "El resumen por alcance, una fila por alcance sincronizado. AUSENTE cuando 'estado' es 'encolado': el trabajo todavía no corrió. Ausente no es lo mismo que vacío: un arreglo vacío significaría que se miró y no había nada.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "alcance": {
            "type": "string",
            "const": "expedientes",
            "description": "Módulo de expedientes judiciales."
          },
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "partial"
            ],
            "description": "Partial indica que se guardaron avances con cobertura pendiente; no equivale a una revisión completa."
          },
          "recordsSynced": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Registros entregados a persistencia por esta ejecución; no es el total histórico de la conexión."
          },
          "causasRevisadas": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Causas con una observación recuperada, aun cuando alguna sección quedó pendiente."
          },
          "causasPendientes": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Causas elegidas cuya lectura no pudo completarse en esta ejecución."
          },
          "documentosDescargados": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Originales recuperados e incluidos en el guardado de esta ejecución."
          },
          "detalle": {
            "type": "string",
            "description": "Explicación de la cobertura o de una cartera sin selección."
          }
        },
        "required": [
          "alcance",
          "status",
          "recordsSynced",
          "causasRevisadas",
          "causasPendientes",
          "documentosDescargados",
          "detalle"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "periodo",
    "estado"
  ],
  "additionalProperties": false
}

Errores de esta tool

CódigoHTTPReintentableQué hacer
connection_disabled403noReactívala en /connections o usa otra conexión del mismo sistema.
connection_credential_required428noCrea un enlace con conexiones.enlace.crear (modo reconectar si la conexión ya existe) y pide a la persona que entregue la credencial de nuevo. No reintentes con la credencial anterior.
connection_busy409síEspera unos segundos y reintenta. Es una espera transitoria: no necesitas volver a conectar ni ingresar la credencial otra vez.
upstream_error502síReintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración.
timeout504síReintenta. Para sincronizaciones largas usa la vía asíncrona y consulta el estado del trabajo.
connection_session_pending409síEjecuta la sincronización de esa conexión (ella acuña la sesión) o espera la programada, y reintenta.
connection_sync_in_progress409síEspera a que termine y reintenta, o consulta directamente: puede que ya haya datos.
too_many_pending429síDeja terminar los trabajos en curso antes de encolar más.

Toda llamada puede devolver además los códigos transversales (validation_error, unauthorized, scope_not_granted, rate_limited, entre otros): el detalle vive en el catálogo de errores.

Próximos pasos

En esta página