Skip to content

Support locally managed firewalls; rename to panos-decrypt-bypass (0.2.0) - #2

Merged
Former-Stranger merged 4 commits into
mainfrom
standalone-firewalls
Oct 15, 2026
Merged

Former-Stranger merged 4 commits into
mainfrom
standalone-firewalls

Conversation

@Former-Stranger

Copy link
Copy Markdown
Owner

What does this change?

  • Renames the project to panos-decrypt-bypass: package, CLI command, images, compose service, cookie and docs. PDB_VERSION replaces SDB_VERSION. Existing data directories keep working; docs/installation.md has upgrade steps for 0.1.0 installs.
  • Adds MANAGEMENT=local for firewalls that aren't managed by SCM or Panorama. A second Terraform module (terraform/local, PaloAltoNetworks/panos 2.0.14) creates the same URL category, address objects, tag, EDLs, profile and ordered no-decrypt rules in a vsys. Deploys finish with a partial commit over the XML API, limited to FIREWALL_USERNAME's changes. MANAGEMENT=scm stays the default.
  • The SCM module moves to terraform/scm. Both modules share an identical lists.tf, and a test checks the two copies match.
  • Data directories record which module files they hold, so stale files are cleaned up. Running one mode against the other mode's Terraform state is refused.
  • One-click bypasses on a local firewall still auto-apply only when the plan just grows the URL list or adds the URL rule. Anything else goes to review, which shows changes per rule.
  • FIREWALL_CA_FILE reaches Terraform as a CA bundle through SSL_CERT_FILE.
  • New panos-decrypt-bypass terraform <args> passthrough for destroy, import and state commands, plus a commit alias for push.
  • Decryption exclusions stay SCM-only, with a warning in local mode. On a local firewall they're part of the SSL decryption settings that also hold the forward-trust certificates.
  • The image mirrors both providers. CI tests both modules and checks that both initialise with no network.

How was it tested?

  • uv run python -m unittest discover tests: 70 tests, 25 of them new (workspace, local deployer, auto-approve rules, commit against a fake firewall)
  • terraform test: 5 mocked-provider runs per module
  • Tried it in demo mode (both modes) and against a real firewall: PAN-OS 11.2 with an XML-API-only role (Log, Configuration, Operational Requests, Commit). Covered: plan, CLI deploy, one-click bypass (auto-applied), a deploy that stopped for review and was then confirmed, rule order, a clean re-plan, wrong-admin detection, destroy and commit. Nothing was left behind.
  • Image built and both modules initialised offline from the bundled mirror.

Checklist

  • Docs and CHANGELOG.md (0.2.0) updated where users would notice
  • No real hostnames, IPs, tenant IDs, keys or logs in code, tests or this PR

🤖 Generated with Claude Code

Former-Stranger and others added 4 commits October 15, 2026 09:11
It's about to support firewalls that aren't managed by Strata Cloud
Manager, so the SCM-specific name no longer fits. Renames the Python
package, CLI command, images, compose service, docs and the session
cookie (signing everyone out once). PDB_VERSION replaces SDB_VERSION.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MANAGEMENT=local switches the app to a second Terraform module that uses
the PaloAltoNetworks/panos provider to create the same URL category,
address objects, tag, EDLs, profile and ordered no-decrypt rules in a vsys
on the firewall itself. Deploys then commit over the XML API, partial to
FIREWALL_USERNAME's changes, instead of pushing from SCM.

- The SCM module moves to terraform/scm; list parsing is shared with
  terraform/local through an identical lists.tf (checked by a test).
- Data directories record which module files they hold, so upgrades and
  mode switches remove stale files; running one mode against the other's
  state is refused.
- One-click bypasses on a local firewall still apply without review only
  when the plan just grows the URL list or adds the URL rule.
- FIREWALL_CA_FILE is passed to Terraform as a CA bundle via SSL_CERT_FILE.
- Decryption exclusions stay SCM-only: on a local firewall they live in
  the SSL decryption settings next to the forward-trust certificates.
- The image mirrors both providers; CI tests both modules and checks they
  initialise offline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`panos-decrypt-bypass terraform <args>` runs Terraform in the working
directory with the app's settings. The documented destroy and import
commands ran terraform directly, which in local mode lacked the PANOS_*
connection settings.

Tested end to end on PAN-OS 11.2.10 with an XML-API-only role (Log,
Configuration, Operational Requests, Commit): plan, one-click bypass,
review, partial commit, wrong-admin detection, destroy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Former-Stranger
Former-Stranger merged commit a0807b0 into main Oct 15, 2026
9 checks passed
@Former-Stranger
Former-Stranger deleted the standalone-firewalls branch October 15, 2026 16:02
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