App Registry Contract
APP loading follows a strict pipeline:
- read
installed_apps - import each module path
- validate conformance
- validate dependency graph and core compatibility
- register error codes and message catalogs
- build runtime registries (permissions, tasks, migrations, events, schedule)
AppModule contract
Core required fields typically used:
label(unique module label)versionroutersmodels(module import paths)permissionsmigrations(path to manifest)
Useful optional fields:
dependenciesrequired_capabilitiesprovided_capabilitiesmin_core_version
core.apps.conformance.check_app enforces:
- required files
- permission declaration completeness
- route security policy alignment
- tenant model constraints
- repository inheritance constraints
- response envelope usage
- duplicate/missing permission codes
CLI inspection
core list-apps --jsoncore check-app <module>.module --jsoncore list-apps --installed-app <label> --json
CLI output shape (expected)
list-apps payload includes:
okapps: per module metadata (label,version,dependencies,permissions, counts)diagnostics: aggregate and load order
check-app payload includes:
module_pathlabelokerrorswarnings
Runtime visibility
At runtime:
registry.routersare mounted withAPI__PREFIX.permission_registryandevent/task/scheduleregistries are built increate_app.
If registry errors exist, app startup fails before serving traffic.