[6.45.8] - 2026-09-10

Added

  • JCAM imports can now create the system roles a plan is missing. Declare them in the new jcamSystemRoles init.yaml key along with the five values RegScale requires and JCAM does not send; without that key nothing is created and behaviour is unchanged.

Changed

  • The recommended JCAM mapping profile now writes to spelled-out field names such as "Maximum Tolerable Downtime (MTD)" and "Authorization Status" rather than abbreviations, matching the names JCAM and RegScale tenants already use. The legacy profile is unchanged.
  • The recommended JCAM mapping profile no longer assumes what an agency calls its agency-defined items. A new jcamAgencyDefinedHandling setting names which of your attributes carry a High Value Asset flag or a cloud descriptor, so the built-in handling applies whatever your agency named them. The legacy profile is unchanged.
  • jcam check_config now reads every JCAM system in scope rather than the first one when reporting system roles, and names any position that no role covers.

Fixed

  • JCAM mapping no longer reports a false "RegScale has no module named 'milestones'" error, reads the module list once per run instead of once per module, stops rather than continuing when the module list cannot be read, and no longer describes unresolved destinations as a tab problem
  • A JCAM field mapping destination may contain a slash, so a RegScale field whose name contains one can now be mapped
  • JCAM imports no longer fail when a JCAM field holds a numeric value
  • JCAM POA&M severity is no longer filled from JCAM's computed criticality when no human-set value exists, since the two are different facts
  • JCAM POA&M import now reads the pre-rename criticality key, so tenants that predate the CSAM to JCAM rename populate the derived criticality field
  • jcam preview_poc_roles no longer refuses to run on a tenant whose mapping profile does not fully resolve. Building the import scope needs one destination, the JCAM system id, so it no longer demands the whole profile. Every importer and exporter still refuses a half-configured tenant on its own.

ROH 6.34.0.0 Release

Release Overview

Release Name: ROH Beta Minor Release

Release Type: Minor

Release Number: 6.34.0.0

Purpose

RegScale Orchestration Hub (ROH) enables organizations to automate the import and export of data between RegScale and external systems through configurable integrations and commands.

This beta release is intended for early adopters and validation of core orchestration capabilities. Functionality, supported integrations, and performance characteristics may change before General Availability (GA). This minor release delivers reliability, usability, and maintenance improvements for early adopters, summarized below.

What's Included

  • Single sign-on updated for RegScale's hardened OAuth/SSO authentication. RegScale 6.34.0.1 strengthened the platform's OAuth and SAML single sign-on controls so that a RegScale session cannot be established without successful authentication and validation through the configured identity provider. Orchestration Hub has been updated to work with those controls, and the two changes are designed to be deployed together.
  • Updated bundled RegScale user interface. The bundled interface uses a secure seed for completing OAuth-based single sign-on authentication because the platform verifier now requires it from 6.34.0.1 onward. Both halves of this change ship in ROH 6.34.0.0 and are required together.
  • No configuration change is required. This change does not affect existing OAuth and SAML single sign-on configuration settings.

Known Limitations

  • SAML single sign-on redirects: Orchestration Hub will redirect to the URL of the linked RegScale instance in some cases, not the Orchestration Hub.

Maintenance and Updates

Deployment Notes

The Orchestration Hub 6.34.0.0 Release requires RegScale 6.34.0.1 or newer. An environment running ROH 6.34.0.0 against a platform build older than 6.34.0.1 will fail single sign-on authentication, because the versioned authentication endpoint ROH calls does not exist on that build. Confirm the platform version before rolling out ROH 6.34.0.0.

[6.34.0.1] 09-09-2026

Enhancements

Artifact Hub

Artifact Hub streamlines the creation and recurring update of standardized artifacts. Create a reusable template once, identify fields that change over time, and generate updated artifacts through a guided workflow.

  • Includes 16 ready-to-use templates, including Business Impact Analysis, POA&M Action Plan, and Significant Change Request.
  • Import existing DOCX, PDF, Markdown, or TXT files up to 50 MB and convert them into reusable templates.
  • Define variable fields through a guided interface and generate new artifacts using a simple wizard.
  • Generated artifacts are retained in version history for traceability.
  • Access Artifact Hub from the Workspaces menu within a Security Plan or Component.

Evidence Management

Evidence Versioning
Evidence files can now be associated with specific audit cycles, making it easier to distinguish current-cycle evidence from evidence used in previous cycles. Cycle assignments can also be corrected without re-uploading the file.

Evidence-to-Control Correlation
The By Control view now groups evidence by unique control rather than individual control instances, reducing duplicate entries and providing a consolidated view of evidence associated with each control.

Evidence Module UI Modifications
On the Evidence Locker Mappings screen, cards and graphs are now clickable, exposing the summary data underlying each visual.

SSP Approval Workflows

Use Workflow Designer to facilitate the approval of a Security Plan. Approval history is retained for visibility. In addition, workflows now support the process of re-approving a Security Plan after modifications were made.

SSP Excel Template Import

A new Excel-based import process simplifies the creation of Security Plans from existing data. Users can download the provided template, populate Security Plan metadata, and upload the completed file instead of entering the information manually through the UI. In this release version, only Security Plan metadata is supported.


Bug Fixes & Security Hardening

  • Attention: If you use OAuth for SSO, note that we've released a security update that may introduce a breaking change depending on your configuration. This update is necessary to improve the overall security of the RegScale platform. If you're concerned about potential impacts, work with your CS representative to schedule the upgrade during non-critical business hours.
  • This version includes security patches and hardening improvements to address vulnerabilities.
  • Fixed an issue where selecting Update Catalog could redirect users to an incorrect screen before the catalog update process completed.

[6.45.0] - 2026-09-09

Added

  • Configurable console log format via logFormat / logDateFormat in init.yaml, or REGSCALE_LOG_FORMAT / REGSCALE_LOG_DATEFORMAT environment variables (environment takes precedence)

Changed

  • jcam --help no longer lists the pre-rename spellings check_custom_fields and test_jcam; both still run, so existing runbooks keep working
  • jcam check_config now checks for a required custom field across the whole module rather than on one tab, and reports fields that resolved somewhere else as a note rather than a failure
  • CLI console logs now include a timestamp on each line by default

Fixed

  • QRadar sync now rejects fractional time windows instead of silently truncating them and consistently applies the configured API version
  • S3 file access no longer crashes on a default configuration and now honors documented AWS credential settings
  • JCAM readiness check now calls out a missing system-id custom field as a blocker instead of omitting it
  • JCAM test_connection now checks the systems, system detail, controls, and POA&M endpoints imports actually use, reporting each endpoint's status separately instead of one pass/fail
  • JCAM import and export commands now surface configuration and connection failures instead of silently treating them as an empty or unchanged result
  • JCAM system-to-plan lookups no longer drop plans beyond the first page of results
  • JCAM configuration defaults in init.yaml.example that made every JCAM run exit with "No results match filter in JCAM"
  • Wiz vulnerabilities and issues now capture the CVE when it appears alongside other text in the finding name
  • JCAM control import now writes implementation status and control origin values allowed by the plan's compliance settings, and reports when it substitutes an equivalent label or when a plan offers no labels to constrain a field
  • Axonius dry-run syncs no longer advance the incremental sync watermark
  • Credentials named with the platform's own camelCase config keys are now redacted from log output instead of being written in the clear
  • jcam check_config on a tenant whose mapping profile does not fully resolve now reports that once instead of three times, and reads the tenant's fields once instead of three times
  • Corrected the JCAM mapping documentation and init.yaml.example, which still described the old Tab/Field destination syntax that the CLI now refuses
  • A custom field the tenant put on a different tab than the mapping profile names now resolves instead of being reported missing, so renaming or rearranging a Form Builder tab no longer needs a jcamFieldMapping line for every field on it
  • FedRAMP POA&M import now resolves asset lists pointed at a POAM Assets sheet and flags truncated Asset Identifier cells instead of importing partial data
  • Integrations now stop with the field named when a module requires a custom field they cannot supply, instead of failing with an unclear server error
  • Axonius saved-query sync now actually queries the configured saved query and raises a clear error instead of silently syncing zero records when it cannot be found
  • Corrected the seconds separator in the CLI log file timestamp format

