Initial Redmine tooling and local plugin forks
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
# RedmineUP Local Fork Changelog
|
||||
|
||||
The installed RedmineUP `redmine_contacts` and `redmine_contacts_helpdesk`
|
||||
plugins are treated as locally maintained legacy code for this Redmine 3.4.4
|
||||
environment. Before risky edits, archive the current plugin directories in
|
||||
`dist/` and record the purpose, touched behavior, and LAN test result here.
|
||||
|
||||
## Current Checkpoint
|
||||
|
||||
- Baseline:
|
||||
- Redmine `3.4.4`
|
||||
- `redmine_contacts` `4.1.2 PRO`
|
||||
- `redmine_contacts_helpdesk` `3.0.9 PRO`
|
||||
- Strategic direction:
|
||||
- Treat helpdesk/customer data as first-class.
|
||||
- Prefer local-fork plugin edits when they unlock safer search/indexing.
|
||||
- Keep Redmine request paths independent from external worker/index failures.
|
||||
- Implemented locally:
|
||||
- `redmine_event_outbox` plugin with issue/journal/contact events.
|
||||
- Optional helpdesk outbox hooks for `HelpdeskTicket` and `JournalMessage`.
|
||||
- Read-only `helpdesk_search/*` JSON endpoints in the local helpdesk fork.
|
||||
- Standalone contact CLI and read-only helpdesk export/search CLI.
|
||||
- LAN deployment status:
|
||||
- Helpdesk search routes were deployed and route-loaded successfully on the
|
||||
LAN Redmine copy.
|
||||
- Short alias/usage routes were added to avoid noisy routing errors during
|
||||
manual browser testing.
|
||||
- Full end-to-end helpdesk outbox validation is still pending.
|
||||
- Next meaningful milestone:
|
||||
- Build the external worker/indexer that consumes `event_outbox_events`,
|
||||
enriches via read-only MySQL joins, and emits deterministic ticket/message
|
||||
documents for external indexing.
|
||||
|
||||
## 2026-04-24 - POP3 Get Mail Compatibility Fix
|
||||
|
||||
- Touched plugin:
|
||||
- `redmine_contacts`
|
||||
- `redmine_contacts_helpdesk`
|
||||
- Purpose:
|
||||
- Fix Helpdesk POP3 retrieval on the LAN test host when Ruby 2.5 raises
|
||||
`FrozenError: can't modify frozen String` inside `Net::POP3`.
|
||||
- Allow Helpdesk outbound mail to use Mailpit's unauthenticated SMTP listener.
|
||||
- Behavior changed:
|
||||
- Changed POP3 message retrieval from `msg.pop` to `msg.pop(String.new)` so
|
||||
Ruby's POP3 code appends chunks into an explicit mutable destination string.
|
||||
- This does not change message handling semantics; it only avoids relying on
|
||||
Ruby's default empty string argument being mutable.
|
||||
- Changed Helpdesk SMTP delivery option construction to omit
|
||||
`authentication`, `user_name`, and `password` when the project SMTP
|
||||
authentication setting is blank.
|
||||
- LAN test result:
|
||||
- Deployed to `/usr/share/redmine/plugins/redmine_contacts`.
|
||||
- `HelpdeskMailer.check_project(Project.find("fud-helpdesk").id)` completed
|
||||
successfully and processed 1 message.
|
||||
- Deployed to `/usr/share/redmine/plugins/redmine_contacts_helpdesk`.
|
||||
- Mailpit rejected `AUTH PLAIN` with `502 5.5.1 Command not implemented`.
|
||||
After blanking SMTP auth settings and omitting auth options, a Helpdesk test
|
||||
mail for issue `#39863` was delivered to Mailpit.
|
||||
|
||||
## 2026-04-21 - Helpdesk Search Foundation
|
||||
|
||||
- Archives created before plugin edits:
|
||||
- `dist/redmine_contacts-4.1.2-local-before-helpdesk-search-20260421T215548Z.tar.gz`
|
||||
- `dist/redmine_contacts_helpdesk-3.0.9-local-before-helpdesk-search-20260421T215548Z.tar.gz`
|
||||
- Touched plugins:
|
||||
- `redmine_contacts_helpdesk`
|
||||
- `redmine_event_outbox`
|
||||
- Purpose:
|
||||
- Make helpdesk ticket and message identity available to external search and
|
||||
indexing workers.
|
||||
- Avoid relying on Redmine issue author when helpdesk-created tickets use
|
||||
`Anonymous`.
|
||||
- Behavior changed:
|
||||
- Added read-only `helpdesk_search/*` JSON endpoints guarded by the existing
|
||||
`view_helpdesk_tickets` permission.
|
||||
- Added optional outbox hooks for `HelpdeskTicket` and `JournalMessage`.
|
||||
- Payload/content policy:
|
||||
- Include ids, source, direction, message id, and non-body address metadata.
|
||||
- Do not copy email bodies, private note text, attachments, or BCC addresses
|
||||
into event rows or the read API.
|
||||
- LAN test result:
|
||||
- Pending. Validate on the LAN Redmine copy by creating/updating a controlled
|
||||
helpdesk ticket and journal message, checking `event_outbox_events`, and
|
||||
calling the new `helpdesk_search/*` endpoints with a user/API key that has
|
||||
`view_helpdesk_tickets`.
|
||||
Reference in New Issue
Block a user