Skip to content

Commit 7ef2f42

Browse files
author
Faxbot Agent
committed
docs: add end-to-end HTTP Manifest flow (validate/install/activate/runtime) with code citations; link from Plugin Builder
1 parent 4ee1fb9 commit 7ef2f42

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

docs/admin-console/plugin-builder.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,30 @@ Generate a starter outbound plugin with a guided wizard — either code plugins
8282
- Plugins (v3): [Overview](../plugins/index.md)
8383
- Curated Registry: [Docs](../plugins/registry.md)
8484
- HTTP Manifest Providers: [Docs](../plugins/manifest-http.md)
85+
86+
---
87+
88+
## HTTP Manifest: End‑to‑End Flow
89+
90+
This section captures the complete lifecycle from JSON → validation → install → activation → runtime.
91+
92+
1) Prepare JSON manifest (see [HTTP Manifest Providers](../plugins/manifest-http.md))
93+
Schema and runtime live at `api/app/plugins/http_provider.py` (71‑102, 111‑139, 167‑238, 275‑304).
94+
2) Validate in Console
95+
Plugins → “HTTP Manifest Tester” → Validate (client calls `POST /admin/plugins/http/validate`)
96+
Code: api/admin_ui/src/api/client.ts:623; server: api/app/main.py:2556, 2570‑2579, 2583‑2588.
97+
3) Dry‑run send (optional)
98+
Same endpoint with `render_only:false` uses the runtime to normalize a send.
99+
4) Install
100+
“Install” writes `config/providers/<id>/manifest.json` (client: api/admin_ui/src/api/client.ts:631; server: api/app/main.py:2530‑2538).
101+
Diagnostics enumerate installed manifests and basic issues (api/app/main.py:3714, 3721‑3756).
102+
5) Activate as outbound backend
103+
Set `FEATURE_V3_PLUGINS=true` and `OUTBOUND_BACKEND=<id>` (or legacy `FAX_BACKEND=<id>`).
104+
Alternatively, PUT `/plugins/{id}/config` (api/app/main.py:6288‑6323). Note: persists only; restart to apply (api/app/main.py:6322).
105+
6) Runtime send path
106+
`POST /fax` → manifest path computed and, when present, dispatches via `_send_via_manifest` (api/app/main.py:4086, 4093‑4153, 5045‑5090).
107+
7) Status refresh (optional)
108+
`POST /admin/fax-jobs/{job_id}/refresh` polls `get_status` if defined and updates DB (api/app/main.py:3496‑3608).
109+
110+
RAG tip: Use the MCP RAG tools to quickly locate endpoints and paths (e.g., “where is validate endpoint?”). See the rag‑service docs for setup.
111+

docs/plugins/manifest-http.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,3 +183,23 @@ request={"to":[{"phoneNumber":"{{to}}"}]}&attachment={{file}}
183183
- Manifests are evaluated server‑side; no UI or browser secrets are required
184184
- For HIPAA, disable dynamic install and keep manifests under version control
185185
- The server also discovers manifests under `config/providers/<id>/manifest.json`
186+
187+
---
188+
189+
## End‑to‑End: Validate → Install → Activate → Send
190+
191+
1) Paste JSON in Admin → Plugins → HTTP Manifest Tester
192+
- Validate: `POST /admin/plugins/http/validate` (api/app/main.py:2556, 2570‑2579)
193+
- Dry‑run: same with `render_only:false` (api/app/main.py:2583‑2588)
194+
2) Install to disk
195+
- Writes `config/providers/<id>/manifest.json` (api/app/main.py:2530‑2538)
196+
- Diagnostics list manifests and basic issues (api/app/main.py:3714, 3721‑3756)
197+
3) Activate backend
198+
- `FEATURE_V3_PLUGINS=true` and `OUTBOUND_BACKEND=<id>` (api/app/config.py:380‑385)
199+
- Or `PUT /plugins/{id}/config` (api/app/main.py:6288‑6323), then restart (api/app/main.py:6322)
200+
4) Runtime
201+
- Send path uses manifest when present (api/app/main.py:4086, 4093‑4153; 5045‑5090)
202+
- Status refresh via `POST /admin/fax-jobs/{job_id}/refresh` (api/app/main.py:3496‑3608)
203+
204+
RAG/MCP: You can ask the code RAG things like “show the manifest schema” or “where is install endpoint” and get citations. See rag‑service docs for MCP setup.
205+

0 commit comments

Comments
 (0)