Data Model

Your Data Model is the structure formed by all the blueprints defined in your Rely account, meaning their properties and the relationships between them.

It encapsulates the entire schema of how data is organised and interconnected within your system and dictates all the available data that can be stored across your Software Catalog.

Default Data Model

Rely provides an out-of-the-box data model based on common use-cases, but you are free to tailor it to your specific needs and expand it by creating new blueprints or editing existing ones.

One of the most common ways of expanding your data model is by installing plugins. Each plugin has its own specific self-contained data model that will be added and integrated into your own upon plugin installation.

The out-of-the-box scorecards, automation rules and dashboards were designed with the default data model in mind. If you delete some of the core default blueprints (e.g. service, resource, team) or properties in them, you might need to adjust other default settings further down the line to account for those changes.

Below, we provide an overview of all the blueprints as well as its descriptors.

Team

The Team blueprint represents groups within an organization, highlighting the roles of members and leaders. It includes properties like leader, members, on-call responsibilities, and communication channels.

Blueprint Descriptor
{
  "id": "team",
  "title": "Team",
  "description": "",
  "icon": "person",
  "schemaProperties": {
    "type": "object",
    "properties": {
      "leader": {
        "type": "string",
        "title": "Leader",
        "description": ""
      },
      "members": {
        "type": "array",
        "title": "Members",
        "description": ""
      },
      "on-call": {
        "type": "string",
        "title": "On-call",
        "description": ""
      },
      "communication-channel": {
        "type": "string",
        "title": "Communication Channel",
        "format": "url",
        "description": ""
      }
    }
  },
  "relations": {},
  "referenceProperties": {},
  "options": {
    "showInSideBar": true,
    "propertiesGroups": {}
  }
}

Service

The Service blueprint defines an individual service within your software ecosystem, such as a microservice. It includes properties related to the service's type, lifecycle, programming language, and various communication methods. Key relations include links to the teams responsible for the service and dependencies on other services, underlining its integration within the broader software architecture.

Blueprint Descriptor
{
  "id": "service",
  "title": "Service",
  "description": "Defines a service in your software ecosystem.",
  "icon": "terminal",
  "schemaProperties": {
    "type": "object",
    "properties": {
      "type": {
        "type": "string",
        "title": "Type",
        "description": "Type of the service"
      },
      "readme": {
        "type": "string",
        "title": "README",
        "format": "markdown",
        "description": ""
      },
      "language": {
        "type": "string",
        "title": "Language",
        "description": "The code language the service is written in"
      },
      "lifecycle": {
        "enum": [
          "Production",
          "Experimental",
          "Deprecated"
        ],
        "type": "string",
        "title": "Lifecycle",
        "description": ""
      },
      "repo-link": {
        "type": "string",
        "title": "Repository Link",
        "format": "url",
        "description": ""
      },
      "helm-chart": {
        "type": "string",
        "title": "Helm Chart",
        "format": "yaml",
        "description": ""
      },
      "description": {
        "type": "string",
        "title": "Description",
        "description": "A brief description of the service."
      },
      "open-api-schema": {
        "type": "string",
        "title": "OpenAPI Schema",
        "format": "url/openApi",
        "description": ""
      },
      "communication-method": {
        "enum": [
          "REST API",
          "GraphQL",
          "gRPC",
          "Message Queue",
          "WebSocket"
        ],
        "type": "string",
        "title": "Communication Method",
        "description": ""
      },
      "communication-channel": {
        "type": "string",
        "title": "Communication Channel",
        "format": "url",
        "description": ""
      },
      "observability-dashboard": {
        "type": "string",
        "title": "Logs",
        "format": "url",
        "description": ""
      }
    }
  },
  "relations": {
    "team": {
      "array": false,
      "title": "Team",
      "value": "team",
      "description": "The teams that operate this service."
    },
    "dependencies": {
      "array": true,
      "title": "Dependencies",
      "value": "service",
      "description": "Other services that this service relies on."
    }
  },
  "referenceProperties": {},
  "options": {
    "showInSideBar": true,
    "propertiesGroups": {}
  }
}

Resource

This blueprint is focused on physical or virtual resources, such as cloud infrastructure components. It includes details like resource type, location, and specific cloud service identifiers.

