Metadata-Version: 2.4
Name: postman-bootstrap
Version: 0.14.0
Summary: AWS Transform agent that bootstraps a Postman validation workspace and release gate from a pre-transform repository
Author: Postman Field Engineering
License: Apache-2.0
Project-URL: Homepage, https://www.postman.com
Keywords: aws-transform,postman,api-governance,regression-testing
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: pyyaml>=6.0
Provides-Extra: agent
Requires-Dist: agent-builder-sdk-aws-transform>=0.1; extra == "agent"
Requires-Dist: agent-builder-agentic-mcp-aws-transform>=0.1; extra == "agent"
Requires-Dist: strands-agents>=1.0; extra == "agent"
Provides-Extra: mcp
Requires-Dist: mcp>=1.0; extra == "mcp"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0; extra == "dev"
Requires-Dist: jsonschema>=4.0; extra == "dev"
Requires-Dist: hypothesis>=6.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.6; extra == "dev"
Requires-Dist: ruff>=0.6; extra == "dev"

# postman-bootstrap

Build a release gate that proves a modernized system still behaves like the one it
replaced.

Rewrites, ports and framework upgrades are graded on whether the new code compiles, lints
and starts. None of that is a claim about behavior. This records what the original system
actually did, before it changes, and turns that recording into a gate your CI runs against
the replacement.

```bash
pip install postman-bootstrap
```

Python 3.11+. The base install pulls PyYAML and nothing else.

## The shape of it

Run it on the **pre-transform** checkout. That ordering is the whole idea: governance and
contract tests can be rebuilt from code at any time, but the original system's behavior
survives only in what you captured before it changed.

```bash
postman-bootstrap scan          --repo .    # stack, routes, legacy interface class
postman-bootstrap init          --repo . --api-name "Orders" --legacy-interface http_service
postman-bootstrap capture-plan  --repo .    # which cases are worth recording
postman-bootstrap review        --repo .    # what the plan covers, and what it does not
postman-bootstrap capture       --repo . --boot   # record what the original answers
postman-bootstrap build-gate    --repo .    # emit the gate and its CI
postman-bootstrap check         --repo .    # run it
```

You end up with a `postman/` directory and a `ci/gate.sh` in your repository:

| | |
| --- | --- |
| OpenAPI 3.1 spec | what the estate's contract is |
| Governance ruleset | whether that contract is well-formed |
| Golden corpus | what the pre-transform system actually did |
| Regression suite | whether the new system matches it, case by case |
| Contract tests | whether each endpoint honors its own contract |
| Environments | `baseline`, `target`, `mock` |

Any of them failing exits non-zero. That is the gate.

## What it is careful about

**The gate does not depend on this package.** `ci/gate.sh` runs Python against the helper
scripts written beside it, plus the Postman CLI and Spectral. Once the gate exists it is
files in your repository, and it keeps working whether or not you ever install this again.

**Comparison starts exact.** Every suppression is recorded in the manifest rather than
applied quietly, because a gate that was widened until it went green is not evidence.

**Coverage is reported honestly.** `gate-status` names the operations reached only by
cases that errored, the documented codes no case reaches, and the operations whose success
body is asserted against nothing. A captured case is not a covered case, and a case count
is not coverage.

**A system with no HTTP surface still works.** `postman-bootstrap shim` generates a thin
HTTP facade over a library, batch job, or CLI, emitted as readable source so you can check
that it projects the code rather than reinterpreting it.

## Optional extras

```bash
pip install "postman-bootstrap[mcp]"      # MCP server over the same core, for an agent to drive
pip install "postman-bootstrap[agent]"    # the Bedrock agent runtime
```

Both are deliberately optional. The base install is the CLI, and it needs no model, no AWS
account, and no Postman key. A Postman API key is only required to mirror the result into
a live workspace; without one every file is still emitted and the gate still runs.

## Licence

Apache-2.0. Built by Postman Field Engineering.
