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

  1. Go to https://api.slack.com/apps and sign in.

  2. Click Create New App > From scratch.

  3. Enter a name (for example, PrivMan Approvals) and select your workspace, then click Create App.

Enable Socket Mode

  1. In the left menu, click Socket Mode.

  2. Toggle it ON.

  3. When prompted, enter a token name (for example, privman-token) and click Generate.

  4. Copy and save this token. It starts with xapp-.

Add Bot Token Scopes

  1. In the left menu, click OAuth & Permissions.

  2. Scroll to Bot Token Scopes and click Add an OAuth Scope.

  3. Add each of the following scopes:

    • app_mentions:read

    • chat:write

    • im:history

    • users:read

Subscribe to Events

  1. In the left menu, click Event Subscriptions.

  2. Toggle Enable Events to ON.

  3. Under Subscribe to bot events, click Add Bot User Event and add:

    • app_mention

    • message.im

  4. Click Save Changes.

Enable Interactivity

  1. In the left menu, click Interactivity & Shortcuts.

  2. Toggle it ON and click Save Changes.

Install the App

  1. In the left menu, click Install App.

  2. Click Install to Workspace and then click Allow.

  3. Copy and save the Bot User OAuth Token. It starts with xoxb-.

Step 2 — Create a Privilege Manager API Client

  1. Log into your Privilege Manager instance.

  2. Go to Admin > Users > Create User.

  3. Set the type to API Client.

  4. Give it a name (for example, Slack Bot).

  5. Assign it the Privilege Manager Administrators role.

  6. 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.