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

decentraland / comms-gatekeeper / 32380477054
86%

Build:
DEFAULT BRANCH: main
Ran 20 Aug 2026 02:31PM UTC
Jobs 1
Files 151
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

20 Aug 2026 02:29PM UTC coverage: 85.967% (+0.3%) from 85.683%
32380477054

push

github

web-flow
fix(auth): upgrade @dcl/crypto-middleware to 6 (#289)

* fix(auth): upgrade @dcl/crypto-middleware to 6

Version 6 binds the metadata bytes into the signed payload instead of
lowercasing them, so the signature now covers the metadata exactly as
delivered rather than only its case-folded form.

No source changes are needed. The middleware already handed handlers the
metadata as the client sent it, cased, both before and after this change;
only the payload the signature is checked against differs. Every
metadata.signer comparison and every value read out of authMetadata keeps
behaving as it did.

The test helper does need to catch up: getAuthHeaders signed the previous
payload format, so without this every integration auth test would fail
against a correctly working service.

Note that clients must ship the new signing format before this deploys.
Any explorer still signing the previous payload gets a 401, and that is
every scene-originated request rather than a subset, because the metadata
this service reads is camelCase throughout (sceneId, realmName,
realm.serverName, deviceIdentifier).

* test(auth): expect the signature rejection rather than the removed guard

The watcher-token spec covering a scene signer signed canonically and
delivered re-cased asserted a 400 from the canonical-value guard that
@dcl/crypto-middleware 5.1.0 applied. Version 6 joins the metadata bytes
into the signed payload, so the delivered bytes no longer reproduce what
was signed and the request fails verification first, with a 401.

The behaviour under test is unchanged: the request is still refused and
the handler is still not reached. Only the layer that refuses it moved,
from a guard covering two named fields to the signature covering all of
them.

* refactor(auth): use the shared signer predicates from crypto-middleware 6.1

The five hand-rolled metadataValidator closures are replaced by
requireSigner and rejectIfSigner. Same gates, expressed once in the
library rather tha... (continued)

1145 of 1456 branches covered (78.64%)

Branch coverage included in aggregate %.

3 of 3 new or added lines in 2 files covered. (100.0%)

3137 of 3525 relevant lines covered (88.99%)

78.61 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32380477054.1 20 Aug 2026 02:31PM UTC 302
87.17
GitHub Action Run
Source Files on build 32380477054
  • Tree
  • List 151
  • Changed 97
  • Source Changed 2
  • Coverage Changed 97
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32380477054
  • 315f59d7 on github
  • Prev Build on main (#31196967398)
  • Delete
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