[6.44.5] - 2026-09-03

Fixed

  • JCAM interconnection import now correctly detects VPN connections and pulls authorization type from JCAM data instead of a fixed value
  • Axonius asset count now sends a valid request body instead of always failing
  • Microsoft Defender for Cloud resource sync now targets the correct Azure Government Cloud endpoint instead of falling back to the commercial one

[6.44.0] - 2026-09-02

Added

  • JCAM: jcam check_config now checks the jcamAgencyDefinedDataItems mappings against what
    JCAM actually carries, naming entries configured for attributes JCAM does not have -- each of
    which demands a custom field for nothing -- and attributes JCAM does have that are mapped
    nowhere. These names are matched exactly, so a single character apart means the item silently
    does not import.
  • JCAM: Business Identifiable Information now imports without any tenant configuration. It is on
    the mapping sheet, but the sheet named an endpoint that does not carry it, so until its real
    source was confirmed it could only be mapped by hand in jcamAgencyDefinedDataItems. The
    recommended profile now carries it alongside the other attributes that endpoint feeds.
  • SARIF import accepts --regscale_ssp_id and --component_id to choose the record that receives the findings
  • jcam list_fields now also reports each field's type and, for a select, the values it accepts. That is what decides whether a value can be written at all, and it was the missing half of the picture when diagnosing a rejected import.
  • jcam list_fields reports every form field a tenant has, per module and tab, with each field's id, system name, and whether it is native or custom. check_config says what the mapping profile cannot find; this says what is there to point a jcamFieldMapping override at, which previously meant reading the Form Builder in a browser one tab at a time.

Changed

  • JCAM: jcam check_custom_fields is now jcam check_config, and jcam test_jcam is now
    jcam test_connection, matching the name eight other integrations already use. The old names
    still work. check_config answers the whole readiness question rather than the part its old
    name described: it now also names the mapping profile in use and why it was chosen, says
    whether a control catalogue can be resolved, and lists the system roles a plan will need for
    JCAM's points of contact to import. The sections that need JCAM say so when they cannot reach
    it, rather than failing the rest of the report.
  • JCAM: a tab the tenant does not have is now reported with what to do about it -- a tab of a
    similar name if one exists, and where the fields the profile wants there actually are.
    Previously each absent tab was listed bare, so a tenant that had rearranged or renamed its
    forms saw a list of separate problems rather than one cause.
  • SARIF import requires the asset to link findings to, instead of guessing one from the file
  • SARIF import prompts for the asset when it is not supplied, instead of failing after the fact
  • Assessment results that no configured status label matches now resolve to the least-compliant available status instead of whichever label is listed first

