Skip to content

fix(site): api.mukoko.com is an unbuilt gateway, not a legacy host; name the real WorkOS project - #63

Merged
bryanfawcett merged 1 commit into
mainfrom
claude/docs-host-accuracy
Aug 12, 2026
Merged

fix(site): api.mukoko.com is an unbuilt gateway, not a legacy host; name the real WorkOS project#63
bryanfawcett merged 1 commit into
mainfrom
claude/docs-host-accuracy

Conversation

@bryanfawcett

Copy link
Copy Markdown
Contributor

Follow-up to #62, which corrected identity.nyuchi.comaccounts.mukoko.com and deliberately left these two adjacent errors for a separate PR because they are different claims about different things.

Fix 1 — api.mukoko.com is not a "legacy host"

site/src/content/docs/api/overview.mdx and site/src/content/docs/api/security.mdx described it as a "Legacy host" / "Legacy production host", implying it once served traffic and now redirects or is deprecated.

Verified:

$ getent hosts api.mukoko.com          → (no output; exit 2 — NO DNS RECORD)
$ curl -s -o /dev/null -w '%{http_code}' https://api.mukoko.com/health   → 000
$ curl -s https://api.nyuchi.com/health
{"status":"healthy","timestamp":"2026-08-12T11:28:35...","environment":"production","ubuntu":"I am because we are","version":"4.1.0"}

api.nyuchi.com is the gateway serving traffic today (FastAPI on Fly, nyuchi/api-gateway). api.mukoko.com is a separate Mukoko gateway still being built — never served traffic, does not resolve, does not redirect, and is not WorkOS. Calling it "legacy" states the opposite of the truth.

Both rows are corrected, not deleted. The name is real — it is in the gateway's own DEFAULT_TRUSTED_HOSTS (gateway/lib/security.py), allow-listed ahead of the host existing — so a reader who has heard it needs somewhere to learn what it is. Deleting the rows would leave them with nothing. Each page now carries a short "do not reword this back" note, because "future gateway that hasn't shipped" is exactly the kind of nuance a later editing pass flattens into "legacy" again.

Fix 2 — a WorkOS project that does not exist

deployment/agentgateway.mdx named a "Nyuchi Identity" WorkOS project. Checked via the WorkOS admin API: the account (team Mukoko Account) has exactly one project, Mukoko Account (project_01KQBBSK9062YGVJB6JWW3BMN8), with two environments — Staging (sandbox) and Production. The Connect app's environment (Production) was already correct; only the project name was wrong.

Fix 3 — sweep, no further changes needed

