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

decentraland / builder-server
72%

Build:
DEFAULT BRANCH: master
Repo Added 22 Sep 2021 06:51PM UTC
Token cczSCRT2GDczUah4EMMQqfm6DhsxMlbIz regen
Build 2273 Last
Files 192
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 master
branch: master
CHANGE BRANCH
x
Reset
Sync Branches
  • master
  • 5.19.2
  • 5.19.3
  • 5.19.4
  • 5.20.0
  • 5.20.1
  • 5.21.0
  • add/realm-name-about
  • chore/add-documentation
  • chore/change-node-version
  • chore/decrease-default-value-of-max-video-size
  • chore/docs
  • chore/enable-coverall
  • chore/expose-with-cloudflare
  • chore/extract-and-refactor-collection-exceptions
  • chore/faster-tests
  • chore/fix-docs-action
  • chore/log-peer-api-response-times
  • chore/merge
  • chore/merge-master
  • chore/prettier-issue
  • chore/reafactor-collection-errors
  • chore/remove-assset-pack-uploading
  • chore/remove-collection-factory-version-env
  • chore/remove-legacy-emotes-support
  • chore/rollback-dockerfile
  • chore/trigger-deploy
  • chore/trigger-deployment
  • chore/trigger-docs-deployment
  • chore/unnecessary-omit
  • chore/update-dockerfile
  • chore/update-node-24
  • chore/update-node-to-24
  • chore/update-readme
  • chore/update-test-names
  • chore/upgrade-common-schemas
  • chore/upgrade-docker-image
  • dependabot/npm_and_yarn/ansi-regex-4.1.1
  • dependabot/npm_and_yarn/babel/traverse-7.23.2
  • dependabot/npm_and_yarn/braces-3.0.3
  • dependabot/npm_and_yarn/cookiejar-2.1.4
  • dependabot/npm_and_yarn/dot-ci/minimatch-3.1.2
  • dependabot/npm_and_yarn/dot-ci/minimist-1.2.6
  • dependabot/npm_and_yarn/dot-ci/minimist-1.2.8
  • dependabot/npm_and_yarn/dot-ci/protobufjs-6.11.3
  • dependabot/npm_and_yarn/dot-ci/semver-5.7.2
  • dependabot/npm_and_yarn/dot-ci/xml2js-and-aws-sdk-0.5.0
  • dependabot/npm_and_yarn/express-4.17.3
  • dependabot/npm_and_yarn/express-4.19.2
  • dependabot/npm_and_yarn/glob-parent-5.1.2
  • dependabot/npm_and_yarn/grpc/grpc-js-and-pulumi/pulumi-1.7.1
  • dependabot/npm_and_yarn/hosted-git-info-2.8.9
  • dependabot/npm_and_yarn/http-cache-semantics-4.1.1
  • dependabot/npm_and_yarn/json5-2.2.3
  • dependabot/npm_and_yarn/minimatch-3.1.2
  • dependabot/npm_and_yarn/minimist-1.2.6
  • dependabot/npm_and_yarn/minimist-1.2.8
  • dependabot/npm_and_yarn/node-fetch-and-isomorphic-fetch-2.6.7
  • dependabot/npm_and_yarn/normalize-url-4.5.1
  • dependabot/npm_and_yarn/path-parse-1.0.7
  • dependabot/npm_and_yarn/protobufjs-6.11.3
  • dependabot/npm_and_yarn/protobufjs-6.11.4
  • dependabot/npm_and_yarn/qs-6.11.0
  • dependabot/npm_and_yarn/shell-quote-1.7.3
  • dependabot/npm_and_yarn/simple-get-2.8.2
  • dependabot/npm_and_yarn/tar-4.4.19
  • dependabot/npm_and_yarn/xml2js-0.5.0
  • feat/about-endpoint
  • feat/accept-new-rarity
  • feat/add-allow-filtering-by-third-party-collections
  • feat/add-block-vrm-export
  • feat/add-cache-headers-tag-addresses-endpoint
  • feat/add-cache-headers-tag-endpoint
  • feat/add-catalyst-content-hash
  • feat/add-collections-sorting
  • feat/add-content-hash
  • feat/add-dcl-crypto
  • feat/add-error-logging-to-forum-post
  • feat/add-get-third-party-endpoint
  • feat/add-granular-cors
  • feat/add-is-mapping-complete-to-item
  • feat/add-issue-template
  • feat/add-item-utility
  • feat/add-mapping-completion-in-curations
  • feat/add-mapping-filters-to-items
  • feat/add-missing-newsletter-source
  • feat/add-more-data-to-terms-of-services
  • feat/add-outline-support
  • feat/add-polygon-amoy-support
  • feat/add-programmatic-property
  • feat/add-props-metric
  • feat/add-qeury-params-collections
  • feat/add-release-job
  • feat/add-retries-on-migration
  • feat/add-search-item-by-name
  • feat/add-sepolia-support
  • feat/add-skin-category
  • feat/add-social-emotes
  • feat/add-support-for-deleting-tpw-items
  • feat/add-support-for-mappings
  • feat/add-text-patter-to-item-name-and-description
  • feat/add-tiers-endpoint
  • feat/add-urn-to-collection-and-item
  • feat/add-virtual-third-parties
  • feat/address-collections-status-filter
  • feat/allow-list-of-cors-origins
  • feat/analytics-sdk7
  • feat/approval-data-all-items
  • feat/approve-endpoint
  • feat/better-content-filtering
  • feat/bigger-files
  • feat/change-deployment
  • feat/change-local-hash
  • feat/change-node-version
  • feat/check-for-duplicated-urn-suffixes
  • feat/check-publish-blockchain-first
  • feat/check-publish-signed-address
  • feat/check-signer
  • feat/cheque-signature-column
  • feat/collection-curation-assignee
  • feat/collection-items-synced-parameter
  • feat/compute-hash-on-item-upsert
  • feat/create-slot-cheques
  • feat/create-templates-endpoint
  • feat/curation-list
  • feat/delete-and-get-endpoints-for-newsletter
  • feat/deletion-of-tpc
  • feat/different-client-for-addresses
  • feat/distinct-on-item-curations
  • feat/emote-entity-type
  • feat/emotes
  • feat/emotes-metrics
  • feat/enable-rarities-w-oracle-stg
  • feat/enable-rarities-with-oracle-dev
  • feat/enable-rarities-with-oracle-prd-stg
  • feat/endpoint-improvements
  • feat/enforce-item-schema-validation
  • feat/fetch-third-party
  • feat/filter-collections-by-type
  • feat/filter-third-party-id-response
  • feat/filter_published_collections
  • feat/fix-vuln
  • feat/fuzzy-search
  • feat/get-collection-addresses-by-item-tag
  • feat/goerli-for-dev
  • feat/handle-smart-wearables
  • feat/hash-migration-script
  • feat/improve-wearables-approval-flow
  • feat/increase-sign-expiration
  • feat/ipfs-on-server
  • feat/is-approved
  • feat/is-published-item-id
  • feat/is-tpw-manager
  • feat/item-curation
  • feat/item-curation-content-hash
  • feat/item-service-upsert
  • feat/items-pagination
  • feat/items-per-address-filter
  • feat/link-collections
  • feat/makes-templates-endpoint-sortable
  • feat/migrate-old-emote-data
  • feat/move-items-to-another-collection
  • feat/new-assignee-forum-post
  • feat/new-curation-iterations
  • feat/new-hashes
  • feat/newsletter
  • feat/only-allow-one-default-cache-update-at-the-time
  • feat/only-approved-third-parties
  • feat/open-sea-proxy
  • feat/opensea-v2
  • feat/opensea-v2-url
  • feat/paginate-collections-endpoint
  • feat/peer-fetch-emotes
  • feat/preview-endpoint
  • feat/publish-rollback
  • feat/put-by-urn
  • feat/queyr-by-contract-address
  • feat/rarity-endpoints-in-mana-converted
  • feat/redeploy
  • feat/redirect-head-content
  • feat/remote-emotes-ff
  • feat/remove-matic-vigil-rpc
  • feat/remove-programmatic-fragment-restriction
  • feat/remove-rarities-with-oracle-ff
  • feat/remove-tpw-managers-env
  • feat/removes-hiding-default
  • feat/replace-network-mapping
  • feat/reset-items-script
  • feat/return-curation-item-upsert
  • feat/return-full-updated-item-after-upsert
  • feat/return-item-count-on-collection-upsert
  • feat/return-item-curations
  • feat/return-merkle-root-on-approval-data-request
  • feat/return-third-party-contracts
  • feat/revert-allowance-of-new-urns
  • feat/save-crdt
  • feat/scene-required-permissions
  • feat/schemas-bump
  • feat/sdk7
  • feat/set-content-hash-script
  • feat/set-programmatic-on-third-party
  • feat/simplify-approval-data
  • feat/spring-bones-metadata
  • feat/stop-serving-js
  • feat/store-sw-video-preview
  • feat/store-third-party-id
  • feat/support-emotes-in-local-content-hash
  • feat/support-fuzzy-search-collections
  • feat/tags-validation
  • feat/templates-manifest
  • feat/third-party-review
  • feat/tp-approval-data
  • feat/tp-available-slots-endpoint
  • feat/tp-is-publish-computation
  • feat/tp-publish
  • feat/tpw-is-published
  • feat/tpw-item-upsert-support
  • feat/trigger-deploy
  • feat/updagrable-collections-prod
  • feat/update-codehash
  • feat/update-codehash-matic
  • feat/update-common-schema-hands
  • feat/update-item-content-endpoint
  • feat/update-item-curation-on-item-edit
  • feat/update-max-video-file-size
  • feat/update-nft-endpoints
  • feat/update-node-version
  • feat/update-project-model
  • feat/update_collections_schema
  • feat/upgrade_dcl_crypto_lib
  • feat/upload-assets-web-editor
  • feat/upsert-items-with-own-date
  • feat/upsert-third-party-collection-checks
  • feat/urn-duplication-check
  • feat/use-asset-packs
  • feat/use-ecr-registry
  • feat/validate-through-middleware
  • feat/verify-signature-logs
  • feat/virtual-collection-curation
  • fix/add-is-programmatic-only-when-on-dev
  • fix/add-prod-tpr-graph
  • fix/address-items-ep
  • fix/allow-land-coords-with-0
  • fix/allow-null-urns
  • fix/allow-posting-tp-collections-to-forum-after-publishing
  • fix/allow-tp-approval-flow-without-cheque
  • fix/approval-data-auth
  • fix/asset-packs-insert
  • fix/asset-packs-router
  • fix/assignee-committee-check
  • fix/broken-images-in-forum-post
  • fix/build-item-metadata
  • fix/build-thrid-party-collection-urn
  • fix/builder-canonical-signer-validation
  • fix/builder-server-preview
  • fix/calculate-sw-contents-hash
  • fix/catch-errors-when-uploading-files
  • fix/catch-wrong-uuids
  • fix/change-tp-content-hash-adr-62
  • fix/check-migration-time
  • fix/check-tp-available-slots
  • fix/collection-creation
  • fix/collection-isPublishedQuery
  • fix/collection-tests
  • fix/collections-collabs
  • fix/collections-filter-query
  • fix/contract-addresses-null
  • fix/creator-from-graph
  • fix/creatorship-change
  • fix/crypto-middleware-6
  • fix/curation-alias
  • fix/curation-patch-assignee
  • fix/curation-showing-unpublished-items
  • fix/curators-tab-loading-time
  • fix/dcl-item-url-upsert
  • fix/dcl-repeated-items
  • fix/default-asset-packs-cache-to-one-day
  • fix/dont-throw-on-multer-error
  • fix/duplicated-collections-filtering-by-tag
  • fix/emote-category-hash
  • fix/emote-metrics-hash
  • fix/fetch-templates
  • fix/fetch-wearables-by-pointers
  • fix/filter-approved-collections
  • fix/find-third-party-ids-query
  • fix/fix-upsert-to-pool
  • fix/forum-post-put
  • fix/forum-post-wrong-id
  • fix/get-collecitons
  • fix/hash-computation
  • fix/increase-collection-name-length
  • fix/increase-instances-count
  • fix/is-mapping-complete
  • fix/item-endpoint
  • fix/item-isowned-check
  • fix/item-update
  • fix/item-urn-suffix-must-be-unique
  • fix/itemCurationEndpoint
  • fix/items-by-address-no-tp-manager
  • fix/items-consolidation-without-urn
  • fix/items-pending-query
  • fix/layout
  • fix/limit-utility-to-64-chars
  • fix/looped-emotes
  • fix/lowercase-address-and-return-completion-on-creation
  • fix/managers-upserting-items
  • fix/mapping-collection-completion
  • fix/migrations
  • fix/migrations-oom-transpile-only
  • fix/modify-unique-constraint-linked-contract-address-network
  • fix/move-items-to-published-collections
  • fix/node24-heap-limit
  • fix/old-emotes-data
  • fix/open-sea-api-owner-null
  • fix/order-by-ambiguos
  • fix/order-by-null
  • fix/prevent-cheques-with-wrong-quantity
  • fix/pride-elements
  • fix/readme
  • fix/redeploy
  • fix/remove-create-extesion-from-migration
  • fix/remove-emojis-from-title
  • fix/remove-isApproved-tps
  • fix/remove-old-infra
  • fix/remove-trgm-migration
  • fix/remove-unpin-from-ipfs
  • fix/remove-unused-endpoint
  • fix/remove-utm_campaign-field-for-subscriptions
  • fix/return-owner-on-tp-create
  • fix/sanitize-item-directory-and-empty-content
  • fix/save-locked-items
  • fix/scene-required-permissions
  • fix/schema-sdk7
  • fix/search-collections
  • fix/search-collections-case-insenstively
  • fix/show-collection
  • fix/show-collections-managers
  • fix/show-collections-minters
  • fix/show-items
  • fix/signature-validation
  • fix/simplify-curation-access
  • fix/skipped-test
  • fix/slots-count
  • fix/spring-bones-metadata
  • fix/third-parties-endpoint-without-manager
  • fix/third-party-queries
  • fix/thumbnail-cors-error
  • fix/tp-approval-data
  • fix/tp-collections-status
  • fix/tp-manager-check
  • fix/tp-publish-forum-link
  • fix/tps-not-showing
  • fix/tpw-collection-upsert-manager-check
  • fix/trigger-deploy
  • fix/trigger-deployment
  • fix/trigger-redeployment
  • fix/unordered-published-collections
  • fix/update-deps-remove-unused-code
  • fix/update-model-file
  • fix/update-sw-video-field
  • fix/update-tp-curation
  • fix/upload-local-race-condition
  • fix/upsert-broken-wearable-representations
  • fix/use-json-instead-of-jsonb
  • fix/use-older-hash-for-standard-items
  • fix/use-platform-crypto-middleware
  • fix/user-cannot-upsert-item
  • fix/verify-sign-api-version
  • fix/verify-sign-api-version-missing
  • hardening/third-party-manager-resolution
  • menduz-patch-1
  • redeploy
  • refactor/enhance-post-after-publishing-tp-collections
  • refactor/item-router-tests
  • refactor/move-extra-util
  • refactor/parallelize-script
  • refactor/reset-script
  • refs/heads/feat/bigger-files
  • refs/pull/684/merge
  • refs/pull/690/merge
  • refs/pull/691/merge
  • refs/pull/692/merge
  • refs/pull/693/merge
  • refs/pull/694/merge
  • refs/pull/695/merge
  • refs/pull/696/merge
  • refs/pull/697/merge
  • refs/pull/699/merge
  • refs/pull/700/merge
  • refs/pull/701/merge
  • refs/pull/704/merge
  • refs/pull/705/merge
  • refs/pull/706/merge
  • refs/pull/707/merge
  • refs/pull/708/merge
  • refs/pull/710/merge
  • refs/pull/711/merge
  • refs/pull/712/merge
  • refs/pull/713/merge
  • refs/pull/716/merge
  • refs/pull/717/merge
  • refs/tags/2.10.1
  • refs/tags/2.11.0
  • refs/tags/3.0.0
  • refs/tags/4.0.0
  • refs/tags/4.1.0
  • refs/tags/4.10.0
  • refs/tags/4.10.1
  • refs/tags/4.10.2
  • refs/tags/4.10.3
  • refs/tags/4.11.0
  • refs/tags/4.11.1
  • refs/tags/4.12.0
  • refs/tags/4.12.1
  • refs/tags/4.12.2
  • refs/tags/4.12.3
  • refs/tags/4.12.4
  • refs/tags/4.12.5
  • refs/tags/4.12.6
  • refs/tags/4.13.0
  • refs/tags/4.14.0
  • refs/tags/4.15.0
  • refs/tags/4.16.0
  • refs/tags/4.17.0
  • refs/tags/4.17.1
  • refs/tags/4.17.2
  • refs/tags/4.17.3
  • refs/tags/4.17.4
  • refs/tags/4.17.5
  • refs/tags/4.2.0
  • refs/tags/4.2.1
  • refs/tags/4.2.2
  • refs/tags/4.3.0
  • refs/tags/4.4.0
  • refs/tags/4.5.0
  • refs/tags/4.5.1
  • refs/tags/4.6.0
  • refs/tags/4.7.0
  • refs/tags/4.8.0
  • refs/tags/4.8.1
  • refs/tags/4.8.2
  • refs/tags/4.9.0
  • refs/tags/4.9.1
  • refs/tags/5.0.0
  • refs/tags/5.0.1
  • refs/tags/5.0.2
  • refs/tags/5.1.0
  • refs/tags/5.10
  • refs/tags/5.10.0
  • refs/tags/5.11.0
  • refs/tags/5.12.0
  • refs/tags/5.12.1
  • refs/tags/5.13.0
  • refs/tags/5.14.0
  • refs/tags/5.14.1
  • refs/tags/5.14.2
  • refs/tags/5.15.0
  • refs/tags/5.15.1
  • refs/tags/5.16.0
  • refs/tags/5.17.0
  • refs/tags/5.18.0
  • refs/tags/5.19.0
  • refs/tags/5.19.1
  • refs/tags/5.2.0
  • refs/tags/5.3.0
  • refs/tags/5.4.0
  • refs/tags/5.4.1
  • refs/tags/5.5.0
  • refs/tags/5.6.0
  • refs/tags/5.7.0
  • refs/tags/5.8.0
  • refs/tags/5.8.1
  • refs/tags/5.8.2
  • refs/tags/5.8.3
  • refs/tags/5.8.4
  • refs/tags/5.8.5
  • refs/tags/5.9.0
  • refs/tags/5.9.1
  • release
  • revert-600-fix/thumbnail-cors-error
  • revert-741-feat/add-granular-cors
  • revert-742-revert-741-feat/add-granular-cors
  • revert/collections-endpoint
  • security/pin-github-actions-sha
  • staging

