A Project Config is a collection of Catalogs. A Motive application can download content from the server by targeting a Project Config by name. They can be accessed by going to the Manage tab on your project’s dashboard.
Project Configs are smart about handling references to other Catalogs. A Project Config will include items that are referenced by Catalogs within a Project Config, even if the Catalog those items exist in are not included in the Project Config (see example below). This means that it is not necessary to include every Catalog in order to be sure that all your content will be downloaded by the app; the Project Config will ensure that any items referenced will be included in what is sent to the application.
The image above represent a Project Config called “My Project Config”. This Project Config references 3 Catalogs: explore_tours, explore_scripts, and explore_collectibles. There is a fourth Catalog in this example, explore_characters, that is not included in the Project Config.
At least one of the Scripts in the Catalog explore_scripts references a Character named Jimothy. This Jimothy Character exists outside the scope of Catalogs included in the Project Config. However, because Jimothy is referenced by a Catalog within the Project Config, the Jimothy Character will be included in what gets downloaded by the app.
Alternatively, the Character Ronda is not referenced by any Catalog included in the Project Config. Because of this, the Ronda Character will not be included in what gets downloaded by the app. If you would like a reference to the Ronda Character somewhere in your application (maybe you would like to show this Character’s image somewhere), you would want to include the explore_characters Catalog in your Project Config.
A Project Config can be published to serialize the state of its Catalogs. This means that a non-editable version of the Project Config’s Catalogs will be saved to the server. This non-editable version of the Project Config will be kept on the server, and will be downloaded by the app on start. To makes changes to the Project Config after publishing, the Project Config must be published again. This will create a newer version of the Project Config that will now be downloaded by the app instead of the older version.
Publishing a Project Config is mainly used as a way of creating a stable version of your project. A stable version of your project is great for production apps that you do not want to be affected by any changes to any Catalog.
If you have accidentally published a Project Config and do not want to repeatedly publish to see your changes, simply create a new Project Config and do not publish. If a Project Config is un-published, any changes made to its Catalogs will immediately be downloaded by the app.