Project Structure
/app
The app package handles all of the initialization procedures, such as parsing the .env, configuring the store, initializing the services, and initializing the API.
/provision
The /provision directory contains all of the core resources used when running the provision step.
This includes the base roles, access control, and built-in extensions (CRM and Service Solution).
|
This is not a database migration.
The |
/webapp
The /webapp directory is used to prepare and serve the web applications directly from the corteza-server binary.
This removes the need to have the web applications set up locally to access them.
Refer to the /webapp/README.adoc for details.
/auth
The auth package handles the authentication functionality.
The package defines the services, API endpoints and any additional "utility packages" required by the authentication.
Besides the core logic, the package also defines the authentication UI templates and base assets.
/system
The system package handles the core system functionality, such as user, role, and template management.
The package defines the services, API endpoints and any additional "utility packages" required by the core system.
/compose
The compose package handles the compose functionality, such as namespace, module, and record management.
The package defines the services, API endpoints and any additional "utility packages" required by the Compose system.
/automation
The automation package handles the automation functionality, such as workflow management and execution.
The package defines the services, API endpoints and any additional "utility packages" required by the automation system.
/federation
The federation package handles the data federation functionality, configuring the shared data and syncing data changes.
The package defines the services, API endpoints and any additional "utility packages" required by the federation system.
|
The federation package is coupled with the |
/docs
The /docs directory is used to store API documentation.
The documentation is generated using the openapi3-converter tool.
/pkg
The /pkg directory contains generic packages that are used through the rest of the system.
The packages residing in the /pkg directory should not define any explicit dependencies between one another, nor to the services they may be used in.
/store
The store package defines the store layer used by Corteza.
The store layer is a generic interface to any of the supported databases, such as MySQL and PostgreSQL.
Besides the core logic, the store package defines any database driver-specific logic (such as data encoding and datatype casting), as well as any schema migration procedures, such as store/rdbms/rdbms_schema.go and store/rdbms/generic_upgrades.go for relational databases.