Blueprint Descriptor
{
  "id": "resource",
  "title": "Resource",
  "description": "Defines a cloud or infrastructure resource",
  "icon": "storage",
  "schemaProperties": {
    "type": "object",
    "properties": {
      "arn": {
        "type": "string",
        "title": "ARN",
        "description": ""
      },
      "cloud": {
        "enum": [
          "GCP",
          "AWS",
          "Azure"
        ],
        "type": "string",
        "title": "Cloud",
        "description": ""
      },
      "region": {
        "type": "string",
        "title": "Region",
        "description": ""
      },
      "iac-code": {
        "type": "string",
        "title": "IaC Code",
        "format": "yaml",
        "description": ""
      },
      "dashboard": {
        "type": "string",
        "title": "Dashboard",
        "format": "url",
        "description": "the link to the cloud resource"
      },
      "iac-format": {
        "enum": [
          "Pulumi",
          "Crossplane",
          "Terraform"
        ],
        "type": "string",
        "title": "IaC Format",
        "description": ""
      },
      "health-status": {
        "type": "string",
        "title": "Health Status",
        "description": ""
      },
      "resource-type": {
        "enum": [
          "EC2",
          "S3",
          "Lambda",
          "IAM",
          "VPC",
          "Route 53",
          "RDS",
          "SNS",
          "SQS",
          "API Gateway",
          "CloudFormation",
          "Elastic Beanstalk",
          "Elastic Load Balancer",
          "MongoDB",
          "Compute Instance",
          "Compute Disk",
          "Cloud Storage",
          "Cloud Function",
          "Cloud SQL",
          "Stackdriver",
          "VPC Network",
          "Cloud DNS",
          "Postgres",
          "Redis Instance",
          "GKE Cluster",
          "Storage Bucket",
          "Kubernetes Cluster",
          "Kubernetes Pod",
          "Kubernetes Node"
        ],
        "type": "string",
        "title": "Resource Type",
        "description": ""
      },
      "dashboardPageUrl": {
        "type": "string",
        "title": "Dashboard Page URL",
        "description": ""
      },
      "managementDashboard": {
        "type": "string",
        "title": "Management Dashboard",
        "description": ""
      }
    }
  },
  "relations": {},
  "referenceProperties": {},
  "options": {
    "showInSideBar": true,
    "propertiesGroups": {}
  }
}

Environment

The Environment blueprint encapsulates different deployment environments, such as production or testing.

Blueprint Descriptor
{
  "id": "environment",
  "title": "Environment",
  "description": "",
  "icon": "house",
  "schemaProperties": {
    "type": "object",
    "properties": {
      "cost-dashboard": {
        "type": "string",
        "title": "Cost Dashboard",
        "format": "url",
        "description": ""
      },
      "observability-dashboard": {
        "type": "string",
        "title": "Observability Dashboard",
        "format": "url",
        "description": ""
      }
    }
  },
  "relations": {},
  "referenceProperties": {},
  "options": {
    "showInSideBar": true,
    "propertiesGroups": {}
  }
}

Running Service

A Running Service represents an instance of a service actively running within an environment. This blueprint includes detailed monitoring and configuration properties. Relations are established with the base Service blueprint, the Resources supporting the service, and the Environment in which it is deployed, illustrating the dynamic aspects of service management.

Blueprint Descriptor
{
  "id": "running-service",
  "title": "Running Service",
  "description": "",
  "icon": "curlyBrackets",
  "schemaProperties": {
    "type": "object",
    "properties": {
      "errors": {
        "type": "query",
        "title": "Errors",
        "format": "timeseries"
      },
      "base-url": {
        "type": "string",
        "title": "Base URL",
        "description": "The base URL where the service instance is accessible."
      },
      "requests": {
        "type": "query",
        "title": "Requests",
        "format": "timeseries"
      },
      "cpu-limit": {
        "type": "number",
        "title": "CPU Limit",
        "description": ""
      },
      "image-tag": {
        "type": "string",
        "title": "Image Tag",
        "description": "The deployed image tag"
      },
      "commit-sha": {
        "type": "string",
        "title": "Commit SHA",
        "description": ""
      },
      "helm-values": {
        "type": "string",
        "title": "Helm Values",
        "format": "yaml",
        "description": ""
      },
      "latency-p99": {
        "type": "query",
        "title": "Latency P99",
        "format": "timeseries"
      },
      "memory-limit": {
        "type": "string",
        "title": "Memory Limit",
        "description": ""
      },
      "logs-dashboard": {
        "type": "string",
        "title": "Logs Dashboard",
        "format": "url",
        "description": ""
      },
      "last-deployed-at": {
        "type": "string",
        "title": "Last Deployed At",
        "format": "date-time",
        "description": "The date and time when this service instance was last deployed."
      },
      "desired-number-replicas": {
        "type": "number",
        "title": "Desired Number of Replicas",
        "description": ""
      },
      "observability-dashboard": {
        "type": "string",
        "title": "Observability Dashboard",
        "format": "url",
        "description": ""
      }
    }
  },
  "relations": {
    "service": {
      "array": false,
      "title": "Service",
      "value": "service",
      "description": ""
    },
    "resources": {
      "array": true,
      "title": "Resources",
      "value": "resource",
      "description": "The Cloud Resources that support this service instance."
    },
    "environment": {
      "array": false,
      "title": "Environment",
      "value": "environment",
      "description": ""
    },
    "_.relatedPluginIds": {
      "array": true,
      "title": "(System) Related Plugins",
      "value": "_relyio.plugins_config.grafana_cloud",
      "description": "Related plugins for this entity"
    }
  },
  "referenceProperties": {},
  "options": {
    "showInSideBar": true,
    "propertiesGroups": {}
  }
}

