Import/Export Entity Parameters as JSON

Description of the limitation and why it is relevant to address

As a VIKTOR developer, I want to export and import entity parameters as JSON files so that I can instantly reproduce user-reported bugs by loading their exact configuration into my local development environment, instead of manually recreating input data from Error Reports or asking users to describe each parameter value.

As a VIKTOR user, I want to export my entity configuration to a JSON file so that I can share it with colleagues, use it as a template for new projects, or create a backup of my work without duplicating the entire entity.

As a QA engineer, I want to import standardized parameter sets from JSON files so that I can create reproducible test fixtures and automate regression testing.

I think this is relevant for the VIKTOR platform because:

  • It significantly reduces debugging time when users report issues
  • It enables better collaboration between team members
  • It allows users to create reusable project templates
  • The underlying mechanisms already exist in VIKTOR (SetParamsResult, JSON handling), making implementation feasible

Submitter proposed design

Two built-in action buttons (or a standard VIKTOR feature):

  1. Export Parameters to JSON

    • Serializes the complete params object to a downloadable .json file
    • Preserves the hierarchical structure (e.g., step_1.geometrie.e, step_2.chQ.classe_tr)
    • Handles special types (OptionField selections, DynamicArray contents…)
  2. Import Parameters from JSON

    • Uploads a .json file and populates the parametrization
    • Validates compatibility against the current parametrization schema
    • Shows a preview/diff before applying changes
    • Uses SetParamsResult to update the entity
    • Option for partial import (only specific sections)

Current workarounds

When users report errors, developers must manually recreate their input data from the information mentioned in the Error Report, retrieve it from the problematic project, or ask users to describe each parameter value and translate them into their local environment, which is time-consuming and error-prone.

For sharing configurations, users must either duplicate the entire entity or manually copy values one by one.