Initial Redmine tooling and local plugin forks
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# Redmine Event Outbox
|
||||
|
||||
Small Redmine 3.4-compatible plugin that records selected Redmine changes into a
|
||||
local database outbox table for external workers.
|
||||
|
||||
## Events Captured
|
||||
|
||||
- `issue.created`
|
||||
- `issue.updated`
|
||||
- `journal.created`
|
||||
- `contact.created` when `redmine_contacts` is installed
|
||||
- `contact.updated` when `redmine_contacts` is installed
|
||||
- `helpdesk_ticket.created` when `redmine_contacts_helpdesk` is installed
|
||||
- `helpdesk_ticket.updated` when `redmine_contacts_helpdesk` is installed
|
||||
- `journal_message.created` when `redmine_contacts_helpdesk` is installed
|
||||
- `journal_message.updated` when `redmine_contacts_helpdesk` is installed
|
||||
|
||||
The plugin does not publish to Redis, RabbitMQ, webhooks, or external search
|
||||
services directly from Redmine request callbacks. It only writes local database
|
||||
rows.
|
||||
|
||||
## Install
|
||||
|
||||
Copy this directory to the Redmine plugins directory:
|
||||
|
||||
```sh
|
||||
cp -a redmine_event_outbox /path/to/redmine/plugins/
|
||||
```
|
||||
|
||||
Run the plugin migration:
|
||||
|
||||
```sh
|
||||
cd /path/to/redmine
|
||||
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=redmine_event_outbox
|
||||
```
|
||||
|
||||
Restart Redmine. For Passenger:
|
||||
|
||||
```sh
|
||||
touch tmp/restart.txt
|
||||
```
|
||||
|
||||
## Verify
|
||||
|
||||
List the rake task:
|
||||
|
||||
```sh
|
||||
RAILS_ENV=production bundle exec rake -T redmine_event_outbox
|
||||
```
|
||||
|
||||
Dump pending events:
|
||||
|
||||
```sh
|
||||
RAILS_ENV=production bundle exec rake redmine_event_outbox:dump LIMIT=20
|
||||
```
|
||||
|
||||
Create or update a low-risk test issue, then run the dump task again. You should
|
||||
see JSON rows in `event_outbox_events`.
|
||||
|
||||
## Notes
|
||||
|
||||
- Payloads are JSON serialized into a `text` column for MySQL and Redmine 3.4
|
||||
compatibility.
|
||||
- Outbox write failures are rescued and logged so normal Redmine saves are not
|
||||
intentionally failed by this plugin.
|
||||
- Consumers should treat events as at-least-once and idempotent.
|
||||
Reference in New Issue
Block a user