keja dev loads the directory you run it in.
A Keja project is the current directory of keja dev, keja start, keja migrate, keja generate, or keja seed. keja.versioning.ts is required. keja.config.ts is optional.
Versions
keja.versioning.ts default-exports defineVersions. Each key is v plus a whole number. releasedAt is YYYY-MM-DD, DD-MM-YYYY, or a unix timestamp.
Config
keja.config.ts default-exports defineConfig. Omitted paths use the defaults below. A path is resolved from the project root. An empty path fails startup.
argus.username and argus.password are both set or both omitted. argus.public and argus.service override the catalog names. See Argus and Vault.
name in config is used as written. Otherwise Keja reads package.json and drops a scope, so @veducio/billing becomes billing. With no package name, the directory name is used.
Environment
An OpenAPI URL must be an absolute
http or https URL.
Startup
After a successful listen, Keja prints the loaded paths, the identity, the database, and the bind addresses. The config line is the absolute path ofkeja.config.ts, or defaults when that file is absent. Database is disabled, or postgres when the pool is open. Migrations are applied by keja migrate. Argus and Vault are printed when they are enabled.
When db, argus, or vault is enabled, Keja checks that service before either server listens. A failed check throws ProjectError. keja dev prints it and waits. keja start prints it and exits 1.