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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant