---
agentTools:
  projectIndex: https://regscale.readme.io/llms.txt
---

# CLI 6.43.0

## \[6.43.0] - 2026-08-31

### Added

* JCAM: `jcam dry_run` now follows POA\&Ms to their milestones, so the milestone mapping can be
  checked before an import rather than only by importing and looking. It samples a few POA\&Ms
  per system by default, since a dry run proves the mapping rather than enumerating the data;
  `--limit 0` follows every one. When the sampled POA\&Ms carry no milestones it says so, rather
  than leaving an empty result that reads the same as a mapping which produced nothing.
* Configurable JCAM field mapping. Where each JCAM value lands in RegScale is expressed as a mapping profile rather than hard-coded, so a tenant whose custom fields are named or arranged differently is served by configuration instead of a release. Two profiles ship: `legacy` reproduces the previous behaviour for existing tenants, and `modern` is the recommended layout for new ones. A new `jcam dry_run` command shows what an import would write, without writing it
* Interactive terminal GUI in beta (`regscale gui` / `regscale tui`) for browsing, configuring, and running CLI commands with searchable autocomplete pickers for RegScale records, live console output, and run history

### Changed

* JCAM: `jcam dry_run --verbose` now states, for each destination it would write, whether the
  field is custom or native, which of its names matched, and the label a user sees for it in
  the UI. A field name on its own could not answer "did this land in the right field", since
  RegScale carries three names per field and calls two of them the same thing.
* Legacy Azure AD sync commands sync\_admins, sync\_general, and sync\_readonly replaced by sync\_app and sync\_tenant\_admins, with removal stubs that name the replacement command and warn where it is not a drop-in and requires App and AppGroup setup first
* Legacy Azure AD ad\* configuration keys are deprecated in favor of azureEntraClientId, azureEntraSecret, and azureEntraTenantId but are still applied for one release cycle, so an existing init.yaml keeps working while a warning names the rename each command needs
* Azure AD/Entra synchronization redesigned for App Management IAM model with per-App and tenant-admin sync commands

### Fixed

* JCAM: `jcam check_custom_fields` now also reports what the configured mapping profile cannot
  resolve against the tenant. It previously checked only the field lists the importers name,
  so a tenant could be told it was fully configured and still have its import refused for a
  field the profile needs but no importer constant mentions.
* JCAM: a value the profile refuses to translate now fails that record and is recorded in the
  run report, instead of ending the whole import with a traceback. It was raised as a plain
  RuntimeError, which none of the per-record handlers caught.
* JCAM: a mapping profile that cannot resolve, or configuration naming something that does not
  exist, now reports its message and exits non-zero instead of ending the command with a
  traceback. The message was already actionable; the stack around it was not.
* JCAM: a `jcamValueMapping` override on a source translated by a mapper is now refused rather
  than silently replacing the mapper with a static dictionary, which lost a lookup that
  consults the tenant and turned every unlisted value into a failed import. A sparse override
  on a plain source now leaves values it does not name alone rather than treating them as
  errors, and everything an override produces is validated the way the shipped profiles are.
* JCAM interconnection descriptions are saved. They were passed to a field name the model does not have, and unknown fields are ignored rather than rejected, so every interconnection imported from JCAM was created without a description
* JCAM points of contact whose position name carries surrounding whitespace now reach their RegScale role or custom field instead of being silently discarded
* JCAM import no longer fails when a cloud attribute has no value, and milestone notes preserve an absent value instead of recording the text "None"
* Azure AD sync reports and lock files now honor the configured artifacts directory instead of always writing to a relative artifacts folder
* Tag filtering no longer silently drops matching AWS networking resources for Direct Connect, Transit Gateway, VPN, Global Accelerator, Network Firewall, and Route53 Resolver