Marketplace
Connector marketplace
De Attesto Marketplace op https://marketplace.attesto.eu
is de publieke catalogus voor gevalideerde evidence producers.
Publieke bezoekers kunnen connector cards bekijken. Tenant
acquisition, install, update, revoke en artifact download vereisen een
geauthenticeerde dashboard tenant session. Publisher signup,
publisher profile management en connector submission gebruiken een
apart marketplace-only developer account. Attesto review en publication
zijn private interne processen en worden niet aan publieke bezoekers of
marketplace developers blootgesteld.
Marketplace model
Een marketplace item is een gevalideerd connector asset. De catalogus bewaart asset metadata, current version, manifest hash, artifact hash, validation result, entitlement state, install state en marketplace evidence events. De marketplace draait geen connectorcode in de browser en stelt geen connector secrets bloot.
| Object | Betekenis |
|---|---|
asset | Een connector listing zoals GitHub, GitLab of S3/R2 object commitments. |
version | Een gevalideerd connector manifest met manifest- en artifact hashes. |
entitlement | Het recht van de tenant om een version te downloaden of installeren. |
install | Een tenant-scoped installatierecord voor de gekozen version. |
evidence event | Een canonieke marketplace receipt voor acquisition, installation, submission of validation. |
Bekijk de publieke catalogus
De publieke catalogus toont alleen gevalideerde publieke assets. Hij is veilig te bekijken zonder tenant session:
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
Elke card toont de evidence score, validation state, supported languages, category, current version en documentatielink. Publieke bezoekers zien een sign-in action in plaats van acquire/install/download commands.
De Evidence Score is geen marketingrating. Het is een deterministische
output van attesto-marketplace-validation-v1: hetzelfde
manifest, dezelfde source reference en dezelfde validator version
produceren dezelfde score. De score is de som van expliciete criteria
voor receipts, offline verification, secret scanning, dependency
scanning, witness compatibility, documentation, repository reference,
Proofstream capability, source reference en ondersteunde Attesto
languages. Het validation report bewaart formula,
criteria, components, total en
max, zodat operators en publishers kunnen reproduceren
waarom een connector zijn tier kreeg.
Tenant acquisition and install lifecycle
Tenant users met owner-, admin- of developer-role kunnen een gratis
first-party connector acquiren en installeren. De browser moet de
tenant session cookie en leesbare CSRF token hebben. Production cookies
zijn scoped op .attesto.eu, zodat een session die op
dashboard.attesto.eu is gemaakt ook werkt op
marketplace.attesto.eu.
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"
}
Geïnstalleerde gratis assets kunnen naar de huidige gevalideerde version worden bijgewerkt of door een owner/admin worden gerevoked. Revoke deactiveert zowel entitlement als tenant install; artifact download faalt totdat de tenant het asset opnieuw acquiret en installeert.
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"
}
De artifact endpoint retourneert het connector manifest alleen nadat de tenant een actieve entitlement heeft:
GET /v1/marketplace/items/attesto-github-repository-reference/artifact
Connector manifest
Een manifest beschrijft de connector zonder secrets op te nemen. Het is het object dat Python, TypeScript, Go, CLI, backend validation en de marketplace allemaal tegen hetzelfde contract valideren.
{
"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."]
}
]
}
Verplichte velden worden gecontroleerd voordat een asset kan worden geaccepteerd. De backend validator laat hidden assets onder een Evidence Score van 50 falen; Attesto kan nog steeds een strengere private release policy toepassen voor first-party of partner connectors. Een score is evidence-derived validation output, geen adoption badge of marketingoordeel.
Marketplace CLI publishing flow
Publisher automation kan de Attesto CLI gebruiken voor hetzelfde manifestcontract als backend en connector kits. De CLI valideert het manifest lokaal voordat er iets naar Attesto wordt verstuurd. Submission gebruikt een marketplace publisher bearer token. Publieke documentatie dekt alleen het publisher-pad; Attesto review en publication blijven private interne processen. Publisher commands printen nooit stored tokens, Stripe identifiers, connector secrets of raw customer payloads.
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
Na submission blijft de asset private pending Attesto review. Attesto reviewt validation evidence, source reference, publisher identity, pricing en release provenance privé. Publieke docs stoppen bewust bij de developer submission boundary.
Publisher validation
Marketplace developer accounts zijn marketplace-only. Ze kunnen zich
aanmelden en inloggen op marketplace.attesto.eu, een
publisher profile beheren, een developer tier kiezen, gratis connector
assets voor private Attesto review indienen en de echte developer
billing flow starten voor paid publishing. Ze kunnen niet inloggen op
dashboard.attesto.eu; normale tenant users hebben nog
steeds een normaal Attesto tenant account nodig voor het 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
Het aanmaken of bijwerken van een publisher profile registreert marketplace evidence voordat assets worden ingediend. Een profiel publiceert nooit zelfstandig een asset: free submissions zijn private pending review, en paid submissions vereisen een actieve paid developer tier plus Stripe Connect readiness. Zo wordt voorkomen dat de publieke marketplace een open upload surface wordt.
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 worden in-place geüpgraded. De publisher behoudt hetzelfde marketplace-only account en publisher profile. Community developers kunnen gratis assets indienen voor private review. Verified Developer, Professional Publisher en Marketplace Partner plans gebruiken een 14-day Stripe trial en unlocken paid connector submission pas nadat Stripe het subscription bevestigt. Paid listing publication vereist daarnaast Stripe Connect payout readiness. Checkout en portal URLs worden server-side gemaakt via de encrypted Stripe integration store.
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"
}
Publishers die betaalde assets willen verkopen moeten Stripe Connect payout onboarding afronden nadat het developer account actief is. De API gebruikt Attesto's server-side encrypted Stripe configuration en retourneert alleen een Stripe-hosted onboarding URL. Hij retourneert geen Stripe secret keys, connected-account IDs of payout credentials naar de frontend.
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 gebruikt Stripe Checkout met Stripe Connect. De backend maakt de Checkout Session, past de Attesto application fee toe, routeert het developer share naar het connected account en wacht op de verified Stripe webhook voordat tenant entitlement en marketplace ledger entry worden aangemaakt.
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- en payout-notifications worden ook via de verified webhook endpoint verwerkt. Een volledige refund sluit de entitlement, revoket actieve installs voor de connector, blokkeert artifact download en registreert refund- en entitlement-revocation evidence. Payout events reconciliëren eligible publisher ledger entries en leggen payout evidence vast zonder Stripe object identifiers of provider payloads aan de browser bloot te stellen.
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
Actieve developer publishers kunnen daarna business connectors
indienen via de marketplace publisher surface. De submit action
valideert het manifest, registreert een validation run, maakt een
private pending-review asset, bewaart de version hashes en schrijft
marketplace evidence. Zelfs wanneer visibility als
public wordt gevraagd, blijft de listing verborgen totdat
private Attesto review en publication policy zijn afgerond.
Niet-gekwalificeerde tenants krijgen een fail-closed response voordat
manifest validation draait.
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 en publication zijn private interne processen. Ze schrijven marketplace evidence, maar de interne endpoints en procedures horen niet in de publieke developer documentatie. De publieke catalogus retourneert alleen approved, non-revoked versions.
De source reference moet naar de echte release source van de connector wijzen. Secrets, private keys, API tokens en customer payloads mogen nooit in connector manifests worden geplaatst.
Marketplace evidence events
Marketplace publisher profile create/update, acquisition, install, install update, entitlement revoke, paid purchase, refund, payout, publisher submission en validation/review actions schrijven canonieke marketplace evidence. De receipt hash wordt afgeleid van de canonieke evidence envelope en payload hash; het receipt record bewaart tenant, actor, subject, timestamp en sanitized payload voor tenant audit views. Zo krijgen operators een deterministische audit trail voor wie publisher identity veranderde en wie welke connector version acquired, installed, updated, reviewed, published, refunded, paid out of revoked.
GET /v1/marketplace/evidence/<receipt-id-or-receipt-hash>
Security boundaries
- Public catalog browsing is unauthenticated en read-only.
- Tenant acquire, install, artifact download, install update en tenant revoke actions vereisen dashboard tenant auth en CSRF.
- Marketplace asset submission, publisher profile changes, developer-tier checkout, billing portal access en payout onboarding vereisen marketplace-only developer auth en CSRF.
- Free marketplace developer accounts kunnen free assets voor private review indienen; paid assets vereisen een actieve paid developer tier en Stripe Connect readiness.
- Public listing review, publication en marketplace asset withdrawal zijn private Attesto processen en geen publieke marketplace- of developer-APIs.
- Connector manifests zijn alleen metadata; ze mogen geen secrets of raw customer payloads bevatten.
- De frontend ontvangt alleen public catalog data en non-secret build metadata.
- Production bundles mogen geen source maps, source files, test fixtures, credentials of API keys bevatten.
- Marketplace evidence ondersteunt auditability; het certificeert third-party legal compliance niet zelfstandig.
