Repository navigation
Home
Ryan M. edited this page Sep 17, 2026
·
3 revisions
An extension is a folder with a manifest.json. Ordryn loads it at startup, renders the UI itself, and (for notifications) POSTs JSON to a webhook. There is no extension process, no plugin VM, and no custom JavaScript in host API 1.
This wiki is the authoring spec for host API 1, taken from Ordryn’s extension loader and the working example manifests in Ordryn-Extensions.
| Kind | Manifest blocks | What Ordryn does |
|---|---|---|
| Custom fields | fields |
Stores values as {extension id}.{key} and renders sidebar editors plus list/kanban badges. |
| Notifications |
hooks + delivery + settings
|
Subscribes to events and POSTs to an HTTPS URL the site, project, or member configures. |
| Sandboxed panel | ui |
Serves an HTML file in a project iframe (sandbox without allow-same-origin). |
| Callbacks | permissions |
Mints a project-scoped token (odycb_…) on JSON deliveries so a relay can call back. |
| Inbound actions | actions |
Opts the extension into extra verbs on the project inbound webhook. |
| Combined | any of the above | One folder can declare fields, hooks, a panel, and tokens together. |
A minimal identity-only manifest loads, but it does nothing until you add fields, hooks, and/or ui.
- Creating an extension — folder layout, install, enablement, author checklist
- Manifest — required identity fields and optional top-level blocks
-
Custom fields — field types,
show_on, storage keys, value rules - Hooks — event names, when they fire, templates and placeholders
- Delivery — webhook types, payloads, URL rules, signing, queue
- Settings and controls — admin/project/member form fields and panel actions
- Sandboxed UI — HTML panel, CSP, static assets
- Callbacks and inbound — callback tokens and inbound webhook actions
- Examples — the 18 drop-in folders in this repo
data/extensions/<id>/manifest.json
│
▼
Ordryn scan at startup (not hot-reloaded)
│
▼
Admin → Extensions (site enable)
│
├── Settings → Integrations (“Notify me”, member destinations)
└── Project settings → Extensions
(visible if project settings, member settings, fields, or ui)
│
├── fields → sidebar / list / kanban
├── hooks → HTTPS POST
├── ui → sandboxed iframe
└── inbound → POST /api/v2/webhooks/inbound
│
└── JSON may include callback_token
→ POST /api/v2/ext/callback
Override the scan path with EXTENSIONS_DIR (legacy alias: MODS_DIR).