# adila-123-dev/cdaas architecture

> Architecture diagram of the GitHub repository adila-123-dev/cdaas, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/adila-123-dev/cdaas
- Repository: https://github.com/adila-123-dev/cdaas

## Overview

This appears to be a deception-as-a-service system: honeypots produce interaction events, an agent forwards them, and a controller ingests them. The event contract explicitly describes MQTT transport and controller ingestion. Source excerpts for the runtime modules and README are empty, so internal call wiring and dashboard data flow cannot be confirmed; the graph omits those links.

Main entry points: [`agent/agent/main.py`](https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/main.py) (Agent Runtime), [`shared/event_schema.py`](https://github.com/adila-123-dev/cdaas/blob/main/shared/event_schema.py) (Event Contract), [`agent/agent/forwarder.py`](https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/forwarder.py) (Event Forwarder), [`controller/app/main.py`](https://github.com/adila-123-dev/cdaas/blob/main/controller/app/main.py) (Controller Runtime)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_capture["Deception Nodes"]
  node_honeypots["Honeypots"]
end

subgraph group_agent["Node Agent"]
  node_event_schema["Event Contract<br/>[event_schema.py]"]
  node_agent_main["Agent Runtime<br/>[main.py]"]
  node_registration["Registration<br/>[registration.py]"]
  node_config_applier["Config Applier<br/>[config_applier.py]"]
  node_forwarder["Event Forwarder<br/>[forwarder.py]"]
  node_heartbeat["Heartbeat<br/>[heartbeat.py]"]
end

subgraph group_controller["Controller"]
  node_controller_main["Controller Runtime<br/>[main.py]"]
end

subgraph group_ui["Dashboard"]
  node_dashboard["Dashboard"]
end

node_attacker(("Attacker"))
node_mqtt["MQTT Broker"]

node_attacker -->|"interacts with"| node_honeypots
node_honeypots -->|"produces events for"| node_agent_main
node_event_schema -->|"defines event format"| node_agent_main
node_agent_main -->|"forwards events"| node_forwarder
node_forwarder -->|"publishes events"| node_mqtt
node_mqtt -->|"delivers events"| node_controller_main
node_event_schema -->|"defines event format"| node_controller_main

click node_event_schema "https://github.com/adila-123-dev/cdaas/blob/main/shared/event_schema.py"
click node_agent_main "https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/main.py"
click node_registration "https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/registration.py"
click node_config_applier "https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/config_applier.py"
click node_forwarder "https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/forwarder.py"
click node_heartbeat "https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/heartbeat.py"
click node_controller_main "https://github.com/adila-123-dev/cdaas/blob/main/controller/app/main.py"
click node_dashboard "https://github.com/adila-123-dev/cdaas/tree/main/dashboard"

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_honeypots toneBlue
class node_event_schema,node_agent_main,node_registration,node_config_applier,node_forwarder,node_heartbeat toneAmber
class node_controller_main toneMint
class node_dashboard toneRose
class node_attacker,node_mqtt toneIndigo
```

## Components

### Deception Nodes

- **Honeypots**

### Node Agent

- [Event Contract](https://github.com/adila-123-dev/cdaas/blob/main/shared/event_schema.py): `shared/event_schema.py`
- [Agent Runtime](https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/main.py): `agent/agent/main.py`
- [Registration](https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/registration.py): `agent/agent/registration.py`
- [Config Applier](https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/config_applier.py): `agent/agent/config_applier.py`
- [Event Forwarder](https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/forwarder.py): `agent/agent/forwarder.py`
- [Heartbeat](https://github.com/adila-123-dev/cdaas/blob/main/agent/agent/heartbeat.py): `agent/agent/heartbeat.py`

### Controller

- [Controller Runtime](https://github.com/adila-123-dev/cdaas/blob/main/controller/app/main.py): `controller/app/main.py`

### Dashboard

- [Dashboard](https://github.com/adila-123-dev/cdaas/tree/main/dashboard): `dashboard`

### Other components

- **Attacker**
- **MQTT Broker**

## Connections

- Attacker → Honeypots: interacts with
- Honeypots → Agent Runtime: produces events for
- Event Contract → Agent Runtime: defines event format
- Agent Runtime → Event Forwarder: forwards events
- Event Forwarder → MQTT Broker: publishes events
- MQTT Broker → Controller Runtime: delivers events
- Event Contract → Controller Runtime: defines event format
