Product Selector

Fusion 5.9
    Fusion 5.9

    Repo organization

    This topic explains what you’ll find in the GitHub repository used by ConfigSync. See also Set up a GitHub repo for ConfigSync.

    Branch and Path

    If you need to share the same GitHub repo for different clusters or environments, you can use the cfg.github.branch setting to specify the branch in the GitHub repo where the config files are stored.

    Additionally (or alternatively) ConfigSync supports a cfg.github.path (referred to as root in the future) setting to specify the path in the GitHub repo where the config files are stored. By default, ConfigSync stores the config files in the root of the GitHub repo.

    Apps and Object Types

    Under the root directory, there is a directory for each app, such as app1, app2. Under each app directory, there are directories for each object type, such as query-pipelines, blobs, etc.

    System Objects

    ConfigSync uses _lw_system as the app name for system objects. This directory is always present in the repo and contains system objects like users, roles, solr configs, etc.

    Reserved Files

    Additionally, ConfigSync has set of reserved files in the root directory:

    • .lock - A lock file to prevent concurrent updates

    • .gitattributes - Used to list LFS files

    • .gitignore - Used to ignore files that should not be stored in the repo

    These files should not be modified or deleted.

    Example repo structure

    |-- root
    |   |-- _lw_system
    |   |   |-- users
    |   |   |   |-- user1.json
    |   |   |   |-- user2.json
    |   |   |-- roles
    |   |   |   |-- role1.json
    |   |   |   |-- role2.json
    |   |   |-- solr-configs
    |   |   |   |-- config1
    |   |   |   |   |-- solrconfig.xml
    |   |   |   |   |-- managed-schema
    |   |-- app1
    |   |   |-- query-pipelines
    |   |   |   |-- pipeline1.json
    |   |   |   |-- pipeline2.json
    |   |   |-- blobs
    |   |   |   |-- blob1.json
    |   |   |   |-- blob2.json
    |   |-- app2
    |   |   |-- query-pipelines
    |   |   |   |-- pipeline3.json
    |   |   |   |-- pipeline4.json
    |   |   |-- blobs
    |   |   |   |-- blob3.json
    |   |   |   |-- blob4.json
    |-- .lock
    |-- .gitattributes
    |-- .gitignore
    ConfigSync uses the Fusion links API to determine app association for Fusion objects. However, it does not track links in GitHub as it uses the directory structure to maintain app association for an object.