Skip to main content

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"
]
}
PropertyTypeDescription
classTypeFQNThe identifier of this index. Convention: {namespace}.index.
typeNONEAlways NONE for index files.
importsTypeFQN[]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.employeeemployee.json
  • my-project.employmentAgreementemploymentAgreement.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.