You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every Connect discovery surface needs the same stable, open answer to “which owner-published endpoints match this player?” Third parties should not need to scrape the website or obtain endpoint credentials.
Outcome
Define and ship a versioned, unauthenticated, read-only public directory API and canonical listing schema for published Connect endpoints.
Primary implementation areas: minekube/website for the product read model/API, minekube/moxy for timestamped reachability input, and minekube/connect for public documentation.
Contract
Ordinary HTTPS JSON with a published OpenAPI contract; generated clients are optional conveniences.
Stable opaque public listing IDs and owner-selected slugs that are not internal database IDs.
Cursor pagination with deterministic ordering.
Search plus fixed facets for category, language, edition, Minecraft version, vanilla/modded, loader/modpack compatibility, and online/freshness state.
Detail lookup, taxonomy discovery, and capability/version negotiation.
A clear additive-change, deprecation, and API-version policy.
Privacy boundary
Responses must be derived from explicit publication state, never directly from active connector registration. Do not expose tokens, private endpoints, organizations, internal IDs, IPs, connector/libp2p topology, sessions, player identities, friend presence, raw votes, or precise historical activity.
Acceptance criteria
A contract fixture and threat model exist before implementation.
Search, detail, facets, pagination, filtering, sorting, caching, rate limiting, and error behavior are covered by executable contract tests.
Public reads work without an account, cookie, API key, endpoint token, or Minekube-specific SDK.
Published records contain verified addresses, compatibility, and timestamped coarse status from authoritative sources.
Unpublished and moderation-removed records return the documented non-enumerable response and disappear from every page/cache/feed within the stated bound.
Identifier guessing, malformed filters, oversized pages, cache poisoning, scraping bursts, and stale status are tested.
OpenAPI documentation and minimal curl, Java/Kotlin, Go, and TypeScript examples are public.
A version skew test proves an older supported client ignores additive fields and receives an actionable response for unsupported breaking versions.
SLOs cover API availability, p95 latency, cache freshness, status freshness, and delisting propagation.
Non-goals
Endpoint management or token-bearing operations in the anonymous API.
Direct access to Moxy's internal registry or database.
Human need
Every Connect discovery surface needs the same stable, open answer to “which owner-published endpoints match this player?” Third parties should not need to scrape the website or obtain endpoint credentials.
Outcome
Define and ship a versioned, unauthenticated, read-only public directory API and canonical listing schema for published Connect endpoints.
Primary implementation areas:
minekube/websitefor the product read model/API,minekube/moxyfor timestamped reachability input, andminekube/connectfor public documentation.Contract
ETag,Last-Modified,Cache-Control, conditional requests, CORS, bounded anonymous rate limits, and documented error envelopes.Privacy boundary
Responses must be derived from explicit publication state, never directly from active connector registration. Do not expose tokens, private endpoints, organizations, internal IDs, IPs, connector/libp2p topology, sessions, player identities, friend presence, raw votes, or precise historical activity.
Acceptance criteria
Non-goals