Paradaux

PAR-75

0

Log websocket for incoming transactions

CanceledrianBusinessFeature

Emit a per-transfer signal so incoming transactions can be reacted to (in-game chat notifications, websocket feeds, etc.).

Grounded: Treasury fires no per-transfer event — only TaxCycleEvent (see tasks/TaxCycleTask). TreasuryApi.transfer(...) completes silently, so nothing can react to a firm/player receiving money.

Add a Bukkit event (e.g. TransferEvent carrying from/to account ids + amount + reason) fired after a successful ledger transfer, and/or a websocket feed for external consumers. Unblocks PAR-56 (notify online firm employees in chat on incoming transfer) and the event-driven path for PAR-57.

Resources

Comments

tesks · Jun 4, 2026, 9:57 AM

Code context — There's no websocket / transaction streaming in business or treasury today; transfers go synchronously through TreasuryApi.transfer, and the only async hook is TaxCycleEvent.

This belongs at the Treasury / treasury-rest-api layer, not business (the ledger is Treasury's system of record). Realistic shape: an SSE/WebSocket in treasury-rest-api tailing the transaction table, or a new Treasury per-transfer event with an outbound publisher; business-rian would only be a consumer. Confirm scope/owner — pairs with PAR-56 (both want a transfer event that doesn't exist yet).

tesks · Jun 14, 2026, 5:40 PM

Cancelled. The external-consumer half (a feed/webhooks for reacting to ledger transactions out-of-process) shipped as PAR-151 — cursor pull endpoint + HMAC-signed webhooks, with self-service config (PAR-153), Discord embeds (PAR-155), and admin management (PAR-160). The remaining in-game TransferEvent idea isn't being pursued: its main consumer, in-game transaction chat notifications (PAR-56), already shipped via a direct call from the pay handlers (on the PAR-94 firm-notification service), so a cross-plugin Bukkit event isn't needed.

tesks · Jun 14, 2026, 5:42 PM

Correction to the note above: the actual ask was an HTTP websocket feed for external consumers. That's redundant now that webhooks (PAR-151) exist — webhooks are the right way to push ledger transaction events out-of-process. Cancelled as superseded; no websocket needed.

Activity

  • tesks commented
  • paradaux changed status to Status → Canceled
  • paradaux description: Description updated
  • tesks commented
  • ParadauxIO linked a commit — Commit 08b8cbb — Add firm notification service + incoming-transfer notices (PAR-94, PAR-56)
  • ParadauxIO linked a commit — Commit 08b8cbb — Add firm notification service + incoming-transfer notices (PAR-94, PAR-56)
  • tesks updated labels (Labels updated)
  • tesks changed status to Status → Backlog
  • tesks description: Description updated
  • tesks commented
  • tesks assigned Assigned to rian
  • tesks created the issue