• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

decentraland / worlds-content-server / 32314839963
92%
main: 92%

Build:
Build:
LAST BUILD BRANCH: feat/ignore-name-ownership-validation
DEFAULT BRANCH: main
Ran 19 Aug 2026 11:52PM UTC
Jobs 1
Files 122
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 Aug 2026 11:48PM UTC coverage: 91.724% (+0.003%) from 91.721%
32314839963

Pull #534

github

LautaroPetaccio
fix(auth): accept the legacy signed payload on the explorer comms routes

@dcl/crypto-middleware 6.0.0 bound the metadata bytes into the signed
payload. The unity, godot and bevy explorers all still sign the pre-6.0.0
folded payload and all send camelCase metadata, so every handshake they
make 401s under 6.x. They are three separate client releases and cannot be
deployed atomically with this service, so no deploy order avoids breaking
them.

6.2.0 adds `canonicalMetadataKeys`, an opt-in fallback for that window: the
current format is tried first and only a signature mismatch falls through
to the legacy payload.

The middleware was a single shared instance serving both explorer and
builder/CLI routes, so enabling the option on it would have widened the
fallback well past the clients that need it. It is now built by a small
factory and instantiated twice. Only the three comms handshakes
(/get-comms-adapter/:roomId, /worlds/:worldName/comms and
/worlds/:worldName/scenes/:sceneId/comms) take the legacy-accepting
instance; deployment, entity, world settings, contribution and every
permissions route keep the strict one.

The declared key list is derived from the reads in this repo rather than
from what clients send: signer, intent, secret, type, wallets, communities
and nft. It is what stops the fallback being a bypass — the legacy payload
folds the metadata, so a delivered `Signer` would share a valid signature
with `signer` while reading as absent to the scene gate. Fields the
explorers send but this service never reads (isGuest, origin, realmName,
realm.serverName, and metadata sceneId) are deliberately unlisted; an
unread field cannot change an authorization decision.

No handler logic changed, and nothing normalizes signer or intent.
Pull Request #534: fix(auth): upgrade @dcl/crypto-middleware to 6

1880 of 2169 branches covered (86.68%)

Branch coverage included in aggregate %.

9 of 9 new or added lines in 1 file covered. (100.0%)

3872 of 4102 relevant lines covered (94.39%)

137.07 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32314839963.1 19 Aug 2026 11:52PM UTC 243
92.76
GitHub Action Run
Source Files on build 32314839963
  • Tree
  • List 122
  • Changed 82
  • Source Changed 1
  • Coverage Changed 82
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32314839963
  • Pull Request #534
  • PR Base - main (#32064237206)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc