Skip to main content

A webapp for exploring Capella models

Project description

Capella Model Explorer

image image

A webapp for exploring Capella models through simple "auto-generated" textual and graphical views.

Longer story

We see a larger non-MBSE crowd struggling with the things hidden in the model. With this app we expose model contents in an easy to review readable form with basic graphical annotations. Under the hood it uses Jinja templates enabling the tooling teams to support their users with model-derived documents of any shape and form.

Use cases

  • Provide insights into / "spell-out" the model for non-MBSE stakeholders via document-a-like dynamic views that describe model elements in a human-readable form.

  • Provide meaningful default views (that can be further customized) for the key elements to kickstart the model exploration.

There are a few more use cases but we will reveal them a bit later.

Installation

You can install the latest released version directly from PyPI.

pip install capella-model-explorer

Run the app

The app comes with a command line interface (CLI). Run cme --help to get help or cme SUBCOMMAND --help to get help for any subcommand.

cme run --help

When running the app, the used IP address and port are printed to the console.

Run the app locally

cme run

Build a Docker image and run the app in a container

docker build -t capella-model-explorer .
cme run --container --image capella-model-explorer

Above will start the app with a sample model which can be found here: In-Flight Entertainment System

Stop the app via CTRL+C.

Run the app in a container with a custom remote model

export CME_MODEL='git+https://github.com/dbinfrago/Capella-IFE-sample.git'
export CME_PORT=5000  # optional, default is 8000
cme run --container

More information describing what kinds of values can be specified via the environment variable CME_MODEL can be found in the capellambse documentation.

Run the app in a container with a custom local model

If you want to be able to explore a local Capella model, you can mount a local model into the container.

export CME_MODEL=/path/on/host/to/model
cme run --container

Run the app in a container and enable live report template editing

If you want to be able to live edit and test local templates, you can mount a local model and a templates folder into the container. Live template reloading and rendering will be enabled.

export CME_TEMPLATES_DIR=$(realpath ./templates)
cme run --container

Integration in the Capella Collaboration Manager

The Capella Model Explorer can be integrated into the Capella Collaboration Manager. Navigate to Settings > Tools, then Add a new tool with the following configuration:

name: Capella model explorer
integrations:
  t4c: false
  pure_variants: false
config:
  resources:
    cpu:
      requests: 0.4
      limits: 2
    memory:
      requests: 1.6Gi
      limits: 6Gi
  environment:
    CME_MODEL:
      stage: before
      value:
        path: "{CAPELLACOLLAB_SESSION_PROVISIONING[0][path]}"
        diagram_cache:
          path: "{CAPELLACOLLAB_SESSION_PROVISIONING[0][diagram_cache]}"
          password: "{CAPELLACOLLAB_SESSION_API_TOKEN}"
          username: "{CAPELLACOLLAB_SESSION_REQUESTER_USERNAME}"
        fallback_render_aird: "true"
    CME_LOG_FILE: /var/log/session/model-explorer.log
    CME_LIVE_MODE: "0"
    CME_ROUTE_PREFIX: "{CAPELLACOLLAB_SESSIONS_BASE_PATH}"
  connection:
    methods:
      - id: f51872a8-1a4f-4a4d-b4f4-b39cbd31a75b
        type: http
        name: Browser connection
        ports:
          metrics: 8000
          http: 8000
        sharing:
          enabled: true
        redirect_url: "{CAPELLACOLLAB_SESSIONS_SCHEME}://{CAPELLACOLLAB_SESSIONS_HOST}:{CAPELLACOLLAB_SESSIONS_PORT}{CAPELLACOLLAB_SESSIONS_BASE_PATH}/"
  monitoring:
    prometheus:
      path: /metrics
    logging:
      enabled: true
  provisioning:
    directory: /models
    max_number_of_models: 1
    required: true
    provide_diagram_cache: true
  persistent_workspaces:
    mounting_enabled: false
  supported_project_types:
    - general

You can tune the resources according to your needs.

After saving the configuration, you have to add a version for the new tool. Since the Capella Model Explorer can load different Capella versions, we can use one generic version:

name: "Generic"
config:
  is_recommended: true
  is_deprecated: false
  sessions:
    persistent:
      image: ghcr.io/dbinfrago/capella-model-explorer/model-explorer:latest
  backups:
    image: null
  compatible_versions: [1, 2, 3, 4]

Replace the numbers in compatible_versions with the version IDs for the versions you want to support.

When configured properly, users will be able to start read-only sessions for the Capella Model Explorer. More information about read-only sessions is available in the Capella Collaboration Manager documentation.

Theme

The app comes with a default light and dark theme and the hue value for the primary color can be customized via the environment variable CME_PRIMARY_COLOR_HUE. The default hue value is 231 which corresponds to the purple/blue color used as primary color in the Capella Collaboration Manager documentation.

Contributing

We'd love to see your bug reports and improvement suggestions! Please take a look at our guidelines for contributors for details. It also contains a short guide on how to set up a local development environment.

Licenses

This project is compliant with the REUSE Specification Version 3.0.

Copyright DB InfraGO AG, licensed under Apache 2.0 (see full text in LICENSES/Apache-2.0.txt)

Dot-files are licensed under CC0-1.0 (see full text in LICENSES/CC0-1.0.txt)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

capella_model_explorer-0.3.7.tar.gz (198.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

capella_model_explorer-0.3.7-py3-none-any.whl (37.4 kB view details)

Uploaded Python 3

File details

Details for the file capella_model_explorer-0.3.7.tar.gz.

File metadata

  • Download URL: capella_model_explorer-0.3.7.tar.gz
  • Upload date:
  • Size: 198.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for capella_model_explorer-0.3.7.tar.gz
Algorithm Hash digest
SHA256 f99d4f9d5205b421066b83e79d58e3a50edfb99cb9f3c7c5da4da7f4b88b002f
MD5 acbc7cf74ff74ede11e6f20eb1e22257
BLAKE2b-256 9dd776f49364d8fe64288620ccdb9e48ed6f88d2c506eb55244b694c71846f36

See more details on using hashes here.

Provenance

The following attestation bundles were made for capella_model_explorer-0.3.7.tar.gz:

Publisher: build-test-publish.yml on dbinfrago/capella-model-explorer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file capella_model_explorer-0.3.7-py3-none-any.whl.

File metadata

File hashes

Hashes for capella_model_explorer-0.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3cb7dad7d7bc320e851a61fa2adb28a8c6b29885bdef3c90efcdb013b298e6b4
MD5 2b438ed77ea1b83412fe2de1c34ff122
BLAKE2b-256 567859752df74ab622f100cbbe07fcfd36bbb77fc84b46b19e4f594e630ba15b

See more details on using hashes here.

Provenance

The following attestation bundles were made for capella_model_explorer-0.3.7-py3-none-any.whl:

Publisher: build-test-publish.yml on dbinfrago/capella-model-explorer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page