Update Existing Configuration

This page explains how to update or extend an existing Forge configuration, whether it lives in a Python project or as a set of exported JSON files.

Updating a Python Configuration

If your configuration is already a Python project, updating it is straightforward: edit the script, make the changes you need, and re-run it to produce updated JSON output. See Define configuration for examples and patterns on how to write and structure your configuration scripts.

Re-running the script overwrites only the JSON files it produces. Files from a previous run that are no longer generated are left untouched.

Updating Configuration from JSON Files

If you only have exported JSON files and no Python source, use ImportTool from fsp-config-foundation to load them back into facade objects, modify them in Python, and re-export.

from fsp_config_foundation.import_tool import ImportTool

tool = ImportTool()

# Load the existing ConfigUnit from its JSON folder
daemon = tool.import_config_unit("./cfg/my_comdaemon")

# Modify the loaded facade
daemon.some_setting = "new_value"

# Re-export to the same folder (existing files are overwritten)
daemon.export("./cfg/my_comdaemon")

ImportTool reads a folder of JSON schema files and returns a fully typed facade instance. It auto-detects the Configurable Unit type from $schema values embedded in each file, so no domain-specific import code is needed on your side.

For batch imports, importing specific schema files, error handling, and plugin configuration, refer to the fsp-config-foundation documentation.