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

decentraland / builder-server / 32372373794
72%
master: 72%

Build:
Build:
LAST BUILD BRANCH: feat/address-collections-status-filter
DEFAULT BRANCH: master
Ran 20 Aug 2026 01:07PM UTC
Jobs 1
Files 192
Run time 2min
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 01:05PM UTC coverage: 71.332% (-0.9%) from 72.187%
32372373794

Pull #809

github

LautaroPetaccio
fix(auth)!: migrate to @dcl/crypto-middleware 6 and harden the scene check

@dcl/platform-crypto-middleware has no release past 1.x, so it never
received the payload change that binds metadata casing to the signature.
Up to that version the signed payload folded the whole joined string, which
left two requests differing only in case sharing one valid signature while
consumers read the metadata exactly as delivered.

The scene check compared with an exact match and was sensitive to that gap
two ways: a delivered `Signer` made the `'signer' in` test false, and a
re-cased value made the `===` false. Either way it fell through and a
scene-originated request was classified as directly user-signed.

Replaces the dependency with @dcl/crypto-middleware ^6.2.0, whose payload
joins the metadata bytes verbatim, and routes the comparison through
rejectIfSigner, which refuses a signer that is not already canonical rather
than comparing it. Nothing is folded — the value reaching handlers is what
was signed. `isEIP1664AuthChain` becomes `isEIP1654AuthChain`, the same
logic under a corrected name.

The check stays on verify()'s success path rather than moving into
metadataValidator. A validator rejection throws out of verify(), which
would enter the catch below and let the validateSignature fallback clear
the error — so moving it would have made the scene check bypassable.

The fetcher needs a cast: crypto-middleware types it against
@dcl/core-commons, which accepts `string | URL | Request`, while this
service's comes from @well-known-components/interfaces and declares only
`Request`. The type is derived from verify() rather than imported, so no
transitive package is depended on, and the cast is safe because the
middleware passes a string URL that @well-known-components/fetch-component
accepts at runtime — confirmed by observing a string URL reach DNS
resolution rather than being rejected.

The spec previously auto-mocked the whole module, which would have left
rejec... (continued)
Pull Request #809: fix(auth)!: migrate to @dcl/crypto-middleware 6 and harden the scene check

1375 of 2151 branches covered (63.92%)

Branch coverage included in aggregate %.

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

170 existing lines in 16 files now uncovered.

3258 of 4344 relevant lines covered (75.0%)

41.79 hits per line

Coverage Regressions

Lines Coverage ∆ File
30
63.26
-17.01% src/AssetPack/AssetPack.router.ts
21
65.76
-0.26% spec/utils.ts
20
86.54
-0.21% src/Item/Item.router.ts
17
90.33
0.46% src/Collection/Collection.router.ts
17
23.33
1.3% src/ethereum/api/peer.ts
16
15.31
0.88% src/Item/Item.model.ts
13
86.61
-0.74% src/Curation/Curation.router.ts
12
88.43
-0.16% src/Collection/Collection.service.ts
7
92.22
-0.06% src/Item/Item.service.ts
6
57.97
-11.59% src/Curation/Curation.service.ts
2
58.33
-16.67% src/AssetPack/utils.ts
2
93.62
10.28% src/middleware/authentication.ts
2
80.95
-0.87% src/middleware/authorization/model.ts
2
85.71
-0.4% src/middleware/collection.ts
2
80.0
-20.0% src/middleware/model.ts
1
96.67
5.97% src/Item/access.ts
Jobs
ID Job ID Ran Files Coverage
1 32372373794.1 20 Aug 2026 01:07PM UTC 384
72.6
GitHub Action Run
Source Files on build 32372373794
  • Tree
  • List 192
  • Changed 110
  • Source Changed 22
  • Coverage Changed 108
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #32372373794
  • Pull Request #809
  • PR Base - master (#31191720981)
  • 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