Attesto

Connectors

Connectors de producción

Los connectors incorporan external source evidence a Proofstream sin exponer tenant sessions. Cada connector tiene authentication real, replay handling, diagnostics y revoke behavior.

Modelo de connector

Un connector es un adaptador source-to-evidence. Observa algo en un source system real, valida que la source esté autorizada a hablar, normaliza la observation y escribe un event Proofstream con una source reference estable. Los connectors deben elegirse cuando la evidence se origina fuera del código de su aplicación o cuando un source system debe mantener su propia identidad en el evidence trail.

  1. Autenticar la source delivery o provider API.
  2. Normalizar la source reference y el event type.
  3. Rechazar replay conflicts para la misma source reference.
  4. Escribir el event en el stream configurado.
  5. Devolver o almacenar el Attesto receipt.
  6. Exponer diagnostics sin filtrar provider secrets ni raw private payloads.
Familia de connectorTenant management routeIngress routeNotas
Signed webhookGET/POST /v2/tenant/connectors/signed-webhooks, DELETE /v2/tenant/connectors/signed-webhooks/{connector_id}POST /v2/connectors/signed-webhooks/{connector_id}/eventsLa creación puede revelar el connector secret una sola vez. Guárdelo solo server-side.
GitHub/GitLab repository webhookGET/POST /v2/tenant/connectors/repository-webhooks, DELETE /v2/tenant/connectors/repository-webhooks/{connector_id}POST /v2/connectors/repository-webhooks/{connector_id}/eventsLas provider delivery signatures se validan antes de escribir repository evidence normalizada.
S3/R2 object commitmentGET/POST /v2/tenant/connectors/s3-objects, DELETE /v2/tenant/connectors/s3-objects/{connector_id}POST /v2/tenant/connectors/s3-objects/{connector_id}/commitUsa tenant session para commit metadata e integrity evidence; los object bytes permanecen en el source store.

Cada connector event debe preservar source system id, source object id, source event type, source timestamp con timezone u offset UTC, connector received time, idempotency/source reference y normalized payload commitment. Si un provider no puede producir un source timestamp timezone-aware, el connector debe fallar validación en vez de inventarlo.

Signed webhook connector

Use el signed webhook connector cuando una source externa pueda hacer POST de un signed JSON body a Attesto. La source reference es la idempotency key dentro del stream. El dashboard crea y revoca connector records mediante /v2/tenant/connectors/signed-webhooks; el source system envía events solo al public connector ingress endpoint.

POST /v2/connectors/signed-webhooks/{connectorId}/events
Content-Type: application/json
X-Attesto-Connector-Timestamp: <unix-seconds>
X-Attesto-Connector-Signature: <hex-hmac-sha256>
{
  "source_ref": "source-system-2026-0001",
  "event_type": "source.observation",
  "occurred_at": "2026-06-07T12:00:00Z",
  "payload": {
    "control": "policy-check",
    "result": "passed",
    "policy_id": "policy-2026-01"
  }
}

GitHub repository connector

El connector de GitHub valida X-Hub-Signature-256 sobre el raw provider body y commit metadata repository-change normalizada al Proofstream configurado.

{
  "provider": "github",
  "event": "push",
  "repository": "owner/repository",
  "ref": "refs/heads/main",
  "before": "sha-before",
  "after": "sha-after",
  "delivery_id": "provider-delivery-id"
}

GitLab repository connector

El connector de GitLab valida el signing token configurado sobre la raw provider delivery. Las instalaciones existentes pueden mantener su legacy token mode hasta la rotación.

{
  "provider": "gitlab",
  "event": "push",
  "project_path": "group/project",
  "ref": "refs/heads/main",
  "before": "sha-before",
  "after": "sha-after",
  "delivery_id": "provider-delivery-id"
}

S3/R2 object commitment connector

Use object commitments cuando la evidence ya vive en AWS S3, Cloudflare R2 o un store S3-compatible. Attesto realiza una llamada real HeadObject, genera receipt de object identity e integrity metadata, y no proxy de object content.

POST /v2/tenant/connectors/s3-objects/{connectorId}/commit
Content-Type: application/json

{
  "key": "evidence/input.json",
  "versionId": "$OBJECT_VERSION_ID",
  "metadata": {
    "source": "case-file"
  }
}

Object commitments debe incluir solo metadata segura para almacenar como evidence. Object content permanece en el customer object store. Use credentials read-only limitadas al bucket prefix requerido, y commit versioned object metadata cuando el store soporte object versions.

Distribución marketplace

Los manifests validados de connectors first-party están disponibles en https://marketplace.attesto.eu. Los visitantes públicos pueden explorar el catálogo. Descargar un manifest, adquirir un entitlement o crear una installation requiere una Attesto tenant session. El marketplace y los connector kits usan las mismas reglas de validación de manifest attesto.connector.v2.

Los primeros listings Attesto first-party gratuitos son Signed Webhook Evidence, GitHub Repository Evidence, GitLab Repository Evidence y S3/R2 Object Commitment. Cada listing vincula su resultado de validación marketplace a una garantía canary de connector-assurance, para que el Evidence Score y las insignias Verified sean release evidence reproducible y no etiquetas de marketing.

Connector diagnostics

Los diagnostics visibles para tenant muestran si un connector está enabled, se usó recientemente, tiene failing auth, failing replay checks o está revoked. No revelan connector credentials, raw provider payloads ni private object content.

StatusSignificado
healthyUna signed delivery o source check reciente tuvo éxito.
auth_failedLa signature del provider o HMAC no se verificó.
replay_conflictLa misma source reference se reprodujo con contenido diferente.
revokedIngress está disabled y debe fail closed.

Safety boundaries