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

decentraland / world-storage-service
99%
main: 99%

Build:
Build:
LAST BUILD BRANCH: 1.6.0
DEFAULT BRANCH: main
Repo Added 14 Jan 2026 07:04PM UTC
Files 58
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

LAST BUILD ON BRANCH 1.6.0
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.2.0
  • 1.4.0
  • 1.4.1
  • 1.5.0
  • 1.6.0
  • chore/add-package-json-lint
  • chore/add-service-logs
  • chore/bump-node
  • chore/migrate-to-core-components
  • chore/pin-node-24-base-image
  • chore/replace-platform-server-commons-with-http-commons
  • chore/update-node-24
  • dependabot/npm_and_yarn/dcl/schemas-22.1.0
  • dependabot/npm_and_yarn/dcl/schemas-22.2.0
  • dependabot/npm_and_yarn/dcl/schemas-22.3.0
  • dependabot/npm_and_yarn/dcl/schemas-22.4.0
  • dependabot/npm_and_yarn/dcl/schemas-22.5.0
  • dependabot/npm_and_yarn/dcl/schemas-23.0.0
  • dependabot/npm_and_yarn/dcl/schemas-23.1.0
  • dependabot/npm_and_yarn/dcl/schemas-24.0.0
  • dependabot/npm_and_yarn/dcl/schemas-25.0.0
  • dependabot/npm_and_yarn/dcl/schemas-25.1.0
  • dependabot/npm_and_yarn/dcl/schemas-25.2.0
  • dependabot/npm_and_yarn/dcl/schemas-25.3.0
  • dependabot/npm_and_yarn/dcl/schemas-26.0.0
  • dependabot/npm_and_yarn/dcl/schemas-26.1.0
  • dependabot/npm_and_yarn/flatted-3.4.2
  • dependabot/npm_and_yarn/handlebars-4.7.9
  • dependabot/npm_and_yarn/jest-30.3.0
  • dependabot/npm_and_yarn/lodash-4.17.23
  • dependabot/npm_and_yarn/nodemon-3.1.13
  • dependabot/npm_and_yarn/nodemon-3.1.14
  • dependabot/npm_and_yarn/npm-package-json-lint-10.0.0
  • dependabot/npm_and_yarn/npm-package-json-lint-10.2.0
  • dependabot/npm_and_yarn/prettier-3.8.2
  • dependabot/npm_and_yarn/ts-jest-29.4.9
  • dependabot/npm_and_yarn/types/node-25.0.10
  • dependabot/npm_and_yarn/types/node-25.0.9
  • dependabot/npm_and_yarn/types/node-25.1.0
  • dependabot/npm_and_yarn/types/node-25.2.0
  • dependabot/npm_and_yarn/types/node-25.2.1
  • dependabot/npm_and_yarn/types/node-25.2.2
  • dependabot/npm_and_yarn/types/node-25.2.3
  • dependabot/npm_and_yarn/types/node-25.3.0
  • dependabot/npm_and_yarn/types/node-25.3.3
  • dependabot/npm_and_yarn/types/node-25.3.5
  • dependabot/npm_and_yarn/types/node-25.4.0
  • dependabot/npm_and_yarn/types/node-25.5.0
  • dependabot/npm_and_yarn/types/node-25.5.2
  • dependabot/npm_and_yarn/types/node-25.6.0
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.54.0
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.55.0
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.56.0
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.56.1
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.57.0
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.57.1
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.57.2
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.58.0
  • dependabot/npm_and_yarn/typescript-eslint/parser-8.58.1
  • docs/fix-docs
  • feat/authorized-addresses-only-middleware
  • feat/cors
  • feat/delete-all-endpoints
  • feat/env-scoped-storage-delegation
  • feat/env-storage-endpoints
  • feat/list-env-keys
  • feat/list-player-storage
  • feat/list-players
  • feat/list-world-storage
  • feat/multi-scene-storage
  • feat/scoped-storage-delegation
  • feat/secrets-encryption
  • feat/size-limits
  • feat/storage-caching-and-json-perf
  • feat/usage-endpoints
  • fix/add-options-to-cors
  • fix/audit-hardening
  • fix/authorization-middleware
  • main
  • refactor/rename-world-permissions-manager

14 Jul 2026 05:30PM UTC coverage: 98.68%. Remained the same
29354643191

push

github

