Configuration
Setting up the Privilege Manager Webex Approval Bot requires three steps: creating the Webex bot, creating a Privilege Manager API client, and deploying the bot container.
Step 1 — Create the Webex Bot
-
Go to https://developer.webex.com/my-apps and sign in.
-
Click Create a New App > Create a Bot.
-
Fill in the following fields:
-
Bot Name — for example,
PrivMan Approvals -
Bot Username — must be unique; Webex appends
@webex.botautomatically -
Icon — upload any image (required)
-
Description — for example,
Approves Privilege Manager requests from Webex
-
-
Click Add Bot.
-
Copy and save the Bot Access Token shown on the confirmation page.
The Bot Access Token is only shown once. If you lose it, regenerate it from the bot's settings page under My Webex Apps.
Step 2 — Create a Privilege Manager API Client
-
Log into your Privilege Manager instance.
-
Go to Admin > Users > Create User.
-
Set the type to API Client.
-
Give it a name (for example,
Webex Bot). -
Assign it the Privilege Manager Administrators role.
-
Copy and save the Client ID and Client Secret.
The Client Secret is only shown once. Save it before navigating away.
Step 3 — Deploy the Bot
Pull the Docker Image
PowerShell (Windows):
docker pull delineaxpm/privman-webex:latest
Bash (Linux / macOS):
docker pull delineaxpm/privman-webex:latest
Run the Container
Replace the placeholder values with your credentials from Steps 1 and 2.
PowerShell (Windows):
docker run -d `
--name privman-webex-bot `
--restart unless-stopped `
-v privman-bot-data:/app/data `
-e USE_LOCAL_STORAGE=true `
-e PRIVMAN_BASE_URL=https://yourinstance.privilegemanagercloud.com/Tms `
-e PRIVMAN_USERNAME=<your-client-id> `
-e PRIVMAN_PASSWORD=<your-client-secret> `
-e WEBEX_BOT_TOKEN=<your-webex-bot-token> `
-e POLL_INTERVAL=30 `
-e ROOM_STORE_PATH=/app/data/rooms.json `
delineaxpm/privman-webex:latest
Bash (Linux / macOS):
docker run -d \
--name privman-webex-bot \
--restart unless-stopped \
-v privman-bot-data:/app/data \
-e USE_LOCAL_STORAGE=true \
-e PRIVMAN_BASE_URL=https://yourinstance.privilegemanagercloud.com/Tms \
-e PRIVMAN_USERNAME=<your-client-id> \
-e PRIVMAN_PASSWORD=<your-client-secret> \
-e WEBEX_BOT_TOKEN=<your-webex-bot-token> \
-e POLL_INTERVAL=30 \
-e ROOM_STORE_PATH=/app/data/rooms.json \
delineaxpm/privman-webex:latest
Important: PRIVMAN_BASE_URL must end with /Tms and have no trailing slash after it. For example: https://company.privilegemanagercloud.com/Tms
Environment Variables Reference
| Variable | Required | Default | Description |
|---|---|---|---|
PRIVMAN_BASE_URL
|
Yes | — | Privilege Manager instance URL. Must end with /Tms with no trailing slash. |
PRIVMAN_USERNAME
|
Yes | — | Privilege Manager API client ID. |
PRIVMAN_PASSWORD
|
Yes | — | Privilege Manager API client secret. |
WEBEX_BOT_TOKEN
|
Yes | — | Bot Access Token from Step 1. Used to authenticate all Webex REST and websocket calls. |
POLL_INTERVAL
|
No | 30
|
Seconds between Privilege Manager polls. Lower values feel more responsive but increase API load. |
ROOM_STORE_PATH
|
No | rooms.json
|
Path to the JSON file that stores registered Webex space IDs. Relative paths resolve from the working directory. |
SSM_SCHEDULE_PARAM
|
No | /privman-webex-bot/AUTOAPPROVE_SCHEDULE
|
AWS SSM Parameter Store parameter name used to persist the auto-approve schedule. If the parameter does not exist, the bot logs a warning and runs with auto-approve disabled. See Auto-Approve (Optional). |
AWS_ACCESS_KEY_ID
|
No* | — | AWS access key. Required only for auto-approve when not using an IAM role or AWS CLI profile. |
AWS_SECRET_ACCESS_KEY
|
No* | — | AWS secret key paired with AWS_ACCESS_KEY_ID. Same conditions as above. |
AWS_DEFAULT_REGION
|
No* | — | AWS region containing the SSM parameter (for example, us-east-1). Same conditions as above. |
Once the container is running, continue to User Setup to register a Webex space and start receiving approval requests.