Skip to main content

create-secret

Generate Harness Secret definitions and manage secrets via MCP v2 tools. Supports SecretText, SecretFile, SSHKey, and WinRmCredentials types with configurable secret managers (Harness built-in, HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager). Use when asked to create a secret, store credentials, manage API keys, set up SSH keys, configure WinRM credentials, rotate secrets, or reference secrets in pipelines. Trigger phrases: create secret, secret text, secret file, SSH key, API key, password, credentials, secret manager, store secret.

Informations de source

Dépôt
thisrohangupta/cursor-harness-plugin
Dernière activité de la source
16 avril 2026 à 23:31
Langue détectée de SKILL.md
anglais
Étoiles
1
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
2 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
create-secret
description
Generate Harness Secret definitions and manage secrets via MCP v2 tools. Supports SecretText, SecretFile, SSHKey, and WinRmCredentials types with configurable secret managers (Harness built-in, HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager). Use when asked to create a secret, store credentials, manage API keys, set up SSH keys, configure WinRM credentials, rotate secrets, or reference secrets in pipelines. Trigger phrases: create secret, secret text, secret file, SSH key, API key, password, credentials, secret manager, store secret.
metadata
{"author":"Harness","version":"1.0.0","mcp-server":"harness-mcp-v2"}
license
Apache-2.0
compatibility
Requires Harness MCP v2 server (harness-mcp-v2)
# Create Secret Skill Generate Harness Secret definitions and manage secrets via MCP v2 tools. ## MCP v2 Tools Used | Tool | Resource Type | Purpose | |------|--------------|---------| | `harness_list` | `secret` | List existing secrets | | `harness_get` | `secret` | Get secret metadata (not the value) | | `harness_create` | `secret` | Create a new secret | | `harness_update` | `secret` | Update secret metadata or value | | `harness_delete` | `secret` | Delete a secret | | `harness_describe` | `secret` | List supported operations, filters, and scope expectations for secrets | | `harness_schema` | `secret` | Get the exact JSON Schema for `create`/`update` secret bodies | ## Secret Types ### SecretText Stores text-based secrets: passwords, API tokens, connection strings. ```yaml secret: identifier: my_api_key name: My API Key description: API key for external service type: SecretText spec: secretManagerIdentifier: harnessSecretManager valueType: Inline value: <secret_value> ``` For other secret types (SecretFile, SSHKey with KeyReference/KeyPath/Password, WinRmCredentials with NTLM/Kerberos) and secret manager configuration, consult references/secret-types.md. ## Secret Scopes | Scope | Visibility | MCP Parameters | |-------|-----------|----------------| | Project | Only within the project | `org_id` + `project_id` | | Organization | All projects in the org | `org_id` only | | Account | All orgs and projects | Neither org_id nor project_id | ## Instructions ### Step 1: Determine Requirements - Secret type: SecretText, SecretFile, SSHKey, or WinRmCredentials - Secret manager: Harness built-in or external - Scope: project, org, or account - Tags and description for organization ### Step 2: Check for Existing Secrets ``` harness_list( resource_type="secret", org_id="<org>", project_id="<project>", search_term="<keyword>" ) ``` ### Step 3: Create the Secret ``` harness_create( resource_type="secret", org_id="<org>", project_id="<project>", body={ "secret": { "identifier": "my_api_key", "name": "My API Key", "type": "SecretText", "spec": { "secret_manager_identifier": "harnessSecretManager", "value_type": "Inline", "value": "<value>" } } } ) ``` ### Step 4: Verify Creation ``` harness_get( resource_type="secret", resource_id="my_api_key", org_id="<org>", project_id="<project>" ) ``` ## Referencing Secrets in Pipelines ```yaml # Project-level secret <+secrets.getValue("my_api_key")> # Org-level secret <+secrets.getValue("org.my_api_key")> # Account-level secret <+secrets.getValue("account.my_api_key")> ``` In connector configuration: ```yaml connector: spec: authentication: spec: tokenRef: github_pat # secret identifier ``` In service variables: ```yaml variables: - name: DB_PASSWORD type: Secret value: <+secrets.getValue("db_password")> ``` ## Naming Conventions | Secret Type | Pattern | Example | |-------------|---------|---------| | API Keys | `{service}_api_key` | `github_api_key` | | Passwords | `{system}_password` | `prod_db_password` | | Tokens | `{provider}_token` | `slack_token` | | SSH Keys | `ssh_{purpose}` | `ssh_deploy_key` | | Certificates | `{service}_cert` | `ssl_prod_cert` | Identifier must match: `^[a-zA-Z_][0-9a-zA-Z_]{0,127}$` ## Examples ### Create a GitHub PAT secret ``` /create-secret Create a SecretText for a GitHub personal access token at the project level using the Harness built-in secret manager ``` ### Create SSH credentials ``` /create-secret Create an SSH key secret for deploying to production servers as the "deploy" user ``` ### Create a Vault-referenced secret ``` /create-secret Create a secret that references the database password stored in HashiCorp Vault at secret/data/production/database#password ``` ### List secrets ``` /create-secret Show me all secrets in the payments project ``` ### Create WinRM credentials ``` /create-secret Create WinRM NTLM credentials for the Windows deployment servers ``` ## Error Handling | Error | Cause | Solution | |-------|-------|----------| | Duplicate identifier | Secret with same ID exists | Use unique identifier or update existing | | Secret manager not found | Invalid `secretManagerIdentifier` | Verify the secret manager connector exists | | Encryption failed | Secret manager connectivity issue | Check delegate connectivity to secret manager | | Invalid secret type | Unsupported type string | Use `SecretText`, `SecretFile`, `SSHKey`, or `WinRmCredentials` | | Invalid valueType | Case mismatch | Use `Inline` or `Reference` (case-sensitive) | ## Performance Notes - Never include actual secret values in generated YAML. Use placeholder references only. - Verify the correct scope (account, org, project) before creating — secrets at the wrong scope will not be accessible. - Confirm the secret manager exists and is accessible before creating secrets. ## Troubleshooting ### Secret Not Accessible in Pipeline 1. Check scope -- project secrets need no prefix, org secrets need `org.` prefix, account secrets need `account.` prefix 2. Verify the pipeline's project has access to the secret's scope 3. Confirm the user/service account running the pipeline has `core_secret_view` permission ### External Secret Manager Errors 1. Verify the secret manager connector is healthy (`harness_get` on the connector) 2. For Vault: check the path format includes `#key` suffix for specific keys 3. For AWS SM: ensure IAM permissions allow `secretsmanager:GetSecretValue` 4. Delegate must have network access to the external secret manager ### SSH Key Connection Failures 1. Verify the private key is in PEM format 2. Check that the target server accepts key-based authentication 3. If using KeyPath, confirm the key file exists on the delegate host 4. Test with `credentialType: Password` first to isolate key-specific issues ## Security Best Practices - Use external secret managers (Vault, AWS SM) for production secrets - Scope secrets as narrowly as possible -- prefer project over account - Never output secret values in pipeline logs - Rotate secrets regularly and update references - Audit secret access via the `/audit-report` skill
Voir sur GitHub