Files
Ekklesia/templates/module
ekklesia 7b448d8706
CI / verify (push) Successful in 2m14s
CI / infrastructure-smoke (push) Failing after 1m36s
feat: add module runtime lifecycle
2026-07-12 22:49:51 -05:00
..
2026-07-12 22:49:51 -05:00
2026-07-12 22:49:51 -05:00

Ekklesia module template

This is the smallest supported backend-only Ekklesia module. It proves the static manifest, compiled runtime entrypoint, capability registration, and logical storage-bucket declarations without pretending that API, Drizzle, or storage provisioning already exist.

To create a module inside this repository:

  1. Copy this directory to modules/<module-id>.
  2. Rename the package in package.json and remove private when it is ready for publication.
  3. Update the ID, name, version, namespaces, compatibility ranges, and bucket requests in ekklesia.module.json.
  4. Keep the manifest capability versions and dependency ranges aligned with the contracts the module actually implements and consumes.
  5. Replace src/server/index.ts with backend behavior only. Its defineModuleRuntime ID and version must match the manifest; do not duplicate the rest of the manifest in TypeScript.
  6. Run pnpm install, pnpm build, pnpm modules:validate, and pnpm verify from the repository root. The declared production entrypoint is the compiled dist/server/index.js, not source TypeScript.

Do not add UI components, styles, renderers, navigation, or layouts. Those belong to surfaces. Keep imports side-effect-free, register capabilities in register, acquire resources in start, and release them in stop.