85 lines
1.9 KiB
Groff
85 lines
1.9 KiB
Groff
.TH MRVACOMMANDER 7 "April 2025" "MRVA Project" "System Overview"
|
|
.SH NAME
|
|
mrvacommander \- distributed CodeQL task queue and execution system
|
|
.SH SYNOPSIS
|
|
.B server
|
|
.RI [ environment ]
|
|
.br
|
|
.B agent
|
|
.RI [ environment ]
|
|
.SH DESCRIPTION
|
|
mrvacommander coordinates analysis jobs over multiple worker nodes using queues, pluggable storage, and CodeQL execution. It consists of multiple interacting packages and entry points.
|
|
|
|
.SH STRUCTURE
|
|
.TP
|
|
.B cmd/server
|
|
Entry point. Loads configuration, initializes dependencies, runs queue subscriber with a dispatcher.
|
|
.TP
|
|
.B cmd/agent
|
|
Entry point. Loads configuration, runs a processing loop: receive job, execute query, save result, update state.
|
|
|
|
.SH CONFIGURATION
|
|
.TP
|
|
.B config/mcc
|
|
Parses environment variables into structured configuration. Modules include:
|
|
.IR queue ,
|
|
.IR storage ,
|
|
.IR logger ,
|
|
.IR commander .
|
|
|
|
.SH SERVER SIDE MODULES
|
|
.TP
|
|
.B pkg/server
|
|
Initializes:
|
|
queue backend
|
|
QLDB store
|
|
artifact store
|
|
|
|
Subscribes to queue and dispatches jobs to handler.
|
|
.TP
|
|
.B pkg/deploy
|
|
Deployment helpers: validate environment variables, bootstrap key services.
|
|
|
|
.SH AGENT SIDE MODULES
|
|
.TP
|
|
.B pkg/agent
|
|
Receives jobs, executes CodeQL queries, stores outputs, marks completion.
|
|
.TP
|
|
.B pkg/state
|
|
Tracks which jobs have been completed. Local file-backed.
|
|
|
|
.SH SHARED MODULES
|
|
.TP
|
|
.B pkg/common
|
|
Core types: Job, JobOutput, NameWithOwner, Query.
|
|
Includes MinIO wrappers, external API access, and job spec parsing.
|
|
.TP
|
|
.B pkg/codeql
|
|
Defines query structure and executes CodeQL against a database.
|
|
.TP
|
|
.B pkg/qldbstore
|
|
Provides read-only access to CodeQL databases via:
|
|
- MinIO (S3)
|
|
- HTTP (hepc)
|
|
- Filesystem
|
|
.TP
|
|
.B pkg/artifactstore
|
|
Persists job results. Implementations:
|
|
- MinIO
|
|
- Memory
|
|
.TP
|
|
.B pkg/queue
|
|
Job queue interface. Implementations:
|
|
- RabbitMQ
|
|
- In-memory single-node
|
|
.TP
|
|
.B utils
|
|
Generic helpers:
|
|
- HTTP download
|
|
- tar.gz extraction
|
|
|
|
.SH SEE ALSO
|
|
.BR codeql (1),
|
|
.BR rabbitmq-server (1),
|
|
.BR minio (1)
|