-
Notifications
You must be signed in to change notification settings - Fork 0
Admin Interface
This guide covers all admin pages for the Redmine Webhook Plugin.
Location: Administration > Webhook Endpoints
Manage all webhook endpoints from a single interface.
Main Actions:
- Create new webhook endpoint
- Edit existing endpoint
- Delete endpoint
- View Deliveries filtered by endpoint
- Click New Webhook Endpoint button
- Fill in the form:
| Field | Description | Example |
|---|---|---|
| Name | Descriptive name for the endpoint | "Production Slack" |
| URL | HTTPS webhook destination | "https://hooks.slack.com/services/T00000000/B00000000/XXXXXX" |
| Events | Events to trigger | Select at least one |
| Field | Description | Example |
|---|---|---|
| Payload Mode | Payload size | "standard" |
| Webhook User | User to send as | Select from dropdown |
| Enabled | Activate webhook | ☑ |
- Click Save
- Click on endpoint name in the list
- Modify any fields
- Click Save
Note: Changes apply immediately for new events.
- Click Delete icon (red trash can)
- Confirm deletion
Warning: After deletion:
- ❌ No new webhooks will be sent to this endpoint
- ✅ Delivery history is preserved (can still view in "Webhook Deliveries")
- ✅ Can re-enable endpoint by recreating
| Column | Description |
|---|---|
| Name | Endpoint name |
| URL | Webhook destination (truncated for display) |
| Events | Configured events count |
| Enabled | Status (active/inactive) |
| Last Used | Last webhook timestamp |
| Actions | Edit, Delete, View Deliveries |
Location: Administration > Webhook Deliveries
Monitor all webhook delivery attempts with full request/response details.
Main Actions:
- Filter deliveries by various criteria
- View detailed delivery information
- Replay failed or dead deliveries
- Export filtered deliveries to CSV
- Purge old delivery records
Filter options at the top of the page:
- Select specific webhook endpoint from dropdown
- Shows deliveries for that endpoint only
- Pending - Queued, waiting to be sent
- Success - Delivered successfully
- Failed - HTTP error, will retry
- Dead - All retries exhausted
- Start Date - Filter deliveries after this date
- End Date - Filter deliveries before this date
- Search for all deliveries for a specific issue or time entry
| Column | Description |
|---|---|
| Endpoint | Which webhook endpoint |
| Event | Event type + action (e.g., "Issue Created") |
| Resource | Issue ID or Time Entry ID (clickable link) |
| Status | Badge + color indicator |
| Scheduled At | When queued for delivery |
| Attempt Count | Number of HTTP retries |
| Last Attempt | Timestamp of last request |
| Actions | Replay, Delete, Purge |
| Status | Badge | Color | Description |
|---|---|---|---|
| Pending | 🟦 | Waiting to be sent | |
| Success | 🟢 | Delivered successfully | |
| Failed | 🟠 | HTTP error, will retry | |
| Dead | 🔴 | All retries exhausted |
Click on any delivery row to view complete information.
Shows what was sent to the external endpoint:
- Request Headers - HTTP headers sent with payload
- Request Body - Full payload JSON sent
- Timestamp - When request was initiated
Shows external endpoint's response:
- Response Status Code - HTTP status (200, 404, 500, etc.)
- Response Body - Response from external service
- Error Message - Detailed error (if applicable)
Additional information about the delivery:
- Event ID - Unique event identifier
- Event Type - Issue or time_entry
- Action - created, updated, or deleted
- Occured At - When event happened in Redmine
- Actor - Redmine user who triggered event
- Redmine URL - Link to Redmine resource
Use checkboxes in the leftmost column to select multiple deliveries:
- Filter to show Failed or Dead deliveries
- Check boxes for deliveries to replay
- Click Replay Selected button (top right)
- Confirm in modal
What Happens:
- ✅ New delivery records created for each selection
- ✅ All queued immediately
- ❌ Original records preserved (for audit trail)
- Apply desired filters
- Check boxes for deliveries to export
- Click Export to CSV button (top right)
- Download generated file
- Filter to old deliveries (e.g., older than 30 days)
- Check boxes for records to purge
- Click Purge button (top right)
- Confirm deletion
Warning: This permanently deletes selected records and cannot be undone.
Location: Administration > Plugins > Redmine Webhook Plugin (Configure)
Access plugin-wide settings:
Toggle: Pause all webhook deliveries
| State | Description |
|---|---|
| Enabled | Deliveries processed normally |
| Disabled | No new deliveries, existing queue remains |
Use Case: Emergency maintenance, external service downtime, investigation periods.
Field: Days to keep delivery records
Default: 30 days
Options:
- 7 days - High turnover, low storage
- 30 days - Default, balanced
- 90 days - Long history, more storage
Note: Applies to both successful and failed deliveries. Automatic cleanup runs via cron job.
View technical details about the plugin:
- Plugin Version - Current installed version
- Last Updated - When configuration was changed
- Delivery Queue Size - Number of pending deliveries
- Database Size - Tables and row counts
From Redmine Admin:
Administration
├── Webhook Endpoints
│ └── [View Deliveries] (filtered by endpoint)
└── Plugins
└── [Redmine Webhook Plugin] (Configure)
| Menu Item | Sub-Items | Purpose |
|---|---|---|
| Administration | Webhook Endpoints | Manage webhook endpoints |
| Webhook Deliveries | Monitor all deliveries | |
| Plugins | Redmine Webhook Plugin | |
| Projects | Project settings |
-
Use Descriptive Names
- ✅ "Production Slack" or "DevOps Teams"
- ❌ "Webhook 1" or "API Endpoint"
-
Separate by Environment
- Create different endpoints for prod/staging/dev
- Prevents accidentally sending test events to production
-
Use Appropriate Payload Modes
- Minimal for high-volume notifications
- Standard for most integrations (Slack, Teams)
- Full for data synchronization or archival
-
Test Before Production
- Create test endpoint first
- Verify payload format
- Check external service logs
-
Check Regularly
- Filter by "Failed" status
- Investigate 5xx errors immediately
- Monitor "Dead" deliveries for endpoint issues
-
Export for Analysis
- Export delivery logs monthly
- Analyze success rates
- Identify patterns
-
Review Old Records
- Use purge function after retention period
- Keep database lean and fast
-
Never Expose Credentials
- Don't include API keys in screenshots
- Rotate webhook user credentials
- Use HMAC signatures instead of API keys
-
Monitor for Anomalies
- Sudden spike in delivery failures
- Unknown IP addresses in logs
- Failed authentication attempts
-
Use Global Pause for Maintenance
- Pause before updating Redmine
- Pause during external service outages
- Resume after verification
| Problem | Solution | Documentation |
|---|---|---|
| Endpoint not triggering webhooks | Check event selection, verify enabled status | Configuration |
| All deliveries failing | Check endpoint URL, test manually, verify credentials | Troubleshooting |
| Can't replay deliveries | Check if delivery is in Failed/Dead status | Usage Guide |
Report bugs or request features:
- GitHub Issues: https://github.com/guyinwonder168/redmine_webhook_plugin/issues
- Documentation: Home
Last Updated: 2026-02-03
Plugin Version: 1.0.0-RC1