Skip to content

Use placeholder identifiers in the URL validation tests - #29

Merged
igor-ctrl merged 1 commit into
mainfrom
chore/sanitize-test-identifiers
Aug 4, 2026
Merged

Use placeholder identifiers in the URL validation tests#29
igor-ctrl merged 1 commit into
mainfrom
chore/sanitize-test-identifiers

Conversation

@igor-ctrl

Copy link
Copy Markdown
Owner

Overview

Blocks the 0.7.0 PyPI release. The test added in #27 was written with a real
company GUID, a real sandbox environment name, and a real custom-API
publisher/group. This repo is public and domain-neutral by design — concrete tenant
identifiers belong in the private overlay that consumes it, never here.

They are identifiers rather than credentials (they appear in URLs and tokens, they
are not secrets), so this is a hygiene violation rather than an incident. But it
should not ship.

Why it matters more than "it's just a test file"

The wheel contains only bcli, bcli_cli, bcli_mcp — but the sdist ships the
test tree
(130 files). So publishing 0.7.0 as-is would bake the value into an
immutable, mirrored PyPI artifact, which is materially worse than it living in git
history. Verified by building locally and listing both artifacts.

Changes

Switched to the conventions the neighbouring URL tests already use — company
abc-123, publisher contoso — plus a placeholder GUID and generic entity names
(widgets, ledgerEntries, Microsoft.NAV.doThing). The traversal payloads keep
their exact shape, which is the only part the assertions depend on.

Test plan

  • uv run pytest1075 passed, 5 skipped on top of current main
  • uv run ruff check src tests — clean
  • Whole-tree grep for the tenant id, all eight company GUIDs, all six app ids, the three group GUIDs and the live sandbox name — no matches anywhere in tracked files
  • Tag v0.7.0 after this merges

This test was written with a real company GUID, a real sandbox environment name,
and a real custom-API publisher/group. This repo is public and domain-neutral by
design; concrete tenant identifiers belong in the private overlay that consumes
it, never here.

Switched to the conventions the neighbouring URL tests already use — company
"abc-123", publisher "contoso" — plus a placeholder GUID and generic entity
names. The traversal payloads keep their shape, which is the only part that
matters to what is being asserted.

Worth noting for anyone auditing later: the wheel contains only the three
packages, but the sdist ships the test tree, so a value left here would have
been published inside an immutable PyPI artifact rather than only living in git.
@igor-ctrl
igor-ctrl merged commit b7cc7ef into main Aug 4, 2026
3 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.

1 participant