Environments
Environments represent different API targets — production, staging, development, or anything else — each with their own authentication, configuration, and variables. Switch between targets instantly without reconfiguring endpoints.
Overview
Each environment contains:
- Connection details — Base URL and environment metadata
- Authentication — DBMN, JWT tokens, OAuth, or Google Service Account
- Target timezone — Timezone for datetime operations
- Parallel processing — Concurrency level for batch execution
- Variables — Key-value pairs available in templates via
ENV:prefix - Headers — Environment-level headers included in every request
Managing Environments
Adding Environments
- Click the + icon next to “Environments” in the sidebar
- Fill in environment details
- Configure authentication method
- Click Save Environment
The environment will appear in the sidebar tree view, grouped by type.
Editing Environments
- Click an environment name in the sidebar
- Modify any details in the webview
- Changes are saved automatically
Deleting Environments
- Right-click an environment in the sidebar
- Select Delete Environment
- Confirm the deletion
Note: Deleting an environment does not delete associated endpoints — they will remain but show as disconnected until assigned to another environment.
Setting Active Environment
- Right-click an environment in the sidebar
- Select Set as Active
- The active environment is used for all endpoint executions
The currently active environment is shown with a checkmark in the tree view.
General
The General tab contains environment identity, type classification, and execution settings.
Environment Details
Environment Name
A descriptive name for the environment (e.g., “Production US”, “Staging Europe”, “Dev Sandbox”).
Best practices:
- Use clear, descriptive names
- Include region or tenant if managing multiple instances
- Avoid special characters that might cause issues
Base URL
The primary API endpoint for this environment.
Examples:
https://api.example.com— Generic APIhttps://api.staging.example.com— Staging serverhttps://api.github.com— GitHub APIhttp://localhost:8080— Local development
Important:
- Must include protocol (
https://orhttp://) - Do not include trailing slash
- This URL is prepended to all endpoint paths
- URL is immutable after creation — Once an environment is saved, the Base URL cannot be changed. This ensures batch executions always target the correct server. If you need a different URL, create a new environment.
Description
Optional field for notes about the environment:
- Purpose and use cases
- Access restrictions
- Tenant or customer information
- Maintenance windows
Mock Requests
When enabled, API requests use mock responses instead of calling real endpoints.
Use cases:
- Testing endpoint configuration without hitting real APIs
- Demonstrating functionality without credentials
- Development when backend is unavailable
Limitations:
- Mock responses are simplified and may not reflect actual API behavior
- Only basic success scenarios are mocked
- Not suitable for integration testing
Environment Type
Environment type categorises environments for visual organisation in the tree view. This is purely for display purposes — it doesn’t affect functionality.
- Production — Live production systems
- Staging — Pre-production testing
- UAT — User acceptance testing
- QA/Testing — Quality assurance
- Development — Active development (default)
- Sandbox — Experimental/demo
- Training — Training environment
- Integration — Integration testing
- Performance — Performance testing
- Local — Local development
Environments are grouped and sorted by type in the sidebar.
Execution Settings
Target Timezone
Set the timezone used for all datetime operations in this environment. This affects how A8:date, A8:datetime, and date math modifiers resolve.
Configuration:
- Select a timezone from the dropdown (e.g.,
America/New_York,Europe/London,Asia/Tokyo) - Default: UTC
How it works:
- All
A8:datetimevalues are generated in the selected timezone - Date math modifiers (
+2d,-1d,+4h,+30m) operate relative to the target timezone - Useful when your API expects timestamps in a specific timezone
Example:
With timezone set to America/New_York:
{{A8:datetime}}→2026-02-18T09:30:00(Eastern Time, not UTC)
Parallel Processing
Configure concurrency for batch execution — how many API requests Dobermann sends simultaneously.
Concurrency levels:
| Level | Threads | Description |
|---|---|---|
| Sequential | 1 | One request at a time — safest, slowest |
| Light | 2 | Gentle parallelism for sensitive APIs |
| Moderate | 4 | Good balance of speed and safety |
| Heavy | 8 | Fast execution for robust APIs |
| Extreme | 16 | Maximum throughput — use with caution |
Choosing a level:
- Start with Sequential when testing a new API
- Increase gradually while monitoring for rate limit errors (429 responses)
- APIs with strict rate limits may need Sequential or Light
- APIs designed for bulk operations can typically handle Heavy or Extreme
Impact:
- Higher concurrency = faster batch completion
- Higher concurrency = more load on the target API
- If you see 429 errors, reduce the concurrency level
Authentication
Dobermann supports four authentication methods:
DBMN
Authenticate using your DBMN account. This is the simplest method — sign in once and your token is managed automatically.
How to use:
- Select “DBMN” as the authentication method
- If you’re already signed in to DBMN (status bar icon), authentication is immediate
- If not signed in, you’ll be prompted to sign in when you execute an API
Token management:
- Tokens are acquired and refreshed automatically
- No manual copy/paste needed
- If your session expires, Dobermann prompts you to re-authenticate before execution
DBMN auth is required for Puppy School — the playground API authenticates using your DBMN session.
Manual JWT Token
Direct authentication using a JWT (JSON Web Token).
How to use:
- Select “Manual JWT Token” as authentication method
- Obtain a JWT token from your API provider
- Paste the token in the text area
- Click Save Environment
Token format:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Token expiration:
- Dobermann displays token expiration time if available
- Visual warnings appear when token is about to expire
- Refresh the token manually when needed
Best practices:
- Store tokens securely
- Rotate tokens regularly
- Use environment-specific tokens
- Never commit tokens to source control
OAuth
OAuth 2.0 authentication flow for secure, delegated access.
Required fields:
- Client ID — Your OAuth application identifier
- Authorization URL — OAuth provider’s authorization endpoint
- Token URL — OAuth provider’s token endpoint
- Redirect URI — Callback URL (usually provided by Dobermann)
Optional fields:
- Client Secret — Required for confidential clients (toggle visibility with eye button)
- Scopes — Space-separated list of requested permissions
OAuth flow:
- Configure OAuth settings
- Click Sign In
- Browser opens to authorization URL
- Log in and grant permissions
- Dobermann receives token automatically
Token management:
- Access tokens are stored securely
- Refresh tokens are used automatically when access token expires
- Visual indicators show authentication status
- Sign In — Standard sign-in. If you already have a browser session with your identity provider, you may be signed in automatically without re-entering credentials.
- Sign In (New Token) — Forces you to enter your credentials again, even if your browser remembers a previous session. Use this when your roles or permissions have changed on the server and your current token has stale claims.
Relative URLs:
Dobermann supports relative URLs for OAuth endpoints. If authorization URL or token URL starts with /, it will be automatically prepended with the environment’s base URL.
Example:
Base URL: https://api.example.com
Authorization URL: /oauth/authorize
Token URL: /oauth/token
Resolves to:
Authorization URL: https://api.example.com/oauth/authorize
Token URL: https://api.example.com/oauth/token
For detailed setup instructions including provider configuration, see the OAuth Setup Guide.
Google Service Account
Authenticate using a Google Cloud service account for Google APIs (Cloud Platform, Pub/Sub, Storage, BigQuery, and more).
How to use:
- Select “Google Service Account” as authentication method
- Upload or paste your service account JSON key file
- Select the appropriate scope preset:
- Cloud Platform — Full access to Google Cloud APIs
- Pub/Sub — Google Cloud Pub/Sub messaging
- Storage — Google Cloud Storage (read/write)
- BigQuery — BigQuery data and job management
- Custom — Enter your own scopes
- Click Test Authentication to verify credentials
- Click Save Environment
Service account JSON format:
{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "key-id",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "name@project.iam.gserviceaccount.com",
"client_id": "123456789",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token"
}
Best practices:
- Use the minimum scopes required for your use case
- Rotate service account keys periodically
- Never commit service account JSON to source control
Token Details
After authenticating, the Token Details section appears below the authentication method. It provides a read-only view of your current token.
Features:
- Decoded view — Shows the decoded JWT payload (claims, expiration, issuer)
- Encoded view — Shows the raw encoded token string
- Copy button — Copy the full token to clipboard
- Status pill — Visual indicator showing token validity:
- Valid — Token is current and usable
- Expiring soon — Token will expire shortly
- Expired — Token has expired and needs refreshing
Token Details is shared across all authentication methods — whichever method provides the active token, its details appear here.
Headers & Variables
The Headers & Variables tab manages environment-level request headers and reusable template variables.
Headers
Environment-level headers are automatically included in every request. Toggle Include environment-level headers on any endpoint to inherit them.
Add custom headers in the environment’s header configuration for values that should apply across all endpoints (e.g., API keys, content types, custom identifiers).
Variables
Environment variables are key-value pairs accessible in templates via the ENV: prefix (e.g. {{ENV:warehouse}}). Set them in the Variables section of your environment configuration.
Common uses:
- Organisation codes, warehouse IDs, tenant identifiers
- API keys and tokens that vary between environments
- Default values shared across multiple endpoints
How they work:
- ENV variables are not prompted during Run API
- ENV variables don’t appear in the data entry grid during Run Batch
- They’re resolved automatically from your active environment’s variable list
- If a variable is missing, execution fails with a clear error
See Template Variables — ENV for usage syntax.
Organization Selection (Manhattan Active)
This section applies specifically to Manhattan Active APIs, which require organization headers.
Manhattan Active APIs require organization headers. Dobermann automatically detects available organizations and provides a selection interface.
How it works:
- After authentication, Dobermann fetches available organizations
- Select your organization from the dropdown
- Organization headers are automatically added to all requests
- Switch organizations anytime without re-authenticating
Organization headers added:
X-Organization-IdX-Tenant-Id- Other Manhattan Active-specific headers
Visual indicators:
- Green checkmark — Organization selected
- Warning icon — No organization selected (required for Manhattan Active)
Environment Tree View
Environments appear in the sidebar tree view with these indicators:
Status icons:
- Checkmark — Active environment (used for executions)
- Lock — Authenticated
- Warning — Authentication required or expired
- Building — Organization selected
Actions:
- Click name — Open environment editor
- Right-click — Context menu with actions
- Drag endpoints — Move endpoints between environments
Troubleshooting
Token Expired
Symptoms: API requests return 401 Unauthorized
Solutions:
- DBMN: Click Sign In when prompted — your DBMN session will be refreshed automatically
- JWT: Paste a new token in environment settings
- OAuth: Click Sign In (New Token) to force fresh credentials and get an updated token
- Google Service Account: Check key expiry, re-upload if needed
OAuth Flow Fails
Symptoms: Browser opens but authentication doesn’t complete
Check:
- Redirect URI matches OAuth provider configuration
- Client ID and secret are correct
- Authorization URL and token URL are valid
- Network connectivity to OAuth provider
See the OAuth Setup Guide for detailed configuration help.
Environment Not Selectable
Symptoms: Cannot set environment as active
Solutions:
- Ensure environment has valid authentication
- Check that base URL is accessible
- Verify environment is saved (not in unsaved state)
API Calls Use Wrong URL
Symptoms: Requests go to incorrect server
Check:
- Correct environment is set as active (checkmark)
- Base URL in environment settings is correct
- Base URL does not have trailing slash
- Endpoint paths start with
/
Related Topics
- OAuth Setup Guide — Detailed OAuth and Google auth configuration
- Endpoints — Configure and manage API endpoints
- Console — Execute requests against environments
- Import/Export — Share environment configurations (excludes sensitive data)