Ctrl K

Schema Studio

Schema Studio is an open-source visual platform for creating, validating, previewing, versioning, and publishing JSON Schema-based metadata models for FAIR research data.

1
contributor
Get started
55 commitsLast commit ≈ 3 weeks ago0 stars0 forks

Cite this software

Description

Schema Studio

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 through 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
  • Configurable object-level additionalProperties
  • Property-name constraints using 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 using 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 built on React JSONSchema Form (RJSF) v6. The integration provides standard RJSF callback contracts, read-only rendering, improved submission and schema-error handling, accessible validation feedback, 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, testing, and quality-assurance release. It adds configurable object constraints, automatic property-name normalization, improved validation, stable root-field ordering, broader automated regression testing, and improved GitLab CI/CD reporting.

Object-level additionalProperties can now be enabled or disabled through the field configurator. The default value is false, while explicitly imported or configured values are preserved during normalization, saving, and reloading. This behavior is supported for root objects, nested objects, and object schemas inside array items.

Schema authors can also configure propertyNames.pattern. The default expression is ^[a-z][a-z0-9_-]*$, allowing lowercase letters, numbers, underscores, and hyphens while requiring property names to begin with a lowercase letter. Invalid regular expressions are highlighted in the interface, and imported property names that violate the configured expression can be identified.

User-entered property names are normalized automatically. For example, Title names becomes title_names, while Sample-Name becomes sample-name. Names that do not start with a letter receive a field_ prefix. When normalization changes a name, the user receives a notification and the original text remains available as the human-readable field label. Normalized keys are checked against the configured pattern, and duplicate property names are rejected.

The release fixes a normalization issue that could remove legitimate properties named id. Schema-level legacy identifier handling is now kept separate from ordinary fields defined under properties.id, ensuring that these properties survive normalization, saving, and reloading.

Root-field ordering has also been corrected. The schema tree now respects the root x-schema-studio-order, and newly created root fields are appended without alphabetically reordering existing fields. 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. Root ordering is not propagated into nested structures, and no additional nonstandard ordering keyword has been introduced. This preserves compatibility with Dynamic JSON Form Renderer, SEPIA, and existing Schema Studio schemas.

Application theme management has been integrated with next-themes, improving light and dark theme synchronization and 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 functionality.

Automated regression testing now covers important backend and frontend behavior, including schema normalization, preservation of id properties, object constraints, property-name normalization, root and nested ordering, builder state, runtime schema generation, saved-schema output, registry APIs, vocabulary routes, and schema-tree construction.

GitLab CI/CD can publish JUnit test reports for display in pipeline and merge-request test summaries. Coverage extraction and Cobertura reports provide dynamic coverage information and merge-request coverage visualization.

At release verification, all 33 automated tests passed, frontend statement coverage was approximately 77.9%, frontend linting and formatting checks passed, TypeScript validation succeeded, the optimized Next.js production build completed successfully, and backend regression tests passed.

Version 1.2.0 does not introduce breaking changes to existing schemas, registry data, exported schema formats, Dynamic JSON Form Renderer integrations, or SEPIA workflows.

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 parsing, normalization, schema storage, registry management, manifest generation, and export.

Schema Studio is licensed under the Apache License, Version 2.0.

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

Participating organisations

Helmholtz-Zentrum Berlin für Materialien und Energie

Contributors

Mojeeb Rahman Sedeqi
Author/Developer/Maintainer
Helmholtz-Zentrum Berlin für Materialien und Energie GmbH (HZB)

Related software

Dynamic JSON Form Renderer

DY

A reusable React and TypeScript library for generating accessible, terminology-aware forms with metadata support.

Updated 1 week ago
1

schema-studio-utils

SC

Reusable TypeScript Utilities for Schema Studio JSON Schema Packages, Manifests, and Schema-Version Data Migration

Updated 1 week ago
1