02 Sep 2026 03:37PM UTC coverage: 72.428% (+0.1%) from 72.294%
33649736915

push

github

web-flow
fix: harden third-party manager resolution and read scoping (#811)

* fix: harden third-party manager resolution and read scoping

Resolve third-party managers virtual-first: while a virtual (draft) record
exists, its managers are authoritative; the indexed on-chain record governs
only once it is the sole record.

- Scope GET /thirdParties to the authenticated wallet instead of a
  client-supplied manager filter.
- Require authentication and manager membership for reads of virtual
  (unpublished) records on GET /thirdParties/:id; keep indexed records public.
- Route the collection create/upsert manager check through the shared
  resolution.
- Match manager addresses case-insensitively across resolution, reads and
  reconciliation via a shared hasManager helper and a case-insensitive
  findByManager query.
- Add unit tests and a ManagerContinuity integration spec covering the
  end-to-end resolution.

* fix: prioritize approved on-chain managers and fail closed on lookup errors

Address review feedback on the third-party manager resolution hardening:

- Prioritize the approved on-chain (indexed) managers over the virtual ones.
  Virtual managers are authoritative only while the third party is still a
  draft, i.e. the indexed record is not yet approved (empty root); a rooted
  on-chain record governs regardless of any lingering virtual record.
- Fail closed in the collection create/upsert path: only create a virtual
  third party after a confirmed NonExistentThirdPartyError, and rethrow
  transient lookup errors so a graph/API failure can no longer create a
  caller-owned record.
- Return 404 instead of 401 when a virtual record is requested by a
  non-manager on GET /thirdParties/:id, so the response is indistinguishable
  from a genuine miss.
- Drop the standalone ManagerContinuity integration spec; its scenarios are
  covered by the collection router tests and the manager-resolution unit
  tests.

* fix: require authentication on GET /thirdParties/:... (continued)

1476 of 2252 branches covered (65.54%)

Branch coverage included in aggregate %.

33 of 38 new or added lines in 5 files covered. (86.84%)

1 existing line in 1 file now uncovered.

3360 of 4425 relevant lines covered (75.93%)

49.79 hits per line

Relevant lines Covered
Build:
Build:
4425 RELEVANT LINES 3360 COVERED LINES
49.79 HITS PER LINE
Source Files on master
  • Tree
  • List 192
  • Changed 108
  • Source Changed 5
  • Coverage Changed 108
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
33649736915 master fix: harden third-party manager resolution and read scoping (#811) * fix: harden third-party manager resolution and read scoping Resolve third-party managers virtual-first: while a virtual (draft) record exists, its managers are authoritative; t... push 02 Sep 2026 03:38PM UTC web-flow github
72.43
33617014485 master Harden collection and item write endpoints: ignore server-managed fields, validate input push 02 Sep 2026 10:00AM UTC cyaiox github
72.29
33517173190 master feat: support status filter on GET /:address/collections (#810) push 01 Sep 2026 02:05PM UTC web-flow github
72.29
32887477314 master fix(auth): upgrade to crypto-middleware 6 and refuse non-canonical signers (#809) * fix(auth): upgrade to crypto-middleware 6 and refuse non-canonical signers Builds on #808, which migrated off @dcl/platform-crypto-middleware and added declaresS... push 25 Aug 2026 07:05PM UTC web-flow github
72.24
31191720981 master fix(auth): harden signed fetch validation (#808) * chore: inline the Node base image digest in both FROM lines Revert the NODE_IMAGE build ARG introduced in 102c192 and write the pinned digest literally in both stages. The ARG made the pinned b... push 07 Aug 2026 03:17PM UTC web-flow github
72.19
30370626690 master fix: asset-pack routes push 28 Jul 2026 02:55PM UTC cyaiox github
72.32
30291580679 master chore: Fix Dockerimage Bump the Node base image from 24.17.0 to 24.18.0 (alpine3.24) and consolidate the builder and runtime pins behind a single NODE_IMAGE ARG so the two stages cannot drift apart. Verified on the built image: Node v24.18.0 / A... push 27 Jul 2026 05:58PM UTC cyaiox github
71.72
30284209279 master fix: TP Collections routes push 27 Jul 2026 04:20PM UTC cyaiox github
71.72
27776464336 master chore: update Node base image to 24 (#807) push 18 Jun 2026 05:12PM UTC web-flow github
71.33
27357486919 master fix: run migrations in ts-node transpile-only mode to prevent OOM (#806) * fix: run migrations in ts-node transpile-only mode to prevent OOM The migration step (`migrate:docker`) registers ts-node with the project tsconfig, which defaults to ful... push 11 Jun 2026 03:20PM UTC web-flow github
71.33
See All Builds (1181)

Badge your Repo: builder-server

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • 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