Work across several repositories
An application split across repositories has one threat model per repository
and calls between them. A Bravos workspace links the members with
guardlink link-project, installs Bravos in each one and in the folder they
share, and keeps a snapshot the briefing, bravos watch and reports read.
Linked workspaces are paid, with a 30-day no-card trial. Free can run the
research loop in any
number of repositories independently; linking them into one application is the
paid workspace feature.
Before you start
Section titled “Before you start”Initialize each member as a git repository. The workspace command requires Team or a trial licence; it refuses before linking repositories when no licence is available. See licensing.
Create the workspace
Section titled “Create the workspace”Each member is PATH[=service[@url]]. The URL is where that service runs for
testing.
bravos workspace create shop --member web=web@http://127.0.0.1:3000 --member orders=orders@http://127.0.0.1:4000Cross-service edges: 0Truncated to the cross-service summary from the 1.4.1 scratch workspace. Both services were linked and initialized; this fixture declares no cross-service flow, so the count is zero.
Run from ~/src/shop, the folder both repositories sit in, which becomes the
app folder. Pass --folder when the members do not share one. Each member here
is a one-file Flask app with no annotations yet, so both show 0 exposures.
Where to open the agent
Section titled “Where to open the agent”- In the app folder, for questions across services.
- In a member, for changes to that service.
A call from one service to another is written as a guardlink flow between the
two services’ assets, @flows #<this>-<x> -> #<other>-<y> via http. Once
members carry such flows, Cross-service edges counts them.
Change it
Section titled “Change it”Use workspace add and workspace remove to change membership,
workspace target to update a service URL, workspace show to read the
snapshot, and workspace sync to refresh the linked models. The installed
workspace --help documents their arguments.
show --json prints the snapshot and export. Nothing is pushed anywhere: the
registry lives in ~/.bravos/workspaces.json, and each member’s model stays in
its own repository.

