# valedol190387/easyvibegate architecture

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

- Interactive diagram: https://gitdiagram.com/valedol190387/easyvibegate
- Repository: https://github.com/valedol190387/easyvibegate

## Overview

EasyVibeGate is a read-only security scanner for application projects. Its main workflow starts in the CLI, optionally gathers consent through a wizard, scans project files, and runs requested dependency or live checks through the orchestrator; results are presented as findings and reports. The README documents static code, configuration, git, and migration checks, plus optional dependency auditing and live backend/endpoint probing. Some subsystem links are omitted because the relevant source was not sampled.

Main entry points: [`src/orchestrator/flow.ts`](https://github.com/valedol190387/easyvibegate/blob/main/src/orchestrator/flow.ts) (Check planner and runner), [`src/cli/index.ts`](https://github.com/valedol190387/easyvibegate/blob/main/src/cli/index.ts) (Command-line interface), [`src/engine/scan.ts`](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/scan.ts) (Static scan), [`src/cli/wizard.ts`](https://github.com/valedol190387/easyvibegate/blob/main/src/cli/wizard.ts) (Consent wizard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User entry"]
  node_cli["Command-line interface<br/>[index.ts]"]
  node_wizard["Consent wizard<br/>[wizard.ts]"]
end

subgraph group_control["Scan orchestration"]
  node_flow["Check planner and runner<br/>[flow.ts]"]
  node_scan["Static scan<br/>[scan.ts]"]
  node_inventory["Endpoint collection<br/>[endpoints.ts]"]
end

subgraph group_static["Static analysis"]
  node_checkers["Static checker registry<br/>[index.ts]"]
  node_secrets["Secret detection<br/>[secrets.ts]"]
  node_client["Client exposure<br/>[client-exposure.ts]"]
  node_config["Configuration risks<br/>[config-risks.ts]"]
  node_rls["Migration RLS analysis<br/>[rls-migrations.ts]"]
  node_git["Environment and git hygiene<br/>[env-git.ts]"]
  node_routes["Route inventory<br/>[route-inventory.ts]"]
  node_ssrf["Next image SSRF<br/>[next-image-ssrf.ts]"]
end

subgraph group_checks["Extended checks"]
  node_deps["Dependency audit<br/>[deps.ts]"]
  node_supabase["Supabase discovery and probe<br/>[supabase.ts]"]
  node_firebase["Firebase discovery and probe<br/>[firebase.ts]"]
  node_live["Live site checks<br/>[http-checks.ts]"]
  node_endpoint["Unauthenticated endpoint probe<br/>[endpoint-probe.ts]"]
  node_idor["IDOR comparison<br/>[idor.ts]"]
end

subgraph group_output["Results"]
  node_report["Report generation<br/>[report.ts]"]
end

node_user(("Project owner"))

node_user -->|"invokes"| node_cli
node_cli -.->|"starts optionally"| node_wizard
node_cli -->|"runs static scan"| node_scan
node_cli -->|"runs checks"| node_flow
node_flow -->|"scans if needed"| node_scan
node_flow -->|"collects routes"| node_inventory
node_flow -.->|"audits when requested"| node_deps
node_flow -.->|"discovers and probes"| node_supabase
node_flow -.->|"discovers and probes"| node_firebase
node_flow -.->|"checks target"| node_live
node_flow -.->|"probes routes"| node_endpoint

click node_cli "https://github.com/valedol190387/easyvibegate/blob/main/src/cli/index.ts"
click node_wizard "https://github.com/valedol190387/easyvibegate/blob/main/src/cli/wizard.ts"
click node_flow "https://github.com/valedol190387/easyvibegate/blob/main/src/orchestrator/flow.ts"
click node_scan "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/scan.ts"
click node_checkers "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/index.ts"
click node_secrets "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/secrets.ts"
click node_client "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/client-exposure.ts"
click node_config "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/config-risks.ts"
click node_rls "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/rls-migrations.ts"
click node_git "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/env-git.ts"
click node_routes "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/route-inventory.ts"
click node_ssrf "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/next-image-ssrf.ts"
click node_deps "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/deep/deps.ts"
click node_supabase "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/backend/supabase.ts"
click node_firebase "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/backend/firebase.ts"
click node_live "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/live/http-checks.ts"
click node_endpoint "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/live/endpoint-probe.ts"
click node_idor "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/live/idor.ts"
click node_inventory "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/endpoints.ts"
click node_report "https://github.com/valedol190387/easyvibegate/blob/main/src/engine/report.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_cli,node_wizard toneBlue
class node_flow,node_scan,node_inventory toneAmber
class node_checkers,node_secrets,node_client,node_config,node_rls,node_git,node_routes,node_ssrf toneMint
class node_deps,node_supabase,node_firebase,node_live,node_endpoint,node_idor toneRose
class node_report,node_user toneIndigo
```

## Components

### User entry

- [Command-line interface](https://github.com/valedol190387/easyvibegate/blob/main/src/cli/index.ts): `src/cli/index.ts`
- [Consent wizard](https://github.com/valedol190387/easyvibegate/blob/main/src/cli/wizard.ts): `src/cli/wizard.ts`

### Scan orchestration

- [Check planner and runner](https://github.com/valedol190387/easyvibegate/blob/main/src/orchestrator/flow.ts): `src/orchestrator/flow.ts`
- [Static scan](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/scan.ts): `src/engine/scan.ts`
- [Endpoint collection](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/endpoints.ts): `src/engine/endpoints.ts`

### Static analysis

- [Static checker registry](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/index.ts): `src/engine/checkers/index.ts`
- [Secret detection](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/secrets.ts): `src/engine/checkers/static/secrets.ts`
- [Client exposure](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/client-exposure.ts): `src/engine/checkers/static/client-exposure.ts`
- [Configuration risks](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/config-risks.ts): `src/engine/checkers/static/config-risks.ts`
- [Migration RLS analysis](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/rls-migrations.ts): `src/engine/checkers/static/rls-migrations.ts`
- [Environment and git hygiene](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/env-git.ts): `src/engine/checkers/static/env-git.ts`
- [Route inventory](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/route-inventory.ts): `src/engine/checkers/static/route-inventory.ts`
- [Next image SSRF](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/static/next-image-ssrf.ts): `src/engine/checkers/static/next-image-ssrf.ts`

### Extended checks

- [Dependency audit](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/deep/deps.ts): `src/engine/checkers/deep/deps.ts`
- [Supabase discovery and probe](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/backend/supabase.ts): `src/engine/checkers/backend/supabase.ts`
- [Firebase discovery and probe](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/backend/firebase.ts): `src/engine/checkers/backend/firebase.ts`
- [Live site checks](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/live/http-checks.ts): `src/engine/checkers/live/http-checks.ts`
- [Unauthenticated endpoint probe](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/live/endpoint-probe.ts): `src/engine/checkers/live/endpoint-probe.ts`
- [IDOR comparison](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/checkers/live/idor.ts): `src/engine/checkers/live/idor.ts`

### Results

- [Report generation](https://github.com/valedol190387/easyvibegate/blob/main/src/engine/report.ts): `src/engine/report.ts`

### Other components

- **Project owner**

## Connections

- Project owner → Command-line interface: invokes
- Command-line interface → Consent wizard: starts optionally
- Command-line interface → Static scan: runs static scan
- Command-line interface → Check planner and runner: runs checks
- Check planner and runner → Static scan: scans if needed
- Check planner and runner → Endpoint collection: collects routes
- Check planner and runner → Dependency audit: audits when requested
- Check planner and runner → Supabase discovery and probe: discovers and probes
- Check planner and runner → Firebase discovery and probe: discovers and probes
- Check planner and runner → Live site checks: checks target
- Check planner and runner → Unauthenticated endpoint probe: probes routes