Mention Verdict
accounts.mukoko.com (identity/overview ×4, index.mdx, README, agentgateway) Left alone — correct. /.well-known/openid-configuration self-identifies as "issuer":"https://accounts.mukoko.com" with /oauth2/authorize etc.
auth.mukoko.com (identity/overview, agentgateway) Left alone — correct. Described as the auth API and explicitly not an issuer; /.well-known/oauth-authorization-server returns 404, confirming the dead-end #62 warns about.
api.nyuchi.com (~30 curl examples across api/*, AUTH.md, llms.txt) Left alone — correct. The host that answers 200.
api.mukoko.com (api/overview, api/security) Changed — see Fix 1.
nyuchi.devtester.fundi.nyuchi.dev (tools/index.mdx) Left alone. Explicitly labelled internal-only (private: true, never on npm) — consistent with "nyuchi.dev hosts internal tools only". Not a consumer surface. Does not resolve today (000), reported below rather than guessed at.
Consumer MCP surfaces Left alone — all on product domains, none on nyuchi.dev. kweli.mukoko.com/mcp → 200, docs.nyuchi.com/mcp → 200, events.mukoko.com/mcp → 401 (auth gate), mcp.mzizi.dev/mcp → 401 (documented as the Connect OAuth gate working).
"Nyuchi Identity" project name Changed — see Fix 2.

Found but not fixed

  • tester.fundi.nyuchi.dev has no DNS record (getent empty, curl → 000). It is documented as an internal-only Cloudflare Worker, so I cannot tell whether that is a dead host (the identity.nyuchi.com class of bug) or simply an access-gated/unrouted internal deployment, and I do not know the correct URL. Flagging, not guessing.
  • api/security.mdx's trusted-hosts table omits 127.0.0.1, which is in the real DEFAULT_TRUSTED_HOSTS tuple alongside localhost and testserver. Verified but left out to keep this PR to the one class of error it is about.

Gates

  • pnpm installDone in 1.6s
  • pnpm build[build] 58 page(s) built in 5.12s / [build] Complete!
  • pnpm -r --if-present run test — 4 packages, 35 tests passed (nyuchi-docs-search 12, shamwari-docs-ai 9, nyuchi-docs-mcp-worker 9, nyuchi-docs-mcp 5)
  • pnpm skills:validate✓ skills valid — 1 public at v0.1.0 (using-nyuchi-docs)

Docs content only — no worker configs touched (#62 already fixed those).

🤖 Generated with Claude Code

https://claude.ai/code/session_01HFaeL83iEL5gqQXhHweH6u


Generated by Claude Code

…ame the real WorkOS project

Two factual errors #62 deliberately left for a separate PR, because they are
different claims about different things.

1. `api.mukoko.com` was documented as a "Legacy host" (api/overview) and
   "Legacy production host" (api/security). It is neither. `getent hosts
   api.mukoko.com` returns nothing and `GET https://api.mukoko.com/health`
   returns 000 (connection failure, not a redirect); `https://api.nyuchi.com/health`
   returns 200 `{"status":"healthy",...,"version":"4.1.0"}`. Per the ecosystem
   architecture, api.nyuchi.com is the gateway serving traffic today (FastAPI on
   Fly, nyuchi/api-gateway) and api.mukoko.com is a SEPARATE Mukoko gateway still
   being built. "Legacy" tells a reader the opposite of what is true: that it used
   to work, rather than that it does not work yet.

   Both rows are corrected rather than deleted — the name is real (it is in the
   gateway's own `DEFAULT_TRUSTED_HOSTS` in gateway/lib/security.py, allow-listed
   ahead of the host existing), so a reader who has heard it needs somewhere to
   find out what it is. Each page carries a "do not reword this back" note so the
   not-legacy/not-yet-built distinction survives a future editing pass.

2. deployment/agentgateway named a "Nyuchi Identity" WorkOS project. No such
   project exists: the account (team "Mukoko Account") has exactly ONE project,
   `Mukoko Account` (project_01KQBBSK9062YGVJB6JWW3BMN8), with two environments —
   `Staging` (sandbox) and `Production`. The Connect app's environment (Production)
   was already right; only the project name was wrong.

Swept every mention of the other three hosts plus nyuchi.dev and found no
further errors: the four-host table #62 added is confirmed live
(accounts.mukoko.com/.well-known/openid-configuration self-identifies as that
issuer; auth.mukoko.com/.well-known/oauth-authorization-server 404s, which is
exactly the dead-end #62 warns about), every api.nyuchi.com curl example is on
the host that answers, and the one nyuchi.dev URL (tester.fundi.nyuchi.dev) is an
explicitly internal-only agent, not a consumer surface. The Kweli MCP is
documented at kweli.mukoko.com/mcp, which answers 200.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HFaeL83iEL5gqQXhHweH6u
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
nyuchi-docs 74553a5 Commit Preview URL

Branch Preview URL
Aug 12 2026, 11:32 AM

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
nyuchi-docs-mcp 74553a5 Commit Preview URL

Branch Preview URL
Aug 12 2026, 11:32 AM

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
shamwari-docs-ai 74553a5 Commit Preview URL

Branch Preview URL
Aug 12 2026, 11:32 AM

@bryanfawcett
bryanfawcett marked this pull request as ready for review August 12, 2026 11:34
@bryanfawcett
bryanfawcett merged commit 2bbb731 into main Aug 12, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants