Concepts
- Project — A named container for all scan data. Each project has a UUID, name, description, and optional per-project config overlay.
- Default project — A built-in project (
00000000-0000-0000-0000-000000000001) created duringvigolium init. All data belongs to this project unless you specify otherwise. - Project config — An optional YAML overlay at
~/.vigolium/projects/<uuid>/config.yamlthat merges on top of the global config.
CLI Usage
Create a project
List projects
*.
Set the active project
VIG_PROJECT_UUID environment variable in your shell. All subsequent commands in that shell session will use this project.
View project config path
Scoping Operations to a Project
There are several ways to scope operations to a project, listed by precedence (highest first):| Method | Example |
|---|---|
--project-id flag | vigolium scan -t https://example.com --project-id a1b2c3d4-... |
--project-name flag | vigolium scan -t https://example.com --project-name my-engagement |
VIG_PROJECT_UUID env var | export VIG_PROJECT_UUID=a1b2c3d4-... |
VIGOLIUM_PROJECT env var (legacy) | export VIGOLIUM_PROJECT=a1b2c3d4-... |
| Default project | Used when no flag or env var is set |
--project-id and --project-name are mutually exclusive. The deprecated --project flag is an alias for --project-id.
CLI examples
Server API
When using the REST API, set theX-Project-UUID header to scope all operations to a project:
Config Merge Strategy
Configuration is resolved in layers (later layers override earlier ones):Database Isolation
All major data tables include aproject_uuid column:
scanshttp_recordsfindingsscopessource_reposoast_interactionsscan_logs
project_uuid column is added with the default project UUID as the default value.