Configuration
Setting up the Privilege Manager Slack Approval Bot requires three steps: creating the Slack app, creating a Privilege Manager API client, and deploying the bot container.
Step 1 — Create the Slack app
Create the App
-
Go to https://api.slack.com/apps and sign in.
-
Click Create New App > From scratch.
-
Enter a name (for example,
PrivMan Approvals) and select your workspace, then click Create App.
Enable Socket Mode
-
In the left menu, click Socket Mode.
-
Toggle it ON.
-
When prompted, enter a token name (for example,
privman-token) and click Generate. -
Copy and save this token. It starts with
xapp-.
Add Bot Token Scopes
-
In the left menu, click OAuth & Permissions.
-
Scroll to Bot Token Scopes and click Add an OAuth Scope.
-
Add each of the following scopes:
-
app_mentions:read -
chat:write -
im:history -
users:read
-
Subscribe to Events
-
In the left menu, click Event Subscriptions.
-
Toggle Enable Events to ON.
-
Under Subscribe to bot events, click Add Bot User Event and add:
-
app_mention -
message.im
-
-
Click Save Changes.
Enable Interactivity
-
In the left menu, click Interactivity & Shortcuts.
-
Toggle it ON and click Save Changes.
Install the App
-
In the left menu, click Install App.
-
Click Install to Workspace and then click Allow.
-
Copy and save the Bot User OAuth Token. It starts with
xoxb-.
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,
Slack 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-slack:latest
Bash (Linux / macOS):
docker pull delineaxpm/privman-slack:latest
Run the Container
Replace the placeholder values with your credentials from Steps 1 and 2.
PowerShell (Windows):
docker run -d `
--name privman-slack-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 SLACK_BOT_TOKEN=xoxb-... `
-e SLACK_APP_TOKEN=xapp-... `
-e POLL_INTERVAL=60 `
-e CHANNEL_STORE_PATH=channels.json `
delineaxpm/privman-slack:latest
Bash (Linux / macOS):
docker run -d \
--name privman-slack-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 SLACK_BOT_TOKEN=xoxb-... \
-e SLACK_APP_TOKEN=xapp-... \
-e POLL_INTERVAL=60 \
-e CHANNEL_STORE_PATH=channels.json \
delineaxpm/privman-slack:latest
Important: PRIVMAN_BASE_URL must end with /Tms. 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. |
PRIVMAN_USERNAME
|
Yes | — | Privilege Manager API client ID. |
PRIVMAN_PASSWORD
|
Yes | — | Privilege Manager API client secret. |
SLACK_BOT_TOKEN
|
Yes | — | Bot User OAuth Token from Step 1. Starts with xoxb-. |
SLACK_APP_TOKEN
|
Yes | — | App-Level Token from Step 1. Starts with xapp-. |
USE_LOCAL_STORAGE
|
No | false
|
Set to true to store channel and schedule data in local JSON files on the named volume. Recommended for standard deployments. |
POLL_INTERVAL
|
No | 60
|
Seconds between Privilege Manager polls. |
CHANNEL_STORE_PATH
|
No | channels.json
|
Path for the registered channels file, relative to /app/data inside the container. |
SCHEDULE_STORE_PATH
|
No | schedule.json
|
Path for the auto-approve schedule file, relative to /app/data inside the container. |
When USE_LOCAL_STORAGE is unset or false, the bot uses AWS SSM Parameter Store for storage, which requires additional AWS credentials in the environment.
Once the container is running, continue to User Setup to register a Slack channel and start receiving approval requests.