Marketplace
Connector marketplace
Die Attesto Marketplace unter https://marketplace.attesto.eu
ist der öffentliche Katalog für validierte Evidence Producers.
Öffentliche Besucher können Connector Cards ansehen. Tenant
Acquisition, Install, Update, Revoke und Artifact Download erfordern
eine authentifizierte Dashboard Tenant Session. Publisher Signup,
Publisher Profile Management und Connector Submission nutzen ein
separates marketplace-only Developer Account. Attesto Review und
Publication sind private interne Prozesse und werden öffentlichen
Besuchern oder Marketplace Developers nicht offengelegt.
Marketplace model
Ein Marketplace Item ist ein validiertes Connector Asset. Der Katalog speichert Asset Metadata, Current Version, Manifest Hash, Artifact Hash, Validation Result, Entitlement State, Install State und Marketplace Evidence Events. Die Marketplace führt keinen Connector-Code im Browser aus und legt keine Connector Secrets offen.
| Object | Bedeutung |
|---|---|
asset | Eine Connector Listing wie GitHub, GitLab oder S3/R2 object commitments. |
version | Ein validiertes Connector Manifest mit Manifest- und Artifact-Hashes. |
entitlement | Das Recht des Tenants, eine Version herunterzuladen oder zu installieren. |
install | Ein tenant-scoped Installation Record für die gewählte Version. |
evidence event | Eine kanonische Marketplace Receipt für Acquisition, Installation, Submission oder Validation. |
Öffentlichen Katalog durchsuchen
Der öffentliche Katalog zeigt nur validierte öffentliche Assets. Er kann sicher ohne Tenant Session durchsucht werden:
GET https://marketplace.attesto.eu/v1/marketplace/categories
GET https://marketplace.attesto.eu/v1/marketplace/items?category=devops
GET https://marketplace.attesto.eu/v1/marketplace/items/attesto-github-repository-reference
Jede Card zeigt Evidence Score, Validation State, Supported Languages, Category, Current Version und Documentation Link. Öffentliche Besucher sehen eine Sign-in Action statt Acquire/Install/Download Commands.
Der Evidence Score ist kein Marketing-Rating. Er ist ein
deterministischer Output von
attesto-marketplace-validation-v1: dasselbe Manifest,
dieselbe Source Reference und dieselbe Validator Version erzeugen
denselben Score. Der Score ist die Summe expliziter Kriterien für
Receipts, Offline Verification, Secret Scanning, Dependency Scanning,
Witness Compatibility, Documentation, Repository Reference,
Proofstream Capability, Source Reference und unterstützte Attesto
Languages. Der Validation Report speichert formula,
criteria, components, total
und max, damit Operators und Publishers reproduzieren
können, warum ein Connector sein Tier erhalten hat.
Tenant acquisition and install lifecycle
Tenant Users mit Owner-, Admin- oder Developer-Rolle können einen
kostenlosen First-Party Connector acquiren und installieren. Der
Browser muss Tenant Session Cookie und lesbaren CSRF Token besitzen.
Production Cookies sind auf .attesto.eu gescoped, sodass
eine Session von dashboard.attesto.eu auch auf
marketplace.attesto.eu funktioniert.
POST /v1/marketplace/items/attesto-github-repository-reference/acquire
X-CSRF-Token: <attesto_csrf cookie>
POST /v1/marketplace/items/attesto-github-repository-reference/install
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"configRef": "tenant-managed-github-installation"
}
Installierte kostenlose Assets können auf die aktuelle validierte Version aktualisiert oder durch einen Owner/Admin revoked werden. Revoke deaktiviert sowohl Entitlement als auch Tenant Install; Artifact Download schlägt fehl, bis der Tenant das Asset erneut acquired und installiert.
POST /v1/marketplace/items/attesto-github-repository-reference/install/update
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"configRef": "tenant-managed-github-installation-v2"
}
POST /v1/marketplace/items/attesto-github-repository-reference/revoke
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"reason": "tenant_request"
}
Der Artifact Endpoint gibt das Connector Manifest nur zurück, wenn der Tenant ein aktives Entitlement hat:
GET /v1/marketplace/items/attesto-github-repository-reference/artifact
Connector manifest
Ein Manifest beschreibt den Connector ohne Secrets. Es ist das Objekt, das Python, TypeScript, Go, CLI, Backend Validation und Marketplace gegen denselben Contract validieren.
{
"schemaVersion": "attesto.connector.v2",
"slug": "attesto-github-repository-reference",
"name": "GitHub Repository Reference",
"version": "1.0.0",
"assetType": "connector",
"category": "devops",
"summary": "Creates Proofstream references for repository changes.",
"description": "Records repository change references as verifiable Attesto events.",
"publisher": {
"slug": "attesto",
"name": "Attesto"
},
"repository": {
"url": "https://git.example.com/attesto/connectors/github"
},
"documentation": {
"url": "https://docs.attesto.eu/manuals/connectors.html#github"
},
"capabilities": ["proofstream", "offline-verification"],
"evidence": {
"receipts": true,
"offlineVerification": true,
"witnessCompatible": true
},
"security": {
"secretScan": true,
"dependencyScan": true
},
"supportedLanguages": ["en", "nl", "de", "fr", "es", "pl", "it"],
"provider": {
"id": "github",
"name": "GitHub",
"websiteUrl": "https://github.com"
},
"auth": {
"mode": "signed-webhook",
"scopes": ["repo", "push-events"]
},
"sync": {
"modes": ["webhook"],
"supportsReplay": true,
"rateLimitPolicy": "provider-default"
},
"eventTypes": ["repository.push", "repository.merge_request"],
"sourceTime": {
"required": true,
"timezonePolicy": "source-offset-required"
},
"configSchema": { "type": "object", "properties": {} },
"secretSchema": { "type": "object", "properties": {} },
"diagnostics": {
"providerAuthStatus": true,
"testConnection": true,
"syncLag": true,
"replayConflictCheck": true,
"revocationCheck": true
},
"runtime": {
"officialConnectorKit": true,
"sdkSurfaces": ["python", "typescript", "go", "cli"],
"requiredMethods": [
"metadata",
"validateConfig",
"testConnection",
"sync",
"handleWebhook",
"emitProofstreamEvent",
"diagnostics",
"revoke"
],
"canary": {
"status": "green",
"ref": "release/attesto-2.0-connector-assurance-readiness/result.json"
}
},
"installRequirements": {
"tenantLoginRequired": true,
"entitlementRequired": true
},
"changelog": [
{
"version": "1.0.0",
"date": "2026-06-09",
"changes": ["Validated first-party connector release."]
}
]
}
Pflichtfelder werden geprüft, bevor ein Asset akzeptiert werden kann. Der Backend Validator lässt hidden Assets unter einem Evidence Score von 50 fehlschlagen; Attesto kann trotzdem eine strengere private Release Policy für First-party oder Partner Connectors anwenden. Ein Score ist evidence-derived Validation Output, kein Adoption Badge oder Marketingurteil.
Marketplace CLI publishing flow
Publisher Automation kann die Attesto CLI für denselben Manifest Contract wie Backend und Connector Kits verwenden. Die CLI validiert das Manifest lokal, bevor etwas an Attesto gesendet wird. Submission nutzt ein Marketplace Publisher Bearer Token. Öffentliche Dokumentation deckt nur den Publisher Path ab; Attesto Review und Publication bleiben private interne Prozesse. Publisher Commands geben nie stored tokens, Stripe identifiers, connector secrets oder raw customer payloads aus.
attesto --json marketplace init \
--output attesto.connector.json \
--slug acme-risk-connector \
--name "ACME Risk Connector" \
--version 1.0.0 \
--category ai-governance \
--summary "Produces Attesto evidence for ACME risk decisions." \
--description "Produces verifiable Proofstream events for ACME risk decisions." \
--publisher-slug acme \
--publisher-name ACME \
--repository-url https://git.example.com/acme/risk-connector \
--docs-url https://docs.example.com/acme/risk-connector \
--provider-url https://example.com/acme \
--auth-mode oauth2 \
--auth-scopes risk.read,risk.events \
--sync-modes polling,webhook \
--event-types risk.decision.created,risk.decision.updated \
--canary-ref release/acme-risk-connector/canary-result.json \
--capabilities proofstream,offline-verification
attesto --json marketplace validate \
--manifest-file attesto.connector.json
attesto --json --token-env ATTESTO_MARKETPLACE_TOKEN marketplace submit \
--manifest-file attesto.connector.json \
--source-ref https://git.example.com/acme/risk-connector/releases/v1.0.0 \
--visibility public \
--pricing-model free
Nach Submission bleibt das Asset private pending Attesto review. Attesto prüft validation evidence, source reference, publisher identity, pricing und release provenance privat. Öffentliche Docs enden bewusst an der Developer Submission Boundary.
Publisher validation
Marketplace Developer Accounts sind marketplace-only. Sie können sich
auf marketplace.attesto.eu registrieren und einloggen,
ein Publisher Profile verwalten, ein Developer Tier wählen, kostenlose
Connector Assets für private Attesto Review einreichen und den echten
Developer Billing Flow für Paid Publishing starten. Sie können sich
nicht auf dashboard.attesto.eu einloggen; normale Tenant
Users brauchen weiterhin ein normales Attesto Tenant Account für das
Dashboard.
POST /v1/marketplace/auth/signup
Content-Type: application/json
{
"displayName": "ACME Evidence Labs",
"name": "Publisher Operator",
"email": "publisher@example.com",
"password": "<operator-chosen password>"
}
POST /v1/marketplace/auth/login
Content-Type: application/json
{
"email": "publisher@example.com",
"password": "<operator-chosen password>"
}
GET /v1/marketplace/auth/me
Das Erstellen oder Aktualisieren eines Publisher Profile zeichnet Marketplace Evidence auf, bevor Assets eingereicht werden. Ein Profil allein veröffentlicht nie ein Asset: Free Submissions bleiben private pending review, und Paid Submissions erfordern ein aktives Paid Developer Tier plus Stripe Connect Readiness. So wird verhindert, dass die öffentliche Marketplace zu einer offenen Upload Surface wird.
POST /v1/marketplace/publisher/profile
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"displayName": "Attesto Official Connector Team"
}
GET /v1/marketplace/publisher/profile
PATCH /v1/marketplace/publisher/profile
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"displayName": "Attesto Business Connectors"
}
Developer Publisher Rights werden in-place aktualisiert. Der Publisher behält denselben marketplace-only Account und dasselbe Publisher Profile. Community Developers können kostenlose Assets zur privaten Review einreichen. Verified Developer, Professional Publisher und Marketplace Partner Plans nutzen eine 14-day Stripe Trial und schalten Paid Connector Submission erst frei, nachdem Stripe das Subscription bestätigt. Paid Listing Publication erfordert zusätzlich Stripe Connect Payout Readiness. Checkout- und Portal-URLs werden server-side über den encrypted Stripe integration store erzeugt.
GET /v1/marketplace/developer-tiers
[
{
"tier": "community",
"label": "Free Developer",
"monthlyCents": 0,
"annualCents": 0,
"currency": "EUR",
"checkoutRequired": false,
"submissionEnabledWhenActive": false,
"description": "Marketplace-only developer identity for profile management, manifest preparation, documentation review, and free connector submission into private Attesto review.",
"requirements": [
"marketplace publisher profile",
"private Attesto review before public listing",
"paid developer publisher tier before paid connector submission"
],
"trialDays": 0
},
{
"tier": "premium",
"label": "Verified Developer",
"monthlyCents": 1900,
"annualCents": 19000,
"currency": "EUR",
"checkoutRequired": true,
"submissionEnabledWhenActive": true,
"description": "Paid developer publishing tier with a 14-day Stripe trial.",
"requirements": [
"active developer subscription",
"connector validation passes",
"private Attesto review before public listing"
],
"trialDays": 14
}
]
GET /v1/marketplace/publisher/billing-state
{
"publisher": {
"tier": "premium",
"developerSubscriptionState": "active",
"payoutState": "ready",
"commercialEnabled": true
},
"checkoutAvailable": true,
"billingPortalAvailable": true,
"canSubmitAssets": true,
"developerSignupRequired": false,
"supportedTiers": [
{"tier": "premium", "label": "Verified Developer", "monthlyCents": 1900, "annualCents": 19000, "currency": "EUR"},
{"tier": "professional", "label": "Professional Publisher", "monthlyCents": 4900, "annualCents": 49000, "currency": "EUR"},
{"tier": "partner", "label": "Marketplace Partner", "monthlyCents": 9900, "annualCents": 99000, "currency": "EUR"}
],
"submissionRequirements": [],
"commercialRequirements": [
"active developer subscription",
"Stripe Connect payout readiness"
],
"gracePeriodDays": 14
}
POST /v1/marketplace/publisher/upgrade
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"tier": "premium",
"interval": "month",
"successUrl": "https://marketplace.attesto.eu/?publisher=upgrade-success",
"cancelUrl": "https://marketplace.attesto.eu/?publisher=upgrade-cancel"
}
POST /v1/marketplace/publisher/billing-portal
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"returnUrl": "https://marketplace.attesto.eu/?publisher=billing-return"
}
Publisher, die Paid Assets verkaufen möchten, müssen nach Aktivierung des Developer Accounts Stripe Connect Payout Onboarding abschließen. Die API nutzt Attesto's server-side encrypted Stripe Configuration und gibt nur eine Stripe-hosted Onboarding URL zurück. Sie gibt keine Stripe Secret Keys, Connected-Account IDs oder Payout Credentials an das Frontend zurück.
POST /v1/marketplace/publisher/payout/onboarding
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"returnUrl": "https://marketplace.attesto.eu/?publisher=payout-return",
"refreshUrl": "https://marketplace.attesto.eu/?publisher=payout-refresh",
"country": "NL"
}
POST /v1/marketplace/publisher/payout/status
Paid Connector Acquisition nutzt Stripe Checkout mit Stripe Connect. Das Backend erstellt die Checkout Session, wendet die Attesto Application Fee an, routet den Developer Share zum Connected Account und wartet auf den verified Stripe Webhook, bevor Tenant Entitlement und Marketplace Ledger Entry erzeugt werden.
POST /v1/marketplace/items/{slug}/acquire
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"successUrl": "https://marketplace.attesto.eu/?marketplace=checkout-success",
"cancelUrl": "https://marketplace.attesto.eu/?marketplace=checkout-cancel"
}
Webhook result:
marketplace_purchase_created
marketplace_entitlement_created
marketplace_revenue_split_recorded
Stripe Refund- und Payout-Notifications werden ebenfalls über den verified Webhook Endpoint verarbeitet. Ein Full Refund schließt das Entitlement, revoked aktive Installs für den Connector, blockiert Artifact Download und zeichnet Refund- sowie Entitlement-Revocation Evidence auf. Payout Events reconciliieren eligible Publisher Ledger Entries und erfassen Payout Evidence, ohne Stripe Object Identifiers oder Provider Payloads dem Browser offenzulegen.
Webhook result for full refund:
marketplace_refund_recorded
marketplace_entitlement_revoked
Webhook result for payout:
developer_payout_completed
Webhook result for failed payout/refund:
developer_payout_failed
marketplace_refund_failed
Aktive Developer Publishers können anschließend Business Connectors
über die Marketplace Publisher Surface einreichen. Die Submit Action
validiert das Manifest, zeichnet einen Validation Run auf, erstellt
ein private pending-review Asset, speichert Version Hashes und
schreibt Marketplace Evidence. Selbst wenn visibility
als public angefordert wird, bleibt das Listing verborgen,
bis private Attesto Review und Publication Policy abgeschlossen sind.
Nicht qualifizierte Tenants erhalten eine fail-closed Response, bevor
Manifest Validation läuft.
POST /v1/marketplace/publisher/assets
Content-Type: application/json
X-CSRF-Token: <attesto_csrf cookie>
{
"sourceRef": "https://example.com/repository/connector-release",
"visibility": "private",
"pricingModel": "free",
"manifest": { "...": "attesto.connector.v2 manifest" }
}
Attesto Review und Publication sind private interne Prozesse. Sie schreiben Marketplace Evidence, aber die internen Endpoints und Verfahren gehören nicht in die öffentliche Developer Documentation. Der öffentliche Katalog gibt nur approved, non-revoked Versions zurück.
Die Source Reference muss auf die echte Release Source des Connectors zeigen. Secrets, Private Keys, API Tokens und Customer Payloads dürfen niemals in Connector Manifests platziert werden.
Marketplace evidence events
Marketplace Publisher Profile Create/Update, Acquisition, Install, Install Update, Entitlement Revoke, Paid Purchase, Refund, Payout, Publisher Submission und Validation/Review Actions schreiben kanonische Marketplace Evidence. Der Receipt Hash wird aus der kanonischen Evidence Envelope und Payload Hash abgeleitet; der Receipt Record speichert Tenant, Actor, Subject, Timestamp und Sanitized Payload für Tenant Audit Views. So erhalten Operators einen deterministischen Audit Trail darüber, wer Publisher Identity geändert und wer welche Connector Version acquired, installed, updated, reviewed, published, refunded, paid out oder revoked hat.
GET /v1/marketplace/evidence/<receipt-id-or-receipt-hash>
Security boundaries
- Public catalog browsing ist unauthenticated und read-only.
- Tenant acquire, install, artifact download, install update und tenant revoke actions erfordern Dashboard Tenant Auth und CSRF.
- Marketplace asset submission, publisher profile changes, developer-tier checkout, billing portal access und payout onboarding erfordern marketplace-only developer auth und CSRF.
- Free Marketplace Developer Accounts können Free Assets für Private Review einreichen; Paid Assets erfordern ein aktives Paid Developer Tier und Stripe Connect Readiness.
- Public listing review, publication und marketplace asset withdrawal sind private Attesto Prozesse und keine öffentlichen Marketplace- oder Developer-APIs.
- Connector manifests sind nur metadata; sie dürfen keine secrets oder raw customer payloads enthalten.
- Das Frontend erhält nur public catalog data und non-secret build metadata.
- Production bundles dürfen keine source maps, source files, test fixtures, credentials oder API keys enthalten.
- Marketplace evidence unterstützt auditability; sie zertifiziert third-party legal compliance nicht eigenständig.