Deployment

This blueprint details the deployment processes for services, including timing, approval, and status. It is related to both Services, indicating what is being deployed, and Running Services, showing the outcome of deployments. This highlights its role in tracking and managing deployment activities within the software lifecycle.

Blueprint Descriptor
{
  "id": "deployment",
  "title": "Deployment",
  "description": "",
  "icon": "arrowUp",
  "schemaProperties": {
    "type": "object",
    "properties": {
      "date": {
        "type": "string",
        "title": "Date",
        "format": "date-time",
        "description": ""
      },
      "duration": {
        "type": "string",
        "title": "Duration",
        "description": ""
      },
      "approved-by": {
        "type": "string",
        "title": "Approved By",
        "description": ""
      },
      "commit-hash": {
        "type": "string",
        "title": "Commit Hash",
        "description": ""
      },
      "pipeline-id": {
        "type": "string",
        "title": "Pipeline ID",
        "description": ""
      },
      "triggered-by": {
        "type": "string",
        "title": "Triggered By",
        "description": ""
      },
      "pipeline-link": {
        "type": "string",
        "title": "Pipeline Link",
        "description": ""
      },
      "deployment-status": {
        "type": "string",
        "title": "Deployment Status",
        "description": ""
      }
    }
  },
  "relations": {
    "service": {
      "array": true,
      "title": "Service",
      "value": "service",
      "description": ""
    },
    "running-service": {
      "array": true,
      "title": "Running Service",
      "value": "running-service",
      "description": ""
    }
  },
  "referenceProperties": {},
  "options": {
    "showInSideBar": true,
    "propertiesGroups": {}
  }
}

Feature

The Feature blueprint is used to describe specific functionalities or features within services, including documentation, ownership, and related analytics dashboards. It is linked to Services that support the feature, pointing to its role in outlining how different services contribute to broader business functionalities.

Blueprint Descriptor
{
  "id": "feature",
  "title": "Feature",
  "description": "",
  "icon": "book",
  "schemaProperties": {
    "type": "object",
    "properties": {
      "docs": {
        "type": "string",
        "title": "Docs",
        "format": "url",
        "description": "Feature Documentation Link"
      },
      "owner": {
        "type": "string",
        "title": "Owner",
        "description": "Names or role of the key stakeholders responsible by the feature."
      },
      "analytics-dashboard": {
        "type": "string",
        "title": "Analytics Dashboard",
        "description": "Data on user engagement or success metrics related to the journey."
      },
      "business-criticality": {
        "enum": [
          "P0",
          "P1",
          "P2"
        ],
        "type": "string",
        "title": "Business Criticality",
        "description": "The importance or impact level of this user journey on business operations."
      }
    }
  },
  "relations": {
    "services": {
      "array": true,
      "title": "Services",
      "value": "service",
      "description": "Services that directly support this feature."
    }
  },
  "referenceProperties": {},
  "options": {
    "showInSideBar": true,
    "propertiesGroups": {}
  }
}

Domain

The Domain blueprint defines high-level business domains, such as functional areas or product lines. It includes properties concerning documentation, ownership, and business objectives. Relationships are formed with Features and Services, indicating the domain's encompassing role over specific functionalities and the services that implement them.

Blueprint Descriptor
{
  "id": "domain",
  "title": "Domain",
  "description": "Defines a high-level business domain",
  "icon": "stack",
  "schemaProperties": {
    "type": "object",
    "properties": {
      "docs": {
        "type": "string",
        "title": "Docs",
        "format": "url",
        "description": "Domain Documentation Link"
      },
      "owner": {
        "type": "string",
        "title": "Owner",
        "description": "Names or role of the key stakeholders responsible by the feature."
      },
      "criticality": {
        "enum": [
          "P0",
          "P1",
          "P2"
        ],
        "type": "string",
        "title": "Criticality",
        "description": "The importance or impact level of this user journey on business operations."
      },
      "target-audience": {
        "enum": [
          "Customers",
          "Internal Stakeholders"
        ],
        "type": "string",
        "title": "Target Audience",
        "description": ""
      },
      "business-objectives": {
        "type": "string",
        "title": "Business Objectives",
        "description": "Key business objectives or goals associated with the domain."
      }
    }
  },
  "relations": {
    "features": {
      "array": true,
      "title": "Features",
      "value": "feature",
      "description": "The features that are part of or related to this business domain."
    },
    "services": {
      "array": true,
      "title": "Services",
      "value": "service",
      "description": "The services that support this business domain."
    }
  },
  "referenceProperties": {},
  "options": {
    "showInSideBar": true,
    "propertiesGroups": {}
  }
}

Learn More

Last updated