Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ A home for integrations that make more sense as standalone WASM modules than as
| Plugin | Tools | Description |
|--------|-------|-------------|
| [bland](plugins/bland/) | 30 | Bland.ai voice AI: calls, transcripts, voices, pathways, inbound numbers, knowledge bases, org management, billing, audit logs |
| [clerk](plugins/clerk/) | 34 | Clerk authentication and identity: users, sessions, organizations, memberships, invitations, allow/block list identifiers |
| [looker](plugins/looker/) | 23 | Looker BI: dashboards, Looks, LookML models, inline analytics queries, SQL Runner |

Prebuilt binaries live in [`dist/`](dist/) and are referenced by [`manifest.json`](manifest.json).
Expand Down
Binary file added dist/clerk.wasm
Binary file not shown.
19 changes: 19 additions & 0 deletions manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,25 @@
}
]
},
{
"name": "clerk",
"description": "Clerk authentication and identity management — users, sessions, organizations, memberships, invitations, and allow/block list identifiers via the Clerk Backend API.",
"author": "daltoniam",
"homepage": "https://github.com/daltoniam/switchboard_plugins",
"license": "MIT",
"versions": [
{
"version": "0.1.0",
"abi_min": 1,
"abi_max": 1,
"url": "https://raw.githubusercontent.com/daltoniam/switchboard_plugins/main/dist/clerk.wasm",
"sha256": "6e588545f08256ccddfe45df86d22ff656ab549f2d24e201f73c3d11d94540d8",
"size": 211073,
"released_at": "2026-05-21T23:42:41Z",
"changelog": "Initial release. 34 tools across users, sessions, organizations, memberships, invitations, and allow/block list identifiers."
}
]
},
{
"name": "looker",
"description": "Looker BI integration — dashboards, Looks, LookML models, inline analytics queries, SQL Runner.",
Expand Down
12 changes: 12 additions & 0 deletions plugins/clerk/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "clerk-wasm"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["cdylib"]

[dependencies]
switchboard-guest-sdk = { git = "https://github.com/daltoniam/switchboard.git" }
serde.workspace = true
serde_json.workspace = true
70 changes: 70 additions & 0 deletions plugins/clerk/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Clerk Switchboard plugin

Clerk authentication and identity management integration — users, sessions, organizations, memberships, invitations, and allow/block list identifiers via the Clerk Backend API.

## Credentials

| Key | Required | Description |
|-----|----------|-------------|
| `secret_key` | yes | Clerk Backend API secret key (`sk_test_...` or `sk_live_...`) from the Clerk Dashboard under API Keys → Secret keys. Sent as `Authorization: Bearer <secret_key>`. |

## Tools

### Users

| Tool | Description |
|------|-------------|
| `clerk_list_users` | Search and list Clerk users by email, phone, username, or user ID; filter by organization, banned/locked state, last activity |
| `clerk_get_user` | Get a user's full profile, email addresses, phone numbers, external accounts, metadata, and timestamps |
| `clerk_create_user` | Create a new Clerk user with email, phone, username, password, name, and metadata |
| `clerk_update_user` | Update a user's profile, metadata, password, or primary identifier |
| `clerk_delete_user` | Permanently delete a Clerk user |
| `clerk_ban_user` | Ban a user, preventing all sign-ins |
| `clerk_unban_user` | Lift a ban on a user |
| `clerk_lock_user` | Lock a user out of new sign-ins |
| `clerk_unlock_user` | Unlock a previously locked user |
| `clerk_list_user_organization_memberships` | List all organizations a user belongs to with their role |

### Sessions

| Tool | Description |
|------|-------------|
| `clerk_list_sessions` | List Clerk sessions filtered by user, client, or status |
| `clerk_get_session` | Get session details including user, status, expiry, and last activity |
| `clerk_revoke_session` | Revoke a session, signing the user out of that client |

### Organizations

| Tool | Description |
|------|-------------|
| `clerk_list_organizations` | List or search Clerk organizations (tenants, workspaces, teams) |
| `clerk_get_organization` | Get organization details by ID or slug |
| `clerk_create_organization` | Create a new organization with a name, slug, and creator user |
| `clerk_update_organization` | Update an organization's name, slug, max memberships, or metadata |
| `clerk_delete_organization` | Permanently delete an organization |
| `clerk_list_organization_memberships` | List members of an organization with their role |
| `clerk_create_organization_membership` | Add a user to an organization with a role |
| `clerk_update_organization_membership` | Change a member's role within an organization |
| `clerk_delete_organization_membership` | Remove a user from an organization |
| `clerk_list_organization_invitations` | List pending/accepted/revoked invitations for an organization |
| `clerk_create_organization_invitation` | Invite a user (by email) to an organization with a role |
| `clerk_revoke_organization_invitation` | Revoke a pending organization invitation |

### Invitations (instance-level)

| Tool | Description |
|------|-------------|
| `clerk_list_invitations` | List instance-level invitations sent to email addresses |
| `clerk_create_invitation` | Send an instance-level invitation to an email address |
| `clerk_revoke_invitation` | Revoke a pending instance-level invitation |

### Allow / Block list

| Tool | Description |
|------|-------------|
| `clerk_list_allowlist_identifiers` | List identifiers (emails, phones, domains) allowed to sign up |
| `clerk_create_allowlist_identifier` | Add an identifier to the sign-up allow list |
| `clerk_delete_allowlist_identifier` | Remove an identifier from the sign-up allow list |
| `clerk_list_blocklist_identifiers` | List identifiers blocked from signing up |
| `clerk_create_blocklist_identifier` | Add an identifier to the sign-up block list |
| `clerk_delete_blocklist_identifier` | Remove an identifier from the sign-up block list |
Loading
Loading