TL;DR — one call publishes
Publishing PURE to acquisto.biz is a single MCP call: release.publish. It ships to Netlify (live in ~1 min), writes a backup/restore row, and mirrors a copy to GitHub. There is no manual git step, no nested-folder trap, no "which repo" confusion.
pure_deploy_registry. GitHub (puremls) is just the cold mirror now — out of the critical path.The architecture
| Piece | Role |
|---|---|
| acquisto.biz | The one public site (static HTML on Netlify). app.acquisto.biz is retired. |
| pure-mcp Edge Function | The publisher + backend. Tools: board.*, memory.*, qa.*, release.*. Every call is audited to audit_log. |
| Netlify API | PRIMARY release.publish ships files straight here — what's live. |
| pure_deploy_registry | Every deploy = one row (label, deploy id, url, rollback ref, who, when). The restore points. |
| GitHub [email protected] | COLD MIRROR a full copy committed as backup. If it fails, the deploy still succeeded. |
Publish — release.publish
Call the MCP server with your bearer token. Pass a label and the files you want live.
POST https://mbnakfrkfwxinhxlisyq.supabase.co/functions/v1/pure-mcp
Headers:
apikey: <anon key>
Authorization: Bearer <anon key>
x-mcp-key: <your MCP token>
Body:
{ "tool": "release.publish",
"args": { "label": "my-update",
"files": { "lane-b/PURE Command Center.html": "<full html>", ... } } }
Returns: netlify_deploy_id, deploy_url, and the mirror status. The registry row is written automatically.
files you pass become the entire site for that deploy — anything omitted is dropped from that deploy. Always include the complete file set you want live (or use the Batch method below, which assembles the full set). For a single-page tweak, prefer the git path in Manual fallback, which rebuilds the whole repo.Batch update — the standard each time
To update many pages at once, build the full files object and publish once:
- Gather every changed page's HTML into one
filesmap (path contents). - Include unchanged-but-required pages too, or run the git-rebuild path so Netlify pulls the full repo.
- Call
release.publishwith a clearlabel(e.g."batch-2026-06-19"). - Confirm the returned
deploy_url, then checkacquisto.biz. - The registry row is your rollback point.
release.publish with the full set. One small page git push (auto-rebuilds the whole repo, nothing dropped).Revert / rollback — release.revert
Every deploy is restorable. Roll back to any prior deploy id:
{ "tool": "release.revert", "args": { "to_ref": "<netlify_deploy_id from the registry>" } }
It restores that exact deploy on Netlify and logs a new registry row. Find the id you want via release.list.
List & status
{ "tool": "release.list", "args": { "limit": 15 } } recent deploys (label, url, status, who)
{ "tool": "release.status", "args": {} } current live deploy id + autopilot state
The backup registry
pure_deploy_registry is the permanent record — one row per publish/revert with the rollback ref. It's also visible in the Command Center Releases tab (sortable deploy-log table). This is the "we can't lose anything" guarantee: any past state is one release.revert away.
Hard rules (learned the hard way)
- DON'T push to
pure-deployexpecting it to publish — no Netlify site watches it. Production repo is[email protected]. - DON'T
release.publisha partialfilesset thinking it's an incremental patch — it replaces the whole deploy. - DON'T nest
index.htmlin a subfolder — it must be at repo root. - DO keep the MCP token secret (
verify_jwt:false, so the bearer is the only guard). Rotate it if it's ever shown. - DO verify the
deploy_urland checkacquisto.bizafter every publish.
Manual fallback (git path)
If the MCP server is ever unavailable, publish by committing to [email protected] at repo root — Netlify auto-builds the full repo. This is the safe path for a single-page change because the whole site rebuilds (nothing dropped).
commit changed files [email protected] Netlify auto-build live
Reference / IDs
| Live site | acquisto.biz |
| MCP endpoint | https://mbnakfrkfwxinhxlisyq.supabase.co/functions/v1/pure-mcp |
| Netlify Site ID | 245e35a8-a530-4d31-84c3-d0e94904380d |
| Production repo | github.com/puremlstech/puremls · branch Testin.MikeSupabase |
| Supabase project | mbnakfrkfwxinhxlisyq |
| Audit | audit_log (every MCP call) · pure_deploy_registry (every deploy) |
This document is the canonical deploy reference, also saved in pure_memory.deploy_playbook. Linked from the Command Center.