Release Notes — v5.1.0 — Entity Value Policies & Metadata Refactor
Overview
This release introduces access policies for Namespace Entity Values (EV), refactors the user metadata service layer, and improves the admin console experience for managing metadata namespaces and their associated entities.
✨ New Features
Entity Value Policies
- Introduced access control policies for Entities via the new
idm_usr_entity_policiesmodel - Added a
5.1.0migration granting standard profileGETaccess torest:user-meta/entity - Added
IsContextEditableflag on entities, derived from policy context, allowing fine-grained control over whether end users can add new tag values
New REST Endpoints
- Dedicated CRUD endpoints for Entities and Entity Values are now the primary mechanism for creating and managing EV data, replacing implicit parsing from
JsonDefinition - Default policies are applied automatically when entities and values are created via the new endpoints
Admin Console — Namespace & Entity Value Management
- Namespace creation in the admin console now uses the dedicated Entity Value endpoints
MetaNamespaceandMetaNamespaceFieldOptionscomponents refactored to TypeScript with improved state management- New "Disable new values" flag available on tag-cloud namespace entities, controlling the
PoliciesContextEditablesetting per entity - Added translation key for entity values closed list
EvResolver — Entity Value Link Resolution
- Added
Detach()method for explicit DELETE-path handling Resolve()now batch-fetches and detaches removed links in a single pass- Extracted
normalizeLabelsandresolveEntityValuesas focused helpers - Resolver is instantiated once outside the request loop for efficiency
♻️ Refactors
Backend
UpdateUsermetaNamespaceREST handler is now responsible for Namespace CRUD only — entity and value operations are handled by their own dedicated handlers- Entity value resolution moved from
client.gointo the gRPC layer - DAO initialization for Entities and Values refactored; DAO resolution uses named lookup in gRPC handlers and unit tests
- Added UUID field to Namespace entities
- Improved and fixed user meta service migration ordering
- IDM user meta storage driver resolution and policy spec refactored for clarity
Frontend
JsonDefinitionparse and write operations are now performed client-side, after the namespace and entities are already created server-side- Fixed select field displaying key instead of value across all user metadata display and select views
- Removed unused proto messages; regenerated protos and Swagger spec for the JS SDK
🐛 Bug Fixes
| Ticket | Description |
|---|---|
| WPB-27348 | Fixed incorrect behavior in entity value handling |
| WPB-27253 | Fixed EV link resolution via entityId in JSON definition
|
| WPB-23527 | Addressed issue with metadata namespace entity values |
| — | Fixed select item display showing key instead of label in user metadata views |
| — | Fixed startup migration config using wrong entity policy prefix |
| — | Restored removed composite index in GORM migration spec |
| — | Fixed DAO resolution from main meta DAO in unit tests |
| — | Version migration correctly targets 5.1.0
|
🔒 Security
- Dependency update:
vitestsub-dependencies bumped to resolve Semgrep-flagged vulnerabilities
🧪 Tests
- Unit tests added for
ev-resolver - Unit tests added for gRPC handler layer
- Improved existing meta unit tests
- Fixed migration conflict causing test run failures
📦 Build & Distribution
- Production dist rebuilt for changed frontend plugins:
access.settingsmeta.useruploader.htmlgui.ajax
npmlockfile restored and node modules reinstalled cleanly- TypeScript dev dependency and
tsconfigadded to metadata admin console
Change log
You can find a summary of the change log here.