Users and Roles
Users are defined in a JSON file (default:~/.vigolium/users.json). On first run, the file is auto-created from the embedded template with randomly generated access codes (prefixed vgl_).
Three roles control API access:
Default users created on bootstrap:
Login
Exchange a username and access code for user info and a Bearer token.POST /api/auth/login
This endpoint is publicly accessible (no authentication required).
Request body:
Current User Info
Retrieve the authenticated user’s identity and role.GET /api/user/info
Requires a valid Bearer token.
Success response (200):
Using the Token
Include the token as a Bearer token in theAuthorization header for all subsequent API requests:
Project Scoping
Projects are a data boundary, not an authentication boundary. The API key authenticates the caller; theX-Project-UUID header selects which project’s data the request touches (the default project when absent). Any authenticated caller can address any project, so run separate servers or separate databases when engagements must not share an operator.
VIGOLIUM_PROJECT_READONLY=true disables the mutating vigolium project CLI subcommands (create, delete) for the calling host.
Disabling Authentication
Setno_auth: true in vigolium-configs.yaml or pass the --no-auth flag to the server command to disable authentication entirely. This is not recommended for production use.