# cogover/custom-backend-module-starter-project architecture

> Architecture diagram of the GitHub repository cogover/custom-backend-module-starter-project, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cogover/custom-backend-module-starter-project
- Repository: https://github.com/cogover/custom-backend-module-starter-project

## Overview

This is a minimal Cogover custom-backend starter, with local tooling for exercising the same project handler and record triggers used by Cogover’s runtime. The documented workflow is to implement a module in `src/`, load it with the local CLI, test routes or trigger runs through the local HTTP server, then publish and activate it with Cogover’s CLI. The `src/` implementation is absent from the tree, so its internal behavior is not expanded; trigger-runner relationships reflect the sampled source and README.

Main entry points: [`local/local-server.ts`](https://github.com/cogover/custom-backend-module-starter-project/blob/main/local/local-server.ts) (Local HTTP server), [`local/cli.ts`](https://github.com/cogover/custom-backend-module-starter-project/blob/main/local/cli.ts) (Local CLI), [`local/trigger-runner.ts`](https://github.com/cogover/custom-backend-module-starter-project/blob/main/local/trigger-runner.ts) (Trigger runner), [`src`](https://github.com/cogover/custom-backend-module-starter-project/tree/main/src) (Project module)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_project["Backend module"]
  node_project_module["Project module"]
  node_routes["Route handler"]
  node_trigger_defs["Trigger definitions"]
end

subgraph group_local["Local runner"]
  node_cli["Local CLI<br/>[cli.ts]"]
  node_server["Local HTTP server<br/>[local-server.ts]"]
  node_trigger_runner["Trigger runner<br/>[trigger-runner.ts]"]
end

node_developer(("Developer"))
node_http_client(("HTTP client"))
node_dev_session{{"Development Session"}}
node_cogover_runtime{{"Cogover Runtime"}}
node_cogover_cli{{"Cogover Dev CLI"}}

node_developer -->|"implements"| node_project_module
node_developer -->|"starts"| node_cli
node_cli -->|"loads"| node_project_module
node_cli -->|"starts"| node_server
node_http_client -->|"sends requests"| node_server
node_server -->|"invokes routes"| node_routes
node_server -->|"dispatches trigger"| node_trigger_runner
node_server -->|"lists triggers"| node_trigger_defs
node_trigger_runner -->|"reads records"| node_dev_session
node_trigger_runner -->|"runs handler"| node_trigger_defs
node_cogover_runtime -->|"runs published module"| node_project_module
node_developer -->|"publishes and activates"| node_cogover_cli
node_cogover_cli -->|"publishes version"| node_cogover_runtime

click node_project_module "https://github.com/cogover/custom-backend-module-starter-project/tree/main/src"
click node_routes "https://github.com/cogover/custom-backend-module-starter-project/tree/main/src"
click node_trigger_defs "https://github.com/cogover/custom-backend-module-starter-project/tree/main/src"
click node_cli "https://github.com/cogover/custom-backend-module-starter-project/blob/main/local/cli.ts"
click node_server "https://github.com/cogover/custom-backend-module-starter-project/blob/main/local/local-server.ts"
click node_trigger_runner "https://github.com/cogover/custom-backend-module-starter-project/blob/main/local/trigger-runner.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_project_module,node_routes,node_trigger_defs,node_http_client toneBlue
class node_cli,node_server,node_trigger_runner toneAmber
class node_developer,node_dev_session,node_cogover_runtime,node_cogover_cli toneIndigo
```

## Components

### Backend module

- [Project module](https://github.com/cogover/custom-backend-module-starter-project/tree/main/src): `src`
- [Route handler](https://github.com/cogover/custom-backend-module-starter-project/tree/main/src): `src`
- [Trigger definitions](https://github.com/cogover/custom-backend-module-starter-project/tree/main/src): `src`

### Local runner

- [Local CLI](https://github.com/cogover/custom-backend-module-starter-project/blob/main/local/cli.ts): `local/cli.ts`
- [Local HTTP server](https://github.com/cogover/custom-backend-module-starter-project/blob/main/local/local-server.ts): `local/local-server.ts`
- [Trigger runner](https://github.com/cogover/custom-backend-module-starter-project/blob/main/local/trigger-runner.ts): `local/trigger-runner.ts`

### Other components

- **Developer**
- **HTTP client**
- **Development Session**
- **Cogover Runtime**
- **Cogover Dev CLI**

## Connections

- Developer → Project module: implements
- Developer → Local CLI: starts
- Local CLI → Project module: loads
- Local CLI → Local HTTP server: starts
- HTTP client → Local HTTP server: sends requests
- Local HTTP server → Route handler: invokes routes
- Local HTTP server → Trigger runner: dispatches trigger
- Local HTTP server → Trigger definitions: lists triggers
- Trigger runner → Development Session: reads records
- Trigger runner → Trigger definitions: runs handler
- Cogover Runtime → Project module: runs published module
- Developer → Cogover Dev CLI: publishes and activates
- Cogover Dev CLI → Cogover Runtime: publishes version
