Attesto

Connectors

Production Connectors

Connectors committen externe Source Evidence in Proofstream, ohne Tenant Sessions offenzulegen. Jeder Connector hat echte Authentication, Replay Handling, Diagnostics und Revoke Behavior.

Connector Model

Ein Connector ist ein Source-to-evidence Adapter. Er beobachtet etwas in einem echten Source System, validiert, dass die Source sprechen darf, normalisiert die Observation und schreibt ein Proofstream Event mit stabiler Source Reference. Connectors sind sinnvoll, wenn Evidence außerhalb Ihres Anwendungscodes entsteht oder wenn ein Source System seine eigene Identität im Evidence Trail behalten muss.

  1. Source Delivery oder Provider API authentifizieren.
  2. Source Reference und Event Type normalisieren.
  3. Replay Conflicts für dieselbe Source Reference ablehnen.
  4. Event in den konfigurierten Stream schreiben.
  5. Attesto Receipt zurückgeben oder speichern.
  6. Diagnostics anzeigen, ohne Provider Secrets oder Raw Private Payloads zu leaken.
ConnectorfamilieTenant management routeIngress routeHinweise
Signed webhookGET/POST /v2/tenant/connectors/signed-webhooks, DELETE /v2/tenant/connectors/signed-webhooks/{connector_id}POST /v2/connectors/signed-webhooks/{connector_id}/eventsCreation kann das connector secret einmal anzeigen. Nur server-side speichern.
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}/eventsProvider delivery signatures werden validiert, bevor normalisierte Repository Evidence geschrieben wird.
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}/commitNutzt tenant session, um Objektmetadaten und Integrity Evidence zu committen; object bytes bleiben im Source Store.

Jedes connector event muss source system id, source object id, source event type, source timestamp mit Zeitzone oder UTC-Offset, connector received time, idempotency/source reference und normalized payload commitment bewahren. Wenn ein Provider keinen timezone-aware source timestamp liefern kann, muss die Connector-Validierung fehlschlagen, statt einen Zeitstempel zu erfinden.

Signed Webhook Connector

Verwenden Sie den Signed Webhook Connector, wenn eine externe Source einen signed JSON Body an Attesto POSTen kann. Die Source Reference ist der Idempotency Key innerhalb des Streams. Das Dashboard erstellt und revoked connector records über /v2/tenant/connectors/signed-webhooks; das Quellsystem sendet events nur an den öffentlichen 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

Der GitHub Connector validiert X-Hub-Signature-256 über den Raw Provider Body und committet normalisierte Repository-change Metadata in den konfigurierten Proofstream.

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

Der GitLab Connector validiert das konfigurierte Signing Token über die Raw Provider Delivery. Bestehende Installations können ihren Legacy Token Mode bis zur Rotation behalten.

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

Verwenden Sie Object Commitments, wenn Evidence bereits in AWS S3, Cloudflare R2 oder einem S3-compatible Store liegt. Attesto führt einen echten HeadObject Call aus, receiptiert Object Identity und Integrity Metadata und proxyt keinen 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 sollten nur Metadata enthalten, die sicher als Evidence gespeichert werden kann. Object Content bleibt im Customer Object Store.

Marketplace Distribution

Validierte First-party Connector Manifests sind über https://marketplace.attesto.eu verfügbar. Öffentliche Besucher können den Katalog durchsuchen. Manifest Download, Entitlement Erwerb oder Installation Creation erfordern eine Attesto Tenant Session. Marketplace und Connector Kits verwenden dieselben attesto.connector.v2 Manifest Validation Rules.

Die ersten kostenlosen Attesto First-party Listings sind Signed Webhook Evidence, GitHub Repository Evidence, GitLab Repository Evidence und S3/R2 Object Commitment. Jedes Listing bindet sein Marketplace Validation Result an eine Connector-assurance Canary Guarantee, sodass Evidence Score und Verified Badges reproduzierbare Release Evidence sind und keine Marketinglabels.

Connector Diagnostics

Tenant-visible Diagnostics zeigen, ob ein Connector enabled, kürzlich genutzt, failing auth, failing replay checks oder revoked ist. Sie zeigen keine Connector Credentials, Raw Provider Payloads oder Private Object Content.

StatusBedeutung
healthyRecent signed delivery oder source check succeeded.
auth_failedProvider- oder HMAC-Signature konnte nicht verifiziert werden.
replay_conflictDieselbe Source Reference wurde mit anderem Content erneut gesendet.
revokedIngress ist disabled und sollte fail closed sein.

Safety Boundaries