Why CredPool?
Testing often requires shared accounts (staging logins, API keys, service credentials). Without a system, teams face:- Credential collisions — two testers use the same account simultaneously
- Lost passwords — scattered across notes, chats, and wikis
- No audit trail — who used what, and when?
Core Concepts
Credential Types
Templates that define what a credential looks like — its fields (username, password, URL, API key, etc.) and which fields are sensitive.
Pools
Named collections of interchangeable credentials. For example, a “Staging Jira Accounts” pool with 5 accounts that testers can check out.
Entries
Individual credentials inside a pool. Each entry has values matching its pool’s credential type. Values are encrypted at rest (AES-256-GCM).
Checkout / Release
The core workflow: check out a credential, use it, release it when done. Locks prevent collisions. Auto-release prevents forgotten locks.
Getting Started
Create a Credential Type
Go to Test Data > CredPool > Credential Types tab and click Create Type.Define the fields your credentials need:
Field types:
| Field | Type | Sensitive | Required |
|---|---|---|---|
| Username | text | No | Yes |
| Password | secret | Yes | Yes |
| Instance URL | url | No | Yes |
| Project Key | text | No | No |
text, secret, url, email, number, textarea, selectFields marked sensitive are masked in the UI (shown as dots) until explicitly revealed.Create a Pool
Go back to the Pools tab and click Create Pool.
- Name: “Staging Jira Accounts”
- Credential Type: Select the type you just created
- Environment: staging
- Allow concurrent usage: Off (exclusive checkout)
- Max lock time: 240 minutes (4 hours)
Add Entries
Open the pool and click Add Entry. Fill in the credential values:
- Label: “Admin Account” (human-readable identifier)
- Username:
svc_test_01 - Password:
xK9#mP2$vL - Instance URL:
https://staging.jira.example.com
Dashboard
The CredPool dashboard shows all pools as cards with real-time availability: Each pool card shows:- Pool name and environment
- Availability: e.g., “3 of 5 available”
- Credential type name
- Get Random Credentials button for quick checkout
Checking Out Credentials
- Random Checkout
- Specific Checkout
- API Checkout
The most common way to get credentials:
- Find your pool on the dashboard
- Click Get Random Credentials
- CredPool picks any available entry and locks it to you
- A dialog shows the decrypted credential values
- Copy what you need (click the copy icon next to each field)
Releasing Credentials
When you’re done with a credential:- From the dashboard: Click the release button on your active checkout
- From pool detail: Click the unlock icon on the locked entry
- Via API:
POST /credpool/entries/{entry_id}/release - Automatically: Credentials auto-release after the max lock time expires
Exclusive vs Concurrent Mode
| Mode | Behavior | Use Case |
|---|---|---|
| Exclusive (default) | One person at a time per credential. Checkout locks the entry. | Accounts that break with concurrent sessions |
| Concurrent | Multiple people can check out the same credential. No locking. | Read-only API keys, shared service accounts |
Credential Types
Credential types are reusable templates. Create them once, use across multiple pools.Field Types
| Type | Renders As | Example |
|---|---|---|
text | Text input | Username, project key |
secret | Password input (masked) | Passwords, tokens |
url | URL input with validation | Instance URLs |
email | Email input with validation | Service account emails |
number | Numeric input | Port numbers |
textarea | Multi-line text | SSH keys, certificates |
select | Dropdown with options | Environment selector |
Sensitive Fields
Fields marked sensitive are:- Masked in the UI (shown as dots until revealed)
- Encrypted at rest alongside all other values
- Never logged in the audit trail
Admin Features
Active Locks
View all currently locked credentials across all pools. Useful for understanding team capacity and identifying forgotten checkouts.Force Release
Product owners and admins can force-release a locked credential when:- A team member is unavailable and their credential is needed
- A CI pipeline crashed without releasing its checkout
Audit Log
Every checkout and release is logged with:- Who checked out / released
- When the action occurred
- Which credential (pool + entry)
- Action type: random checkout, specific checkout, release, force-release, auto-expired
- IP address of the client

