Entities

In Rely.io, an Entity is a specific instance within your software ecosystem, uniquely identified and characterized by a set of properties and relationships as defined by its blueprint.

These entities serve as the foundational elements for representing components, services, systems, or any other items in your software environment, enabling a structured and interconnected representation of your software ecosystem.

Metadata

The metadata of an entity contains essential details that identify and describe the entity. These are common to all entities, regardless of its blueprint. The components of the metadata include:

  • ID: A unique identifier for the entity within Rely.io.

  • Name: A user-friendly display name for the entity, enhancing its recognizability in user interfaces.

  • Blueprint ID: A reference to the entity's blueprint, which dictates the entity's schema—its potential properties and relationships. Modifications to a blueprint (such as changes to properties or relationships) will affect all entities derived from that blueprint. Further details on blueprints are available here.

  • Description (Optional): Offers a concise overview of the entity, providing contextual understanding.

Properties

The properties of an entity define its characteristics and attributes. The properties available to each entity type are determined by its blueprint.

Properties can support various data types, each with specific constraints (e.g., JSON or YAML properties must contain valid JSON/YAML; Enum properties are limited to a predefined set of strings). Learn more about the different data-types that are currently supported in here.

Each property is represented as a key-value pair in the entity's JSON representation, such that:

  • Key: The id of the property, as defined in the blueprint.

  • Value: The value of the property, which can be a string, number, object, array or a boolean

Relations

Relations illustrate how entities are interconnected, indicating interactions and dependencies within the software ecosystem. Like properties, an entity's potential relations are governed by its blueprint. Relations are essential for mapping interactions and dependencies within the software ecosystem.

Each relation is represented as a key-value pair in the entity's JSON representation, such that:

  • Key: The name of the relation, as defined in the blueprint

  • Value: The id (or a list of ids) of other entities in your software catalog.

Code

Entities in Rely.io can be fully defined in JSON format, capturing their metadata, properties, and relations as described in the previous sections. Here's an example:

{
  "id": "my-first-entity",
  "name": "My Entity",
  "blueprintId": "service",
  "description": "...",
  "properties": {
      "my-first-property":  "..."
  },
  "relations": {
    "my-first-relation": {
      "value": "an-entity-identifier"
    }
  }
}

Last updated