Skip to content

fix: take the production fleet out of the test corpus - #72

Merged
vishr merged 1 commit into
mainfrom
docs/readme-links-to-the-site
Aug 18, 2026
Merged

fix: take the production fleet out of the test corpus#72
vishr merged 1 commit into
mainfrom
docs/readme-links-to-the-site

Conversation

@vishr

@vishr vishr commented Aug 18, 2026

Copy link
Copy Markdown
Member

Found while auditing what became visible when the repository went public.

The corpus named five live hosts

internal/app/testdata/corpus/ contained real production targets, each with the account used to reach them:

Config Host Resolves to
monk.yml root@<host>
goal.yml root@<host>
fanout.yml root@<host>
recast.yml root@<host>
pursue.yml root@<ip>

All five resolve. Beside them the same files carry each application's topology, images, ports, replica counts and health endpoints — so the corpus was a machine-readable inventory of what runs where, and as whom.

Fine in a private repository. Not fine now.

Anonymised at no cost

The server field never reaches the rendered runtime, so the frozen contract digests do not move. The corpus keeps exactly the shapes it was written to freeze, addressed at example.com and the RFC 5737 documentation range instead.

Verified by rewriting one file first and watching TestContractDidNotMove stay green before touching the rest.

README now links to onebox.run

Its only mentions of the domain were schema identifiers. Someone arriving at the repository had no route to the published documentation, and the installation guide pointed at a source path rather than the page.

Not fixable from here

Two issues name a live host in their bodies — #13 (root@<host>) and #3. Editing them leaves the original in GitHub's publicly visible edit history, so they need redacting or deleting through the UI, and the exposure should be assumed to have happened.

Verified

just check, go test -race ./.... No real hostname or public IP remains in any tracked file.

…README at the site

internal/app/testdata/corpus/ named five live hosts, each with the account used
to reach them:

    root@monk.labstack.net      root@goal.labstack.net
    root@fanout.labstack.net    root@recast.labstack.net
    root@167.233.193.130

All five resolve today. Beside them the same files carry each application's
topology, images, ports, replica counts and health endpoints, so the corpus was
a machine-readable inventory of what runs where, and as whom. That was private
information in a private repository until the repository went public.

The server field does not reach the rendered runtime, so the frozen contract
digests do not move: the corpus keeps exactly the shapes it was written to
freeze, addressed at example.com and the RFC 5737 documentation range instead.
Checked by rewriting one file and watching TestContractDidNotMove stay green
before doing the rest.

The README also never linked to onebox.run — its only mentions of the domain
were schema identifiers. Anyone arriving at the repository had no route to the
published documentation, and the installation guide pointed at a source path
rather than the page. Both now point at the site.

Two issues still name a live host in their bodies, #13 and #3, and are not
fixable from here: editing them leaves the original visible in GitHub's edit
history. They need redacting or deleting through the UI.

`just check` and `go test -race ./...` pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vishr
vishr merged commit ebe6c19 into main Aug 18, 2026
5 checks passed
vishr added a commit that referenced this pull request Aug 18, 2026
fix: take the production fleet out of the test corpus
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.

1 participant