Attesto

Connectors

Connectors produkcyjne

Connectors commitują external source evidence do Proofstream bez ujawniania tenant sessions. Każdy connector ma prawdziwe authentication, replay handling, diagnostics i revoke behavior.

Connector model

Connector to adapter source-to-evidence. Obserwuje coś w realnym source system, weryfikuje, że source może mówić, normalizuje observation i zapisuje Proofstream event ze stabilną source reference. Connectors należy wybierać, gdy evidence powstaje poza kodem aplikacji albo gdy source system musi zachować własną tożsamość w evidence trail.

  1. Uwierzytelnij source delivery albo provider API.
  2. Znormalizuj source reference i event type.
  3. Odrzuć replay conflicts dla tej samej source reference.
  4. Zapisz event do skonfigurowanego streamu.
  5. Zwróć albo zapisz Attesto receipt.
  6. Pokaż diagnostics bez wycieku provider secrets lub raw private payloads.
Rodzina connectorTenant management routeIngress routeUwagi
Signed webhookGET/POST /v2/tenant/connectors/signed-webhooks, DELETE /v2/tenant/connectors/signed-webhooks/{connector_id}POST /v2/connectors/signed-webhooks/{connector_id}/eventsTworzenie może ujawnić connector secret tylko raz. Przechowuj go wyłącznie 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}/eventsProvider delivery signatures są walidowane przed zapisem znormalizowanej repository evidence.
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}/commitUżywa tenant session do commit metadata i integrity evidence; object bytes pozostają w source store.

Każdy connector event musi zachować source system id, source object id, source event type, source timestamp z timezone albo offset UTC, connector received time, idempotency/source reference oraz normalized payload commitment. Jeśli provider nie może dostarczyć source timestamp timezone-aware, connector musi odrzucić walidację zamiast wymyślać timestamp.

Signed webhook connector

Użyj signed webhook connector, gdy external source może wykonać POST signed JSON body do Attesto. Source reference jest idempotency key wewnątrz streamu. Dashboard tworzy i revoke connector records przez /v2/tenant/connectors/signed-webhooks; source system wysyła events wyłącznie do 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

GitHub connector weryfikuje X-Hub-Signature-256 na raw provider body i commituje znormalizowane repository-change metadata do skonfigurowanego 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

GitLab connector weryfikuje skonfigurowany signing token na raw provider delivery. Istniejące installations mogą zachować legacy token mode do czasu rotacji.

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

Użyj object commitments, gdy evidence już znajduje się w AWS S3, Cloudflare R2 albo S3-compatible store. Attesto wykonuje realny HeadObject call, wystawia receipt dla object identity i integrity metadata oraz nie proxy 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 powinny zawierać tylko metadata bezpieczne do zapisania jako evidence. Object content pozostaje w customer object store.

Marketplace distribution

Zweryfikowane first-party connector manifests są dostępne przez https://marketplace.attesto.eu. Publiczni visitors mogą przeglądać katalog. Pobranie manifest, uzyskanie entitlement albo utworzenie installation wymaga Attesto tenant session. Marketplace i connector kits używają tych samych manifest validation rules attesto.connector.v2.

Pierwsze darmowe Attesto first-party listings to Signed Webhook Evidence, GitHub Repository Evidence, GitLab Repository Evidence oraz S3/R2 Object Commitment. Każdy listing wiąże wynik marketplace validation z connector-assurance canary guarantee, dzięki czemu Evidence Score i Verified badges są reprodukowalną release evidence, a nie etykietami marketingowymi.

Connector diagnostics

Tenant-visible diagnostics pokazują, czy connector jest enabled, recently used, failing auth, failing replay checks albo revoked. Nie ujawniają connector credentials, raw provider payloads ani private object content.

StatusZnaczenie
healthyNajnowsza signed delivery albo source check zakończyła się sukcesem.
auth_failedProvider lub HMAC signature nie przeszła weryfikacji.
replay_conflictTa sama source reference została odtworzona z inną treścią.
revokedIngress jest disabled i powinien fail closed.

Safety boundaries