-
released this
2026-08-24 08:56:00 -05:00 | 91 commits to main since this releaseThe sweep that removed the credential left the person behind it. 0.39.0 took a real
Canvas feed URL out oftests/test_feeds.pyand genericised the institution in its host.
Four lines below that fix sat the same university's athletics host, and elsewhere in the
suite sat the account holder's name and one of their calendar names — none of them a
credential, all of them read off a real account or the person holding it.Security
-
No fixture names the account holder. A full real name stood as the
comma-in-a-display-name example inmcp_gateway/mail/parts.py, a real calendar name was
the colon fixture intests/test_config.pyandtests/test_eventid.py, and a first name
was an OAuth email claim. Each replacement keeps the shape the test is actually about and
drops the person: the display name still contains a comma, and the calendar name still
contains the colon that forcesCALENDARSto be quoted. -
No fixture names the institution. The athletics host of the university that
<school>.instructure.comhad just stopped naming was still intests/test_feeds.py,
proving that a path segment with no extension redacts to the bare host. A reserved domain
proves it identically.
Added
-
tests/test_no_pii.pyrefuses an unrecognised real host intests/. The Canvas rule
added in 0.39.0 is pinned to a vendor, and a vendor-pinned rule is blind to a host at an
unrelated domain however plainly it names the same institution — which is how one
survived the commit that removed the other. A fixture may name a vendor endpoint the
tenants integrate against or this project's own infrastructure, and nothing else; an
organisation someone belongs to is neither.Scoped to
tests/, not the repo. Prose has every reason to name real hosts — a
registry, a spec, a changelog entry about an outage — and a rule that fought the
documentation would be widened until it matched nothing. A fixture is invented input, so
a real host in one arrived by being pasted from somewhere real.A port is stripped before the host is judged and an unparseable authority is skipped:
the deployment tests carry:8443and:8787, andtest_icloudmail_unsubscribefeeds
https://[oopsto the gate on purpose. Proved in both directions — the rule was run
against the host it exists to catch, and reports it and nothing else.
Note
- This release changes no runtime code.
mcp_gateway/is untouched apart from one
docstring and the version constant, so the deployed behaviour is identical to 0.39.0.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
1 download
-