Skip to main content

Check out Port for yourselfย 

Create/update entity

In some cases, we don't want to run complex logic via a workflow or pipeline, but rather want our backend to simply create or update an entity in our software catalog.
This backend type does exactly that, simplifying the process and avoiding unnecessary complexity.

Define the backendโ€‹

To use this backend type, you will need to define the following fields:

  • The blueprint from which the entity will be created or updated.

  • The mapping of the created/updated entity:

    {
    "identifier": "some_identifier",
    "title": "Some Title",
    "team": [],
    "icon": "DefaultBlueprint",
    "properties": {},
    "relations": {}
    }

    The table below describes the fields in the JSON structure (fields in bold are required):

    FieldDescription
    identifierUsed to identify the entity in your software catalog. If it already exists, the entity will be updated, otherwise it will be created.
    titleThe title of the entity.
    teamThe team/s this entity will belong to.
    iconThe icon of the entity.
    propertiesThe properties of the entity, in "key":"value" pairs where the key is the property's identifier, and the value is its value.
    relationsThe relations of the entity, in "key":"value" pairs where the key is the relation's identifier, and the value is the related entity's identifier.

Use jq to map the entityโ€‹

All fields in the mapping object can be mapped using jq expressions, by wrapping the value in double curly braces {{ }}.

For example, say we want to assign the initiator of the action to a new entity when it is created, we can take his email from the action run object and assign it to a property named assignee:

{
"identifier": "someTaskEntity",
"title": "Some Task",
"team": ["team1"],
"icon": "DefaultBlueprint",
"properties": { "assignee": "{{ .trigger.by.user.email }}" },
"relations": {}
}
Test your mapping

You can use the Test JQ button in the bottom-left corner to test your mapping against the action's schema.