Skip to content

Commit 1ffb3f8

Browse files
authored
Merge pull request #783 from jmpsec/readme-files-flowchart
Updated README with file structure and flowchart
2 parents a2d72e7 + 5a344ba commit 1ffb3f8

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

README.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,64 @@ Whether you’re running a small deployment or managing large fleets, **osctrl**
4242

4343
You can find the documentation of the project in [https://osctrl.net](https://osctrl.net)
4444

45+
## 🗂 Project Structure
46+
47+
```text
48+
osctrl/
49+
├── cmd/ # Service and CLI entrypoints
50+
│ ├── admin/ # osctrl-admin (web UI + admin handlers/templates/static)
51+
│ ├── api/ # osctrl-api (REST API service)
52+
│ ├── cli/ # osctrl-cli (operator CLI)
53+
│ └── tls/ # osctrl-tls (osquery remote API endpoint)
54+
├── pkg/ # Shared application packages
55+
│ ├── auditlog/ # Audit log manager
56+
│ ├── backend/ # DB manager/bootstrap
57+
│ ├── cache/ # Redis/cache managers
58+
│ ├── carves/ # File carve logic/storage integrations
59+
│ ├── config/ # Config structs/flags/validation
60+
│ ├── environments/ # Environment management
61+
│ ├── handlers/ # Shared HTTP handlers
62+
│ ├── logging/ # Log pipeline + logger backends
63+
│ ├── nodes/ # Node state/registration/cache
64+
│ ├── queries/ # Query management/scheduling/results
65+
│ ├── settings/ # Runtime settings
66+
│ ├── tags/ # Tag management
67+
│ ├── users/ # User and permissions management
68+
│ ├── utils/ # Utility helpers
69+
│ ├── types/ # Shared type definitions
70+
│ └── version/ # Version metadata
71+
├── deploy/ # Deployment configs/scripts (docker/nginx/osquery/systemd, CI/CD, redis, config, helpers, etc.)
72+
├── tools/ # Dev/release helpers and API test assets (Bruno collections, scripts)
73+
├── bin/ # Built binaries (from make)
74+
├── docker-compose-dev.yml # Local multi-service development stack
75+
├── Makefile # Build/test/dev targets
76+
└── osctrl-api.yaml # OpenAPI specification for osctrl-api
77+
```
78+
79+
## 🏛 Architecture
80+
81+
```mermaid
82+
flowchart LR
83+
A["osquery Agents"] -->|TLS Remote API| T["osctrl-tls"]
84+
O["Operators"] -->|Web UI| W["osctrl-admin"]
85+
O -->|CLI| C["osctrl-cli"]
86+
O -->|REST| P["osctrl-api"]
87+
88+
W -->|HTTP API| P
89+
C -->|HTTP API| P
90+
91+
T --> S["Shared Packages (pkg/*)"]
92+
W --> S
93+
P --> S
94+
C --> S
95+
C -.->|Direct DB mode| D
96+
97+
S --> D["PostgreSQL Backend"]
98+
S --> R["Redis Cache"]
99+
S --> L["Log Destinations (DB, file, S3, Elastic, Splunk, Graylog, Kafka, Kinesis, Logstash)"]
100+
S --> F["Carve Storage (DB, local, S3)"]
101+
```
102+
45103
## 🛠 Development
46104

47105
The fastest way to get started with **osctrl** development is by using [Docker](https://www.docker.com/) and [Docker Compose](https://docs.docker.com/compose/). But you can find other methods below.

0 commit comments

Comments
 (0)