Signed app manifest
A versioned, immutable declaration of endpoints, permissions, compatibility, and data handling.
Keep your application vendor-hosted while PlugPlayground handles discovery, consent, organization installation, entitlements, billing, and lifecycle events.
{
"$schema": "https://plugplayground.com/schemas/plug-v1.json",
"schemaVersion": "1.0",
"appId": "com.acme.project-insights",
"version": "1.4.0",
"vendor": {
"domain": "acme.example",
"jwksUri": "https://acme.example/.well-known/jwks.json"
},
"oauth": {
"redirectUris": [
"https://app.acme.example/oauth/plugplayground/callback"
],
"tokenEndpointAuthMethod": "private_key_jwt"
},
"permissions": [
{
"scope": "projects:read",
"reason": "Display selected project summaries"
}
]
}Platform primitives
Use open standards and familiar tooling, with security controls enforced at marketplace boundaries.
A versioned, immutable declaration of endpoints, permissions, compatibility, and data handling.
Authorization Code with PKCE, exact redirect matching, audience restriction, and asymmetric client authentication.
Signed installation, entitlement, suspension, and uninstall events with replay protection.
Short-lived signed assertions and server APIs for plan, feature, and status checks.
Manifest, redirect, endpoint, scope-diff, TLS, asset, and policy validation before human review.
Curated listing, trials, hosted checkout, subscriptions, vendor onboarding, fees, and payouts.
Publish safely
The approved manifest is canonicalized, hashed, and immutable for the life of a published version.
Only HTTPS vendor endpoints and exact redirect URIs are accepted.
All endpoint domains must be verified and are screened against internal network targets.
Every permission requires a plain-language reason visible to administrators.
Adding permissions, redirect URIs, or data handling requires review; permission increases require re-consent.
Published versions can be deprecated or revoked, but cannot be silently rewritten.
plug login
plug init
plug manifest validate
plug app create
plug version push
plug version submit
plug version status
plug webhooks listenThe repository includes a typed manifest contract and API surface. The production CLI is intentionally versioned separately so vendor automation can evolve without coupling to the web release cycle.
API design
Consistent problem responses, idempotency keys, cursor pagination, request IDs, scoped credentials, and explicit versions.
/api/v1/appsSearch published apps/api/v1/vendor/appsCreate an app draft/api/v1/vendor/apps/{appId}/versionsCreate an immutable version draft/api/v1/installationsRequest or create an installation/api/v1/installations/{id}/entitlementRetrieve a signed entitlement/api/v1/installations/{id}Revoke and uninstall