Skip to content

Shared: convert data extensions to JSON - #23060

Open
nickrolfe wants to merge 1 commit into
mainfrom
nickrolfe/json-data-extensions-shared
Open

nickrolfe wants to merge 1 commit into
mainfrom
nickrolfe/json-data-extensions-shared

Conversation

@nickrolfe

Copy link
Copy Markdown
Contributor

CodeQL CLI 2.27.3 supports JSON data extensions (aka MaD models), and can load them significantly faster than YAML. This PR converts those in the shared packs.

To verify successful conversion, I cherry-picked this commit onto #23059, which has a temporary test that enumerates all tuples from data extensions. The test still passes after conversion.

@nickrolfe
nickrolfe marked this pull request as ready for review November 9, 2026 16:33
@nickrolfe
nickrolfe requested a review from a team as a code owner November 9, 2026 16:33
Copilot AI auto review requested due to automatic review settings November 9, 2026 16:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The conversion is represented across the manifests and replacement JSON extensions, with review identifying only non-blocking documentation-link nits.

No open issues 🎉

What changed in this PR

Converts the shared CodeQL utility and threat-model data extensions from YAML to JSON for faster loading in CodeQL CLI 2.27.3 while preserving the existing extension data.

Changes:

  • Registers JSON data extensions in the shared utility and threat-model pack manifests.
  • Replaces the default alert-filter YAML extension with JSON.
  • Replaces the threat-model grouping and supported-threat-model YAML extensions with JSON equivalents.
File Summary Review comments
shared/​util/​qlpack.yml Registers JSON utility data extensions. —
shared/​util/​ext/​default-alert-filter.yml Removes the former YAML alert-filter extension. —
shared/​util/​ext/​default-alert-filter.json Provides the alert-filter extension in JSON format. —
shared/​threat-models/​qlpack.yml Registers JSON threat-model data extensions. Nit (1 vote): Update five source comments that still link to the deleted threat-model-grouping.model.yml path, including locations in the Rust, JavaScript, and Python Concepts.qll files.
shared/​threat-models/​ext/​threat-model-grouping.model.yml Removes the former YAML threat-model grouping extension. —
shared/​threat-models/​ext/​threat-model-grouping.model.json Provides threat-model groupings in JSON format. Nit (1 vote): Update the public Concepts.qll documentation links in the Python, JavaScript, and Rust libraries to reference the JSON path or otherwise preserve valid links.
shared/​threat-models/​ext/​supported-threat-models.model.yml Removes the former YAML supported-model configuration. —
shared/​threat-models/​ext/​supported-threat-models.model.json Provides the supported-model configuration in JSON format. —

Review effort: Lite (auto)

This branch has not been deployed

No deployments
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.

2 participants