Skip to content

feat(linked-roles): internal enqueue, Rabbit AMQP, timing-safe secrets#130

Draft
owens1127 wants to merge 4 commits into
mainfrom
feat/discord-linked-roles-api
Draft

feat(linked-roles): internal enqueue, Rabbit AMQP, timing-safe secrets#130
owens1127 wants to merge 4 commits into
mainfrom
feat/discord-linked-roles-api

Conversation

@owens1127

Copy link
Copy Markdown
Contributor

Summary

RaidHub-API server-to-server path to enqueue Hermes linked-role sync, plus Rabbit fixes and timing-safe client secret checks.

Key changes

  • POST /internal/queue-discord-linked-role-sync (body: destiny ids; secret: x-raidhub-client-secret; timing-safe compare).
  • enqueue-manual-syncdiscord_role_metadata_sync queue; DISCORD_LINKED_ROLES_ENABLED; 503 on buffer full.
  • RabbitConnection: host/vhost; defaults match Hermes docker (dev/password).
  • timingSafeStringEqual for /authorize/user and /authorize/admin body secrets.
  • Optional Turso lookup for Discord invocation → Bungie (RAIDHUB_ACCOUNT_TURSO_URL).

Related PRs

  • Web-App: feat/discord-linked-roles
  • Services: feat/discord-linked-roles
  • raidhub-discord: feat/linked-account-cache-and-user-jwt

CI

Workflows set RABBITMQ_HOST / RABBITMQ_USER / RABBITMQ_PASSWORD for compose broker.

Made with Cursor

Add POST /internal/queue-discord-linked-role-sync (x-raidhub-client-secret, timing-safe)
publishing to discord_role_metadata_sync with DISCORD_LINKED_ROLES_ENABLED gate.

- RabbitConnection: configurable host/vhost; defaults align with Hermes (dev/password).
- discordRoleMetadataSyncQueue + enqueue-manual-sync; discord_lr_publish_total.
- timingSafeStringEqual for authorize user/admin client secrets.
- Turso-backed Discord account lookup for invocation context when RAIDHUB_ACCOUNT_TURSO_URL is set.

CI: RABBITMQ_* env for tests. example.env documents AMQP vs management API vars.
Co-authored-by: Cursor <cursoragent@cursor.com>
@barecheck

barecheck Bot commented May 4, 2026

Copy link
Copy Markdown

Barecheck - Code coverage report

Total: 91.01%

Your code coverage diff: 0.16% ▴

Uncovered files and lines
FileLines
src/auth/user-context.ts38-42
src/integrations/rabbitmq/connection.ts38, 41, 46-47, 58-60
owens1127 and others added 3 commits May 3, 2026 23:08
- Add timingSafeSecret, enqueue-manual-sync, and internal queue route tests (coverage).
- Prettier on linked-role and discord-context files.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…echeck

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant