All config is defined in the PredefinedConfig class. This ensures that you full type safety as you write your config.
All of the individual properties are nullable.
You will typically want to "pre-populate" your deployed application with predefined config, that AdapTable will use when it runs.
If you don't want your users to edit the Adaptable Objects that you ship with the application, then set the Entitlement for that function to be ReadOnly (See Permissions for more details).
This config is passed into the AdapTable instance at startup through the predefinedConfig property.
It can be passed in either as pure JSON or as a url to a file which contains the JSON.
Although you can construct all your config by hand, its often easier when building more "complex" items like Queries to create them in the GUI at design time and then copy and paste the resulting state into your config file.
No Predefined Config is mandatory. If none is provided then AdapTable will work fully using the default properties. So only set config where you want to change a default or provide your AdapTable instance with your own collections of objects.
You can see full details of the Predefined Config object and its child properties and classes at Adaptable Code Documentation.
This is essentially a set of key / value pairs that you can populate with any data that you want and which AdapTable will store in its state.
The AdaptableObject base interface has a single Uuid property which is used for easy identification of objects.
This is included in all base objects and also frequently used objects like Expressions.
Do not set this property when writing objects in your Predefined Config as it will be set by AdapTable at run-tine when the config is first read
The purpose of the Uuid property is to make it easy for AdapTable instances to share state and inform each other when an item has been created / edited / deleted.