The PLM server
The BREP PLM server (brep-plm) is a self-hosted product lifecycle management server for
the BREP CAD application. It keeps a team's CAD documents under revision control on a
machine the team runs: parts with part numbers, revisions with a lifecycle, explicit
check-out, bills of materials, reviews and workflows, attachments, and an audit log of
every change.
It is one executable and one data directory. The database is SQLite, built into the server, so there is no database server or system library to install.
What it does
- Parts and revisions. Every part has a part number, made by its part type's
numbering rule. Each part has revisions (
A,B, …) that move throughDraft → InReview → Released → Superseded | Obsolete. A released revision can never be changed. See Parts, revisions and check-out. - Check-out. A draft is written only by the user holding its lock, so two people cannot overwrite each other's work.
- Review and workflows. Submit a revision for review, collect approvals, and gate release on them; or model a whole process, with forms, parallel reviews and scripted steps. See Reviews and workflows.
- Structure. Each assembly revision publishes the list of parts it uses. The server builds indented and flat BOMs with rolled-up quantities and costs, compares revisions, answers where a part is used, and can replace a part everywhere it is used. See Catalog, BOMs and sourcing.
- Catalog and sourcing. A category tree with typed attributes, and each part's manufacturer part numbers with supplier offers and price breaks.
- Families and templates. Table-driven part families and template copies, built by a headless CAD worker. See Families, templates and the bake worker.
- Attachments and workspaces. Files on parts and revisions, and each user's own folders of links and versioned files. See Attachments and workspaces.
- A web workbench in the browser for everything above. See The web workbench.
- An HTTP API that the CAD app, the bake worker and your own tools use. See The HTTP API.
- Administration: users and groups, API tokens, settings, scripts, backups and the audit log. See Users and permissions and Running the server.
How the CAD app connects
The CAD app works in one of two modes, chosen when it starts:
- File-based (the default): documents are files on disk, or in the browser's storage for the web build. No server is involved.
- PLM: documents are revisions on a PLM server. File → Open browses your PLM workspace, Save writes the revision you have checked out, and a PLM pane shows the open document's part, revision and lock.
The desktop app connects when it finds a server URL on its command line, in the
BREP_PLM_URL environment variable or in plm.json in its config directory. The PLM
server can also host the web build of the CAD app on its own address, where it signs in
with your PLM browser session. See Connecting the CAD app.
The server never runs the CAD kernel itself. Anything that has to build geometry (a
family member, a template copy, a forced resave) is queued for a bake worker: the
desktop app started with brep-app --bake-worker.
Quick start
brep-plm serve --data ./plm-data --bind 127.0.0.1:8088
The first run creates plm-data/, creates an admin account and prints its generated
password once. Open http://127.0.0.1:8088/, sign in as admin, and follow the
setup wizard. Create a second administrator before you lose the first password: it
cannot be recovered.
Then point a CAD app at it:
brep-app --plm-configure http://127.0.0.1:8088
brep-app
and sign in on the PLM tab of the app's Settings window.
Pages in this section
| Page | Covers |
|---|---|
| Running the server | brep-plm commands and options, the data directory, first sign-in, TLS and proxies, backups, restore and export, hosting the CAD app |
| Users and permissions | groups, API tokens, sessions, the sign-in throttle, settings |
| Parts, revisions and check-out | part types and numbering, revisions and their lifecycle, check-out and check-in, release, superseded revisions |
| Reviews and workflows | review rounds, approvals, the inbox, workflow processes and forms, scripts |
| Catalog, BOMs and sourcing | categories and attributes, uses lists, BOMs, where-used, Replace everywhere, sourcing |
| Attachments and workspaces | files on parts and revisions, personal workspaces |
| Families, templates and the bake worker | Generate, spin-out, the bake queue and its worker |
| Connecting the CAD app | --plm-* switches, plm.json, signing in, the PLM pane, superseded parts in assemblies |
| The web workbench | the browser interface, page by page |
| The HTTP API | authentication and the route families |