stackql/StackQL Cloud Audit

Audit GCP, AWS, and Azure live with SQL — public firewalls, public IPs, weak storage/SQL configs, and more. No agents, no pipelines. A provider runs only when its credentials are supplied.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
gcp-project-idGCP project ID to audit (substituted as ${PROJECT_ID} in google checks).no""
gcp-credentialsFull contents of a GCP service account JSON key. Pass via a workflow secret, e.g. secrets.GCP_SA_JSON.no""
google-provider-versionVersion of the Google provider to pull (blank = v25.12.00357).nov25.12.00357
aws-access-key-idAWS access key ID.no""
aws-secret-access-keyAWS secret access key. Pass via a workflow secret.no""
aws-regionAWS region to audit (substituted as ${AWS_REGION} in aws checks).no""
aws-provider-versionVersion of the AWS provider to pull (blank = v26.05.00395).nov26.05.00395
azure-subscription-idAzure subscription ID to audit (substituted as ${SUBSCRIPTION_ID} in azure checks).no""
azure-tenant-idAzure AD tenant ID (for service-principal auth).no""
azure-client-idAzure AD application (client) ID.no""
azure-client-secretAzure AD client secret. Pass via a workflow secret.no""
azure-provider-versionVersion of the Azure provider to pull (blank = v24.10.00267).nov24.10.00267
entra-id-provider-versionVersion of the entra_id provider to pull (blank = v26.06.00405).nov26.06.00405
queries-pathPath to a custom queries directory (must contain per-provider subdirs: google/ aws/ azure/).no""
fail-on-severityFail the workflow if any finding is at or above this severity (CRITICAL, HIGH, MEDIUM, LOW). Use NONE to never fail.noHIGH
stackql-versionstackql release to install (e.g. "v0.5.745") or "latest"nolatest
upload-logsUpload the per-invocation .log files (stackql-audit-logs) and the per-provider JSONL data streams (stackql-audit-data-streams) as workflow artifacts. Useful for debugging empty/odd results.nofalse
merge-data-streamsMerge all *-findings.jsonl into one summary.json (keyed by provider) at the end. Blank = on whenever upload-logs is true; set "true"/"false" to force.no""
log-retention-daysRetention in days for the uploaded artifacts (0 = repository default). Integer in [0, 90]. Only used when upload-logs is true.no0
namedescription
findings-countTotal findings across all checks
highest-severityHighest severity finding (CRITICAL/HIGH/MEDIUM/LOW/NONE)