Skip to content

SDK (admin)

The admin SDK is the programmatic surface for managing TapPass resources.

Create orgs, attach projects, author pipelines, push policies, rotate keys, query audit trails — all from Python (and, eventually, TypeScript).

Note on the two SDKs. TapPass ships two SDKs and they are not the same thing:

  • Runtime SDK (existing — tappass-sdk on PyPI) — what customer agents import to make governed calls. Hits /v1/messages, etc.
  • Admin SDK (this card) — what operators use to manage TapPass itself. Hits /api/v1/admin/*.

Different consumers, different scope, different release cadences. They share authentication primitives but no shared data model.

Talks tothe control-plane API (/api/v1/admin/*)
Authscoped admin API key (or session JWT for interactive flows)
Coverageevery resource the Admin UI and MCP server expose
LanguagesPython (first); TypeScript (planned)
Statuslater

The admin SDK is generated (or kept in lock-step) from the OpenAPI surface of the control plane:

from tappass.admin import Admin
a = Admin(api_key=os.environ["TAPPASS_ADMIN_KEY"])
# Resources
team = a.teams.create(name="Risk Engineering")
proj = a.projects.create(team_id=team.id, name="Customer support")
agent = a.agents.create(project_id=proj.id, name="support-emailer-bot")
# Pipelines / policies
pipe = a.pipelines.create(project_id=proj.id, steps=[...])
a.policies.attach_check_pack(pipe.id, pack="pii-redaction")
# Sessions / audit
for s in a.sessions.list(agent_id=agent.id, since="2026-05-01"):
print(s.id, s.tool_footprint)
# Compliance
report = a.compliance.report(framework="iso-42001", scope="org")

The runtime SDK and the admin SDK have different blast radius:

Runtime SDKAdmin SDK
Used bycustomer agents in productionoperators / CI / IaC
Calls/v1/messages, /v1/chat/completions/api/v1/admin/*
Failure modecall rejected → agent retriesmutation failed → human intervenes
Versioningstrict semver, slow major bumpsfollows control-plane evolution closely
Audienceevery customeroperators only

Bundling them would force the runtime SDK (which must stay tiny + stable for customer integrations) to depend on admin types it doesn't use.

PersonaSurfaceWhat they do
Platform engineerPython script / CI jobBulk-onboard projects from CSV; sync agents from internal registry
Compliance teamNotebookRun quarterly compliance pack reports across the org
IaC ownerTerraform provider (planned)Treat TapPass resources as declarative infra
  • distinct from ↔ runtime SDK (tappass-sdk on PyPI) — different consumers, different scope
  • calls → control-plane API (the same routes the Admin UI uses)
  • complementary toMCP server — same operations, different surface
  • emitsAudit log — every mutation recorded