Plugin Builder¶
Generate a starter outbound plugin with a guided wizard — either code plugins or HTTP Manifest providers.
Plugins Overview Curated Registry :material-http: HTTP Manifest Docs
Where¶
Location : Admin Console → Plugins → “Build Plugin” (when enabled)
What it creates¶
Python plugin
: Extends FaxPlugin with send_fax and optional get_status.
Files: providers/<id>/__init__.py, providers/<id>/plugin.py
Registration snippet for the runtime
Node plugin
: Extends FaxPlugin with sendFax/getStatus.
Files: providers/<id>/index.js (or TS source), package metadata
:material-http: HTTP Manifest
: config/providers/<id>/manifest.json with actions.send_fax and optional get_status.
Includes allowed domains, auth scheme, headers, body templates, and response mapping
How to use¶
1) Enter basics (name, id, version)
2) Choose target (Python, Node, or HTTP Manifest)
3) Configure settings schema (non‑secrets) and capability set (send, get_status)
4) Review & Generate → download the source or manifest
5) Place files in your workspace and enable via Admin Console → Plugins
How it works (under the hood)¶
Manifest runtime
: Executed in api/app/plugins/http_provider.py
Config store
: Console persists plugin enablement/settings via PUT /plugins/{id}/config using api/app/plugins/config_store.py
Dispatch
: When a manifest provider is active, outbound send dispatches through the manifest runtime (see api/app/main.py for dispatch and discovery endpoints)
Security model¶
Secrets : Provided via environment/Admin settings; manifests store no secrets
Allowed domains
: Every manifest must include allowed_domains; the runtime blocks other hosts
Permissions
: Admin writes require admin:plugins:write; reads require admin:plugins:read
Developer tips¶
- Keep provider‑specific docs separate; do not leak instructions across providers
- Add “Learn more” links for operators that point to minimal, focused pages
- For HIPAA, keep remote install disabled and commit manifests to source control