github pydio/cells v5.1.0
Entity Value Policies & Metadata Refactor

2 hours ago

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_policies model
  • Added a 5.1.0 migration granting standard profile GET access to rest:user-meta/entity
  • Added IsContextEditable flag 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
  • MetaNamespace and MetaNamespaceFieldOptions components refactored to TypeScript with improved state management
  • New "Disable new values" flag available on tag-cloud namespace entities, controlling the PoliciesContextEditable setting 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 normalizeLabels and resolveEntityValues as focused helpers
  • Resolver is instantiated once outside the request loop for efficiency

♻️ Refactors

Backend

  • UpdateUsermetaNamespace REST 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.go into 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

  • JsonDefinition parse 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: vitest sub-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.settings
    • meta.user
    • uploader.html
    • gui.ajax
  • npm lockfile restored and node modules reinstalled cleanly
  • TypeScript dev dependency and tsconfig added to metadata admin console

Change log

You can find a summary of the change log here.

Don't miss a new cells release

NewReleases is sending notifications on new releases.