Skip to content

feat(soap): add WSDL smoke Hurl scaffold - #1466

Merged
sakibshuvo merged 2 commits into
mainfrom
feature/soap-wsdl-smoke-scaffold
Jul 5, 2026
Merged

feat(soap): add WSDL smoke Hurl scaffold#1466
sakibshuvo merged 2 commits into
mainfrom
feature/soap-wsdl-smoke-scaffold

Conversation

@sakibshuvo

@sakibshuvo sakibshuvo commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Closes #1448

Summary

  • Add a pure entroping.bridge.soap_to_hurl compiler for deterministic local WSDL-to-SOAP Hurl smoke scaffolds.
  • Add a checked-in SOAP WSDL fixture and document the scaffold path in the SOAP example and TDS bridge inventory.
  • Preserve privacy by rendering only aggregate WSDL metadata and caller-provided target URL; WSDL operation names, service addresses, SOAPAction URLs, and XML payload contents are not emitted.

Verification lane

normal-code

Commands run

Commands run:

  • uv run pytest tests/test_soap_to_hurl.py -q PASS
  • uv run ruff check src/entroping/bridge/soap_to_hurl.py tests/test_soap_to_hurl.py PASS
  • uv run mypy src/entroping/bridge/soap_to_hurl.py tests/test_soap_to_hurl.py PASS
  • uv run pytest tests/test_soap_to_hurl.py --cov=entroping.bridge.soap_to_hurl --cov-report=term-missing --cov-fail-under=100 -q PASS, 100% coverage
  • scripts/context_pack.sh --mode implementation --manifest PASS, 339969 / 340000 bytes
  • uv run pytest tests/test_context_pack_script.py::test_context_pack_manifest_reports_budgeted_file_inventory_without_pack_body tests/test_context_pack_script.py::test_context_pack_strict_budget_passes_for_default_implementation_budget -q PASS
    scripts/feature_gate.sh PASS, 4228 passed
    scripts/audit_quality.sh PASS, 100.00% product coverage, quality audit finished

CI repair verification:

  • uv run pytest tests/test_soap_to_hurl.py --cov=entroping.bridge.soap_to_hurl --cov-report=term-missing --cov-fail-under=100 -q PASS, 100% coverage
  • uv run ruff check src/entroping/bridge/soap_to_hurl.py tests/test_soap_to_hurl.py PASS
  • uv run mypy src/entroping/bridge/soap_to_hurl.py tests/test_soap_to_hurl.py PASS
  • uvx bandit -r src/entroping/bridge/soap_to_hurl.py -ll PASS, no issues
  • scripts/feature_gate.sh --security PASS, 4228 passed and dependency/security audit clean

Documentation Impact Declaration

  • Documentation updated: examples/soap-api/README.md and docs/technical/TDS.md
  • Documentation not needed

Agent Autonomy Declaration

  • Provider lane: codex/direct
  • Provider host: local Codex CLI
  • Billing path: Codex quota
  • Model id: GPT-5 Codex
  • Autonomy tier: Tier B assisted lane
  • Merge authority: Codex/human required
  • Verification lane: normal-code
  • Worktree: /Users/sakibshuvo/projects/Entroping-issue-1448
  • Branch: feature/soap-wsdl-smoke-scaffold
  • PR: pending
  • Files changed: src/entroping/bridge/soap_to_hurl.py, tests/test_soap_to_hurl.py, examples/soap-api/contracts/orders.wsdl, examples/soap-api/README.md, docs/technical/TDS.md
  • Tests/gates run: see Commands run
  • CI status: rerunning after Bandit import fix
  • Artifacts: none
  • Known gaps: none
  • Finish script status: pending merge

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0b22f65b50

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"# entroping: scaffold=soap-envelope-smoke",
"",
f"POST {normalized_url}",
"Content-Type: text/xml; charset=utf-8",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Select SOAP 1.2 wire format when compiling soap12 WSDLs

When the WSDL uses a SOAP 1.2 binding (http://schemas.xmlsoap.org/wsdl/soap12/), _soap_action_count accepts/counts it, but the generated request is still SOAP 1.1 (text/xml here and the SOAP 1.1 envelope namespace below). SOAP 1.2 endpoints commonly require application/soap+xml plus the 2003 envelope namespace, so those accepted WSDLs produce a smoke test that is rejected before any assertion can pass; detect the binding version or reject soap12 instead of emitting a SOAP 1.1 request.

Useful? React with 👍 / 👎.

@sakibshuvo
sakibshuvo merged commit ea603e7 into main Jul 5, 2026
13 checks passed
@sakibshuvo
sakibshuvo deleted the feature/soap-wsdl-smoke-scaffold branch July 5, 2026 00:25
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.

soap: add deterministic SOAP XML smoke scaffold from local WSDL fixture

1 participant