Releases: cdot65/pan-scm-cli
v1.5.0
GlobalProtect (mobile-agent) coverage for pan-scm-sdk 0.15.0. Adds CLI commands for all nine new mobile-agent services under scm <action> mobile-agent <object>:
agent-profileandtunnel-profile— full set/delete/show/backup/loadinfrastructure-setting— full set/delete/show/backup/load;global-setting— show/set (tenant singleton)forwarding-profileandforwarding-profile-destination— full pattern incl. PAC/GP-proxy/ZTNA profile types and rulesforwarding-profile-source-application,forwarding-profile-user-location,forwarding-profile-regional-and-custom-proxy— full pattern
Also bumps the SDK pin to ^0.15.0 (auth-settings spec alignment verified, non-breaking). Nested configurations are supported through load YAML; common fields are exposed as flags on set.
v1.4.0
Add scm set/load/backup setup device commands for updating the writable device fields (display_name, folder, description, labels, snippets) landed in pan-scm-sdk 0.14.0. scm show setup device now displays those fields. Devices remain uncreatable and undeletable — they register through the firewall itself.
v1.3.5
v1.3.4
Fixes
- Incident Show: Fixed
scm incidents show <id>— works against real SCM API. Bypasses SDKget_details()parsing bug that failed on the{header, data}response wrapper. - Full Incident IDs: Table now shows full UUID for easy copy-paste into
showcommand. - Remediation Parsing: Parses the nested JSON remediations field into readable numbered steps.
- Epoch Timestamps: Incident dates display as human-readable
YYYY-MM-DD HH:MMinstead of raw epoch integers.
Verified Against Real SCM API
scm incidents list ✓ (50 incidents, filters work)
scm incidents list --severity Warning ✓
scm incidents show <uuid> ✓ (alerts + remediation steps)
scm incidents show <uuid> --json ✓
v1.3.3
Fixes
- Device Name Resolution:
--device austin-01now works — searches hostname, display_name, name, and serial_number fields. Shows available devices when no match found. - Incidents Table: Epoch timestamps converted to human-readable dates. Long IDs truncated.
- API 404 Handling: Clear error message when Operations or Local Config API is unavailable, instead of "Invalid error response format".
Verified Against Real SCM API
scm incidents listwith filters — workingscm incidents show <id>with alerts — working- Device resolution:
austin-01→007954000653665— working - Operations/Local Config: 404 on test tenant (may require specific licensing)
v1.3.2
Fixes
- Device Name Resolution:
--device austin-fw1now works. The CLI automatically resolves device names to serial numbers via the SCM device API. Serial numbers (14-15 digits) are still accepted directly. - SDK Model Alignment: Mock data and live API calls fully aligned with actual SDK 0.13.0 Pydantic model schemas (local config, device operations, incidents).
v1.3.1
Fixes
- Region Compatibility:
Scm()constructor now only receivesregionif the installed SDK supports it — fixesunexpected keyword argument 'region'crash when SDK <0.13.0 is installed - Local Config API:
list()→list_versions(), version typeint→str - Device Operations API: Use per-method dispatch (
route_table(),fib_table(), etc.) withdevices=[device]list param.status()→get_job_status() - Incidents API: Filter params use lists,
get()→get_details(), response model extraction fixed
v1.3.0
What's New
SDK 0.13.0 Upgrade
Upgraded pan-scm-sdk from 0.12.x to 0.13.0, bringing Operations API, Incidents API, and region support.
New Commands
Local Config (scm local)
scm local list --device <name>— List device configuration versionsscm local download --device <name> --version <id>— Download config as XML (stdout or--outputfile)
Device Operations (scm operations)
- 7 operation types:
route-table,fib-table,dns-proxy,interfaces,device-rules,bgp-export,logging-status scm operations status --job-id <id>— Check async job status- Default sync mode (poll to completion),
--asyncflag for fire-and-forget --timeoutcontrols sync polling duration
Incidents (scm incidents)
scm incidents list— Search incidents with--status,--severity,--productfiltersscm incidents show <id>— View incident detail with alerts and remediation steps--jsonflag on both commands for automation
Region Support
scm context create <name> --region europe— Store region per-contextscm --region americas ...— Override region per-invocation- Precedence: global flag > context > "americas" default
Other Changes
- Handle
GatewayTimeoutErrorwith recovery instructions - Fix mypy errors from SDK 0.13.0 stricter type stubs
- 957 tests passing, 29 skipped
v1.2.1
Fixed
- Lint errors: section separator lines trimmed to 191 chars, import ordering fixed in sdk_client.py
- CI now passes cleanly
Full Changelog: v1.2.0...v1.2.1
v1.2.0
What's Changed
Fixed
- BPA Config Upload: Fixed broken upload to presigned GCS URL — config data is now gzip-compressed with correct headers (
Content-Type: plain/text,Content-Encoding: gzip) - BPA Status Validator: Added
UPLOAD_COMPLETEto accepted BPA processing statuses
Changed
- BPA Report Parser: Rewrote for real nested BPA schema (
best_practices→ category → subcategory → items → warnings) - Score Command:
--scopenow uses real BPA categories (device,service_health,network,policies,objects).--formatsupportsjson/markdown/csv - Assess Command: Outputs formatted results to stdout after saving raw report. Added
--formatoption. Progress on stderr for clean piping
Added
- Output Formats: JSON (agent-friendly), Markdown (human-readable tables), CSV (spreadsheet/pipeline) on both
assessandscore - Posture Documentation: Full CLI reference page for
export,assess,scorecommands
Full Changelog: v1.1.0...v1.2.0