wiki(travel): add business-data-via-playbooks pattern page
New page documenting the pattern that closed noetl/ai-meta#23
in detail: every read and write of business data flows through
a playbook step, never through the SPA or the gateway.
Sections:
- Why this exists (boundary rule + practical payoff).
- The cast (firestore_mcp, itinerary-planner, calendar/list,
calendar.event.touched signal, calendarSubscription).
- Write path: orchestrator turn with full step-by-step diagram
showing where firestore_mcp dispatches happen.
- Anatomy of one firestore_mcp dispatch + dispatch-shape table
across all 5 orchestrator step kinds that use it.
- The calendar.event.touched signal end-to-end (orchestrator
emit → NoETL event → NATS → gateway forward → SPA receive).
- Read path: calendar widget refresh through the read playbook.
- End-to-end timeline of one calendar-changing turn.
- What this pattern is NOT.
- Adapting for your domain (postgres_mcp / dynamo_mcp / etc).
- Operator diagnostics (symptom → root cause + useful SQL).
Sidebar: new entry under Architecture group.
Home.md: new row in the Architecture-and-concepts table.
playbook-itinerary-planner.md + playbook-calendar-list.md:
new cross-links in their Related sections so the
specific-playbook pages point at the pattern view.
Refs noetl/ai-meta#23.
wiki(travel): finish Round 03 cleanup — drop stale gatewaySubscriptions refs
Round 03 of noetl/ai-meta#23 deleted src/api/gatewaySubscriptions.ts
in noetl/travel#57 but two pages still listed it as a current SPA
module:
- architecture.md: in the "Gateway integration" three-module
list. Replaced with calendarSubscription.ts and a
parenthetical noting the historical
gatewaySubscriptions.ts + POST /api/subscriptions/firestore
path was removed in Round 03.
- Home.md: the "Layer / In this repo" table for "Gateway
integration" listed gatewaySubscriptions.ts. Switched to
calendarSubscription.ts; updated the role description to
"playbook-mediated live calendar refresh".
gateway-integration.md is left as-is — Codex's earlier
4356945 commit on this wiki already converted it to the
Round 03 migration record, which intentionally retains
events_path + gatewaySubscriptions references in the
"what changed" sections.
Refs noetl/ai-meta#23 (Round 03 wiki finish).
wiki(travel): document calendar.list read playbook + calendar.event.touched emit + SPA cutover transport
Closes the wiki debt from noetl/ai-meta#23 Round 01 + ships
the Round 02 SPA-cutover wiki update in one commit, per
agents/rules/wiki-maintenance.md Rule 2b.
Refs noetl/ai-meta#23
Refs noetl/travel#54
Refs noetl/travel#55
wiki: bootstrap travel-as-NoETL-reference-SPA developer coverage
This wiki frames the travel repository as the operational example
of how a domain-specific single-page application is built on top
of NoETL — not "the travel app" in isolation.
Adds eight pages totaling ~1500 lines of developer-facing
documentation:
- Home.md: overview, what the repo demonstrates, table of pages.
- _Sidebar.md: navigation.
- architecture.md: the four layers (SPA shell / widgets /
playbooks / gateway integration) and how they fit. Diagram of
browser -> gateway -> noetl-server -> worker-pool flow.
- widget-contract.md: schema-driven contract between playbook
outputs and SPA UI. Five-step recipe for adding a new widget.
- playbook-itinerary-planner.md: walkthrough of the orchestrator
playbook (~16 steps). Workload contract, where each pattern
lives (LLM extractor / provider abstraction via MCP /
slot-state projection / render-decision in playbook), and
performance notes.
- gateway-integration.md: wire protocol the SPA speaks
(executePlaybook GraphQL, SSE frame families
playbook/result + playbook/state + subscription/event,
POST/DELETE /api/subscriptions/firestore).
- auth-and-session.md: Auth0-to-gateway-session model and how to
swap the identity provider.
- deployment.md: Vite build, Docker container, nginx config,
Cloudflare Pages, Wrangler.
- adapting-for-your-domain.md: fork-and-replace checklist
covering six phases — naming, widget set, orchestrator
playbook, MCP providers, auth re-branding, deployment.
Cross-links to the ephemeral_blueprints architecture doc in
noetl/docs (the foundational compute-data boundary that this
repo enforces concretely by removing the Firebase SDK from the
SPA in #50).
Every page sources from real files in repos/travel and links
back via absolute GitHub URLs into main.