Skip to main content

Secrets Management

Hooklistener provides encrypted key-value storage for sensitive data like API keys, tokens, and credentials. Secrets are encrypted at rest and can be retrieved via the API.

How it works​

Secrets are stored as name-value pairs within your organization. Values are encrypted at rest and only decrypted when explicitly requested.

Naming rules​

Secret names must follow the pattern ^[A-Z][A-Z0-9_]*$:

  • Start with an uppercase letter
  • Only uppercase letters, digits, and underscores
  • Examples: STRIPE_WEBHOOK_SECRET, API_KEY, DATABASE_URL

Creating secrets​

Dashboard​

  1. Go to Organization Settings
  2. Navigate to the secrets section
  3. Click Add Secret
  4. Enter the name and value
  5. Click Save

API​

curl -X POST https://app.hooklistener.com/api/v1/secrets \
-H "Authorization: Bearer hklst_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"secret": {
"name": "STRIPE_WEBHOOK_SECRET",
"value": "whsec_abc123..."
}
}'

Retrieving secrets​

List secrets (metadata only)​

curl https://app.hooklistener.com/api/v1/secrets \
-H "Authorization: Bearer hklst_your_api_key"

Values are not included in list responses.

Decrypt a secret value​

curl https://app.hooklistener.com/api/v1/secrets/<secret-id>/value \
-H "Authorization: Bearer hklst_your_api_key"

Returns the decrypted value along with the decryption timestamp.

Updating secrets​

curl -X PUT https://app.hooklistener.com/api/v1/secrets/<secret-id> \
-H "Authorization: Bearer hklst_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"secret": {
"value": "whsec_new_value..."
}
}'

Deleting secrets​

curl -X DELETE https://app.hooklistener.com/api/v1/secrets/<secret-id> \
-H "Authorization: Bearer hklst_your_api_key"

Use cases​

  • Store webhook signing secrets — keep Stripe, GitHub, or other signing secrets accessible to your team
  • API credentials — store third-party API keys securely
  • Configuration values — sensitive configuration that shouldn't be in source control
  • Team sharing — share credentials across team members without insecure channels

Security​

  • All secret values are encrypted at rest
  • Values are only transmitted over HTTPS
  • Access is controlled by organization membership and API key authentication
  • Secret names must be unique within an organization