Schema Studio: Visual Schema Engineering Platform for FAIR Research Metadata

Read full text
Authors: Mojeeb Rahman Sedeqi
Cited by: 2

Abstract

Schema Studio is an open-source visual schema engineering platform for creating, editing, validating, organizing, reviewing, versioning, and publishing metadata schemas through an interactive graphical interface. Developed as part of the SEPIA (Sample Essentials, Persistent Identifiers & Attributes) ecosystem at the Helmholtz-Zentrum Berlin für Materialien und Energie GmbH (HZB), Schema Studio supports the development of type-specific metadata models for research data infrastructures. It promotes FAIR metadata principles, reusable schema components, terminology integration, transparent schema lifecycles, and long-term interoperability. Schema Studio enables metadata engineers to design complex schemas without manually editing large schema documents. Changes made in the visual workspace are transformed into standards-compliant schemas and can immediately be inspected using an integrated dynamic form preview. The platform currently supports JSON Schema Draft 2020-12 and provides: Visual creation and editing of JSON Schema and UI Schema documents Field configuration, ordering, nesting, and reusable schema structures Validation rules, required fields, constraints, and predefined values Object-level additionalProperties configuration Property-name constraints through propertyNames.pattern Automatic property-name normalization and validation Scientific terminology and controlled-vocabulary integration Live and saved-schema form previews A schema registry for organizing and managing schema versions Schema lifecycle operations, including drafting, publication, versioning, and deprecation Schema normalization, validation, persistence, manifest generation, and export Root and nested field ordering through x-schema-studio-order Light and dark application themes Docker-based deployment of the frontend and backend Automated backend and frontend regression testing GitLab CI/CD test and coverage reporting Schema Studio integrates @hzb-rdm/dynamic-json-form-renderer 2.1.1, which is based on React JSONSchema Form (RJSF) v6. The integration provides standard RJSF callback contracts, read-only rendering, submission handling, schema-reference validation, accessible error presentation, terminology-aware metadata presentation, and runtime color customization. A renderer color selector allows users to apply one of 22 supported Tailwind CSS color families across live and saved-schema previews. Theme and color changes are applied immediately without requiring a page refresh. Version 1.2.0 is a backward-compatible feature, correctness, and quality-assurance release. It introduces object-level additionalProperties support, configurable propertyNames.pattern constraints, automatic property-name normalization, improved property-name validation, corrected handling of properties named id, and stable root-field ordering. Object-level additionalProperties can now be configured through the field configurator. Its default value is false, and explicitly configured values are preserved during schema normalization, saving, and reloading. The feature applies consistently to root objects, nested objects, and object schemas inside array items. The new propertyNames.pattern support allows schema authors to constrain valid property keys. The default expression is ^[a-z][a-z0-9_-]*$, permitting lowercase letters, numbers, underscores, and hyphens while requiring property names to begin with a lowercase letter. Users can customize this expression through the interface, and invalid regular expressions are highlighted. User-entered property names are now normalized automatically. For example, Title names becomes title_names, while Sample-Name becomes sample-name. Names that do not begin with a letter receive a field_ prefix. When normalization changes an entered name, Schema Studio displays a notification and preserves the original text as the human-readable field label. Normalized keys are validated against the configured pattern, and duplicate property names are rejected. The release fixes an issue in which legitimate properties named id could be removed during schema normalization or reload. Schema-level legacy identifier handling is now kept separate from ordinary fields under properties.id. Root ordering has also been corrected. The schema tree now respects the root x-schema-studio-order, and newly created root fields are appended without changing the existing order. Root order is no longer reconstructed from the physical order of JSON object keys. Nested objects and object schemas inside arrays continue using their own local x-schema-studio-order. No additional nonstandard order keyword has been introduced. The existing Schema Studio schema format remains unchanged and continues to be compatible with Dynamic JSON Form Renderer and SEPIA. Application theme management has been integrated with next-themes, improving light and dark theme synchronization while removing redundant manual theme-state handling. React state initialization and synchronization were also improved to comply with current hook and linting recommendations without changing existing user-facing behavior. This version expands automated regression testing across the frontend and backend. Tests cover schema normalization, preservation of id properties, object constraints, property-name normalization, root and nested ordering, builder state, runtime schema generation, saved-schema output, registry API behavior, vocabulary routes, and schema-tree construction. GitLab CI/CD test jobs can publish JUnit results for display in pipeline and merge-request test summaries. Coverage extraction and Cobertura reports provide dynamic coverage badges, pipeline coverage information, and merge-request coverage visualization. At release verification: All 33 automated backend and frontend tests passed Frontend statement coverage was approximately 77.9% Frontend TypeScript validation passed Frontend linting and formatting checks passed The optimized Next.js production build completed successfully Backend regression tests passed Root and nested ordering behavior was verified Schema normalization and reload behavior was verified The frontend uses React 19, Next.js 16, TypeScript, Tailwind CSS, next-themes, Vitest, and pnpm 11.17.0. The backend provides modular Python services for schema parsing, normalization, storage, registry management, manifest generation, and export. Source code:https://codebase.helmholtz.cloud/hzb/research_data_management/schema-studio Helmholtz Software Directory:https://helmholtz.software/software/schema-studio Concept DOI for all versions:https://doi.org/10.5281/zenodo.21486684 License: Apache License, Version 2.0.

Publication details

Journal / source
Zenodo (CERN European Organization for Nuclear Research)
Publication date
13 August 2026
Language
EN