一键导入
new-provider
// Scaffold a new mql provider. Use when the user wants to create a new provider, bootstrap a provider, or add a new integration target (e.g., "create a provider for Datadog", "scaffold a new provider", "add a new provider").
// Scaffold a new mql provider. Use when the user wants to create a new provider, bootstrap a provider, or add a new integration target (e.g., "create a provider for Datadog", "scaffold a new provider", "add a new provider").
Verify mql provider resource/field changes against real cloud infrastructure. Given a pull request or a commit range, this provisions Terraform infra in the affected cloud(s), runs mql queries against every new or changed resource and field, reports the hourly cost (pausing for approval above $2/hr), opens a fix PR for any provider bugs it uncovers, and tears the infrastructure back down. Use this whenever someone wants to test, verify, smoke-test, or "prove out" a provider PR or a range of commits against live cloud APIs — e.g. "verify PR #7701 works", "spin up infra to test the new GCP resources", "check the azure changes against real infrastructure", "test resources changed between these commits". Trigger it even when the user only says "test this PR" in the context of an mql provider change.
Bump Microsoft Azure SDK Go dependencies in the azure provider to their latest stable major versions, audit CHANGELOGs for breaking changes and deprecations, and patch our call sites. Triggers on requests like "update azure deps", "bump azure SDK versions", "upgrade azure provider dependencies", "check for new azure SDK majors".
Add staged discovery support to a provider. Use when the user wants to implement staged/phased discovery, break down discovery into stages, add OptionStagedDiscovery support, or optimize a provider's memory usage during discovery. Triggers on requests like "add staged discovery to gcp", "implement staged discovery for aws", "break down discovery for <provider>", or "optimize <provider> discovery".
Release mql providers by bumping their versions. Use when the user wants to release providers, bump provider versions, check which providers have changes, or prepare a provider release PR. Triggers on requests like "release providers", "bump provider versions", "check provider changes", "release aws provider", or "prepare provider release".
Check content/ mql.yaml query packs for usage of deprecated resources or fields from .lr definitions
| name | new-provider |
| description | Scaffold a new mql provider. Use when the user wants to create a new provider, bootstrap a provider, or add a new integration target (e.g., "create a provider for Datadog", "scaffold a new provider", "add a new provider"). |
| argument-hint | <provider-id> (e.g., datadog, snowflake, pagerduty) |
Create a new mql provider using the built-in scaffolding tool and walk through initial setup.
Use AskUserQuestion to collect the required parameters. Pre-fill from the skill argument if provided.
The scaffolding tool needs:
datadog, google-workspace). Used for directory name, Go package, and CLI commands.Datadog, Google Workspace). Used in help text and UI.If the user already supplied both values (or one can be inferred from context), skip asking for that value. Always confirm what will be created before running the tool.
Run from the repository root:
go run apps/provider-scaffold/provider-scaffold.go \
--path providers/<provider-id> \
--provider-id <provider-id> \
--provider-name "<Provider Name>"
The scaffold tool auto-registers the provider in Makefile and DEVELOPMENT.md.
After scaffolding, the provider must also be registered in:
providers/defaults.go — add a default entry (alphabetically)README.md — add a row to the provider table (alphabetically)cd providers/<provider-id> && go mod tidy
Run from the repository root:
make providers/mqlr 2>/dev/null || true
./mqlr generate providers/<provider-id>/resources/<provider-id>.lr --dist providers/<provider-id>/resources
make providers/build/<provider-id>
make providers/install/<provider-id>
Both steps are required: build compiles the provider binary, install copies it to ~/.config/mondoo/providers/ so mql can discover it.
Show the user:
resources/<provider-id>.lr — resource and field definitions (schema)resources/<provider-id>.go — resource implementations (Go code)connection/connection.go — authentication and API client setupconfig/config.go — CLI flags and AssetUrlTrees for asset discovery groupingmake providers/build/<provider-id> && make providers/install/<provider-id>
mql shell <provider-id>
.lr files must have a doc-comment (see CLAUDE.md for format rules).lr.versions entries for a brand-new provider should use the same version as config.go Versionmql*Internal structs, run ./mqlr generate twice (second pass detects and embeds them)connection/connection.go