web-flow
feat: authorize scene-scoped storage delegations for env value reads (#113)

env values are keyed by place_id = f(world, parcel) — the same scope the
x-authoritative-scope claim pins — so GET /env/:key can accept a scene
worker's world-scoped storage delegation with the same confinement the
/values routes already grant. this lets a headless authoritative worker
read its own scene's env secrets without ever holding the authoritative
key.

- add authorizedAddressesOrScopedDelegationAuthorizationMiddleware
  (authorized addresses OR a valid scene-scoped delegation; still no
  owners/deployers) and wire it onto GET /env/:key
- the remaining env routes (list/upsert/delete) stay owner/deployer-only
  and never accept a delegation
- cover the route with unit + integration tests (valid delegation reads;
  parcel-mismatched claim is rejected)
- correct pre-existing schema-doc drift from the place_id migration: the
  world_storage, player_storage and env_variables primary keys all
  include place_id

424 of 438 branches covered (96.8%)

Branch coverage included in aggregate %.

1146 of 1153 relevant lines covered (99.39%)

70.43 hits per line

Relevant lines Covered
Build:
Build:
1153 RELEVANT LINES 1146 COVERED LINES
70.43 HITS PER LINE
Source Files on main
  • Tree
  • List 58
  • Changed 34
  • Source Changed 2
  • Coverage Changed 34
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
29354643191 1.6.0 feat: authorize scene-scoped storage delegations for env value reads (#113) env values are keyed by place_id = f(world, parcel) — the same scope the x-authoritative-scope claim pins — so GET /env/:key can accept a scene worker's world-scoped stor... push 14 Jul 2026 05:40PM UTC web-flow github
98.68
29354048524 main feat: authorize scene-scoped storage delegations for env value reads (#113) env values are keyed by place_id = f(world, parcel) — the same scope the x-authoritative-scope claim pins — so GET /env/:key can accept a scene worker's world-scoped stor... push 14 Jul 2026 05:31PM UTC web-flow github
98.68
29352955722 feat/env-scoped-storage-delegation feat: authorize scene-scoped storage delegations for env value reads env values are keyed by place_id = f(world, parcel) — the same scope the x-authoritative-scope claim pins — so GET /env/:key can accept a scene worker's world-scoped storage del... Pull #113 14 Jul 2026 05:15PM UTC LautaroPetaccio github
98.68
29270565013 1.5.0 feat: authorize world-scoped authoritative storage delegations (#112) * feat: authorize world-scoped authoritative storage delegations Adds an additive authorization path for /values/* so an authoritative scene server can read/write a world's st... push 13 Jul 2026 05:29PM UTC web-flow github
98.68
28960364948 main feat: authorize world-scoped authoritative storage delegations (#112) * feat: authorize world-scoped authoritative storage delegations Adds an additive authorization path for /values/* so an authoritative scene server can read/write a world's st... push 08 Jul 2026 04:54PM UTC web-flow github
98.68
28907443724 feat/scoped-storage-delegation refactor: encapsulate the signature check; document confinement model (review round 3) #4: extract isPersonalSignatureBy(address, message, signature) so the synthetic [SIGNER, ECDSA_PERSONAL_SIGNED_ENTITY] auth-chain trick is contained behind a c... Pull #112 08 Jul 2026 12:05AM UTC LautaroPetaccio github
98.68
28898748893 feat/scoped-storage-delegation fix: harden storage delegation verification (review round 2) B1: guard a JSON 'null'/primitive payload before destructuring — previously threw a TypeError out of verifyStorageDelegation (attacker-triggerable 500, and broke owner/deployer fall-thr... Pull #112 07 Jul 2026 09:08PM UTC LautaroPetaccio github
98.74
28895412237 feat/scoped-storage-delegation feat: enforce scene scope on storage delegations; guard header size Security review F2/F5: verifyStorageDelegation now takes a target { signer, world, sceneId, parcel, trustedSigners } and requires the claim's sceneId == the request's scene and p... Pull #112 07 Jul 2026 08:12PM UTC LautaroPetaccio github
98.53
28891675888 feat/scoped-storage-delegation chore: fix eslint (prettier, import order, interface types, typed auth chain) Pull #112 07 Jul 2026 07:09PM UTC LautaroPetaccio github
98.57
28891028092 feat/scoped-storage-delegation fix: restrict storage scope-claim signers to the authoritative address; cover the scoped path Least authority: a scope claim is trusted only when signed by AUTHORITATIVE_SERVER_ADDRESS, not by every AUTHORIZED_ADDRESSES entry. Add middleware-leve... Pull #112 07 Jul 2026 06:58PM UTC LautaroPetaccio github
98.57
See All Builds (168)
  • Repo on GitHub
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