зеркало из https://github.com/microsoft/AzureTRE.git
Родитель
fbb584ffab
Коммит
d6f1a1740d
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 64 KiB |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 38 KiB |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 67 KiB |
|
@ -0,0 +1,81 @@
|
||||||
|
# Logical data model
|
||||||
|
|
||||||
|
![Resource](./assets/logical-data-model-1.png)
|
||||||
|
|
||||||
|
## Resource
|
||||||
|
|
||||||
|
| Key | Value description |
|
||||||
|
| --- | ----------------- |
|
||||||
|
| `id` | A unique resource id. |
|
||||||
|
| `parentId` | The parent resource id. |
|
||||||
|
| `specificationVersion` | Resource specification version. |
|
||||||
|
| `resourceVersion` | Resource version. |
|
||||||
|
| `title` | The name (title) of the resource. Rendered in the UI. |
|
||||||
|
| `description` | The description of the resource. Rendered in the UI. |
|
||||||
|
| `resourceType` | Resource type. Workspace or Service. |
|
||||||
|
| `status` | Resource status. |
|
||||||
|
| `isDeleted` | Is the resource marked for deletion. |
|
||||||
|
| `properties` | Resource properties list.|
|
||||||
|
| `etag` | The resource etag. |
|
||||||
|
|
||||||
|
### Property
|
||||||
|
|
||||||
|
| Key | Value description |
|
||||||
|
| --- | ----------------- |
|
||||||
|
| `title` | The name (title) of the variable. Rendered in the UI. |
|
||||||
|
| `description` | The description of the variable. Rendered in the UI. |
|
||||||
|
| `propertyType` | The type of the variable value. |
|
||||||
|
| `default` | *(Optional)* The default value of the variable. |
|
||||||
|
| `required` | *(Optional)* A boolean value defining whether a value is required or not. `true` by default. |
|
||||||
|
| `mutable` | *(Optional)* A boolean value defining whether the variable can be changed by the end-user or not. `true` by default. |
|
||||||
|
| `value` | The variable value (when populated in the state store). |
|
||||||
|
|
||||||
|
## Resource assignment
|
||||||
|
|
||||||
|
![ResourceAssignment](./assets/logical-data-model-2.png)
|
||||||
|
|
||||||
|
| Key | Value description |
|
||||||
|
| --- | ----------------- |
|
||||||
|
| `id` | A unique assignment id. |
|
||||||
|
| `userId` | User id. |
|
||||||
|
| `resourceId` | Resource id. |
|
||||||
|
| `permissions` | Granted permissions. |
|
||||||
|
|
||||||
|
### Permissions
|
||||||
|
|
||||||
|
| Key | Value description |
|
||||||
|
| --- | ----------------- |
|
||||||
|
| `WorkspaceWrite` | Permission to write a workspace. |
|
||||||
|
| `WorkspaceRead` | Permission to read a workspace. |
|
||||||
|
| `WorkspaceDelete` | Permission to delete a workspace. |
|
||||||
|
| `WorkspaceCreateService` | Permission to create a service. |
|
||||||
|
| `WorkspaceUserRead` | Permission to read workspace users. |
|
||||||
|
| `WorkspaceUserManage` | Permission to manage workspace users. |
|
||||||
|
| `ServiceRead` | Permission to read a service. |
|
||||||
|
| `ServiceWrite` | Permission to write a service. |
|
||||||
|
| `ServiceDelete` | Permission to delete a service. |
|
||||||
|
|
||||||
|
## Operation
|
||||||
|
|
||||||
|
![Operation](./assets/logical-data-model-3.png)
|
||||||
|
|
||||||
|
| Key | Value description |
|
||||||
|
| --- | ----------------- |
|
||||||
|
| `id` | A unique operation id. |
|
||||||
|
| `operationType` | Operation type (Create, Update, Delete). |
|
||||||
|
| `status` | Operation status. |
|
||||||
|
| `resourceId` | Resource id. |
|
||||||
|
| `resourceVersion` | Resource version. |
|
||||||
|
| `createdAt` | Time when operation was created. |
|
||||||
|
| `lastUpdatedAt` | Time when operation was last updated. |
|
||||||
|
| `events` | Operation events. |
|
||||||
|
|
||||||
|
### Operation event
|
||||||
|
|
||||||
|
| Key | Value description |
|
||||||
|
| --- | ----------------- |
|
||||||
|
| `timeStamp` | Event time stamp. |
|
||||||
|
| `message` | Event message. |
|
||||||
|
| `from` | Event originator. |
|
||||||
|
| `severity` | Severity of event. |
|
||||||
|
| `eventType` | Event type. |
|
|
@ -0,0 +1,108 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2019-09/schema",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Operation id.",
|
||||||
|
"format": "uuid"
|
||||||
|
},
|
||||||
|
"operationType": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Operation type.",
|
||||||
|
"enum": [
|
||||||
|
"Create",
|
||||||
|
"Update",
|
||||||
|
"Delete"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Operation status.",
|
||||||
|
"enum": [
|
||||||
|
"Pending",
|
||||||
|
"Processing",
|
||||||
|
"Succeeded",
|
||||||
|
"Failed"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"resourceId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource id.",
|
||||||
|
"format": "uuid"
|
||||||
|
},
|
||||||
|
"resourceVersion": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource version."
|
||||||
|
},
|
||||||
|
"createdAt": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Operation creation time."
|
||||||
|
},
|
||||||
|
"lastUpdatedAt": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Operation last update time."
|
||||||
|
},
|
||||||
|
"events": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Operation event.",
|
||||||
|
"items": {"$ref": "#/$defs/event" }
|
||||||
|
},
|
||||||
|
"etag": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "ETag."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"operationType",
|
||||||
|
"status",
|
||||||
|
"resourceId",
|
||||||
|
"resourceVersion",
|
||||||
|
"createdAt",
|
||||||
|
"lastUpdatedAt",
|
||||||
|
"events",
|
||||||
|
"etag"
|
||||||
|
],
|
||||||
|
"additionalProperties": false,
|
||||||
|
"$defs": {
|
||||||
|
"event": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"timeStamp": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Event timestamp."
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Event message."
|
||||||
|
},
|
||||||
|
"from": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Event originator."
|
||||||
|
},
|
||||||
|
"severity": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Event classification.",
|
||||||
|
"enum": [
|
||||||
|
"low",
|
||||||
|
"medium",
|
||||||
|
"high",
|
||||||
|
"critical"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"eventType": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Event type."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"timeStamp",
|
||||||
|
"message",
|
||||||
|
"from",
|
||||||
|
"severity",
|
||||||
|
"eventType"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2019-09/schema",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Assignment id."
|
||||||
|
},
|
||||||
|
"userId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "User id.",
|
||||||
|
"format": "uuid"
|
||||||
|
},
|
||||||
|
"ResourceId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource id.",
|
||||||
|
"format": "uuid"
|
||||||
|
},
|
||||||
|
"permissions": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"WorkspaceWrite",
|
||||||
|
"WorkspaceRead",
|
||||||
|
"WorkspaceDelete",
|
||||||
|
"WorkspaceCreateService",
|
||||||
|
"WorkspaceUserRead",
|
||||||
|
"WorkspaceUserManage",
|
||||||
|
"ServiceRead",
|
||||||
|
"ServiceWrite",
|
||||||
|
"ServiceDelete"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"etag": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "ETag."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"userId",
|
||||||
|
"resourceId",
|
||||||
|
"permissions",
|
||||||
|
"etag"
|
||||||
|
],
|
||||||
|
"additionalProperties": false
|
||||||
|
}
|
|
@ -0,0 +1,120 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2019-09/schema",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource id.",
|
||||||
|
"format": "uuid"
|
||||||
|
},
|
||||||
|
"parentId": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Parent resource id.",
|
||||||
|
"format": "uuid"
|
||||||
|
},
|
||||||
|
"specificationVersion": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource specification version."
|
||||||
|
},
|
||||||
|
"ResourceVersion": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource version."
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource title.",
|
||||||
|
"maxLength": 120
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource description.",
|
||||||
|
"maxLength": 120
|
||||||
|
},
|
||||||
|
"resourceType": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource type.",
|
||||||
|
"enum": ["Workspace", "Service"]
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Resource status.",
|
||||||
|
"enum": [
|
||||||
|
"NotDeployed",
|
||||||
|
"Deploying",
|
||||||
|
"Deployed",
|
||||||
|
"Deleting",
|
||||||
|
"Deleted"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"isDeleted": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Is the resource marked for deletion?"
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "Resource properties.",
|
||||||
|
"items": {"$ref": "#/$defs/property" }
|
||||||
|
},
|
||||||
|
"etag": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "ETag."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"id",
|
||||||
|
"parentId",
|
||||||
|
"specificationVersion",
|
||||||
|
"resourceVersion",
|
||||||
|
"title",
|
||||||
|
"description",
|
||||||
|
"resourceType",
|
||||||
|
"status",
|
||||||
|
"isDeleted",
|
||||||
|
"properties",
|
||||||
|
"etag"
|
||||||
|
],
|
||||||
|
"additionalProperties": false,
|
||||||
|
"$defs": {
|
||||||
|
"property": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"title": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Property title."
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Property description."
|
||||||
|
},
|
||||||
|
"propertyType": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Property type."
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Property default value."
|
||||||
|
},
|
||||||
|
"required": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Is property required?"
|
||||||
|
},
|
||||||
|
"mutable": {
|
||||||
|
"type": "boolean",
|
||||||
|
"description": "Is value mutable?"
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Property value."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"title",
|
||||||
|
"description",
|
||||||
|
"propertyType",
|
||||||
|
"required",
|
||||||
|
"mutable",
|
||||||
|
"value"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче