Skip to content

Documentation

Files, settings and environment

Short, and worth reading once: most confusing behaviour is a value coming from a layer you forgot about.

On your machine

PathWhat
~/.local/bin/graphThe binary. graphlit is a link to the same file
~/.vipl/credentials.jsonOne entry per deployment. Mode 600
~/.vipl/config.jsonSettings: what graph config writes
~/.vipl/links.jsonWhich folders on this machine are attached to which project
~/.vipl/update-check.jsonWhen the once-a-day version note last ran
VIPL_HOME moves the whole directory, which is how the test suite never touches a real one.

In a project

PathWhatCommit
.vipl/link.jsonProject id and deployment. No secretsYes
.vipl/graph.jsonThe Software GraphYes
.vipl/tasks.jsonThe plan and each task's statusYes
.vipl/node_file_map.jsonNode → files, with a content hash each. What drift comparesYes
.vipl/health.jsonFindings, with a fingerprint each so a known one stays knownYes
.vipl/planned_graph.jsonThe baseline a delta plan is diffed againstYes
.vipl/history/Previous graph versionsOptional
.vipl/runs/Records of builds that ran hereNo
.vipl/agent.lockHeld while a runner is serving this folderNo

Environment

VariableEffect
VIPL_APIThe deployment. Outranks graph config api. Not VIPL_API_URL. That spelling was in graph config's own source column while nothing read it, and is now gone
VIPL_API_KEYAn API key. Read before anything stored on disk
VIPL_TOKENAn identity token. Read before anything stored on disk
VIPL_API_TOKENThe shared token of a locked self-hosted deployment. Not a user credential
VIPL_HOMEMove the credential and settings directory
VIPL_COLORauto · always · never. Outranks graph config color
NO_COLORAny value turns colour off, as it does everywhere else

Which layer wins

For any setting, in this order. The first one that has a value decides:

  1. 01The flag you just typed.
  2. 02The environment variable, where one exists for that setting. graph config names it in the source column, so you can see which layer won.
  3. 03`~/.vipl/config.json`, which is what graph config writes.
  4. 04The built-in default.

graph config prints the winning layer beside every value, and warns you when you set something that is being overridden. That column is there because configuration that appears to be ignored is otherwise invisible.

And how the deployment is decided

Slightly longer, because a folder can disagree with an account:

  1. 01--api on the command line.
  2. 02VIPL_API.
  3. 03The folder's .vipl/link.json.
  4. 04The account you are signed in to.
  5. 05The built-in default (https://graphlit.co).

graph setup reports which of these it used when something goes wrong, so the product is looking at the wrong host is a visible answer rather than a guess.