index.json
index.json is the entry point of your repository. The platform reads this file first and uses it to discover all the classes in your project.
Location
index.json must be in the root of the repository.
Structure
{
"class": "my-project.index",
"type": "NONE",
"imports": [
"my-project.employee",
"my-project.company",
"my-project.employmentAgreement"
]
}
| Property | Type | Description |
|---|---|---|
class | TypeFQN | The identifier of this index. Convention: {namespace}.index. |
type | NONE | Always NONE for index files. |
imports | TypeFQN[] | List of classes to load. Each TypeFQN maps to a JSON file in the repository. |
Imports
Each entry in imports is a TypeFQN. The platform resolves it to a JSON file using the class name:
my-project.employee→employee.jsonmy-project.employmentAgreement→employmentAgreement.json
Files are resolved relative to the repository root.
You can also import commons classes to make them explicitly available, though built-in commons classes are always available regardless.
Minimal example
{
"class": "my-project.index",
"type": "NONE",
"imports": [
"my-project.person",
"my-project.company"
]
}
With this index.json and two files person.json and company.json in the root, the platform loads two custom classes.
Modules
Beyond imports, index.json is also where you declare optional class bundles called modules. Modules let different tenants activate different subsets of your data model.
See Modules for the full explanation.