Skip to main content

Secrets API

List Secrets

GET /api/v1/secrets
Query Parameters:
  • prefix - Filter by path prefix
  • environment - Filter by environment
Response:
{
  "secrets": [
    {
      "path": "stripe/api_key",
      "description": "Stripe API key",
      "environment": "production",
      "version": 3,
      "created_at": "2024-01-01T08:00:00Z",
      "updated_at": "2024-01-15T10:30:00Z"
    }
  ]
}

Get Secret

GET /api/v1/secrets/:path
Query Parameters:
  • environment - Environment (default: from API key)
  • version - Specific version (default: latest)
Response:
{
  "path": "stripe/api_key",
  "value": "sk_live_xxx...",
  "environment": "production",
  "version": 3,
  "description": "Stripe API key",
  "metadata": {},
  "created_at": "2024-01-01T08:00:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}

Create/Update Secret

POST /api/v1/secrets
Request:
{
  "path": "stripe/api_key",
  "value": "sk_live_xxx",
  "environment": "production",
  "description": "Stripe production API key",
  "metadata": {
    "service": "payments"
  }
}
Response:
{
  "path": "stripe/api_key",
  "environment": "production",
  "version": 4,
  "message": "Secret created/updated successfully"
}

Delete Secret

DELETE /api/v1/secrets/:path
Query Parameters:
  • environment - Environment
Response:
{
  "path": "stripe/api_key",
  "deleted": true,
  "recoverable": true,
  "message": "Secret deleted. Can be recovered within 30 days."
}

Get Version History

GET /api/v1/secrets/:path/versions
Response:
{
  "path": "stripe/api_key",
  "versions": [
    {
      "version": 3,
      "created_at": "2024-01-15T10:30:00Z",
      "created_by": "[email protected]",
      "current": true
    },
    {
      "version": 2,
      "created_at": "2024-01-01T08:00:00Z",
      "created_by": "[email protected]",
      "current": false
    }
  ]
}

Rollback to Version

POST /api/v1/secrets/:path/rollback
Request:
{
  "version": 2
}
Response:
{
  "path": "stripe/api_key",
  "old_version": 3,
  "restored_version": 2,
  "new_version": 4,
  "message": "Rolled back to version 2"
}

Rotate Secret

POST /api/v1/secrets/:path/rotate
Request:
{
  "new_value": "sk_live_new_xxx"
}
Response:
{
  "path": "stripe/api_key",
  "old_version": 3,
  "new_version": 4,
  "rotated_at": "2024-01-15T10:35:00Z"
}

Bulk Import

POST /api/v1/secrets/import
Request:
{
  "secrets": [
    {
      "path": "stripe/api_key",
      "value": "sk_live_xxx"
    },
    {
      "path": "stripe/webhook_secret",
      "value": "whsec_xxx"
    }
  ],
  "environment": "staging"
}
Response:
{
  "imported": 2,
  "secrets": [
    { "path": "stripe/api_key", "version": 1 },
    { "path": "stripe/webhook_secret", "version": 1 }
  ]
}