# xenion80/codesafe architecture

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

- Interactive diagram: https://gitdiagram.com/xenion80/codesafe
- Repository: https://github.com/xenion80/codesafe

## Overview

CyberTotal is a security-management backend with a small browser client. The principal workflow is to authenticate, organize work into projects and targets, then discover target endpoints; the tree also identifies scanning, agent-trap, threat-intelligence, alerting, administration, and GitHub integration capabilities. Sampled code confirms the project/target and endpoint-discovery calls, plus parts of authentication and GitHub OAuth. Other security modules are represented from their tree paths; their internal wiring is not established by the available excerpts.

Main entry points: [`backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/services/EndpointService.java`](https://github.com/xenion80/codesafe/blob/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/services/EndpointService.java) (Discovery service), [`backend-part/frontend/app.js`](https://github.com/xenion80/codesafe/blob/backend/backend-part/frontend/app.js) (Web client), [`backend-part/src/main/java/com/vulprioritizer/backend_part/project`](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/project) (Projects), [`backend-part/src/main/java/com/vulprioritizer/backend_part/targets`](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/targets) (Targets)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and accounts"]
  node_frontend["Web client<br/>[app.js]"]
  node_auth["Authentication"]
  node_users["User accounts"]
  node_admin["Admin controls"]
end

subgraph group_scope["Project and target scope"]
  node_projects["Projects"]
  node_targets["Targets"]
  node_endpoint_api["Endpoint discovery API"]
  node_endpoint_service["Discovery service"]
  node_crawler["Web crawler"]
  node_endpoint_store[("Endpoint records")]
end

subgraph group_security["Security operations"]
  node_sentinel["Security scanning"]
  node_agenttrap["Agent traps"]
  node_intelligence["Threat intelligence"]
  node_alerts["Alerts and remediation"]
end

subgraph group_integrations["Integrations"]
  node_github_api["GitHub integration"]
end

node_user(("Browser user"))
node_github(("GitHub"))

node_user -->|"uses"| node_frontend
node_frontend -->|"authenticates"| node_auth
node_user -->|"manages"| node_projects
node_projects -->|"creates targets"| node_targets
node_targets -->|"requests discovery"| node_endpoint_api
node_endpoint_api -->|"dispatches"| node_endpoint_service
node_endpoint_service -->|"crawls target"| node_crawler
node_endpoint_service -->|"upserts endpoints"| node_endpoint_store
node_user -->|"connects account"| node_github_api
node_github_api -->|"OAuth and API calls"| node_github

click node_frontend "https://github.com/xenion80/codesafe/blob/backend/backend-part/frontend/app.js"
click node_auth "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/auth"
click node_users "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/user"
click node_admin "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/admin"
click node_projects "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/project"
click node_targets "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/targets"
click node_endpoint_api "https://github.com/xenion80/codesafe/blob/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/controller/EndpointDiscoveryController.java"
click node_endpoint_service "https://github.com/xenion80/codesafe/blob/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/services/EndpointService.java"
click node_crawler "https://github.com/xenion80/codesafe/blob/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/services/CrawlerService.java"
click node_endpoint_store "https://github.com/xenion80/codesafe/blob/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/repository/EndpointRepository.java"
click node_sentinel "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/sentinel"
click node_agenttrap "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/agenttrap"
click node_intelligence "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/intelligence"
click node_alerts "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/alert"
click node_github_api "https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/github"

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_auth,node_users,node_admin,node_user toneBlue
class node_projects,node_targets,node_endpoint_api,node_endpoint_service,node_crawler,node_endpoint_store toneAmber
class node_sentinel,node_agenttrap,node_intelligence,node_alerts toneMint
class node_github_api toneRose
class node_github toneIndigo
```

## Components

### Access and accounts

- [Web client](https://github.com/xenion80/codesafe/blob/backend/backend-part/frontend/app.js): `backend-part/frontend/app.js`
- [Authentication](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/auth): `backend-part/src/main/java/com/vulprioritizer/backend_part/auth`
- [User accounts](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/user): `backend-part/src/main/java/com/vulprioritizer/backend_part/user`
- [Admin controls](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/admin): `backend-part/src/main/java/com/vulprioritizer/backend_part/admin`

### Project and target scope

- [Projects](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/project): `backend-part/src/main/java/com/vulprioritizer/backend_part/project`
- [Targets](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/targets): `backend-part/src/main/java/com/vulprioritizer/backend_part/targets`
- [Endpoint discovery API](https://github.com/xenion80/codesafe/blob/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/controller/EndpointDiscoveryController.java): `backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/controller/EndpointDiscoveryController.java`
- [Discovery service](https://github.com/xenion80/codesafe/blob/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/services/EndpointService.java): `backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/services/EndpointService.java`
- [Web crawler](https://github.com/xenion80/codesafe/blob/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/services/CrawlerService.java): `backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/services/CrawlerService.java`
- [Endpoint records](https://github.com/xenion80/codesafe/blob/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/repository/EndpointRepository.java): `backend-part/src/main/java/com/vulprioritizer/backend_part/endpoint/repository/EndpointRepository.java`

### Security operations

- [Security scanning](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/sentinel): `backend-part/src/main/java/com/vulprioritizer/backend_part/sentinel`
- [Agent traps](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/agenttrap): `backend-part/src/main/java/com/vulprioritizer/backend_part/agenttrap`
- [Threat intelligence](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/intelligence): `backend-part/src/main/java/com/vulprioritizer/backend_part/intelligence`
- [Alerts and remediation](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/alert): `backend-part/src/main/java/com/vulprioritizer/backend_part/alert`

### Integrations

- [GitHub integration](https://github.com/xenion80/codesafe/tree/backend/backend-part/src/main/java/com/vulprioritizer/backend_part/github): `backend-part/src/main/java/com/vulprioritizer/backend_part/github`

### Other components

- **Browser user**
- **GitHub**

## Connections

- Browser user → Web client: uses
- Web client → Authentication: authenticates
- Browser user → Projects: manages
- Projects → Targets: creates targets
- Targets → Endpoint discovery API: requests discovery
- Endpoint discovery API → Discovery service: dispatches
- Discovery service → Web crawler: crawls target
- Discovery service → Endpoint records: upserts endpoints
- Browser user → GitHub integration: connects account
- GitHub integration → GitHub: OAuth and API calls
