Skip to content

Commit a580b54

Browse files
committed
Add runnerId to Dataset creation and update related schema and tests
- Updated `DatasetCreateRequest` and `CreateInfo` model to include `runnerId`. - Modified OpenAPI schema, service implementation, and dataset documentation to support `runnerId`. - Added integration tests to validate `runnerId` field behavior during dataset creation.
1 parent 04d25a5 commit a580b54

File tree

9 files changed

+45
-6
lines changed

9 files changed

+45
-6
lines changed

api/src/integrationTest/kotlin/com/cosmotech/api/home/ControllerTestUtils.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,7 @@ class ControllerTestUtils {
416416
name = name,
417417
description = DATASET_DESCRIPTION,
418418
tags = mutableListOf("tag1", "tag2"),
419+
runnerId = "r-12345678910",
419420
parts =
420421
mutableListOf(
421422
DatasetPartCreateRequest(

api/src/integrationTest/kotlin/com/cosmotech/api/home/dataset/DatasetControllerTests.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ class DatasetControllerTests : ControllerTestBase() {
133133
.andExpect(jsonPath("$.organizationId").value(organizationId))
134134
.andExpect(jsonPath("$.workspaceId").value(workspaceId))
135135
.andExpect(jsonPath("$.createInfo.userId").value(PLATFORM_ADMIN_EMAIL))
136+
.andExpect(jsonPath("$.createInfo.runnerId").value("r-12345678910"))
136137
.andExpect(jsonPath("$.createInfo.timestamp").isNumber)
137138
.andExpect(jsonPath("$.createInfo.timestamp").value(greaterThan(0.toLong())))
138139
.andExpect(jsonPath("$.updateInfo.userId").value(PLATFORM_ADMIN_EMAIL))

dataset/src/integrationTest/kotlin/com/cosmotech/dataset/service/DatasetServiceIntegrationTest.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,10 @@ class DatasetServiceIntegrationTest() : CsmTestBase() {
135135
val datasetTags = mutableListOf("dataset", "public", "customers")
136136
val datasetCreateRequest =
137137
DatasetCreateRequest(
138-
name = datasetName, description = datasetDescription, tags = datasetTags)
138+
name = datasetName,
139+
description = datasetDescription,
140+
tags = datasetTags,
141+
runnerId = "r-12354678910")
139142

140143
val createdDataset =
141144
datasetApiService.createDataset(
@@ -145,6 +148,7 @@ class DatasetServiceIntegrationTest() : CsmTestBase() {
145148
assertEquals(datasetName, createdDataset.name)
146149
assertEquals(datasetDescription, createdDataset.description)
147150
assertEquals(datasetTags, createdDataset.tags)
151+
assertEquals("r-12354678910", createdDataset.createInfo.runnerId)
148152
assertEquals(0, createdDataset.parts.size)
149153
}
150154

dataset/src/main/kotlin/com/cosmotech/dataset/service/DatasetServiceImpl.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import com.cosmotech.api.utils.constructPageRequest
2020
import com.cosmotech.api.utils.findAllPaginated
2121
import com.cosmotech.api.utils.getCurrentAccountIdentifier
2222
import com.cosmotech.dataset.DatasetApiServiceInterface
23+
import com.cosmotech.dataset.domain.CreateInfo
2324
import com.cosmotech.dataset.domain.Dataset
2425
import com.cosmotech.dataset.domain.DatasetAccessControl
2526
import com.cosmotech.dataset.domain.DatasetCreateRequest
@@ -130,6 +131,8 @@ class DatasetServiceImpl(
130131
val now = Instant.now().toEpochMilli()
131132
val userId = getCurrentAccountIdentifier(csmPlatformProperties)
132133
val editInfo = EditInfo(timestamp = now, userId = userId)
134+
val createInfo =
135+
CreateInfo(timestamp = now, userId = userId, runnerId = datasetCreateRequest.runnerId)
133136
val security =
134137
csmRbac
135138
.initSecurity(datasetCreateRequest.security.toGenericSecurity(datasetId))
@@ -159,7 +162,7 @@ class DatasetServiceImpl(
159162
workspaceId = workspaceId,
160163
tags = datasetCreateRequest.tags ?: mutableListOf(),
161164
parts = datasetParts ?: mutableListOf(),
162-
createInfo = editInfo,
165+
createInfo = createInfo,
163166
updateInfo = editInfo,
164167
security = security)
165168
logger.debug("Registering Dataset: {}", createdDataset)

dataset/src/main/openapi/dataset.yaml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -886,7 +886,7 @@ components:
886886
createInfo:
887887
description: The details of the Dataset creation
888888
allOf:
889-
- $ref: '#/components/schemas/EditInfo'
889+
- $ref: '#/components/schemas/CreateInfo'
890890
updateInfo:
891891
description: The details of the Dataset last update
892892
allOf:
@@ -928,6 +928,9 @@ components:
928928
default: []
929929
security:
930930
$ref: '#/components/schemas/DatasetSecurity'
931+
runnerId:
932+
type: string
933+
pattern: '^r-\w{10,20}'
931934
required:
932935
- name
933936

@@ -1140,3 +1143,21 @@ components:
11401143
required:
11411144
- timestamp
11421145
- userId
1146+
1147+
CreateInfo:
1148+
type: object
1149+
properties:
1150+
timestamp:
1151+
description: The timestamp of the creation in millisecond
1152+
type: integer
1153+
format: int64
1154+
userId:
1155+
description: The id of the user who did the creation
1156+
type: string
1157+
runnerId:
1158+
description: The runner id which has created the dataset (nullable)
1159+
type: string
1160+
pattern: '^r-\w{10,20}'
1161+
required:
1162+
- timestamp
1163+
- userId

doc/.openapi-generator/FILES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Models/AboutInfoVersion.md
1010
Models/ComponentRolePermissions.md
1111
Models/ContainerResourceSizeInfo.md
1212
Models/ContainerResourceSizing.md
13+
Models/CreateInfo.md
1314
Models/CreatedRun.md
1415
Models/Dataset.md
1516
Models/DatasetAccessControl.md

doc/Models/Dataset.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
| **workspaceId** | **String** | the associated Workspace Id | [default to null] |
1111
| **tags** | **List** | the list of tags | [default to null] |
1212
| **parts** | [**List**](DatasetPart.md) | | [default to null] |
13-
| **createInfo** | [**EditInfo**](EditInfo.md) | The details of the Dataset creation | [default to null] |
13+
| **createInfo** | [**CreateInfo**](CreateInfo.md) | The details of the Dataset creation | [default to null] |
1414
| **updateInfo** | [**EditInfo**](EditInfo.md) | The details of the Dataset last update | [default to null] |
1515
| **security** | [**DatasetSecurity**](DatasetSecurity.md) | | [default to null] |
1616

doc/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ All URIs are relative to *http://localhost:8080*
119119
- [ComponentRolePermissions](./Models/ComponentRolePermissions.md)
120120
- [ContainerResourceSizeInfo](./Models/ContainerResourceSizeInfo.md)
121121
- [ContainerResourceSizing](./Models/ContainerResourceSizing.md)
122+
- [CreateInfo](./Models/CreateInfo.md)
122123
- [CreatedRun](./Models/CreatedRun.md)
123124
- [Dataset](./Models/Dataset.md)
124125
- [DatasetAccessControl](./Models/DatasetAccessControl.md)

openapi/plantuml/schemas.plantuml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ entity ContainerResourceSizing {
3131
* limits: ContainerResourceSizeInfo
3232
}
3333

34+
entity CreateInfo {
35+
* timestamp: Long
36+
* userId: String
37+
runnerId: String
38+
}
39+
3440
entity CreatedRun {
3541
* id: String
3642
}
@@ -43,7 +49,7 @@ entity Dataset {
4349
* workspaceId: String
4450
* tags: List<String>
4551
* parts: List<DatasetPart>
46-
* createInfo: EditInfo
52+
* createInfo: CreateInfo
4753
* updateInfo: EditInfo
4854
* security: DatasetSecurity
4955
}
@@ -59,6 +65,7 @@ entity DatasetCreateRequest {
5965
tags: List<String>
6066
parts: List<DatasetPartCreateRequest>
6167
security: DatasetSecurity
68+
runnerId: String
6269
}
6370

6471
entity DatasetPart {
@@ -654,7 +661,7 @@ Solution -- "0..*" RunTemplateParameterGroup : parameterGroups
654661
Solution -- "0..*" RunTemplate : runTemplates
655662
Solution -- SolutionSecurity : security
656663
Dataset -- "0..*" DatasetPart : parts
657-
Dataset -- EditInfo : createInfo
664+
Dataset -- CreateInfo : createInfo
658665
Dataset -- EditInfo : updateInfo
659666
Dataset -- DatasetSecurity : security
660667
Run -- RunEditInfo : createInfo

0 commit comments

Comments
 (0)