Entities
At the core of Rely.io is its software catalog. Each entity within this catalog can be represented as a JSON file, which we refer to as an entity descriptor.
Entity ID
Throughout our documentation, you'll encounter references to the "entity ID." This unique identifier is essential in Rely.io for establishing relationships between entities and retrieving information. It's crucial to note that the entity ID must be globally unique across all entities.
Entity Descriptor
Regardless of whether you're using UI editing or GitOps to manage your entities, the definitions are backed by JSON files. Each file is a fully compliant OpenAPI 3 spec file, with our own specific extensions.
All entities have three other metadata fields besides the entity id:
Name: A user-friendly display name.
Blueprint ID: A reference to the entity's type.
Description (Optional): A concise overview of the entity for further context.
An entity descriptor also contains all relevant data that makes up the entity itself which might envolve:
Properties: The defining characteristics and attributes of an entity.
Relations: These indicate how the entity is connected to or interacts with other entities within Rely.
Sources: These specify where the entity's data originates from in the case of automated integrations with external systems via Rely's plugins.
Example Service Entity
{
"id": "advertising",
"blueprintId": "service",
"title": "Advertising",
"description": "A Helm chart for deploying a Python app for advertising purposes",
"properties": {
"tier": "Customer Facing",
"readme": "https://github.com/rely.io/demo-ads/-/blob/master/README.md?ref_type=heads",
"on-call": "tim-cook@gmail.com",
"version": "0.1.5",
"language": "Python",
"lifecycle": "Production",
"repo-link": "https://github.com/rely/ads",
"code-owners": [
"elon-musk@gmail.com",
"bill-gates@gmail.com",
"daniel-ek@gmail.com",
"sheryl-sandberg@gmail.com",
"reed-hastings@gmail.com"
],
"handles-pii": false,
"monitor-links": [
"https://grafana.com",
"https://prometheus.com",
"https://datadog.com"
],
"quality_gate_status": "Passed",
"unit-tests-coverage": 87,
"communication-method": "GraphQL"
},
"relations": {
"team": {
"value": "marketing-and-advertising-team"
},
"internal-dependencies": {
"value": [
"anomaly-detector",
"load-generator",
"purchase-processor"
]
},
"running-instances": {
"value": [
"ads-staging",
"ads-security",
"ads-dev",
"ads-sandbox",
"ads-production"
]
},
"GitlabRepository": {
"value": "adversiting"
},
},
"sources": {
"automation.rely.gitlab.v1.repository-to-service.gitlab.v1.repository.adversiting": {
"type": "automation",
"config": {
"automationId": "rely.gitlab.v1.repository-to-service",
"blueprintId": "gitlab.v1.repository",
"entityId": "adversiting",
"fields": [
"title",
"description",
"properties/readme",
"properties/language",
"properties/repo-link",
"relations/GitlabRepository"
]
},
"activeMappings": {
"title": null,
"description": null,
"properties/readme": null,
"properties/language": null,
"properties/repo-link": null,
"relations/GitlabRepository": null
}
},
}
Learn More
Last updated
Was this helpful?