No description
Find a file
wdunn001 a74ed9eded
Some checks failed
Server CI / Lint (push) Failing after 2m0s
Server CI / Typecheck (push) Successful in 3m28s
feat(community): SSO to native game account bridge, phases 2 and 3
Adds the player-facing half of game account management: a panel on
/community/servers/[id] that shows your linked account for that server,
creates one, and changes its password.

None of these emulators speak OIDC and none will - each ships its own
login against its own auth database. So this is a bridge, not SSO: one
Drop identity tied to one native account per server, enforced by a unique
index on (userId, serverSlug). That constraint IS the feature.

Drop owns identity, authorization, the link table and the UI. The
per-game DB access and password crypto stay in mmo-portal's provider API
(SRP6 verifiers, EQEmu hashing) - code that writes into live auth DBs and
fails silently when subtly wrong.

The password never touches Drop's database; it goes straight through to
the provider, which turns it into whatever that emulator wants.

Notable details:
- GameServer.slug names the game, provider.key names the emulator. They
  agree for eqemu and daoc but wow != trinitycore, so the mapping is an
  explicit three-entry constant, not an assumption.
- Panel renders NOTHING when a server has no account backend (Impostor is
  a lobby with no identity), rather than a dead button.
- 'backend unreachable' is kept distinct from 'you have no account' - the
  latter would invite a duplicate during an outage.
- Provision creates in the game first, then links. The reverse would
  leave a link pointing at a nonexistent account, which reads as
  corruption to every later call.
- Authorization is just an authenticated Drop session with the ACL: Drop
  access and game access already imply each other, so a third gate could
  only disagree with them.

Typecheck clean.
2026-08-12 17:04:33 -04:00
.github/workflows Publish docs, update links (#431) 2026-06-21 16:39:34 +10:00
backend chore(deps): bump github.com/jackc/pgx/v5 in /backend/core (#400) 2026-07-29 20:57:00 +10:00
cli chore(deps): bump rand from 0.9.2 to 0.9.3 in /cli (#394) 2026-07-29 20:56:15 +10:00
desktop desktop: route News through the client-JWT path; bump to 0.4.4 2026-08-03 23:46:04 -04:00
docs docs(design): correct the slug-to-provider-key mapping 2026-08-07 18:16:05 -04:00
libraries chore(deps): bump nuxt from 3.21.6 to 3.21.7 (#424) 2026-07-29 21:00:46 +10:00
server feat(community): SSO to native game account bridge, phases 2 and 3 2026-08-12 17:04:33 -04:00
sites docs(quasarke): VR player guide and operator reference 2026-08-04 04:43:21 -04:00
torrential chore(deps): bump rustls-webpki from 0.103.8 to 0.103.13 in /torrential (#405) 2026-07-29 21:26:12 +10:00
.dockerignore Attempt fix monorepo build (#404) 2026-04-27 15:38:05 +10:00
.gitattributes Improve repo tooling (#398) 2026-04-20 11:44:38 +10:00
.gitignore Improve repo tooling (#398) 2026-04-20 11:44:38 +10:00
Dockerfile Dockerfile: cache torrential's cargo registry + target dir across builds 2026-08-02 13:24:12 -04:00
package.json Improve repo tooling (#398) 2026-04-20 11:44:38 +10:00
pnpm-lock.yaml community: fold /community into the fork, source-build the three JS patches 2026-08-02 00:12:06 -04:00
pnpm-workspace.yaml Improve repo tooling (#398) 2026-04-20 11:44:38 +10:00
README.md Publish docs, update links (#431) 2026-06-21 16:39:34 +10:00
SECURITY.md Add and fix missing projects 2026-03-30 19:34:34 +11:00
server.code-workspace New v0.4.0 website 2026-04-03 01:25:10 +00:00


Drop

Website Docs Static Badge GitHub License Discord Open Collective Weblate project translated

Drop is an open-source game distribution platform, similar to GameVault or Steam. It's designed to distribute and share DRM-free games quickly, all while being incredibly flexible, beautiful, and fast.

Drop Screenshot

Philosophy

  1. Drop is flexible. While abstractions and interfaces can complicate the codebase, the flexibility is worth it.
  2. Drop is secure. The nature of Drop means an instance can never be accessible without authentication. In line with #1, Drop also supports a huge variety of authentication mechanisms, from username/password to SSO.
  3. Drop is user-friendly. The interface is designed to be clean and simple to use, with advanced features available to users who want them.

Deployment

See our documentation on how to deploy Drop for more information.

Contributing

Please see the in-depth contributing guide. The guide includes information on how to set up the project, how to contribute code, how to report issues, and even how to effectively translate Drop.

Drop Translation Progress