Skip to content

Creating a new project + root package via REST API #2322

Description

@daniel86

Hello,

I am trying to use the SysML v2 REST API to create and populate a SysML project programmatically, but I cannot figure out how to create the initial root package using only the REST API.

Creating a new project as described in the API cookbook (Create a new project) works fine. This creates the project, default branch, and initial commit.

After that:

  • Calling the empty_sysmlv2 GraphQL action works and creates the initial model.
  • Using the SysON UI ("Create a new model") also works.
  • Once the initial package exists, I can successfully create additional packages and other model elements underneath it using the REST /commits endpoint by creating the appropriate OwningMembership relations.

The remaining problem is bootstrapping the very first top-level package via REST.

From inspecting the model created by SysON, I can see that the root package is owned by the root Namespace through an OwningMembership. However, in an empty project I cannot determine the identity of that root Namespace. The REST endpoints (/elements, /roots, etc.) do not return any elements after project creation, so there is no existing element that I can reference when creating the initial ownership relation.

I also experimented with creating a standalone Package, a standalone OwningMembership, and combinations of both in a commit, but these objects are not persisted unless they are connected to an already existing model element as it seems to me.

My question is:

Is there currently a standard REST API workflow for creating the very first top-level package in an empty project, or is model initialization intentionally expected to be performed through the empty_sysmlv2 GraphQL action (or another SysON-specific mechanism)?

Ultimately, I would like to build a client that relies only on the standardized SysML v2 REST API, without depending on SysON-specific GraphQL operations.

Best regards,
Daniel

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions