Skip to content

Admin Interface

guyinwonder168 edited this page Feb 7, 2026 · 2 revisions

Admin Interface

This guide covers all admin pages for the Redmine Webhook Plugin.

Table of Contents


Webhook Endpoints Page

Location: Administration > Webhook Endpoints

Page Overview

Manage all webhook endpoints from a single interface.

Main Actions:

  • Create new webhook endpoint
  • Edit existing endpoint
  • Delete endpoint
  • View Deliveries filtered by endpoint

Creating an Endpoint

  1. Click New Webhook Endpoint button
  2. Fill in the form:

Required Fields

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

Optional Fields

Field Description Example
Payload Mode Payload size "standard"
Webhook User User to send as Select from dropdown
Enabled Activate webhook
  1. Click Save

Editing an Endpoint

  1. Click on endpoint name in the list
  2. Modify any fields
  3. Click Save

Note: Changes apply immediately for new events.

Deleting an Endpoint

  1. Click Delete icon (red trash can)
  2. 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

Endpoint List Columns

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

Webhook Deliveries Page

Location: Administration > Webhook Deliveries

Page Overview

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

Filtering Deliveries

Filter options at the top of the page:

By Endpoint

  • Select specific webhook endpoint from dropdown
  • Shows deliveries for that endpoint only

By Status

  • Pending - Queued, waiting to be sent
  • Success - Delivered successfully
  • Failed - HTTP error, will retry
  • Dead - All retries exhausted

By Date Range

  • Start Date - Filter deliveries after this date
  • End Date - Filter deliveries before this date

By Resource ID

  • Search for all deliveries for a specific issue or time entry

Delivery List Table

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

Delivery Status Indicators

Status Badge Color Description
Pending 🟦 Waiting to be sent
Success 🟢 Delivered successfully
Failed 🟠 HTTP error, will retry
Dead 🔴 All retries exhausted

Viewing Delivery Details

Click on any delivery row to view complete information.

Request 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

Response Information

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)

Delivery Metadata

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

Bulk Actions

Use checkboxes in the leftmost column to select multiple deliveries:

Replay Selected

  1. Filter to show Failed or Dead deliveries
  2. Check boxes for deliveries to replay
  3. Click Replay Selected button (top right)
  4. Confirm in modal

What Happens:

  • ✅ New delivery records created for each selection
  • ✅ All queued immediately
  • ❌ Original records preserved (for audit trail)

Export to CSV

  1. Apply desired filters
  2. Check boxes for deliveries to export
  3. Click Export to CSV button (top right)
  4. Download generated file

Purge Old Records

  1. Filter to old deliveries (e.g., older than 30 days)
  2. Check boxes for records to purge
  3. Click Purge button (top right)
  4. Confirm deletion

Warning: This permanently deletes selected records and cannot be undone.


Settings Page

Location: Administration > Plugins > Redmine Webhook Plugin (Configure)

Plugin Configuration

Access plugin-wide settings:

Global Pause

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.

Retention Period

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.

System Information

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

Navigation

Quick Navigation Links

From Redmine Admin:

Administration
├── Webhook Endpoints
│   └── [View Deliveries] (filtered by endpoint)
└── Plugins
    └── [Redmine Webhook Plugin] (Configure)

Menu Structure

Menu Item Sub-Items Purpose
Administration Webhook Endpoints Manage webhook endpoints
Webhook Deliveries Monitor all deliveries
Plugins Redmine Webhook Plugin
Projects Project settings

Best Practices

Endpoint Management

  1. Use Descriptive Names

    • ✅ "Production Slack" or "DevOps Teams"
    • ❌ "Webhook 1" or "API Endpoint"
  2. Separate by Environment

    • Create different endpoints for prod/staging/dev
    • Prevents accidentally sending test events to production
  3. Use Appropriate Payload Modes

    • Minimal for high-volume notifications
    • Standard for most integrations (Slack, Teams)
    • Full for data synchronization or archival
  4. Test Before Production

    • Create test endpoint first
    • Verify payload format
    • Check external service logs

Monitoring Deliveries

  1. Check Regularly

    • Filter by "Failed" status
    • Investigate 5xx errors immediately
    • Monitor "Dead" deliveries for endpoint issues
  2. Export for Analysis

    • Export delivery logs monthly
    • Analyze success rates
    • Identify patterns
  3. Review Old Records

    • Use purge function after retention period
    • Keep database lean and fast

Security Practices

  1. Never Expose Credentials

    • Don't include API keys in screenshots
    • Rotate webhook user credentials
    • Use HMAC signatures instead of API keys
  2. Monitor for Anomalies

    • Sudden spike in delivery failures
    • Unknown IP addresses in logs
    • Failed authentication attempts
  3. Use Global Pause for Maintenance

    • Pause before updating Redmine
    • Pause during external service outages
    • Resume after verification

Getting Help

Configuration Issues

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

Plugin Issues

Report bugs or request features:


Last Updated: 2026-02-03
Plugin Version: 1.0.0-RC1