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

decentraland / asset-bundle-registry / 25111749148
71%

Build:
DEFAULT BRANCH: main
Ran 29 Apr 2026 01:31PM UTC
Jobs 1
Files 82
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

29 Apr 2026 01:29PM UTC coverage: 71.02% (+0.5%) from 70.567%
25111749148

push

github

web-flow
feat: add denylist CRUD endpoints with moderator authorization (#114)

* feat: add denylist table, migrations, and CRUD endpoints with moderator authorization

- Migration 1745846400000_denylist.ts: new denylist table with entity_id (PK),
  reason, created_by, created_at, updated_at audit columns and case-insensitive indexes
- Extends IDbComponent with getDenylist / addDenylistEntry / removeDenylistEntry
- Extends IRefreshableFeaturesComponent with getUserModerators() polling
  dapps-platform_user_moderators feature flag (same pattern as malicious-profiles)
- GET /denylist: public endpoint returning all blocked entity IDs
- POST /denylist/:entityId: signed-fetch + moderator-only, upserts an entry
- DELETE /denylist/:entityId: signed-fetch + moderator-only, removes an entry
- Unit and integration tests covering all paths including 403 for non-moderators

* fix: address PR feedback on denylist feature

- Wrap long line in refreshable-features/component.ts (prettier)
- Preserve original created_by on upsert conflict
- Remove redundant LOWER(entity_id) index (data already stored lowercase)

* docs: add denylist endpoints to OpenAPI spec

* feat: filter denylisted entities from POST /entities/active (#115)

* feat: filter denylisted entities from POST /entities/active

Mirrors the catalyst behavior by excluding denylisted entities at the
SQL level using a NOT EXISTS subquery against the denylist table, avoiding
a separate round-trip to fetch the full denylist.

* fix: drop redundant LOWER on denylist side and fix flaky ordering test

- Use denylist.entity_id = LOWER(registries.id) instead of comparing
  both sides with LOWER(), since addDenylistEntry already stores entity_id
  in lowercase — allows PostgreSQL to use the PK index on entity_id
- Make "should return multiple entities" order-independent with
  arrayContaining since getSortedRegistriesByPointers has no guaranteed
  ordering when sortOrder is not set

609 of 896 branches covered (67.97%)

Branch coverage included in aggregate %.

56 of 68 new or added lines in 7 files covered. (82.35%)

1599 of 2213 relevant lines covered (72.25%)

37.09 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
24.59
-4.96% src/logic/refreshable-features/component.ts
2
71.43
src/migrations/1745846400000_denylist.ts
Jobs
ID Job ID Ran Files Coverage
1 25111749148.1 29 Apr 2026 01:31PM UTC 164
71.61
GitHub Action Run
Source Files on build 25111749148
  • Tree
  • List 82
  • Changed 49
  • Source Changed 6
  • Coverage Changed 49
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25111749148
  • 69589796 on github
  • Prev Build on main (#25007886384)
  • Next Build on main (#25223787332)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc