Version next

The Obeo Studio is a unique technology to easily develop custom and state-of-the-art modeling tools to be deployed to the Cloud.

The Obeo Studio is built as an open-core product relying on the open source Eclipse Sirius project (EPL 2.0 licence) and more precisely on the Sirius Web component. Sirius Web is a framework from Obeo for building cloud graphical modeler for a dedicated DSL. The Obeo Studio is a Sirius Web build extended with Enterprise features, to deploy on public, private clouds or on premise and including support and upgrade guarantees.

This documentation details features coming from Sirius Web and the Obeo Studio. You can see if a feature comes with Sirius Web or the Obeo Studio thanks to the Before you Start section :

  • the icon highlights open source features from Sirius Web,

  • the icon highlights enterprise features from the Obeo Studio.

User Manual

Manuals for the end-user, system administrators and support staff.

1. Getting Started

1.1. Ask for an Obeo Studio account

Before you Start

Who can use this feature

Anyone can ask for a free Obeo Studio account.

Check out our Obeo Studio requirements section for supported browsers and platforms.

Included in the Obeo Studio

1.1.1. Invite-only Sign up

As the Obeo Studio is still in beta testing, you can join only on invitation. You can sign up by filling our form at https://demo.obeostudio.com/signup. If you have any question don’t hesitate to send an email to ocp-modeler@obeosoft.com. We need you to send us these information :

  • Username,

  • Password,

  • Confirm password,

  • First name,

  • Last name,

  • Company,

  • Country,

  • Email,

  • Phone,

  • That you agree to the Terms of Use and Privacy Policy associated to the Obeo Studio service,

  • If you want to subscribe to the Obeo mailing list to be informed about products (latest versions, articles, documentation, …​) and upcoming events.

Username, Password and Confirm password will be used to create an account that will be activated by an administrator.

Username, password, confirm password, email and the agreement with the Terms of Use and Privacy Policy is mandatory.

1.2. Obeo Studio requirements

Obeo Studio is browser-based software, which means it can be run on all full desktop operating systems (MacOS, Windows, Linux, etc), as well as Chrome OS.

1.2.1. Supported browsers and operating systems

The minimum browser requirements is:

  • Chrome 92, 93, 94

  • Firefox 91, 92, 93

We have planned to support for a later version:

  • Safari (Apple - macOS)

  • Edge (Windows)

Obeo Studio does not support Internet Explorer : Supported Browser

The minimum operating system (OS) requirements are:

  • Windows 8.1 or later

  • Apple MacOS 10.10 (Yosemite) and later

  • Any Linux OS that supports the browsers mentioned above

  • Any Chrome OS that supports the browsers mentioned above

You can find out what browser and operating system version you’re using via What’s my Browser.
If you are encountering speed, upload, download, or various interface problem with Obeo Studio it could be caused by a plugin, add-on, or extension that you have installed in your browser. To see if this is the case you can try disabling all plugins, add-ons, or extensions within your browser.

1.3. Get help from the Obeo Studio Support Team

Before you Start

Who can use this feature

All the users have access to free email support

Check out our Obeo Studio requirements section for supported browsers and platforms.

Included in the Obeo Studio

The Obeo Studio offers support for all our users! We currently provide email-based support which we’ve found to be most effective for a number of reasons.

It’s easy for our support team to triage conversations and get them to the right people quickly. This helps us get you the answers you need so you can get back to modeling. It’s also easy for users to attach files, videos, and screenshots that our support team might need for troubleshooting more complicated issues.

When you need us, we’re here to help.

Contact the Obeo Studio support by sending an email to: ocp-modeler@obeosoft.com.

1.3.1. What are Obeo Studio support hours?

Our support team members are in Europe.

Support hours: Monday through Friday 9am - 5pm (CET / UTC +01).

2. Using the Obeo Studio

2.1. Authentication

2.1.1. Log in to your Obeo Studio account

Before you Start

Who can use this feature

Users with Any account

Users will need to have already signed up for an Obeo Studio account

Included in the Obeo Studio

There is one way to log in to your Obeo Studio account.

2.1.2. Default redirection to log in page

While you are not not logged in by default you are redirected to the log in page.

2.1.3. Log in with your Username and Password

  1. Head to https://demo.obeostudio.com.

  2. Enter your Username and Password in the fields provided.

  3. Click Log in to complete the process and access your account.

2.1.4. Log out

Before you Start

Who can use this feature

Users with Any account

Users will need to have already logged in

Included in the Obeo Studio

To log out:

  1. Go to the up right corner on any Obeo Studio pages,

  2. Click on the avatar, you can select the Log out menu. When you are logged out then you will be automatically redirected to the Log in page.

2.1.5. Authentication FAQ

My credentials do not work, I can’t log in!

If you are on Windows, please check that your antivirus software is not configured to block the Obeo Studio authentication page. Else check with the Obeo Studio administrator that your credentials are valid, send an email to ocp-modeler@obeosoft.com.

How do I get an account to the Obeo Studio?

Navigate to the sign up page, fill the form and send your reqest. If you did not receive any news for 2 days, ask for a Username and a Password to the administrator of the Obeo Studio server by sending an email to ocp-modeler@obeosoft.com.

How do I retrieve my Username / Password if I forgot them?

Ask to the administrator of the Obeo Studio server to send you back your credentials.

How do I change my Username?

Ask to the administrator of the Obeo Studio server to change the Username for you.

How do I reset my Password?

Ask to the administrator of the Obeo Studio server to generate a new password for you.

How do I delete my account?

Ask to the administrator of the Obeo Studio server to delete your account.

2.2. Projects

2.2.1. Getting started with Projects

Before you Start

Who can use this feature

Users with Any account

Users with Edit and Read-only access can work with projects

Included in Sirius Web

2.2.2. Project Structure

You can use Projects to group Models. It is not possible to create subprojects in your projects. All the models are represented at the same level in a project.

2.2.3. Projects Browser

The Projects Browser lists all the projects accessible with your account. To get it, navigate to: https://demo.obeostudio.com/projects

2.2.4. Create a Project

You can create a Project from your Projects Browser by clicking on:

  • New:

    • It opens the Create a new project page,

    • Enter the project name,

    • Set the Project Visibility,

    • Click on Create.

  • Upload: to create a project based on an existing one you have saved on your computer.

Every project you create will then have its own Project Editor.

Projects can be either private (the default) or public. Public projects are visible (but not editable) to all connected users. Private projects are only accessible to specific users with whom you share it. See Share a Project and Project Teams for more details.

2.2.5. Rename a Project

Before you Start

Who can use this feature

Users with Any account

Users with Management access to the project

Included in Sirius Web

You can update the Project name from the Projects Browser:

  1. In the Project list, go over the Project to get the Rename button,

  2. Click on the Rename button,

  3. Update the name in the editable field,

  4. Click on Rename.

Project names don’t need to be unique. Unique names do make it easier when it comes to finding the correct Project.

2.2.6. Delete a Project

Before you Start

Who can use this feature

Users with Any account

Users with Management access to the project

Included in Sirius Web

You can delete a Project from the Projects Browser:

  1. In the Project list, go over the Project to get the Delete button,

  2. Click on the Delete button.

When you delete a project, you will lose all the data. If the project is a Public or Private project shared with other users, it will be deleted for everyone.

2.2.7. Share a Project

Before you Start

Who can use this feature

Users with Any account

Users with Edit access to the project

Included in Sirius Web

You can own projects individually, or you can share projects with other people.

You can restrict who has access to a project by choosing the project’s visibility. For more information, see Project Owner and Visibility.

For projects you own, you can give other users access so that they can collaborate on your project.

  1. Open the Project Editor.

  2. Click the Settings button in the right-corner.

  3. Set the Visibility:

    1. Select Public to give read-only access to everyone to your project.

    2. Select Private to give more fined-grained access to selected members of a Project Teams.

2.2.8. Share a Diagram

Before you Start

Who can use this feature

Users with Any account

Users with Read-only access to the project

Included in Sirius Web

  1. Open the Project Editor.

  2. Select a diagram in the Project Explorer.

  3. Click the Share button at the top of the diagram area.

  4. Copy the link to your clipboard.

Anybody who has an account and at least read-level access to the project, anybody you share the link with can use it to go directly to this specific diagram.

2.2.9. Project Editor

In the body of the Project Editor you can see three panels. In the left panel you have:

  1. The Project Explorer with all the models in this Project,

  2. The Validation View with all the models diagnostics.

The main panel contains the Representation Editor. It can contains, among others, diagrams or forms. In the right panel you have the Details View which presents the properties of the current selected element.

Some actions can be done using the Project Context Menu.

Project Explorer

The project explorer shows all the models and their content in this project as a tree, where items can be expanded or collapsed.

The root elements in the tree are the models which exist in this particular project. Inside the models you will find the semantic elements, instances of your business domain concept, with their children. Whenever there is a representation (e.g. a diagram) associated to a particular semantic element, it will also appear as a child of the semantic element.

Each tree item can be selected.

  • Selecting a semantic element will display its properties in the Details View. If the selected element is represented on a diagram that is currently opened, the graphical element (node or edge) where it appears on the diagram will also be selected, and the view will center on the selected element.

  • Selecting a representation will open it in a new tab (or focus on an existing tab where it was already open).

Project Explorer Context Menu
Before you Start

Who can use these features Users with Any account Users with Edit access to the project Included in Sirius Web

Tree items have a context menu which actions depend on their type.

With models (root elements), the user can:

  • create a new root object inside the model,

  • rename the model,

  • download the model,

  • delete the model.

With Representations, the user can:

  • rename the representation,

  • delete the representation.

With semantic objets, the user can:

  • create a new child object,

  • create a new representation,

  • rename the object,

  • delete the object,

Create a New Object
  1. Open the context menu of the parent element.

  2. Click on New object.

  3. Select which type of object to create.

  4. Click on Create.

The created element is selected in the project explorer.

Rename an Object
  1. Open the object context menu.

  2. Click on Rename.

  3. Change the object name.

  4. Validate with "Return" key or click anywhere

    1. Alternatively, Cancel with "Esc" key.

Instead of using the context menu to rename an object, you can hit "F2" key or even, start typing the new name.
Delete an Object
  1. Open the object context menu.

  2. Click on Delete.

The object and its children - semantic element and representations - will be deleted.

There is no confirmation dialog to delete an object. This operation is undoable, once done there is no mean to get the object back.
Delete a Model
  1. Open the model’s context menu.

  2. Click on Delete.

  3. Click on Delete to confirm the dialog.

The whole model and its content will be deleted.

This operation is undoable, once done there is no means to get the model back.
Download a Model

See the Download Model section.

Create a new Representation
  1. Open the context menu of a semantic element.

  2. Click on New representation.

  3. Fill the name and choose the representation type. Only the representations which are compatible with the selected element are proposed.

  4. Click on Create.

The representation will be created and open in the Representation Editor.

Validation View

The validation view shows diagnostics of the whole project. Diagnostics are sorted by kind (for example ERROR, WARNING or INFO) and can be either hidden or displayed thanks to an accordeon widget.

Details View

The details view shows the characteristics of the selected semantic object. It is made up Property sections for each characteristic of the semantic object.

Checkbox property Section

The value of the checkbox is sent to the server when the user changes the checkbox value.

List property Section

The list property section is a read only property that cannot send value to the server.

Radio property Section

The value of the radio button is sent to the server when the user selects another radio button.

Select property Section

The value of the select is sent to the server when the user changes the selected option.

Textfield property Section

The content of the textfield is sent to the server when the end user uses the "Enter" key, or when the focus is lost.

Textarea property Section

As this widget contains multiple lines, the "Enter" key will add a new line. The content of the textarea is sent to the server only when the focus is lost.

Each Property section is able to displays the first diagnostic that applies to the property.

A diagnostic displayed in the Details View should be present in the Validation View.

Project Context Menu
Create a new Model in a Project
Before you Start

Who can use this feature

Users with Any account

Users with Edit access to the project

Included in Sirius Web

  1. Open the Project Editor.

  2. Open the context menu of the project

  3. Select the New model action.

  4. Fill the model Name.

  5. Select the Model type.

  6. Click the Create button.

The newly created model is listed in the Project Explorer.

Rename the Project
Before you Start

Who can use this feature

Users with Any account

Users with Management access to the project

Included in Sirius Web

  1. Open the Project Editor.

  2. Open the context menu of the project.

  3. Select the Rename action.

  4. Fill the textfield with the new project name

  5. Click the Rename button.

Delete the project
Before you Start

Who can use this feature

Users with Any account

Users with Management access to the project

Included in Sirius Web

  1. From the Project Editor

  2. Open the context menu of the project.

  3. Select the Delete action.

  4. Click the Delete button.

This action is undoable, the project will be removed without any means to get it back.

2.2.10. Project Settings

Before you Start

Who can use this feature

Users with Any account

Users with Edit access to the project

Included in the Obeo Studio

You can adjust various settings of a project from the Project Settings page, accessible using the gears icon in the top-right of the Project Editor:

  1. The Overview tab gives some general information about the project.

  2. From the Teams tab you can give fine-grained access to the project to specific groups of users.

  3. From the Webhooks tab you can configure which webhooks are enabled for this project.

Project Owner and Visibility

The current project owner and visibility are available in the Overview tab of the project settings.

A project is always owned by a single user, initially the one who created the project. Regardless of the other settings, the project owner always has complete admin access to the project and its settings.

If you are the owner of a project or have admin rights on it, you can transfer the ownership to a different user. In the Overview tab of the project settings page:

  1. enter the username (login) of the new owner in the text field.

  2. click on the Change owner button.

The effect is immediate. Note that if the project is private and you do not have explicit access to it as part of a Team (see below), transfering ownership to someone else can lock you out of the project. Use with caution!

A project also has a visibility, which can be either public or private.

  1. If a project is public, all users on the system will be able to view all of its content, but not make any modification (unless explicitly authorized).

  2. If a project is private, by default only the project owner can view it.

To change the visibility of a project after its creation, assuming you have the rights to do it, simply select your choice in the project setting’s overview tab. The effect is immediate.

To give Read-only access to a private project or give collaborators Edit access to a (public or private) project, you can define Teams in the corresponding tab.

Project Teams

Teams let you invite collaborators to access your project. You can control how collaborators interact with your Team using Access level.

Adjust Team Access Level

As the owner of a project, you can update the access level of a team at any time:

  1. Open the Project Settings page.

  2. Click the View all teams link next to the Teams section.

  3. Set the Access level for a team.

There are three to choose from:

  • Read-only: Viewers can only see all the models and representations of the project but can not make any change.

  • Edit: Contributors can see, create and edit all the models and representations of the project.

  • Admins: Administrators can see, create and edit all the models and representations of the project and manage the project owner and teams.

This setting will define what level of access each user or team has within a project. Note that a given user can be part of multiple teams; in that case, his access level is the highest one of all the teams he is part of.

Public Project

Private Project

View

Edit

Manage

Own

View

Edit

Manage

Own

Everyone

Team member

Viewer

Contributor

Administrator

Owner

Create a Team

When you create a new team, the first thing to define, aside from its name, is its Access Level.

To create a new team:

  1. Open the Project Settings page.

  2. Click the View all teams link next to the Teams section.

  3. Click the New team button.

  4. Set the team name.

  5. Set the access level.

  6. Click on Create team.

Three teams are created by default:

  • Viewers can only view the project.

  • Contributors can view and edit the project.

  • Admins can view, edit and manage owners of the project.

Delete a Team

To delete a team:

  1. Open the Project Settings page.

  2. Click the View all teams link next to the Teams section.

  3. Click the Delete button in the Team’s list.

Add a Team Member
  1. Open the Project Settings page.

  2. In the Add member section, set the Username of the collaborator you want to invite.

  3. Select the Team of the collaborator.

  4. Click on the Add button.

The collaborator is listed in the Teams section under the selected team.

Remove a Team Member
  1. Open the Project Settings page.

  2. In the Add member section, set the Username of the collaborator you want to remove.

  3. Select the Team of the collaborator.

  4. Click on the Remove button.

See a Team Member
  1. Open the Project Settings page.

  2. Navigate to the Teams section. It lists all the teams with their members. It shows also the access level associated to the team.

Webhooks

See the relative section in the Developer guide.

2.3. Download / Upload

2.3.1. Getting started with Downloads

Before you Start

Who can use this feature

Users with Any account

Users with Edit and Read-only access to a project can export data

Included in Sirius Web

The Download feature allows you to export your data from the Obeo Studio to your computer.

Download a Project

You can export the contents of a project to your local disk in two different ways:

  • From the global Projects Browser page:

    • Click on the menu icon (three dots) on the line of the project to export.

    • In the context menu that opens, click on the Download button.

    • A ZIP archive named after the projet is automatically saved on your disk.

  • From the menu of the project itself when in the Project Edition page:

    • Open the project menu available in the header next to the project name.

    • In the context menu that opens, click on the Download button.

    • A ZIP archive named after the projet is automatically saved on your disk.

The archive contains all the representations and models defined in your project serialized as JSON.
Download a Model

To export an individual model to your local disk:

  • Open the Project Edition page for the project which contains the document.

  • In the Project Explorer, select the top-level element which represents the document to export, and open its menu by clicking on the button (three dots) at the right.

  • Click on the Download button, an XML file named after your document is saved on your disk.

To store the model content, we use the EMF persistence framework and the default XMI provider. XMI (XML Metadata Interchange) is a standard for exchanging metadata information via Extensible Markup Language (XML).

2.3.2. Getting started with Uploads

Before you Start

Who can use this feature

Users with Any account

Users with Edit access to a project can import data

Included in Sirius Web

The Upload feature allows you to import your data from your computer the Obeo Studio.

Upload a Project

To import a project into the Obeo Studio, you have to :

  • Go to the Projects Browser page.

  • Click the Upload button in the top-right corner.

  • Click on the Click here to select a file area.

  • Select a compatible archive with the file selector.

  • Click on the Upload project button.

  • The project page opens, you can see the models in the model explorer.

A compatible archive is a zip file you retrieved from the Download a Project action in the Obeo Studio.
Upload a Model

To import a model from your local disk to the Obeo Studio, you have to :

  • Go to the Project Editor.

  • Open the context menu of the project in the header.

  • Select the Upload model action.

  • Click on Click here to select a file

  • Choose a model from your local disk.

  • Click on the Upload button, a new model will be displayed as a root element, in the project explorer.

To store the model content, we use the EMF persistence framework and the default XMI provider. XMI (XML Metadata Interchange) is a standard for exchanging metadata information via Extensible Markup Language (XML).

2.3.3. Export FAQ

Is it possible to upload an EMF model I created classicaly with Eclipse?

Yes definitely, if the metamodel corresponding to the model instance is deployed on the server. You can use the Upload a Model capability to import your data into the Obeo Studio.

How do I download a project?

See the Download a Project section to learn how to proceed.

How do I download a model?

See the Download a Model section to learn how to proceed.

How do I upload a project?

See the Download a Project section to learn how to proceed.

How do I upload a model?

See the Download a Model section to learn how to proceed.

3. Administrating the Obeo Studio

3.1. Account Administration

3.1.1. Getting started with Accounts' Administration

Before you Start

Who can use this feature

Users with Administrator access to the server can manage the users' accounts

Included in the Obeo Studio

As an administrator you can manage user accounts:

  1. Navigate to the Log in page to connect to the Obeo Studio with your Administrator credentials

  2. Then go to the Administration home page: https://demo.obeostudio.com/admin/accounts

3.1.2. Get all the existing accounts

On the accounts page you can see all the Normal and Administrator accounts listed by Usernames for the running Obeo Studio instance. Each account can be activated or deactivated thanks to a checkbox. An account is activated when its associated checkbox is checked.

3.1.3. Create an account

To add a new user account:

  • Navigate to the Administration home page

  • Click on the New account button

  • Fill the Username, Password, Confirm password fields

  • Click on the Submit button

  • Send the credentials you just created to the user via a secure channel

Account created using this view will be activated by default.

3.1.4. Remove an account

To delete an existing user account:

  • Navigate to the Administration home page

  • Click on a user in the users' list

  • Click on the Delete button

  • Confirm the deletion

3.1.5. Change the password

To change the password of an existing user account:

  • Navigate to the Administration home page

  • Click on a user in the users' list

  • You are redirected to the Reset Password page

  • Fill the Password and Confirm password field with the new values

  • Click Submit to apply

Studio Maker Guide

There are three ways that can be used to define modelers/studios in Obeo Studio:

  • Web Studio Definition: define your studio from your browser. It is targeted for relatively simple cases at the moment.

  • Eclipse Platform Studio Definition: reuse an existing Sirius Desktop based studio. The Sirius Desktop compatibility layer is there if you already have a modeler defined through a Sirius Desktop odesign file.

  • Custom Code Studio Definition: extend your studio definition by using the Obeo Studio APIs. If you are a professional developer, you can use the Obeo Studio APIs directly, by creating your own IRepresentationDescription in Java.

4. Web Studio Definition

Before you Start

Who can use this feature

Users with Any account

Users with Edit access to a project

Included in Sirius Web

Obeo Studio supports the definition of complete modeling studios directly through the browser, with no need to write code or restart/redeploy the server.

It is one of the three ways that can be used to define modelers/studios in Obeo Studio.

This feature is considered experimental at the moment. We encourage users to try it out and give us feedback by reporting bugs and feature requests/ideas, but this should not be used in production. In particular, it is currently possible to lose data when evolving domain definitions: models created using a previous version of a domain definition may be partially or totally lost when reloaded if the domain definition is modified in an incompatible way. See below the list of current limitations for more details.

4.1. Getting started with Studio Definition

A studio definition is made of:

  • one or more domain descriptions, which define the concepts which will be manipulated by the studio in an abstract way (independently of how these concepts will be represented visually).

  • one or more representation descriptions, which define the concrete way(s) the domains will be represented (typically using diagrams) and what operations end-users can perform on them (the edition tools available to end-users to interact with the diagrams, and through them with the domain models).

For users familiar with Sirius Desktop, defining a domain corresponds to creating an EMF metamodel, and defining a representation description corresponds to creating a Sirius Desktop odesign file.

As a studio maker you create your studio definition entirely through the web browser, using the same mechanisms as for creating and editing other kinds of models. Indeed, both the domain and representation descriptions mentioned above are models.

Once your studio has been defined, it can be used by other users, who can:

  • create concrete instances of the concepts described in the new domains;

  • visualize and manipulate these instances through the representations defined in the studio.

4.1.1. Create a new Studio

To create a new studio, create a new project which will contain both your domain and the corresponding representation descriptions. See the sections below for more details on how to configure your domain and representation descriptions.

It is not supported to create instances of a given domain inside the same project which contains that domain’s definition.

When authoring a studio, it is recommended to test early and often if it behaves like you expect on an example.

To avoid issues it is recommended to follow these strict rules:

  1. Create a project to contain your studio definition (domain and view) and nothing else.

  2. Inside your studio project, create one model to hold the domain definition, and a separate model for the view definition (which can define multiple diagrams).

  3. For your domain definition, choose a name which will be unique on a particular Obeo Studio server. If multiple domains are defined using the same name on a particular server, only one will be taken into account.

  4. Create the instances of your domain and their representations in separate projects.

  5. Whenever you change the definition of a domain, make sure to close and re-open any project which contains instances of that domain for the new definition to be picked up.

  6. When you change only the definition of a representation (and not the domain), a simple browser refresh on already open instances of that representation is enough.

Studio Definition Limitations

There are currently some limitations to be aware of:

  • Whenever you change something in the definition of a domain, you must close and re-open any project which contain instances of that domain. Just reloading the browser’s page will not be enough for the instance project to pick up the new definition of your domain.

  • The model where you define your domain should contain nothing else, and in particular no instance of other dynamic domains.

  • There is currently no automatic migration of the data in domain instances. If you have created instances of a v1 of some domain, and then change the domain definition into a new version v2 which for example renames some elements, the data stored as instances of v1 may be partially or totally lost when re-opening the project and loading the model as an instance of v2.

4.1.2. Deploy a studio for end-users

To actually use a studio, you or your users need to create a separate project, which will contain the concrete instances and representations (diagrams).

4.2. Define your custom Domain

To create your domain:

  1. Open your studio definition project

  2. In the project’s context menu (in the header), select New Model

  3. In the dialog box that opens, select the Empty Domain Definition model type and give a name to your model.

  4. In the project explorer, click on the related to the newly created Domain element.

The Domain is the root element which identifies your domain. Its only attribute is a name, which should be globally unique on a particular Obeo Studio server, and not contain any space or special character (technically, the name should be a valid Java identifier).

Inside a domain you can create Entities which represent the concepts in your domain and are similar to classes in Java, UML or Ecore. Inside an Entity you can create Attributes that describe their characteristics, and Relations from that entity to another one (or itself).

To configure your domain you can use the project explorer and the details view and/or the graphical diagram that can be created on the Domain itself. The diagram looks and behaves like a classical "class diagram" in e.g. UML or Ecore Tools.

  • An Entity has:

    • a name, which should be unique inside a given domain, and follow that same rules as for domains (i.e. no spaces of special characters),

    • zero of more super types, which can be used to inherit the attributes and relations from other entities,

    • an entity can be abstract, meaning no concrete instances can be created from it. Such entities are only useful to be shared as super types for other (concrete) entities.

  • An Attribute is defined by:

    • a name, which should should be unique among all the attributes and relations inside a given entity, including the inherited ones.

    • a type, which currently can only be one of: STRING (the default), BOOLEAN and NUMBER (which corresponds to integers).

    • whether it is optional (or mandatory if the flag is unset) and many-valued (or single-valued if the flag is unset).

  • A Relation is very similar to an attribute and is defined by:

    • a name, which should should be unique among all the attributes and relations inside a given entity, including the inherited ones,

    • a target type, which points to an entity inside the same domain,

    • whether it is optional (or mandatory if the flag is unset) and many-valued (or single-valued if the flag is unset),

    • whether is is a containment relation or not.

4.3. Define your custom Representations

Representation descriptions are defined inside a View.

To create one:

  1. open your studio definition project,

  2. in the project’s context menu (in the header), select New Model,

  3. in the dialog box that opens, select the Empty View Definition model type and give a name to your view.

A View is a simple container for one or more representation descriptions; it has no attributes itself. If you used the steps above, your View should already contain a Diagram Description. At the moment, diagrams are the only type of representation that can be defined inside a view, but support for other types of representations which are supported by Obeo Studio when using odesign files and/or Java APIs will be added in future versions.

Even for diagrams, not all features supported by Obeo Studio can be used in web-based definitions at the moment.
  • Diagram Description: the root element for the definition of a diagram. This is currently the only type of representation that can defined through the web, but others will be added later.

    • Name: the name of the diagram description.

    • Domain Type: the type of semantic elements on which this kind of diagram can be created. This can be either the simple name of an entity defined in a domain (e.g. Person) or an entity name qualified by the domain name (e.g. Family::Person).

    • Title Expression: an expression (typically using AQL) that will be evaluated when a new diagram instance is created to compute the title of that diagram. The expression is evaluated in the context of the semantic element on which the diagram is created.

A diagram is made of nodes (which can optionally contain other nodes) and edges which connect them.

Inside a diagram description you define the types of nodes and edges that you want. On a particular diagram which represents a specific model, each node and edge type will produce zero or more actual node and edges depending on the presence of actual domain objects which match the node and edge descriptions.

4.3.1. Nodes

A Node Description has the following attributes:

  • Name: the name of the node description. Only visible to studio makers to distinguish different types of nodes.

  • Label Expression: an expression which will be evaluated in the context of a particular node’s semantic element to compute the label to display for the node.

  • Domain Type: the type of semantic elements represented by this kind of node. Follows the same rules as for the diagram’s Domain Type attribute.

  • Semantic Candidates Expression: an expression which will be evaluated in the parent context and should return the semantic elements (from anywhere in the model) which should be represented by this kind of node. Only elements which match the declared Domain Type are retained. A concrete graphical node of this type will appear in the diagram for each of the elements returned.

Nodes can have sub-nodes which will appear inside their parent, recursively. Border nodes and sub-node reuse, which are supported in Sirius Desktop, are not yet possible in view definitions.

Node Styles

Inside a Node Description you must create a Node Style element, which controls the visual aspects of the node. Most of the Node Style attributes are self-explanatory and control the main color and border color of the node, the style of the label, etc. By default a node will be rendered as a plain colored rectangle, which may contain sub-nodes. A node can also be rendered as a vertical list of items if the List Mode flag is set, or as an image if the Shape attribute is set.

The list of available shapes depends on the server configuration. It is not possible at the moment for end users to upload new shapes. Contact your administrator if you need specific images to be available.

Beside the main Node Style, a node can also contain one or more Conditional Node Styles. They have the same attributes as a node style, with an additional Condition expression. The effective style used for a particular node which has conditional styles will be the first one (in the order of definition) for which the condition, evaluated in the context of the semantic element, returns true. If none of the conditional style has a matching condition, then the main/default (non-conditional) style is used.

Node Tools

Inside a node description you can also create tools to specify the interactive behavior of the node:

  • Node Tool: how to create a new instance of the node;

  • Label Edit Tool: what happens when the user edits its label;

  • Delete Tools: what happens when the user deletes a node.

Inside the body of the tool definition you can use any of the operations described below to program the behavior of the tool.

Note that Node Tools, which are used to create new instances, appear in the model explorer as children of the node descriptions, but in the corresponding diagram they will be available in the contextual palette of the container elements on which such a node can be created.

For each of these, if you do not specify a corresponding custom tool, Obeo Studio will provide a default behavior based on the entity displayed by the node (this may not work for all entities).

4.3.2. Edges

There are two possible kinds of edges:

  • domain-based edges are edges which represent a domain object themselves;

  • relation-based edges are edges which represent a relation (reference) between two domain objects.

Both are configured using the same Edge Description element, whose behavior depends on the Is Domain Based Edge flag.

An Edge Description has the following attributes:

  • Name: the name of the edge description. Only visible to studio makers to distinguish different types of nodes.

  • Label Expression: an expression which will be evaluated in the context of a particular element’s semantic element to compute the label to display for the edge.

  • Domain Type: the type of semantic elements represented by this kind of edge.

    • For domain-based edges, this is the type of the actual domain object represented by the edge.

    • For relation-based edge this is the type of the domain object which is the source of the relation.

  • Semantic Candidates Expression: an expression which will be evaluated in the parent context.

    • For domain-based edges, this should return the semantic elements (from anywhere in the model) which should be represented by this kind of edge. Only elements which match the declared Domain Type are retained.

    • For relation-based edges, this should return the semantic elements (from anywhere in the model) from which the relation to represent starts (i.e. the source of the relation). Only elements which match the declared Domain Type are retained.

  • Source Node Descriptions and Source Nodes Expression: these are only used for domain-based edges, to identify the source element of the edge.

  • Target Node Descriptions and Target Nodes Expression: these are used in both cases, to identify the target element of the edge.

Edge Styles

Inside an Edge Description you must create an Edge Style element, which controls the visual aspects of the node, including the style of the label and the optional decorators to display on each end of the edge.

Beside the main Edge Style, a node can also contain one or more Conditional Edge Styles. They have the same attributes as an edge style, with an additional Condition expression. The effective style used for a particular edge which has conditional styles will be the first one (in the order of definition) for which the condition, evaluated in the context of the semantic element, returns true. If none of the conditional style has a matching condition, then the main/default (non-conditional) style is used.

Edge Tools

Inside a description you can also create tools to specify the interactive behavior of the edge:

  • Edge Tool: how to create a new instance of the edge;

  • Label Edit Tool: what happens when the user edits its label;

  • Delete Tools: what happens when the user deletes an edge.

Inside the body of the tool definition you can use any of the operations described below to program the behavior of the tool.

For each of these, if you do not specify a corresponding custom tool, Obeo Studio will provide a default behavior based on the entity displayed by the edge (this may not work for all entities).

4.3.3. Tool Operations

The operations that are available to specify the behavior of tools are a subset of the model operations supported by Sirius Desktop:

  • Change Context: evaluates an expression (which can have side effects, e.g. by invoking a Java service), which should return a semantic element (it’s OK to return the original context). Then evaluates its children operation in the context of new element (which becomes the new self for these sub-operations).

  • Create Instance: creates an instance of the specified type and attaches it as a child of the current element (self) using the specified reference name (which should be a containment relation). The newly created instance is also bound to a new variable before executing its the sub-operations in the original context.

  • Set Value: evaluates an expression, and set the current element’s (self) named feature to the result.

  • Unset Value: if no expression is supplied, unsets the named feature in the current element. If an expression is supplied, evaluates it and removes all the values in the result from the named feature of the current element.

  • Delete Element: removes the current element from the model. All references which pointed to it are deleted.

4.4. Current Limitations

The Web Studio Definition feature is still early in its development and has a number of limitations. It should be considered as an experimental feature to gather feedback, but should not be used with production data.

  • Whenever you change something in the definition of a domain, you must close and re-open any project which contain instances of that domain. Just reloading the browser’s page will not be enough for the instance project to pick up the new definition of your domain.

  • The model where you define your domain should contain nothing else, and in particular no instance of other dynamic domains.

  • If two domain definitions share the same name/identifier on a particular Obeo Studio server, the behavior is undefined. Only one of the domains will be visible at a time, but it is not guaranteed that it will always be the same, which can lead to bugs and data corruption.

  • Models instances created using a previous version of a domain definition may be partially or totally lost when reloaded if the domain definition is modified in an incompatible way.

  • It is possible to use custom Java services in the various interpreted expressions inside a View, but:

    • the corresponding Java classes must have been deployed on the backend when the server started, and registered using an org.eclipse.sirius.web.emf.view.IJavaServiceProvider.

    • because the domain definition is dynamic and not known when the server is started, any custom Java service must be written to work on a generic EObject and use EMF’s reflective APIs.

  • It is not currently possible to model the equivalent of EMF’s eOpposite relations inside a Domain definition. The workaround is to use eContainer for containment relations, and eInverse() for the others.

  • It is not currently possible to model custom data types for domain attributes. The only types available for attributes are strings, booleans and numbers. The workaround for the moment is to use strings to serialize and parse other types (e.g. enums) if you need them.

4.5. Activate the Studio Definition on your server

This feature is currently optional and may not be enabled in all deployments of Obeo Studio. For it to be available to end-users, the server must be started with the -Dorg.eclipse.sirius.web.features.studioDefinition=true Java system property (or alternatively with the ORG_ECLIPSE_SIRIUS_WEB_FEATURES_STUDIODEFINITION environment variable set to true).

5. Eclipse Platform Studio Definition

Before you Start

Who can use this feature

Developers, Server administrators

Included in Sirius Web

5.1. Define your custom Domain using EMF metamodel

While the architecture of the Obeo Studio is not tied to the Eclipse Modeling Framework, EMF models are one of the supported type of domain models.

If you have an existing EMF metamodel which represents your business domain, to use it in you modeler you need to:

  1. Make sure the JARs for the metamodel itself and its .edit support are in your application’s classpath. Typically this involves publishing the two JARs in a Maven repository and adding their coordinates into your sample application’s POM file. Example in Sirius Web.

  2. Register your metamodel in your application. This is done by creating a Spring @Configuration which provides your meta-model’s EPackage and AdapterFactory as Spring @Beans. Example in Sirius Web.

  3. Provide an implementation of org.eclipse.sirius.web.api.services.IImagePathService which tells Obeo Studio in which folders (relative to the root of the JAR) the icons for your metamodel types can be found. Example in Sirius Web.

If you do not yet have an EMF-based domain model, you can use Ecore Tools to design and implement it, and then follow the same steps as above.

5.2. Define your custom Representations with Sirius Desktop

To use an existing odesign modeler definition in the Obeo Studio:

  1. Make sure the JAR which contains the modeler definition is in your application’s classpath. Typically this involves publishing the .design JAR in a Maven repository and adding its coordinates into your sample application’s POM file. Example in Sirius Web.

  2. In your application, provide a Spring @Configuration which implements org.eclipse.sirius.web.compat.services.api.ISiriusConfiguration and tells the platform the path (inside the JAR) where the .odesign file is available. Example in Sirius Web

  3. When your odesign file references your metamodels (which is needed for AQL expressions and Java services to work properly), make sure to use the "Add from registry" button in the VSM editor so that the reference can be resolved in the context of the Spring Boot application. If the metamodel is configured using "Add from workspace" or "Add from filesystem", it will get ignored in the Sirius Web context and some features will not work correctly.

5.2.1. Sirius Desktop Compatibility

Modelers based on the Obeo Studio can reuse Sirius Desktop modeler definition files (.odesign files). Only a subset of the Sirius Desktop features are currently supported, but you can safely use a complete odesign file in the Obeo Studio. The features which are not supported at the moment will simply be ignored. Future versions of the Obeo Studio will increase the scope of Sirius Desktop features supported. If you rely on specific features from Sirius Desktop, do not hesitate to contact us.

The Obeo Studio currently only supports a subset of Sirius diagrams and properties views. Tables, trees, and sequence diagrams are not supported at the moment.

For diagrams, the Obeo Studio currently supports the main features of:

  • nodes and containers, including list containers;

  • relation-based and element-based edges;

  • border nodes;

  • conditional styles;

  • creation tools, deletion tools, direct-edit tools, generic tools.

For properties view, the following widgets are supported:

  • text fields and text areas;

  • checkboxes;

  • radio buttons;

  • select/combos;

  • lists (read-only).

6. Custom Code Studio Definition

It is possible to contribute representations thanks to the Obeo Studio APIs. See the Sirius Web source code on Github: https://github.com/eclipse-sirius

Developer Guide

This sections describes the main APIs that are exposed by the Obeo Studio to build custom modelers and extend the platform.

Every instance of the Obeo Studio is a custom Spring Boot application built by using reusable frontend and backend components provided by the Open Source Sirius Components project. When running on the entreprise version of the Obeo Studio, additional, proprietary components are available to provide more features, but the principles are the same.

The Sirius Web repository provides an example of a complete, ready-to-run studio based on the Open Source components. It can be used as a starting point to create your own modeler.

7. Project Webhooks

Before you Start

Who can use this feature

Users with Owner access to the server can manage the webhooks

Included in the Obeo Studio

Learn the basics of how webhooks work to help you build and set up integrations.

Webhooks allow you to build or set up integrations which subscribe to certain events on the Obeo Studio. When one of those events is triggered, we’ll send a HTTP POST payload to the webhook’s configured URL. Webhooks can be used to update a database, update a backup mirror, integrate with another web appllication. You’re only limited by your imagination.

When a project event is triggered, the Obeo Studio provides a way to notify an external application. This mechanism is named webhook and works thanks to a REST API.

A webhook must observe the following prerequisites:

  • Expose an HTTP/HTTPS endpoint that implement a GET and POST method

  • The GET method must return a valid the Obeo Studio Webhook Manifest

  • The POST method should expect to receive a body with a Webhook Notification

The Obeo Studio provides several types of events to listen:

  • SEMANTIC: Triggered when a semantic object or a model is created, updated or deleted.

  • REPRESENTATION: Triggered when a representation is refreshed.

A webhook can listen one or a mix of these event types

7.1. Register a Webhook

When you register a new webhook, the only thing to define is its URL.

To register a new webhook:

  1. Open the Project Settings page.

  2. Click the Webhooks section.

  3. Set the URL.

  4. Click on Add.

7.2. Unregister a Webhook

To unregister a webhook: . Open the Project Settings page. . Click the Webhooks section. . Click on the Remove button.

7.3. Webhook Manifest

A valid webhook manifest:

{
  "manifestVersion": "1.0",
  "name": "Webhook Demo",
  "eventTypes": ["SEMANTIC", "REPRESENTATION"]
}

All fields must be valuated:

  • manifestVersion: The manifest version of the webhook API

The actual and only version of the webhook API is "1.0"
  • name: The webhook name to use in the project webhook admin page

  • eventTypes: The expected webhook event types to listen

7.4. Webhook Notification

The webhook POST endpoint will receive notification messages. You can retrieve the json notification message in the POST body.

A semantic notification example:

{
  "id": "f8b5d193-2ae1-413d-984b-ca3a2fd67cac",
  "projectId": "e8ee9867-61ab-41b3-b67c-ef564dab12b2",
  "event": "SEMANTIC",
  "manifestVersion": "1.0",
  "data": [
    {
      "id": "ab167202-fd62-4d4f-a8ae-c705a6dbcd73",
      "name": "model1",
      "content": "..."
    },
    {
      "id": "6c0f216a-d16d-4e36-82fa-c878e5be7c38",
      "name": "model2",
      "content": "..."
    }
  ],
  "created": 1586354861017
}

A representation notification example:

{
  "id": "46dbd3f1-c385-4e7f-9330-21f71c9fb002",
  "projectId": "e8ee9867-61ab-41b3-b67c-ef564dab12b2",
  "event": "REPRESENTATION",
  "manifestVersion": "1.0",
  "data": {
    "id": "2e8b58dd-b80e-4ff0-9f9e-94e1ddbda924",
    "targetObjectId": "b4f90e6d-a77c-4f32-abcf-172fbeb7993f",
    "descriptionId": "be7d39c3-9ce3-4dec-a56a-cd05dedfafc4",
    "label": "Topography",
    "position": {
      "x": 0,
      "y": 0
    },
    "size": {
      "width": 0,
      "height": 0
    },
    "nodes": [],
    "edges": []
  },
  "created": 1586355733788
}

Frequently Asked Question

How is Obeo Studio licensed ?

If you are using Obeo Studio online (hosted by Obeo), this EULA applies.

Eclipse Sirius Web is licensed under the EPL 2.0 license, and you can find the source code at the Eclipse Foundation : https://eclipse.org/sirius.

What is Sirius Desktop vs Sirius Web vs Obeo Studio ?

Eclipse Sirius is an open source project to create domain-specific modeling workbenches. It has two flavors:

  • Sirius Desktop: create modeling workbenches based on the Eclipse platform,

  • Sirius Web: create cloud-ready modeling workbenches.

The Obeo Studio is built as an open-core product relying on Sirius Web. It is a Sirius Web build extended with Enterprise features, to deploy on public, private clouds or on premise and including support and upgrade guarantees.

Authentication FAQ

My credentials do not work, I can’t log in!

If you are on Windows, please check that your antivirus software is not configured to block the Obeo Studio authentication page. Else check with the Obeo Studio administrator that your credentials are valid, send an email to ocp-modeler@obeosoft.com.

How do I get an account to the Obeo Studio?

Navigate to the sign up page, fill the form and send your reqest. If you did not receive any news for 2 days, ask for a Username and a Password to the administrator of the Obeo Studio server by sending an email to ocp-modeler@obeosoft.com.

How do I retrieve my Username / Password if I forgot them?

Ask to the administrator of the Obeo Studio server to send you back your credentials.

How do I change my Username?

Ask to the administrator of the Obeo Studio server to change the Username for you.

How do I reset my Password?

Ask to the administrator of the Obeo Studio server to generate a new password for you.

How do I delete my account?

Ask to the administrator of the Obeo Studio server to delete your account.

Export FAQ

Is it possible to upload an EMF model I created classicaly with Eclipse?

Yes definitely, if the metamodel corresponding to the model instance is deployed on the server. You can use the Upload a Model capability to import your data into the Obeo Studio.

How do I download a project?

See the Download a Project section to learn how to proceed.

How do I download a model?

See the Download a Model section to learn how to proceed.

How do I upload a project?

See the Download a Project section to learn how to proceed.

How do I upload a model?

See the Download a Model section to learn how to proceed.

Features

This section sums up each feature and from which version open source/enterprise it is coming from.

Features list

Feature Open Source (Sirius Web) Enterprise (Obeo Studio)

Projects Management

Project Structure

Projects Browser

Create, Rename, Delete Projects

Project Editor

Download / Upload

Web-Based Studio Definition

Define Custom Domains

Define Custom Representations

Collaboration

Share Projects

(All the projects are Public)

Share Diagram

Authentication

Project Teams

Representations

Diagrams

Forms

D3-based representations

Advanced

Account Administration

Webhooks

Release Notes

Version 2021.10.0

The highlights of this new version are:

  • improvements to the studio definition feature (although it is still considered experimental at this point);

  • improvements to the manual diagrams layout;

  • new GraphQL API to issue arbitrary AQL queries on the models' content.

See below for more details.

New

  • Diagrams

    • Added support deleting view without deleting the corresponding semantic element (aka "Delete from Diagram") on unsynchronized diagrams.

    • A new variable selectedNode is available when executing node tools and "delete from diagram" tools.

  • Studios

    • The View Definition has been improved to support node border size, edge width, font formats for node Definition, node label color.

    • In the View Definition, node and edge descriptions can have a name to make them easier to distinguish and locate in the UI (explorer and details view).

    • In the View Definition Edge Descriptions can now have multiple sources & targets.

    • In the Domain Definition, multiple inheritance is now supported between entities.

    • Validation rules have been added to both the Domain and View Definitions to reduce the risk of errors. This is a work in progress and more validation rules will be added.

  • General

    • It is now possible to use the eInverse() service in AQL expressions to navigate backwards on references.

Fixed

Several of the known issues listed in the previous versions have been fixed:

  • Direct edit of the label using the palette works again.

  • Direct edit triggered by directly starting to type no longer loses the first character.

  • Multi-valued references can not be edited in the details view:

    • for such references we now provide a selection widget which allows selecting multiple values.

    • the order of the elements in the list of chosen values can not be controlled yet

Multi-Valued Reference Edition Widget

Other important fixes:

  • Diagrams

    • When performing incremental layout (after a manual layout change), the algorithm uses the same algorithm as for the automatic layout.

    • On diagrams which are in auto-layout mode, it is no longer possible to move elements. Previously it was possible to move them but the auto-layout would move them back to their original position.

  • Studios

    • It was possible to define a label expression for edges, but it was not taken into account Edge labels are now correctly computed and displayed.

    • It is now possible to use qualified type names in AQL expressions inside the View Definition, i.e. expressions like aql:self.eAllContents()→filter(domain::Type) now work.

    • The default color for new edges in the View Definition is now more visible.

    • The default edge decorator on View Definitions is now in the correct direction.

  • Sirius Desktop Compatibility

    • Added support for the 'container' and 'element' compatibility variables inside creation tools.

Changed

  • Workbench

    • The Validation view is now open by default.

Enterprise

  • Added support for cross site request forgery protection (not enabled by default)

  • Added auditing capabilities to projects (creation date and author, last modification date and author).

  • The projects browser now displays more information on the projects ("access level", "created by" and "last modified by")

  • The projects browser now supports pagination

  • The project settings page has been migrated to Material-UI

Project auditing information in the Project Browser

Developer

  • The GraphQL Schema supports a new collection of queries (queryBasedXXX where XXX is the type returned by the query) which can be passed AQL expressions to evaluate in the context of a document/model. This can be used to "dig into" the model without downloading them. Note that there is no UI for this feature; it can only be used programmatically.

  • Updated dependencies on the frontend and backend. Most importantly, building the frontend now required Node 16.6.2 and npm 7.20.3.

  • The business code has been moved out of the Sirius Components and can now be found in the Sirius Web repository instead.

  • Switched to a schema first approach for our GraphQL schema. See the various *.graphqls files for details.

  • In the GraphQL API, namespace has been renamed into domain.

Known issues

Here is where you can find a list of issues currently being investigated by our engineering team. This list will be updated regularly, and issues will be added and removed as they are discovered and resolved.

Projects Management

  • Issue description: Some parts of the UI are currently missing navigation links to go back once they are opened. For example, when opening the Project Settings page, there is no explicit link to go back to the project.

  • Workaround: Either use the browser history to go back to the previous page, or go back to the Projects Browser page (click on the top-left icon) and then navigate to the target page from there.

  • Issue status: Planned.

In some circumstances, models do not appear immediatly inside the model explorer
  • Issue description: Under some circumstances (notably after a period of inactivity on an open browser tab), existing models are not visible inside the model explorer when opening a project, or right after they are created.

  • Workaround: Refresh the browser page (F5) to make the models visible.

  • Issue status: Fix in progress.

Long operations do not provide an indication that they are in progress
  • Issue description: When triggering a long-running operation (e.g. creating or opening a very large diagram or invoking a costly tool), there is no feedback for the user that the operation is in progress. If the operation is running server-side, the client UI can still be reactive, which allows the user to trigger other operations on project states which will soon be invalid, which can cause unexpected effects.

  • Workaround: None at the moment (keep calm and wait).

  • Issue status: Implementation in progress for some operations; planned for later for others.

Diagram Editor

Moving diagram elements manually resets the connected edges’s routing to straight lines
  • Issue description: The automatic layout performed on diagram creation uses rectilinear routing for edges between elements. If you move en existing element, the routing of all the edges connected to the moved element is reset into a single segment between the source and target element.

  • Workaround: Invoke the "Arrange All" operation from the diagram’s toolbar to reapply the automatic layout with proper edge routing.

  • Issue status: Planned.

The current zoom displayed in the combo is not synchronized
  • Issue description: In the top-right corner of a diagram, a combo-box is available to select a specific zoom level. However if you change the zoom level using the mouse wheel, the value displayed in the combo is not updated and thus does not reflect the current level anymore.

  • Workaround: None at the moment.

  • Issue status: Implementation in progress.

Direct Edition of edges' labels does not work
  • Issue description: If you select an edge on a diagram and hit F2 (or start typing), a direct edit field opens, but if you try to change the label it has not effect.

  • Workaround: Edit the corresponding model attribute using the properties view of the edge.

  • Issue status: Implementation in progress.

The palette and modal dialogs sometimes disappear without user intervention
  • Issue description: If you are working on a shared project and open the contextual palette or a dialog, sometimes the palette or dialog disappears without you doing anything. This is due to another user having made a change on the project while the palette/dialog was opened on your side. The remote change triggers an automatic update of your view of the project, which invalidates the palette or dialog currently opened.

  • Workaround: None at the moment.

  • Issue status: We are currently examining which behavior would be the best in such a case before implementing it.

Downloading and re-uploading a model may lose some information
  • Issue description: When downloading a model as a local file (Download context menu item from the explorer) and then re-uploading the same file (Upload Model from the project’s context menu), depending on the underlying metamodel it is possible that some references are lost in the process.

  • Workaround: None at the moment.

  • Issue status: Planned.

Renaming a diagram does not rename the corresponding tab if it is opened
  • Issue description: When renaming a diagram which is already opened, the diagram name in the open tab is not updated.

  • Workaround: Close and re-open the diagram to get the current name in the tab.

  • Issue status: Planned.

Project Explorer

The "New Object" menu entry sometimes open a dialog which does not offer any choice
  • Issue description: In the model explorer, all the model elements offer the "New Object" context menu entry to create sub-elements. However not all object types support sub-elements. For those, the menu entry is currently available anyway, but does not propose any concrete choice. It should simply not be proposed in the context menu in this case.

  • Workaround: None at the moment.

  • Issue status: Fix in progress.

Details view

Non-modifiable properties appear as editable in the properties panel
  • Issue description: Even if you have write access to a project, some elements can have properties which are not editable (for example if they are derived from others). Currently there is no feedback for this: the properties appear editable but trying to change them has no effect.

  • Workaround: None at the moment.

  • Issue status: Implementation in progress (widget of non editable properties will appear disabled).

Newly created elements are not automatically selected
  • Issue description: When creating new elements (either from the explorer or directly from a diagram), the diagram will automatically be updated and display them (if relevant to the current diagram), but they will not be selected.

  • Workaround: None at the moment (except manual selection after the refresh).

  • Issue status: Planned.

In the properties view, editing a text field is only taken into account with the 'Return' key
  • Issue description: If you select an element in the explorer or on a diagram, its properties are displayed in the properties view on the right. If you change the value of a text property, the change will only be taken into account reliably when you hit 'Return'. Just selecting another part of the UI may lose the change.

  • Workaround: Always validate your text properties change with 'Return'.

  • Issue status: Fix in progress.