Configuration Examples
Table of Contents
Core Configuration
LDAP Configuration
REST Configuration
Complete Examples
Reference
Basic Agent Configuration Structure
Every Bond agent configuration has three main sections:
Moveworks Config
The Moveworks config connects the Bond agent to the Moveworks platform.
Minimal Example
Complete Example with All Options
Secrets Management
Bond supports three methods for managing sensitive values:
Method 1: Plain Text Value (Initial Configuration)
Use this when initially configuring. Bond automatically encrypts it.
After Bond processes it, you’ll see:
Method 2: Pre-Encrypted Value
If you already have an encrypted value:
Method 3: Azure Key Vault
Requires secrets_provider_config:
Method 4: AWS Secrets Manager
Requires secrets_provider_config:
Fields that should be encrypted:
moveworks_access_secret- Agent access secretldap_service_password- LDAP service passwordclient_secret- OAuth2 client secretclient_refresh_token- OAuth2 refresh tokenpassword- Basic auth passwordurl(inrest_call_config) - Token endpoint URLs (recommended)- Any sensitive header or query parameter values
LDAP Configuration
Bond supports two LDAP configuration modes:
ldap_config- Single domain LDAPldap_forest_config- Multiple domains/forests
LDAP Config Structure
Single Domain LDAP
Minimal Example (LDAPS on Port 636)
Complete Example with All Options
LDAPS (Port 636)
Standard LDAP over SSL:
LDAP with StartTLS (Port 389)
LDAP with opportunistic TLS upgrade:
LDAP with Azure Key Vault
LDAP Forest (Multiple Domains)
Use ldap_forest_config when you have multiple LDAP domains or forests.
Structure
Minimal Example
Complete Example with All Options
LDAP Field Reference
Important Notes:
- Use either
use_ssl(port 636) ORuse_start_tls(port 389), not both path_to_certis required when using SSL/TLS unlesstls_skip_verifyis trueldap_forest_configuses the same fields, but as a map with domain identifiers as keys
REST Configuration
Bond supports REST API clients with various authentication methods.
REST Config Structure
Key Points:
- The client name is the map key (e.g.,
JIRA:,SNOW:) - There is NO
base_urlfield - the Moveworks platform passes full URLs per-request - The
servicefield is REQUIRED - Decorators are applied to all requests made through this client
Header Decorators
Header decorators add authentication headers and static headers to all requests.
1. Plain Headers (Static Headers)
Add static key-value pairs to request headers.
Minimal Example
Multiple Static Headers
Use Cases:
- API keys that don’t change
- API version headers
- Client identification headers
2. File-Based Headers
Load headers from a JSON file at runtime.
JSON File Format:
Use Cases:
- Credentials stored in secure files
- Headers that need rotation without config changes
- Environment-specific headers
3. Basic Authentication
HTTP Basic Authentication (username:password encoded in Base64).
Use Cases:
- Jira Cloud with API tokens
- APIs using HTTP Basic Authentication
- Legacy systems
4. OAuth2 Client Credentials
OAuth2 Client Credentials Grant flow (machine-to-machine).
Minimal Example
Complete Example with All Options
Use Cases:
- Microsoft Azure AD
- Google Cloud Platform service accounts
- AWS Cognito machine-to-machine
- Salesforce OAuth2
Key Requirements:
client_id- Your OAuth2 client identifierclient_secret- Your OAuth2 client secretrest_call_config.url- Token endpoint URLscope- Required by most OAuth2 providers
5. OAuth2 Basic Auth
OAuth2 where client_id:client_secret is sent as a Basic Auth header instead of in the request body.
Minimal Example
Complete Example
Difference from oauth2_client_credentials_auth:
oauth2_client_credentials_auth: Sends credentials in request bodyoauth2_basic_auth: Sends credentials as Basic Auth header
Use Cases:
- Atlassian APIs
- APIs requiring OAuth2 with Basic Auth header
6. OAuth2 Refresh Token
OAuth2 flows with refresh tokens for long-lived access.
Minimal Example
Complete Example
Use Cases:
- Long-lived user authentication
- OAuth2 flows where users grant permission once
- Refresh token rotation
7. Custom Auth
Custom authentication flows for non-standard token endpoints.
Minimal Example
Complete Example (BMC Remedy Style)
Complete Example (Cherwell Style)
Use Cases:
- BMC Remedy authentication
- Cherwell authentication
- Custom enterprise authentication systems
- Legacy authentication mechanisms
8. Multiple Decorators Combined
You can combine multiple header decorators in a single REST config.
OAuth2 + Static Headers
Basic Auth + Static Headers
Body Decorators
Body decorators merge key-value pairs into the request body.
1. Plain Body (Static Values)
2. File-Based Body
Load body values from a JSON file at runtime.
JSON File Format:
URL Decorators
URL decorators add query parameters to request URLs.
1. Plain Query Parameter
Add static query parameters to all requests.
2. Oracle WebCenter Auth
Special authentication for Oracle WebCenter.
REST Field Reference
REST Config Top Level
Important: There is NO base_url field. The Moveworks platform passes full URLs per-request.
OAuth2 RestAuthCallConfig
OAuth2 Client Credentials / Basic Auth / Refresh Token
Complete Agent Configuration Examples
Example 1: LDAPS Only
Basic LDAP over SSL configuration:
Example 2: LDAPS + Jira (Basic Auth)
LDAP with a single REST client using Basic Authentication:
Example 3: LDAP Forest with Multiple Domains
Configuration for LDAP environments with multiple domains:
Example 4: Azure Key Vault + OAuth2
Using Azure Key Vault for secrets management with OAuth2:
Example 5: Multiple REST Clients with Mixed Auth
LDAP with multiple REST clients using different authentication methods:
Example 6: All Features Combined
Comprehensive example showing all configuration options:
Common Patterns
Pattern 1: Simple API Key
Pattern 2: OAuth2 with API Version
Pattern 3: Basic Auth with Content Type
Pattern 4: LDAP Forest with StartTLS
Troubleshooting
LDAP Issues
Connection Timeout
Symptoms: Agent can’t connect to LDAP server
Check:
- Verify
hostandportare correct - Check firewall rules allow traffic from agent
- Verify certificate path if using SSL/TLS
- Test connection:
ldapsearch -H ldaps://host:636 -x
Authentication Failed
Symptoms: “Invalid credentials” or “Bind failed”
Check:
- Verify
service_userformat (DOMAIN\username or username@domain.com) - Confirm password is correct
- Check if service account is locked or expired
- Verify service account has LDAP read permissions
TLS/SSL Errors
Symptoms: “Certificate verification failed”
Check:
- Verify
path_to_certpoints to correct CA certificate - Check certificate hasn’t expired
- Ensure certificate chain is complete
- Try
tls_skip_verify: truetemporarily (not recommended for production)
REST Issues
Token Not Being Applied
Check:
- Is
token_body_keycorrect? (default is “access_token”) - Does token endpoint return JSON with expected key?
- Is
header_templatecorrect? (default is “Bearer %s”) - Is token endpoint URL accessible from agent?
Auth Failing
Check:
- Are credentials encrypted correctly?
- Is
client_idcorrect? - Are
scopevalues correct and space-separated? - Is token endpoint URL correct?
- Check agent logs for auth request/response details
Headers Not Appearing
Check:
- Is decorator in
header_decoratorslist? - Are required fields present?
- For file-based headers, does file exist with correct permissions?
- Are static headers properly formatted?
Missing Required service Field
Symptoms: Configuration validation errors
Fix: Add service field to all REST configs:
Azure Key Vault Issues
Secret Not Found
Check:
- Verify
secret_nameis correct - Check
vaultname (ordefault_vaultinsecrets_provider_config) - Verify agent has access to Key Vault (managed identity or service principal)
- Check Azure RBAC permissions
Secret Not Refreshing
Check:
- Verify
refresh_time_secis set if needed - Check agent logs for refresh errors
- Verify Key Vault network rules allow agent access
General Debugging
Enable Debug Logging
Add to moveworks_config.dynamic_config:
Or set via Bond dynamic config API.