Catalog JSON

Structure and precedence rules for the Catalog JSON, which merges domains and components from catalogers, lunar.yml, and lunar-config.yml.

  • Type: JSON

  • Form:

    {
      "domains": {
        "<domain-name>": {
          "description": "<description>",
          "owner": "<owner>",
          "meta": {  // 🚧 Coming Soon
            "<meta-key>": "<meta-value>",
            ...
          }
        },
        ...
      },
      "components": {
        "<component-name>": {
          "owner": "<owner>",
          "domain": "<domain>",
          "branch": "<branch>",
          "description": "<description>",
          "paths": ["<path1>", "<path2>", ...],
          "tags": ["<tag1>", "<tag2>", ...],
          "ciPipelines": ["<ci-pipeline1>", "<ci-pipeline2>", ...],
          "meta": {  // 🚧 Coming Soon
            "<meta-key>": "<meta-value>",
            ...
          }
        },
        ...
      }
    }

The Catalog JSON is a JSON object that contains information about the domains and components.

The Catalog JSON, unlike the Component JSON, has a pre-defined structure. The semantics of the fields are defined in the domains and components pages. The same fields used to configure domains and components in lunar-config.yml are used to define the structure of the Catalog JSON.

The JSON object is formed by collecting information from the catalogers, and then merging that information with any data from lunar.yml and lunar-config.yml. The precedence in which the information is used is as follows:

  1. The information from lunar-config.yml in the domains and components section.

  2. The information from lunar.yml in each component directory. 🚧 Coming Soon

  3. The information from the catalogers, where the last-defined cataloger takes precedence.

So, for example, if a cataloger emits a component with the same name as a component defined in lunar-config.yml, the fields would be combined, and any fields that exist in both would be overridden by the lunar-config.yml values.

If you would like to inspect the Catalog JSON, you can do so by running the following command:

Coming Soon β€” This command is not yet available.

If you would like to execute the catalogers in development mode, and see the Catalog JSON that would be generated, you can do so by running the following command (needs to be run in the root of the Lunar configuration repository):

Coming Soon β€” This command is not yet available.

Last updated