Fixed

  • JCAM: the shipped configuration template no longer causes import commands to fail with a
    traceback. Unconfigured settings now read as empty rather than as nothing at all, so a tenant
    that has no agency-defined data items, no artifact types or no framework catalogue gets a
    clear result instead of an AttributeError; jcamArtifactTypes accepts a list or a
    space-separated string as well as a mapping; and an instance with only one control catalogue
    loaded no longer takes the other one down with it.
  • JCAM: a configuration value left as a placeholder by an older version of the CLI is treated as
    unconfigured rather than as a deliberate setting, so it no longer shadows the pre-rename key it
    was meant to replace. Where an upgrade adds a settings key that differs only in capitalisation
    from one already present, the CLI now says which pair to reconcile instead of silently
    preferring the new one.
  • JCAM: the framework catalogue setting is spelled the same way in the configuration template as
    in the code that reads it. Previously 800-53R5 was written into init.yaml while 800-53r5
    was read, so filling in the placeholder as instructed had no effect.
  • JCAM: a tenant that rearranges its Security Plan forms no longer breaks the import. Native
    fields are found by their internal id, which RegScale keeps unique across a module, rather
    than by the tab the mapping profile expects them on -- writing one is an attribute assignment
    that does not care which tab displays it. Custom fields still require the tab, because a
    custom field is addressed by a name its owner chose and the same name on another tab is a
    different field. Previously, moving stock fields to a different tab made every native
    destination unresolvable, and an incomplete resolution refuses to import.
  • SARIF findings with the same rule in different files are now kept as separate vulnerabilities
  • Scanner imports no longer fail with a missing-directory error when the configured artifacts directory does not yet exist
  • SARIF findings are now titled with the rule description instead of repeating the rule or CVE identifier
  • Large scanner batches no longer run four times over when the server reports success in its streaming format
  • SARIF sync now reports when it can only run the compliance phase instead of skipping the import silently
  • SARIF import now records vulnerabilities against the security plan or component instead of duplicating them per asset
  • Vulnerability and other scanner imports no longer fall back to slow per-item processing when the server deduplicates records within a batch
  • FedRAMP import_interconnects and import_cryptography commands are now available in the CLI
  • Implementation statuses written by Wiz, CrowdStrike and compliance assessments now respect the status picklist configured on a plan's compliance settings
  • Wiz compliance sync no longer skips updating control status for controls that have no objectives
  • Compliance imports no longer fail to save control implementations that are set Not Applicable
  • Databricks query failures now report the actual database error instead of an unrelated internal error
  • JCAM no longer sends a custom field value the field cannot hold. A field's type and choice list belong to the tenant, so the profile cannot know them, and nothing was checking: free text could go to a Select and a value to a section heading, with the only objection arriving from the platform as an HTTP 500 naming neither the field nor the reason. Values outside a declared choice list, and values bound for a field type that holds no data, are now reported by field name and skipped rather than sent -- one bad value used to fail the whole batch and cost every other value on the record.

[6.33.3.1] 08-31-2026

Fixes

Tabs Missing from Security Plans

Resolved an issue where specific tabs are not being displayed on Security Plans. Security Plans lost Vulnerabilities, Issues/POAMs and Inventory Scorecard. Components lost Vulnerabilities and Inventory Scorecard.

ROH 6.33.0.0 Release

Release Overview

Release Name: ROH Beta Minor Release

Release Type: Minor

Release Number: 6.33.0.0

Purpose

RegScale Orchestration Hub (ROH) enables organizations to automate the import and export of data between RegScale and external systems through configurable integrations and commands.

This beta release is intended for early adopters and validation of core orchestration capabilities. Functionality, supported integrations, and performance characteristics may change before General Availability (GA). This minor release delivers reliability, usability, and maintenance improvements for early adopters, summarized below.

What's Included

  • ROH container images are now published to Docker Hub. The application and worker images are available publicly as regscale/orchestration-hub-app and regscale/orchestration-hub-worker.
  • Updated bundled RegScale user interface. The user interface updates include multiple cosmetic enhancements and bug fixes identified below.

What's Fixed

  • Microsoft Defender jobs that import nothing now report failure. A Defender synchronization that retrieved records but could not process any of them previously logged the errors, reported success, and exited normally while creating nothing in RegScale — so a scheduled job could report green every night while landing no data. Such a run now fails, making it visible for investigation. A run that processes only some of what it retrieved warns and still creates the rest, and a run that legitimately finds nothing to retrieve still succeeds.
  • Credentials are now listed for Defender, Entra and Tenable jobs. When creating a job for any of 20 Microsoft Defender, Entra, Tenable.io or Tenable SC commands, the job form listed no credentials at all, so it could not prompt for the values those jobs need and gave no indication anything was missing before the job failed at authentication. Those commands now list their credentials on the job form.
  • Scheduled job times displayed in the wrong timezone. Job and execution times appeared several hours in the future for users outside UTC — a job scheduled for 01:35 UTC displayed as 05:35 to a viewer at UTC-4. The jobs themselves always ran at the correct time; only the display was wrong. Times returned by ROH now carry an explicit UTC designator so they render correctly in the viewer's local timezone, across the Jobs, Executions, Analytics, Secrets and Monitoring screens.
  • Screens failing to load after an upgrade. After ROH was upgraded, a browser still holding the previous version could fail to open individual screens with a module loading error until the user performed a hard refresh. The application entry point is no longer cached, so an upgraded ROH loads correctly on a normal page load.
  • Job splitting removed from Entra evidence collection. The entra collect_evidence command previously offered job splitting, but the option never took effect — every run processed the evidence set as a whole regardless. The option has been removed to reflect what the command actually does. Evidence collection itself is unaffected and still produces one complete evidence package, and no action is needed for existing jobs.

