Entities
Last updated
Was this helpful?
Last updated
Was this helpful?
Was this helpful?
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.
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.
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.
{
"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": "[email protected]",
"version": "0.1.5",
"language": "Python",
"lifecycle": "Production",
"repo-link": "https://github.com/rely/ads",
"code-owners": [
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]",
"[email protected]"
],
"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
}
},
}