Skip to content

SysML v2 API and Services

The SysML v2 service implements the OMG Systems Modeling API and Services REST platform-specific model on top of Flexo MMS. A SysML v2 tool talks to the standard API; underneath, projects are Layer 1 repositories and commits are Layer 1 commits, so a SysML v2 model gets the same branching, history, diffs and access control as any other graph in Flexo.

What it serves

The REST resources of the standard:

Resource Notes
/projects One project per Layer 1 repository, identified by UUID as the standard requires
/projects/{id}/commits Element create, update and delete in one change set
/projects/{id}/branches Branches, with an Initial branch created for a new project
/projects/{id}/tags Fixed references to a commit
/projects/{id}/commits/{id}/elements Elements and their owned elements at a commit
/projects/{id}/commits/{id}/elements/{id}/relationships Relationships of an element
/projects/{id}/query-results Queries against a project

Elements are stored as RDF in the Layer 1 model graph and rendered back as the JSON the standard defines. Callers authenticate with the same bearer token the rest of Flexo MMS uses; the Auth service issues it.

Running it

The repository's docker-compose/ directory starts the Flexo MMS prerequisites and the SysML v2 API in front of them on port 8083; the token to use is in docker-compose/env/flexo-sysmlv2.env. The getting started page walks through it. A Postman collection and a Bruno collection in the repository exercise every endpoint.

Who talks to it

The SysML v2 Web Modeler, the Python client, the SysML v2 MCP server and the Flexo CLI's SysML v2 plugin all speak to this API, as does any other tool built to the OMG standard.

API reference

flexo-sysmlv2-swagger carries Kubernetes manifests that host a Swagger UI over a deployed SysML v2 API: an init container fetches the OpenAPI document, and an initializer injects an Authorization header so the "try it" requests work against a protected deployment.