piotrmackowski/ClosedSSPM

Audit SaaS platforms for security misconfigurations. Open source SSPM with 166+ checks across ServiceNow, Snowflake, Entra ID, and Google Workspace.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 30, 2026
License
Apache 2.0

Pinned Snippet

workflow.ymlSHA-pinned
uses: piotrmackowski/closedsspm@064f4a96ce21ff65a4a3d3b87659517367709bc8 # v0.4.2

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
platformSaaS platform to audit: servicenow, snowflake, entra, or googleworkspacenoservicenow
formatReport format: html, json, csv, or sarifnosarif
fail-onFail (exit 2) if findings at or above this severity: CRITICAL, HIGH, MEDIUM, LOW, INFO, or nonenonone
instanceServiceNow instance URL (e.g. https://mycompany.service-now.com). Pass via secrets.no
usernameServiceNow username for basic auth. Pass via secrets.no
passwordServiceNow password for basic auth. Pass via secrets.no
client-idServiceNow OAuth 2.0 client ID. Pass via secrets.no
client-secretServiceNow OAuth 2.0 client secret. Pass via secrets.no
private-keyServiceNow RSA private key PEM content for JWT key pair auth. Pass via secrets.no
key-idServiceNow Key ID from JWT Verifier Map. Pass via secrets.no
jwt-userServiceNow username for JWT sub claim (cannot be admin). Pass via secrets.no
snowflake-accountSnowflake account identifier (e.g. xy12345.us-east-1). Pass via secrets.no
snowflake-userSnowflake username. Pass via secrets.no
snowflake-passwordSnowflake password for basic auth. Pass via secrets.no
snowflake-private-keySnowflake RSA private key PEM content for key pair auth. Pass via secrets.no
snowflake-patSnowflake programmatic access token. Pass via secrets.no
snowflake-tokenSnowflake OAuth access token. Pass via secrets.no
snowflake-roleSnowflake role to assume (default: SECURITYADMIN)no
snowflake-warehouseSnowflake warehouse for queries (default: COMPUTE_WH)no
snowflake-databaseSnowflake database (default: SNOWFLAKE for ACCOUNT_USAGE views)no
entra-tenant-idAzure AD / Entra ID tenant ID. Pass via secrets.no
entra-client-idEntra ID app registration client ID. Pass via secrets.no
entra-client-secretEntra ID app registration client secret. Pass via secrets.no
entra-certificateEntra ID PEM certificate content for client assertion auth. Pass via secrets.no
gw-access-tokenGoogle Workspace OAuth2 bearer token. Pass via secrets.no
gw-credentials-jsonGoogle Workspace service account JSON key content. Pass via secrets.no
gw-delegated-userGoogle Workspace super admin email for domain-wide delegation. Pass via secrets.no
gw-use-adcUse Application Default Credentials for Google Workspace (true/false). Pass via secrets.no
namedescription
report-pathPath to the generated report file
finding-countTotal number of findings
posture-scorePosture score grade (A-F)
sarif-pathPath to SARIF file (only when format=sarif)