Skip to content

chore: declare credential env vars in capability manifests (SEC-319) - #205

Open
briangreunke wants to merge 2 commits into
mainfrom
brian/sec-319-declare-credential-env-vars-in-first-party-capability
Open

briangreunke wants to merge 2 commits into
mainfrom
brian/sec-319-declare-credential-env-vars-in-first-party-capability

Conversation

@briangreunke

Copy link
Copy Markdown
Contributor

Adds a secrets: list to 16 capability manifests. Each list names the credential and connection env vars the capability reads, so the catalog and clients show them before install.

  • Every entry sets required: false. Several capabilities work without a given name, for example atlassian with OAuth.
  • The lists cover tokens, passwords, usernames, URLs, hosts, and org or project names. They leave out tuning settings (timeouts, output limits, command paths, cache dirs) and CAPABILITY_ROOT, WORKSPACE_ROOT, and DREADNODE_*.
  • Each changed capability gets a patch version bump so sync publishes the new manifest.
  • No code changes.

Testing

  • just validate: 26 validated, 0 failed. The 6 warnings come from preflight checks for tools not installed on the test machine. None involve the manifests.
  • pre-commit run on the changed files passes.
  • A YAML parse of every capability.yaml lists the expected names for the 16 changed capabilities, required: false on each entry, and no secrets: on the other 10.

Refs SEC-319

🤖 Generated with Claude Code

Add a `secrets:` list to each capability that reads credentials or
connection settings from the environment, so the catalog and clients
list them before install.

Every entry sets `required: false`. Several capabilities work without
a given name, for example by using OAuth instead of an API key.

Bump each changed capability's patch version so sync publishes the new
manifest.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The catalog omits supported credentials and connection settings across several capabilities while advertising an Atlassian API key that the shipped configuration does not use.

4 open issues
What changed in this PR

This manifest-only PR adds credential and connection-variable declarations so capability catalogs and clients can show setup options before installation.

Changes:

  • Adds optional secrets entries to 16 capability manifests.
  • Bumps each affected capability’s patch version for publication.
  • Leaves runtime code unchanged.
File Description
capabilities/​web-security/​capability.yaml Declares web-security integration credentials and endpoints.
capabilities/​sliver-c2/​capability.yaml Declares the Sliver configuration-file variable.
capabilities/​secure-software/​capability.yaml Declares Spectra Assure credentials and connection settings.
capabilities/​mythic-c2/​capability.yaml Declares Mythic authentication and server settings.
capabilities/​mythic-c2-readonly/​capability.yaml Declares settings for read-only Mythic access.
capabilities/​linear/​capability.yaml Declares the Linear API key.
capabilities/​gitlab/​capability.yaml Declares the GitLab token and API URL.
capabilities/​github/​capability.yaml Declares the GitHub personal access token.
capabilities/​ghostwriter-readonly/​capability.yaml Declares GhostWriter credentials and endpoint.
capabilities/​bloodhound/​capability.yaml Declares BloodHound and Neo4j connection settings.
capabilities/​bloodhound-enterprise/​capability.yaml Declares enterprise authentication options and endpoint.
capabilities/​azure-devops/​capability.yaml Declares organization, project, and team variables.
capabilities/​attack-surface-management/​capability.yaml Declares Neo4j and Shodan configuration.
capabilities/​atlassian/​capability.yaml Declares Atlassian authentication variables.
capabilities/​android-apk-research/​capability.yaml Declares the AndroZoo API key.
capabilities/​ai-red-teaming/​capability.yaml Declares the target API key.

Review effort: Balanced

Comment on lines +27 to +28
- name: TARGET_API_KEY
required: false

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added AGENT_API_KEY in 55c9cc2. It is the default for agent_auth_env_var, the same pattern as TARGET_API_KEY.

Not adding the provider variables. The model-routing library reads them for any provider-prefixed model string, not this capability's code, and platform-routed models need none. Listing every provider would bury the settings this capability owns.

Comment thread capabilities/atlassian/capability.yaml Resolved
- name: protoscope
command: 'command -v protoscope >/dev/null 2>&1 || test -x "$HOME/go/bin/protoscope"'

secrets:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added in 55c9cc2: AGENTMAIL_API_KEY, AGENTMAIL_BASE_URL, CAIDO_PROXY, CENSYS_API_KEY, CENSYS_ORGANIZATION_ID, CENSYS_PAT, SECURITYCONTEXT_URL, SHODAN_API_KEY, WEBHOOK_API_KEY, WEBHOOKSITE_API_KEY, and WEBHOOK_SITE_API_KEY.

Add names that code reads through a constant or alias tuple, which the
first pass missed:

- ai-red-teaming: AGENT_API_KEY, the default agent auth variable
- secure-software: SPECTRA_ASSURE_PATH, the portal slug
- web-security: AgentMail, webhook.site, Shodan, and Censys keys and
  aliases, plus AGENTMAIL_BASE_URL, CAIDO_PROXY, and SECURITYCONTEXT_URL

Remove ATLASSIAN_API_KEY from atlassian. Only a comment mentions it; the
shipped header reads ATLASSIAN_BASIC.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@briangreunke
briangreunke requested a review from vabruzzo November 2, 2026 13:15

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