~/.panguard-chat/config.json. This file manages notification channel credentials, formatting preferences, and delivery settings.
Configuration File Location
Full Configuration Example
Channel Configuration
Telegram
Configuration Fields
Configuration Fields
| Field | Type | Description |
|---|---|---|
enabled | boolean | Enable Telegram notifications |
botToken | string | Bot API token from @BotFather (encrypted after setup) |
chatId | string | Target chat/group ID (encrypted after setup) |
parseMode | string | Message format: HTML or Markdown |
disablePreview | boolean | Disable link previews in messages |
Setup via CLI
Setup via CLI
- Bot token (from @BotFather)
- Chat ID (send a message to your bot first, then the CLI detects it)
You must send a message to your bot first before it can send messages to you. This is a Telegram Bot API requirement.
Slack
Configuration Fields
Configuration Fields
| Field | Type | Description |
|---|---|---|
enabled | boolean | Enable Slack notifications |
webhookUrl | string | Incoming webhook URL (encrypted after setup) |
channel | string | Target channel (overrides webhook default) |
username | string | Bot display name |
iconEmoji | string | Bot icon emoji |
Setup via CLI
Setup via CLI
- Go to api.slack.com/apps
- Create or select an app
- Enable Incoming Webhooks
- Add a webhook to your workspace
- Copy the webhook URL
Configuration Fields
Configuration Fields
| Field | Type | Description |
|---|---|---|
enabled | boolean | Enable email notifications |
smtp.host | string | SMTP server hostname |
smtp.port | number | SMTP port (587 for TLS, 465 for SSL) |
smtp.secure | boolean | Use TLS/SSL |
smtp.auth.user | string | SMTP username |
smtp.auth.pass | string | SMTP password (encrypted after setup) |
from | string | Sender email address |
to | string[] | Recipient email addresses |
subjectPrefix | string | Prefix for email subject lines |
Setup via CLI
Setup via CLI
| Provider | Host | Port |
|---|---|---|
| Gmail | smtp.gmail.com | 587 |
| Outlook | smtp.office365.com | 587 |
| SendGrid | smtp.sendgrid.net | 587 |
| AWS SES | email-smtp.REGION.amazonaws.com | 587 |
Webhook
Configuration Fields
Configuration Fields
| Field | Type | Description |
|---|---|---|
enabled | boolean | Enable webhook notifications |
url | string | Webhook endpoint URL (encrypted after setup) |
method | string | HTTP method: POST or PUT |
headers | object | Custom HTTP headers to include |
timeout | number | Request timeout in milliseconds |
Webhook Payload Format
Webhook Payload Format
Preferences
| Field | Type | Default | Description |
|---|---|---|---|
language | string | en | Notification language (en, zh-TW, ja) |
minSeverity | string | medium | Minimum severity to send: low, medium, high, critical |
cooldownMinutes | number | 15 | Minimum interval between duplicate alerts |
batchWindow | number | 60 | Seconds to batch related events before sending |
includeDetails | boolean | true | Include technical details in notifications |
includeRecommendations | boolean | true | Include AI-generated response recommendations |
Encryption Details
Sensitive fields are encrypted at rest using AES-256-GCM:- Encrypted values are prefixed with
ENC:v1: - The encryption key is derived from a machine-specific identifier
- Encryption happens automatically during
panguard chat setup - The CLI decrypts values transparently when sending notifications