# musachowdhury/python-syslog-server architecture

> Architecture diagram of the GitHub repository musachowdhury/python-syslog-server, 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/musachowdhury/python-syslog-server
- Repository: https://github.com/musachowdhury/python-syslog-server

## Overview

Fast Logger is a UDP syslog server with a web console for configuring engines and clients, managing access, monitoring processing, and browsing saved logs. Its main workflow receives sender datagrams, admits configured clients, applies configured regular-expression classes, and persists processed records to dated SQLite files; the console queries those files and can download results. The README documents auto-deletion and multi-engine operation, while excerpts show the engine, persistence, API, and selected UI calls. Other feature-to-API wiring is represented only where supported by the tree or sampled source.

Main entry points: [`backend/fast_api/fast_api_app.py`](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/fast_api/fast_api_app.py) (HTTP API), [`frontend/app/auth.js`](https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/auth.js) (Session and API client), [`backend/server.py`](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/server.py) (Server startup), [`backend/interfaces/factory.py`](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/interfaces/factory.py) (Engine factory)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_console["Web console"]
  node_frontend["Console pages<br/>[page.js]"]
  node_login["Sign-in<br/>[page.js]"]
  node_auth["Session and API client<br/>[auth.js]"]
  node_engineui["Engine management<br/>[page.js]"]
  node_statusui["Engine monitoring<br/>[engineStatus.js]"]
  node_browseui["Log browsing<br/>[page.js]"]
end

subgraph group_api["API and access"]
  node_fastapi["HTTP API<br/>[fast_api_app.py]"]
  node_dependencies["API dependencies"]
  node_models["API models"]
  node_settingsdb[("Settings store<br/>[database.py]")]
  node_server["Server startup<br/>[server.py]"]
end

subgraph group_runtime["Log processing"]
  node_factory["Engine factory<br/>[factory.py]"]
  node_interface["Engine interface<br/>[interface.py]"]
  node_engine["Regex engine<br/>[engine.py]"]
  node_runtimeconfig["Runtime configuration<br/>[configuration.py]"]
end

subgraph group_storage["Persistence"]
  node_datastore[("Dated log databases<br/>[database.py]")]
  node_loggerbridge["Logging bridge<br/>[bridge.py]"]
  node_sysloggerdb["Storage controller<br/>[database.py]"]
end

node_operator(("Operator"))
node_udp(("Log senders"))

node_operator -->|"signs in"| node_login
node_login -->|"authorizes"| node_auth
node_frontend -->|"requests data"| node_auth
node_engineui -->|"manages engines"| node_auth
node_statusui -->|"polls status"| node_auth
node_browseui -->|"queries logs"| node_auth
node_auth -->|"HTTP requests"| node_fastapi
node_server -->|"starts"| node_fastapi
node_server -->|"configures"| node_factory
node_fastapi -->|"authenticates"| node_dependencies
node_fastapi -->|"validates"| node_models
node_fastapi -->|"reads/writes settings"| node_settingsdb
node_fastapi -->|"dispatches engine actions"| node_factory
node_factory -->|"manages engines"| node_interface
node_interface -->|"controls"| node_engine
node_udp -->|"sends datagrams"| node_engine
node_engine -->|"queues processed logs"| node_datastore
node_loggerbridge -->|"forwards writes"| node_sysloggerdb
node_sysloggerdb -->|"writes and queries"| node_datastore
node_fastapi -->|"log operations"| node_sysloggerdb
node_runtimeconfig -->|"provides settings"| node_server

click node_frontend "https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/dashboard/page.js"
click node_login "https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/login/page.js"
click node_auth "https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/auth.js"
click node_engineui "https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/dashboard/engine_management/page.js"
click node_statusui "https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/dashboard/components/engineStatus.js"
click node_browseui "https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/dashboard/browse_log/page.js"
click node_fastapi "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/fast_api/fast_api_app.py"
click node_dependencies "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/fast_api/fast_api_dependency.py"
click node_models "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/fast_api/fast_api_data_models.py"
click node_settingsdb "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/interfaces/database.py"
click node_factory "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/interfaces/factory.py"
click node_interface "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/interface.py"
click node_engine "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/engine.py"
click node_datastore "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/database.py"
click node_loggerbridge "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/bridge.py"
click node_sysloggerdb "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/database.py"
click node_runtimeconfig "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/configuration.py"
click node_server "https://github.com/musachowdhury/python-syslog-server/blob/main/backend/server.py"

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_frontend,node_login,node_auth,node_engineui,node_statusui,node_browseui toneBlue
class node_fastapi,node_dependencies,node_models,node_settingsdb,node_server toneAmber
class node_factory,node_interface,node_engine,node_runtimeconfig toneMint
class node_datastore,node_loggerbridge,node_sysloggerdb toneRose
class node_operator,node_udp toneIndigo
```

## Components

### Web console

- [Console pages](https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/dashboard/page.js): `frontend/app/dashboard/page.js`
- [Sign-in](https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/login/page.js): `frontend/app/login/page.js`
- [Session and API client](https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/auth.js): `frontend/app/auth.js`
- [Engine management](https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/dashboard/engine_management/page.js): `frontend/app/dashboard/engine_management/page.js`
- [Engine monitoring](https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/dashboard/components/engineStatus.js): `frontend/app/dashboard/components/engineStatus.js`
- [Log browsing](https://github.com/musachowdhury/python-syslog-server/blob/main/frontend/app/dashboard/browse_log/page.js): `frontend/app/dashboard/browse_log/page.js`

### API and access

- [HTTP API](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/fast_api/fast_api_app.py): `backend/fast_api/fast_api_app.py`
- [API dependencies](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/fast_api/fast_api_dependency.py): `backend/fast_api/fast_api_dependency.py`
- [API models](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/fast_api/fast_api_data_models.py): `backend/fast_api/fast_api_data_models.py`
- [Settings store](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/interfaces/database.py): `backend/interfaces/database.py`
- [Server startup](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/server.py): `backend/server.py`

### Log processing

- [Engine factory](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/interfaces/factory.py): `backend/interfaces/factory.py`
- [Engine interface](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/interface.py): `backend/syslogger/interface.py`
- [Regex engine](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/engine.py): `backend/syslogger/engine.py`
- [Runtime configuration](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/configuration.py): `backend/configuration.py`

### Persistence

- [Dated log databases](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/database.py): `backend/syslogger/database.py`
- [Logging bridge](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/bridge.py): `backend/syslogger/bridge.py`
- [Storage controller](https://github.com/musachowdhury/python-syslog-server/blob/main/backend/syslogger/database.py): `backend/syslogger/database.py`

### Other components

- **Operator**
- **Log senders**

## Connections

- Operator → Sign-in: signs in
- Sign-in → Session and API client: authorizes
- Console pages → Session and API client: requests data
- Engine management → Session and API client: manages engines
- Engine monitoring → Session and API client: polls status
- Log browsing → Session and API client: queries logs
- Session and API client → HTTP API: HTTP requests
- Server startup → HTTP API: starts
- Server startup → Engine factory: configures
- HTTP API → API dependencies: authenticates
- HTTP API → API models: validates
- HTTP API → Settings store: reads/writes settings
- HTTP API → Engine factory: dispatches engine actions
- Engine factory → Engine interface: manages engines
- Engine interface → Regex engine: controls
- Log senders → Regex engine: sends datagrams
- Regex engine → Dated log databases: queues processed logs
- Logging bridge → Storage controller: forwards writes
- Storage controller → Dated log databases: writes and queries
- HTTP API → Storage controller: log operations
- Runtime configuration → Server startup: provides settings