Known Limitations

  • Required and optional credentials are not distinguished on the job form. The Secret Requirements panel lists the credentials a command uses and shows which are present in the selected secret set, but it does not indicate which of those are mandatory and which are optional alternatives. The AWS commands, for example, accept either a named profile or an access key pair, and the panel presents both the same way. Customers configuring a job cannot yet tell from this panel alone which credentials they must supply.

Maintenance and Updates

  • Routine dependency and security updates across backend components.
  • Expanded automated end-to-end and regression test coverage.

Deployment Notes

The Orchestration Hub 6.33.0.0 Release requires RegScale 6.33.3.0 or newer.

[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

[6.42.32] - 2026-08-27

Added

  • FedRAMP SSP interconnect and cryptographic module import commands, and an optional SSP ID on FedRAMP docx import so an existing plan is updated instead of duplicated

Fixed

  • Bulk scan import no longer crashes when routing Prisma Cloud files
  • OCSF and SBOM import command groups are now reachable from the CLI
  • GCP sync asset-type, label, severity, source, and evidence options now change sync behavior instead of being silently ignored
  • SAP Concur SysDig imports now honor the supplied scan date and the SysDig and Tenable subcommands are always registered
  • Multi-collection GraphQL queries such as reminder lookups now paginate each collection independently instead of silently skipping records past the first page
  • Cleanup bulk-delete commands now remove every matching record instead of silently stopping after the first page
  • CVE cleanup discovery now finds issues with multiple CVEs instead of silently returning nothing
  • eMASS control export retrieves every control with assessments for plans with more than 50 controls
  • eMASS SLCM import no longer deletes control implementations missing from the workbook unless explicitly requested, and semi-annual review frequencies now calculate as 182 days
  • eMASS POA&M pushes now carry issue details such as severity, comments, and completion dates instead of silently empty fields, and file-based DoD PKI client certificates can be configured
  • Connector syncs from different vendors into the same security plan no longer close each other's findings
  • Tanium Cloud compliance sync now passes through control mappings when available and alerts loudly instead of silently dropping every finding
  • Dependabot sync now retrieves every alert page, fetches GitHub data once per run, and no longer creates duplicate issues on repeat runs
  • GitLab issue sync now retrieves every page of issues and tracks them under a GitLab-specific identifier
  • OpenSCAP compliance sync now ships its CCE mapping file and fails loudly when a configured mapping override is missing instead of silently resolving no controls
  • STIG mapper now evaluates each asset against its own existing mappings so assets after the first receive complete STIG mappings
  • File-based scan imports quarantine unparseable records with clear warnings instead of creating placeholder assets and findings
  • Active Directory sync now aborts safely when the mapped role is missing instead of proceeding into the role-removal and deactivation flow
  • Intune device sync compares versions numerically and correctly classifies macOS devices
  • FedRAMP Rev 5 POAM export is now read-only by default with an opt-in flag for comment write-back, and comment templates and POAM ID prefixes are configurable
  • Removed unreachable FedRAMP compatibility aliases and duplicate DRF import command that could never be invoked
  • Veracode imports now assign correct severities instead of collapsing every finding to Low
  • Wiz rollup and asset-identifier behaviors are now protected by contract tests to prevent silent regressions
  • Model editor no longer carries one model's field layout into the next when processing multiple models in a single run
  • Login failures now exit with a clear error message instead of crashing with an internal variable error
  • Okta bearer tokens are no longer written to log output during authentication
  • STIG checklist file parsing is hardened against XML external entity attacks
  • Microsoft Defender API error handling no longer relies on assertions that disappear in optimized builds
  • Salesforce sync no longer carries results across repeated runs and handles missing API responses without crashing
  • Burp scan imports now accept export timestamps with or without a timezone