89 lines
3.1 KiB
Text
89 lines
3.1 KiB
Text
|
|
# Hookshot Room Targeting Discovery
|
||
|
|
# Generated: 2026-04-09 (Phase 6.0, Questions 5 + 7)
|
||
|
|
#
|
||
|
|
# NOTE: Hookshot is BLOCKED for this use case (E2EE + MAS incompatibility).
|
||
|
|
# This file documents targeting mechanics for completeness.
|
||
|
|
|
||
|
|
## Per-Room vs Wildcard Configuration
|
||
|
|
|
||
|
|
### Per-Room Model
|
||
|
|
|
||
|
|
Hookshot uses a per-room connection model. Each outbound webhook is stored as a
|
||
|
|
Matrix room state event (type: `uk.half-shot.matrix-hookshot.generic.hook`).
|
||
|
|
|
||
|
|
To add an outbound webhook to a room:
|
||
|
|
1. Invite hookshot bot to the room
|
||
|
|
2. Create a webhook connection via bot command or state event
|
||
|
|
3. Each room gets its own URL + auth token
|
||
|
|
|
||
|
|
### NO Wildcard / All-Rooms Option
|
||
|
|
|
||
|
|
There is NO built-in wildcard, glob, or "all rooms the bot is in" option.
|
||
|
|
Each room must be individually configured.
|
||
|
|
|
||
|
|
### Static Connections (Config File)
|
||
|
|
|
||
|
|
Connections CAN be defined statically in config.yml:
|
||
|
|
```yaml
|
||
|
|
connections:
|
||
|
|
- connectionType: uk.half-shot.matrix-hookshot.generic.hook
|
||
|
|
stateKey: archive-hook
|
||
|
|
roomId: "!XUeWZuPdWQQnUYLJBJ:echo6.co"
|
||
|
|
state:
|
||
|
|
name: Signal Archive
|
||
|
|
```
|
||
|
|
|
||
|
|
But each roomId must be specified explicitly. No pattern matching.
|
||
|
|
|
||
|
|
### Space Membership
|
||
|
|
|
||
|
|
No space-following option. Hookshot cannot be configured to "archive all rooms
|
||
|
|
in the Signal Bridge space."
|
||
|
|
|
||
|
|
## Workflow for Auto-Created Portals
|
||
|
|
|
||
|
|
Given that mautrix-signal auto-creates portals on incoming messages:
|
||
|
|
|
||
|
|
1. Hookshot would need to be invited to each new portal
|
||
|
|
2. An outbound webhook connection would need to be created per portal
|
||
|
|
3. No automation path exists for this within hookshot itself
|
||
|
|
4. Would require external automation:
|
||
|
|
- Monitor Synapse for new rooms matching bridge namespace
|
||
|
|
- Invite hookshot bot
|
||
|
|
- Create webhook connection via hookshot API or state event
|
||
|
|
- This is essentially building the custom bot that Phase 6 originally proposed
|
||
|
|
|
||
|
|
## Current Portal List (Question 7)
|
||
|
|
|
||
|
|
6 portals as of 2026-04-09:
|
||
|
|
|
||
|
|
| Signal Group | Matrix Room ID | Type |
|
||
|
|
|-------------|----------------|------|
|
||
|
|
| (DM 1) | !tSvEWQcXxJItLGAXDr:echo6.co | dm |
|
||
|
|
| (DM 2) | !hiDxGpfsYESpVDQXKW:echo6.co | dm |
|
||
|
|
| COMMS LP group | !XUeWZuPdWQQnUYLJBJ:echo6.co | group |
|
||
|
|
| Left Preppers | !JfxIRowNkLbBlNPjVX:echo6.co | group |
|
||
|
|
| Liberal_Preppers_OG | !RvWNPmcKtPImhKPYcA:echo6.co | group |
|
||
|
|
| The Weekly Topic | !vBXtbgfYcptEuimrmn:echo6.co | group |
|
||
|
|
|
||
|
|
More portals will auto-create as messages arrive in other Signal groups.
|
||
|
|
|
||
|
|
## Can Hookshot Join Existing Rooms?
|
||
|
|
|
||
|
|
Yes — hookshot can be invited to existing rooms after the fact, not just newly
|
||
|
|
created ones. The outbound webhook connection is created per-room regardless
|
||
|
|
of when the room was created. No migration path needed beyond:
|
||
|
|
1. Invite bot
|
||
|
|
2. Create connection
|
||
|
|
3. Events forward from that point (no backfill)
|
||
|
|
|
||
|
|
## Backfill Limitation
|
||
|
|
|
||
|
|
Hookshot outbound webhooks only forward NEW events from the point of connection.
|
||
|
|
Historical events already in the room are NOT replayed. Any archive tool that
|
||
|
|
needs historical data must use Synapse's admin API or database access.
|
||
|
|
|
||
|
|
## Source
|
||
|
|
|
||
|
|
- https://matrix-org.github.io/matrix-hookshot/latest/usage/room_configuration.html
|
||
|
|
- https://github.com/matrix-org/matrix-hookshot/blob/main/config.sample.yml
|