Trust Network
Inventory and report on OIDC trust policies and workload-identity federation across GitHub, Google Cloud, and Cloudflare One.
Three read-only models compose into a cross-platform trust graph. The github model discovers GitHub Actions OIDC subject-claim customization and classified Actions secrets; the gcp model discovers Workload Identity Federation pools, providers, service accounts, and user-managed keys; the graph model normalizes the three providers into a graph of trust domains, identities, and credential edges annotated with conditional access and severity-rated findings.
Cloudflare One / Zero Trust Access scanning is provided by the @mccormick/cloudflare extension, a declared dependency — the trust-inventory and trust-gate workflows wire its zerotrust model into the graph.
The @mccormick/trust-network/posture report scores the graph: the share of trust edges using ephemeral credentials, the share gated by conditional access, and a severity-grouped finding list. A trust-inventory workflow runs the three scans, builds the graph, and emits the report on a schedule. A trust-gate workflow turns that posture into a CI pass/fail check, failing the build when findings or coverage breach configured thresholds.
Read-only: models only read provider APIs. No credential material is written to swamp data — only configuration metadata. API tokens are supplied through a vault; GCP uses a short-lived gcloud access token (no stored key).
Global Arguments
| Argument | Type | Description |
|---|---|---|
| orgs | array | GitHub organizations to scan in full |
| repos | array | Explicit `owner/repo` entries to scan in addition to the orgs |
| githubToken | string | GitHub token; supply via ${{ vault.get("trust-network", "GITHUB_TOKEN") }} |
| apiBaseUrl | string | GitHub REST API base URL (override for GitHub Enterprise Server) |
| includeArchived | boolean | Include archived repositories in org scans |
| scanEnvironments | boolean | Also enumerate per-environment secrets and variables |
Resources
Global Arguments
| Argument | Type | Description |
|---|---|---|
| projects | array | GCP project IDs to scan |
| iamBaseUrl | string | Google Cloud IAM API base URL |
Resources
| Argument | Type | Description |
|---|---|---|
| githubOidcSubjects | array | GitHub `oidc_subject` resources from the github scan |
| githubSecrets | array | GitHub `actions_secret` resources from the github scan |
| gcpWifPools | array | GCP `wif_pool` resources from the gcp scan |
| gcpWifProviders | array | GCP `wif_provider` resources from the gcp scan |
| gcpServiceAccounts | array | GCP `service_account` resources from the gcp scan |
| gcpSaKeys | array | GCP `sa_key` resources from the gcp scan |
| cfAccessApps | array | Cloudflare `access_app` resources from the cloudflare scan |
| cfAccessPolicies | array | Cloudflare `access_policy` resources from the cloudflare scan |
| cfIdentityProviders | array | Cloudflare `identity_provider` resources from the cloudflare scan |
| cfServiceTokens | array | Cloudflare `service_token` resources from the cloudflare scan |
| Argument | Type | Description |
|---|---|---|
| maxCritical | number | Maximum allowed `critical` findings |
| maxHigh | number | Maximum allowed `high` findings |
| maxMedium | number | Maximum allowed `medium` findings (unbounded by default) |
| minEphemeralPct | number | Minimum required ephemeral-credential coverage, 0-100 |
| minConditionalAccessPct | number | Minimum required conditional-access coverage, 0-100 |
Resources
Scores the trust graph: share of edges using ephemeral credentials,
Removed 1 models. updated dependencies
Modified 1 models
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned