Syndeia is a digital thread platform for enabling model-based engineering (MBE/MBSE) of complex systems. It provides services to author, query, visualize, and curate open digital threads. Though all of Syndeia’s functionality is accessible via its user interface – Syndeia Cloud Web Dashboard and Syndeia local client Dashboards (SysML tool plugins and Syndeia Standalone) – there is a key ingredient, the Syndeia Cloud REST/HTTP API which we will refer to as Syndeia API here.

This is the first post in our new blog series, where we will share the capabilities of the Syndeia Cloud REST/HTTP API and the powerful use cases it enables for an Open Digital Thread.

Note: If you are new to Syndeia and the concept of a Digital Thread, we recommend reading the following posts and viewing the short videos linked in the posts.


What is an API?

First, let’s answer this basic question. API stands for “Application Programming Interface“. Just like a hardware device has ports to communicate with the other devices, such as power and USB ports on your computer, a software system/tool provides an API for other software systems to communicate with it. Most modern software systems provide an API in addition to the Graphical User Interface (GUI) for humans (and yeah, robots) to interact with it. An API makes it possible to automate tasks with a software system.


Why do we need an API for the Digital Thread?

The Digital Thread for a system serves as the data blueprint for that system throughout its lifecycle. A Digital Thread can be conceptualized as a graph whose nodes are elements in various enterprise repositories, tools, and version control systems, and whose edges are intra-model relations within each tool and inter-model relations across tools.

api-digital-thread

An API for the Digital Thread makes it possible to automate the following use cases for digital engineering:

  • Connect to and query models and data in multiple enterprise tools and repositories
  • Create and update data in enterprise tools/repositories, and enable chain of automated model transformations
  • Connect data across tools, and enable compare and bi-directional synchronization as models evolve over time
  • Maintain Digital Thread variants, as digital representations of the variant configurations of a system
  • Verify and maintain the completeness and correctness of the digital thread using patterns and anti-patterns
  • Track project and schedule in terms of the status of tasks and digital artifacts delivered
  • Generate technical data packages, reports, and other system build artifacts at milestone releases, such as at Preliminary Design Reviews (PDRs) and Critical Design Reviews (CDRs)

What API does Syndeia provide?

Syndeia Cloud provides a REST/HTTP API to enable Digital Thread automation use cases listed above. Syndeia Cloud is an API-first platform built with scalable microservices. Since the inception of Syndeia Cloud with the Syndeia 3.2 release in 2018, the API has been a focal point of the Syndeia platform. We at Intercax took a decision that any feature designed for Syndeia Cloud will start with the API user experience, and that the API will be the primary way to access the feature, both for our own tools and those of our users. The Syndeia Web Dashboard and the Syndeia local clients, e.g. plugins for SysML modeling tools and Standalone, use the same API to interact with Syndeia Cloud as our users.


How can I use the Syndeia API?

Users can learn about and access the Syndeia API in the following ways.

Documentation accessible from Syndeia Cloud Web Dashboard

Syndeia Cloud installation comes with a detailed documentation of the API data model, diving into the core concepts, attributes, and relationships. The documentation is available directly from the Syndeia Cloud Web Dashboard’s Help menu, as shown below.

Available as OpenAPI 3.0 specification and Swagger doc

Syndeia Cloud API is published as an OpenAPI 3.0 specification. Users can access the Swagger doc from the Syndeia Cloud Web Dashboard’s Help menu and try out the endpoints directly from the Swagger doc. This includes endpoints to access the Digital Thread data that is stored and managed by Syndeia, and the endpoints to access integration services, such as to Jira, Jama, Windchill, and other tools using a simple, intuitive, and graph-centric Syndeia data model.

Access Syndeia API via a REST client

You can it from any REST/HTTP client, such as Postman, Curl, Paw, and others.

Syndeia API clients and Jupyter notebooks

We generate Syndeia Cloud API clients in different programming languages, such as Python, Scala, Java, and others. For the Python client, a conda package is available to use Syndeia API in Jupyter notebooks.

Jupyter notebooks serve an interactive computing environment for engineering teams. The Syndeia API Python client is an SDK that provides a natural and intuitive way to consume the API in Jupyter notebooks. Users can make API calls to different engineering tools using Syndeia and use other Python visualization libraries to plot charts and generate reports. The example below shows a stacked bar chart that illustrates the number of Jira issues in To Do vs In Progress state assigned to two different users.


Next in this series

The next set of posts in this series will use Jupyter notebooks as the primary means for demonstrating the Syndeia API and will focus on the following topics.

Additional posts are in development and the content list will be revised on a regular basis.


Training

The online documentation is an excellent resource for users evaluating and using Syndeia Cloud to get started. The recently launched Training Program includes a live, 2-hour course on the Syndeia Cloud API. The training program will be offered on a regular basis. The first instance of the Syndeia Cloud API course will be held on Wed, Nov 17. Contact us at info@intercax.com to learn more.

Manas Bajaj

Dr. Manas Bajaj is the Chief Systems Officer at Intercax. He leads product research and development, including the Syndeia platform. He focuses on new tools and technologies to support digital thread, digital engineering, and MBSE/MBSE.