POST Contract Probing
Use probe_post_requirements to run controlled POST probes against sandbox endpoints and collect validation errors that reveal missing required fields.
This utility is intended for manual contract discovery in a sandbox or explicit test environment. It is not part of the automated run_all_checks flow.
Safety Rules
Use sandbox credentials only.
Keep payloads intentionally invalid to force validation errors before persistence.
Keep action/trigger endpoints (
risk: "high") disabled unless explicitly allowed.
Probe Plan Format
The plan file is JSON with a probes list and optional default_headers:
{
"default_headers": {"X-Probe-Run": "sdk-contract-discovery"},
"probes": [
{
"name": "create_quote_missing_required_fields",
"path": "/api/v2/quotes/create_quote",
"payload": {},
"risk": "medium",
"notes": "Expected validation error with required fields"
}
]
}
A starter plan is available at examples/post_probe_plan.json.
Run
python -m britecore_sdk.utils.probe_post_requirements --plan examples/post_probe_plan.json --site your_sandbox_site
Generate probes directly from the reference spec for POST endpoints with no documented arguments:
python -m britecore_sdk.utils.probe_post_requirements --use-spec-no-args --site your_sandbox_site
Broader mode: include POST endpoints whose application/json schema exists but has no properties/required fields:
python -m britecore_sdk.utils.probe_post_requirements --use-spec-empty-properties --site your_sandbox_site
Preview selected endpoints without sending any requests:
python -m britecore_sdk.utils.probe_post_requirements --use-spec-empty-properties --include-path-regex "/api/v2/quotes/" --print-selected-paths --site your_sandbox_site
Export the preview list for review in JSON or CSV:
python -m britecore_sdk.utils.probe_post_requirements --use-spec-empty-properties --export-selected-paths examples/selected_no_args.json --site your_sandbox_site
python -m britecore_sdk.utils.probe_post_requirements --use-spec-empty-properties --export-selected-paths examples/selected_no_args.csv --site your_sandbox_site
--print-selected-paths and --export-selected-paths are mutually exclusive preview modes.
Narrow to a domain and persist the generated probe plan for review/editing:
python -m britecore_sdk.utils.probe_post_requirements --use-spec-no-args --include-path-regex "/api/v2/quotes/" --max-probes 25 --write-generated-plan examples/generated_no_args_probe_plan.json --site your_sandbox_site
With explicit credentials (bypass file-based config lookup):
python -m britecore_sdk.utils.probe_post_requirements --plan examples/post_probe_plan.json --base-url api.example.com --api-key your_api_key
To include risk: "high" probes:
python -m britecore_sdk.utils.probe_post_requirements --plan examples/post_probe_plan.json --site your_sandbox_site --allow-high-risk
Output
post_probe_report.json: machine-readable results for test/doc updates.post_probe_report.md: review-friendly summary with inferred required fields.
Use these outputs to update wrapper docstrings and add focused tests for discovered validation behavior.