CONNECTOR SDK

Build connectors the control layer can vouch for.

The Ruzzler Connector SDK turns an external service into a certified connector: a declared manifest, one authentication strategy, a deterministic test harness, signed packaging, and a certification review pinned to the version you ship.

Five stages to certified.

Every connector moves through the same lifecycle. The manifest is the contract; certification is the receipt.

Manifest

Declare name, version, scopes, one auth strategy, and every outbound endpoint. The manifest is the review contract — undeclared access is refused.

Authentication

Pick one strategy: OAuth 2.0, vault-held API key, or signed webhooks. Credentials never touch your connector's client-side bundle.

Testing

Run the SDK harness against a sandbox tenant with deterministic fixtures: manifest validation, auth flow, endpoint allow-list, and evidence attachment.

Packaging

Ship a signed tarball with the manifest, lockfile, and checksum manifest. Unsigned or mutated packages fail installation.

Certification

Ruzzler reviews the pinned version for scope discipline, evidence quality, and honest status reporting before it is listed as certified.

Manifest

Declare everything. Hide nothing.

The manifest is the review contract between you and Ruzzler. Scopes, auth, and outbound endpoints are declared up front — anything undeclared is refused at review time and blocked at runtime.

{
  "name": "acme-support-desk",
  "version": "1.4.0",
  "display_name": "Acme Support Desk",
  "scopes": ["requests:read", "receipts:read"],
  "auth": {
    "strategy": "oauth2",
    "authorization_url": "https://acme.example/oauth/authorize",
    "token_url": "https://acme.example/oauth/token"
  },
  "endpoints": ["api.acme.example"],
  "evidence": { "attach_receipts": true }
}
FieldRequiredDescription
nameRequiredLowercase, hyphenated connector identifier shown in the directory.
versionRequiredSemantic version; certification pins reviews to this exact value.
scopesRequiredLeast-privilege list of Ruzzler resources the connector may read or write.
authRequiredOne declared authentication strategy — oauth2, api_key, or webhook_signature.
endpointsRequiredDeclared outbound hosts; anything else is blocked at review and at runtime.
evidenceOptionalOpt in to attaching routing receipts and verification status to connector runs.

One authentication strategy per connector.

Credentials are brokered and held by Ruzzler — never by your connector's client-side bundle.

OAuth 2.0

The recommended strategy. Ruzzler brokers the authorization-code flow, stores refresh tokens encrypted, and rotates them automatically.

API key

For services without OAuth. Keys are collected in the Ruzzler vault during installation and never returned to the browser after save.

Webhook signature

For inbound events. Declare the signing algorithm and Ruzzler verifies every delivery before your connector code runs.

Testing

Deterministic tests against a sandbox tenant.

The SDK harness runs your connector against a sandbox tenant with fixed fixtures. Certification re-runs the same suite, so green locally means green in review.

  • Manifest validation and scope discipline
  • Authentication flow against the sandbox
  • Outbound endpoint allow-list enforcement
  • Evidence and receipt attachment checks
npx ruzzler-connector test

  ✓ manifest parses and declares least-privilege scopes
  ✓ oauth2 strategy completes against the sandbox tenant
  ✓ outbound calls limited to declared endpoints
  ✓ receipt attachment matches rate-card version rc_2025-11

  4 passed · sandbox tenant tnt_dev_01

Packaging & certification

Signed, pinned, and reviewed.

Ship a signed tarball with the manifest and a checksum manifest. Certification pins the review to that exact version — a mutated package fails installation, and honest failure reporting is part of the review.

  • Scopes are least-privilege and every one is justified in the review notes.
  • All outbound traffic is limited to the endpoints declared in the manifest.
  • Verification status is reported as pipeline status — never as a correctness guarantee.
  • Receipts and Credit charges shown to users come from the Ruzzler evidence API.
  • The package is signed, reproducible, and pinned to the reviewed version.
  • Failure states surface honest errors instead of silent retries or cached results.

Ship a certified connector.

Start from the quickstart, then bring your service to the marketplace with evidence attached.