From 2df4193bcd6aced5c4b2cdfef13710ab3f97dba1 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Tue, 25 Jun 2024 12:06:20 -0700 Subject: [PATCH 1/7] [BACK-3011] Add device logs metadata and contents endpoints. --- reference/blob.v1.yaml | 31 +++++++++++++++++++ .../models/device-logs-contentslist.v1.yaml | 26 ++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 reference/blob/models/device-logs-contentslist.v1.yaml diff --git a/reference/blob.v1.yaml b/reference/blob.v1.yaml index 0e37352c..7bcfee9d 100644 --- a/reference/blob.v1.yaml +++ b/reference/blob.v1.yaml @@ -103,6 +103,31 @@ paths: tags: - Device Logs + '/v1/users/{userId}/device_logs/contents': + parameters: + - $ref: './blob/parameters/id.v1.yaml' + get: + operationId: GetDeviceLogsContents + summary: Get the contents of the device logs. + description: >- + Retrieves the contents of the device logs for a user. + parameters: + - $ref: ./blob/parameters/start-at.v1.yaml + - $ref: ./blob/parameters/end-at.v1.yaml + responses: + '200': + $ref: '#/components/responses/DeviceLogsContentsList' + '400': + $ref: './common/responses/badrequest.v1.yaml' + '401': + $ref: './common/responses/unauthorized.v1.yaml' + '403': + $ref: './common/responses/forbidden.v1.yaml' + '404': + $ref: './common/responses/notfound.v1.yaml' + tags: + - Device Logs + '/v1/users/{userId}/blobs': parameters: - $ref: ./common/parameters/tidepooluserid.yaml @@ -280,6 +305,12 @@ components: '*/*': schema: $ref: './blob/models/content.v1.yaml' + DeviceLogsContentsList: + description: Device logs metadata + content: + application/json: + schema: + $ref: ./blob/models/device-logs-contentslist.v1.yaml DeviceLogsMetadata: description: Device logs metadata content: diff --git a/reference/blob/models/device-logs-contentslist.v1.yaml b/reference/blob/models/device-logs-contentslist.v1.yaml new file mode 100644 index 00000000..0123ca4b --- /dev/null +++ b/reference/blob/models/device-logs-contentslist.v1.yaml @@ -0,0 +1,26 @@ +title: Device logs json list +type: array +readOnly: true +minItems: 0 +items: + type: object + properties: + body: + $ref: './device-logs-content.v1.yaml' + digestMD5: + $ref: '../../common/models/digestmd5.v1.yaml' + mediaType: + $ref: '../../common/models/mediatype.v1.yaml' + startAtTime: + $ref: '../../common/models/datetime.v1.yaml' + endAtTime: + $ref: '../../common/models/datetime.v1.yaml' +example: + - id: 97a9fae8a19b4da58bb48dc90c9562c9 + userId: 4d94a5fb-642e-48f1-89b9-c6a3e6145342 + digestMD5: HUXZLQLMuI/KZ5KDcJPcOA== + mediaType: application/json + size: 1024 + createdTime: '2017-02-06T02:35:46Z' + startAt: '2017-02-06T02:35:46Z' + endAt: '2017-02-06T02:36:46Z' From b97081c533b7b13c2d414c1a87504de013397d88 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Thu, 27 Jun 2024 10:19:43 -0700 Subject: [PATCH 2/7] Add correct example and update /v1/device_logs/{deviceLogId}/contents route. --- .gitignore | 2 ++ reference/blob.v1.yaml | 21 +++++++-------- .../blob/models/device-log-contents.v1.yaml | 16 ++++++++++++ .../models/device-logs-contentslist.v1.yaml | 26 ------------------- .../blob/parameters/device-log-id.v1.yaml | 7 +++++ 5 files changed, 34 insertions(+), 38 deletions(-) create mode 100644 reference/blob/models/device-log-contents.v1.yaml delete mode 100644 reference/blob/models/device-logs-contentslist.v1.yaml create mode 100644 reference/blob/parameters/device-log-id.v1.yaml diff --git a/.gitignore b/.gitignore index caea50a6..3e927d5d 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ build .env .envrc .nvmrc +.DS_Store +Session.vim diff --git a/reference/blob.v1.yaml b/reference/blob.v1.yaml index 7bcfee9d..c3539158 100644 --- a/reference/blob.v1.yaml +++ b/reference/blob.v1.yaml @@ -103,20 +103,17 @@ paths: tags: - Device Logs - '/v1/users/{userId}/device_logs/contents': + '/v1/device_logs/{deviceLogId}/contents': parameters: - - $ref: './blob/parameters/id.v1.yaml' + - $ref: './blob/parameters/device-log-id.v1.yaml' get: - operationId: GetDeviceLogsContents - summary: Get the contents of the device logs. + operationId: GetDeviceLogContents + summary: Get the contents of a single device log. description: >- - Retrieves the contents of the device logs for a user. - parameters: - - $ref: ./blob/parameters/start-at.v1.yaml - - $ref: ./blob/parameters/end-at.v1.yaml + Retrieves the contents of the device log. responses: '200': - $ref: '#/components/responses/DeviceLogsContentsList' + $ref: '#/components/responses/DeviceLogContents' '400': $ref: './common/responses/badrequest.v1.yaml' '401': @@ -305,12 +302,12 @@ components: '*/*': schema: $ref: './blob/models/content.v1.yaml' - DeviceLogsContentsList: - description: Device logs metadata + DeviceLogContents: + description: Device log contents. content: application/json: schema: - $ref: ./blob/models/device-logs-contentslist.v1.yaml + $ref: ./blob/models/device-log-contents.v1.yaml DeviceLogsMetadata: description: Device logs metadata content: diff --git a/reference/blob/models/device-log-contents.v1.yaml b/reference/blob/models/device-log-contents.v1.yaml new file mode 100644 index 00000000..76553a71 --- /dev/null +++ b/reference/blob/models/device-log-contents.v1.yaml @@ -0,0 +1,16 @@ +title: Contents of a single device log. +type: array +minItems: 0 +items: + $ref: './device-log-content.v1.yaml' +example: + - type: send + managerIdentifier: 'Devicey McDeviceface' + deviceIdentifier: 'MMT-1711:12345678' + timestamp: '2017-02-06T02:37:46Z' + message: 'sent something ...' + - type: connection + managerIdentifier: 'Devicey McDeviceface' + deviceIdentifier: 'MMT-1711:12345678' + timestamp: '2017-02-06T02:36:50Z' + message: 'establishing connection ...' diff --git a/reference/blob/models/device-logs-contentslist.v1.yaml b/reference/blob/models/device-logs-contentslist.v1.yaml deleted file mode 100644 index 0123ca4b..00000000 --- a/reference/blob/models/device-logs-contentslist.v1.yaml +++ /dev/null @@ -1,26 +0,0 @@ -title: Device logs json list -type: array -readOnly: true -minItems: 0 -items: - type: object - properties: - body: - $ref: './device-logs-content.v1.yaml' - digestMD5: - $ref: '../../common/models/digestmd5.v1.yaml' - mediaType: - $ref: '../../common/models/mediatype.v1.yaml' - startAtTime: - $ref: '../../common/models/datetime.v1.yaml' - endAtTime: - $ref: '../../common/models/datetime.v1.yaml' -example: - - id: 97a9fae8a19b4da58bb48dc90c9562c9 - userId: 4d94a5fb-642e-48f1-89b9-c6a3e6145342 - digestMD5: HUXZLQLMuI/KZ5KDcJPcOA== - mediaType: application/json - size: 1024 - createdTime: '2017-02-06T02:35:46Z' - startAt: '2017-02-06T02:35:46Z' - endAt: '2017-02-06T02:36:46Z' diff --git a/reference/blob/parameters/device-log-id.v1.yaml b/reference/blob/parameters/device-log-id.v1.yaml new file mode 100644 index 00000000..fbdd9bfc --- /dev/null +++ b/reference/blob/parameters/device-log-id.v1.yaml @@ -0,0 +1,7 @@ +description: >- + DeviceLog ID +name: deviceLogId +in: path +required: true +schema: + $ref: '../models/id.v1.yaml' From ade5ee939f39d099ab855eff5bd7441849539a29 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Thu, 27 Jun 2024 10:25:35 -0700 Subject: [PATCH 3/7] Make blob start-at and end-at optional as it isn't required in the code. --- reference/blob.v1.yaml | 2 ++ reference/blob/parameters/end-at.v1.yaml | 2 +- reference/blob/parameters/start-at.v1.yaml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/reference/blob.v1.yaml b/reference/blob.v1.yaml index c3539158..1aaed9e3 100644 --- a/reference/blob.v1.yaml +++ b/reference/blob.v1.yaml @@ -89,6 +89,8 @@ paths: parameters: - $ref: ./blob/parameters/start-at.v1.yaml - $ref: ./blob/parameters/end-at.v1.yaml + - $ref: ./common/parameters/paginationpage.v1.yaml + - $ref: ./common/parameters/paginationsize.v1.yaml responses: '200': $ref: '#/components/responses/DeviceLogsMetadataList' diff --git a/reference/blob/parameters/end-at.v1.yaml b/reference/blob/parameters/end-at.v1.yaml index e11198d8..87f43f57 100644 --- a/reference/blob/parameters/end-at.v1.yaml +++ b/reference/blob/parameters/end-at.v1.yaml @@ -2,6 +2,6 @@ description: >- End At Datetime name: endAtTime in: query -required: true +required: false schema: $ref: '../../common/models/datetime.v1.yaml' diff --git a/reference/blob/parameters/start-at.v1.yaml b/reference/blob/parameters/start-at.v1.yaml index 19467707..dc234dfb 100644 --- a/reference/blob/parameters/start-at.v1.yaml +++ b/reference/blob/parameters/start-at.v1.yaml @@ -2,6 +2,6 @@ description: >- Start At Datetime name: startAtTime in: query -required: true +required: false schema: $ref: '../../common/models/datetime.v1.yaml' From c72a0e1c4ab8c201c5e09d32ac9295ef3f1bfc5e Mon Sep 17 00:00:00 2001 From: lostlevels Date: Fri, 28 Jun 2024 08:37:37 -0700 Subject: [PATCH 4/7] Update typo in device_logs/:id/content route. --- reference/blob.v1.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/reference/blob.v1.yaml b/reference/blob.v1.yaml index 1aaed9e3..b5caf52c 100644 --- a/reference/blob.v1.yaml +++ b/reference/blob.v1.yaml @@ -105,14 +105,14 @@ paths: tags: - Device Logs - '/v1/device_logs/{deviceLogId}/contents': + '/v1/device_logs/{deviceLogId}/content': parameters: - $ref: './blob/parameters/device-log-id.v1.yaml' get: - operationId: GetDeviceLogContents - summary: Get the contents of a single device log. + operationId: GetDeviceLogContent + summary: Get the content of a single device log. description: >- - Retrieves the contents of the device log. + Retrieves the content of the device log. responses: '200': $ref: '#/components/responses/DeviceLogContents' @@ -304,8 +304,8 @@ components: '*/*': schema: $ref: './blob/models/content.v1.yaml' - DeviceLogContents: - description: Device log contents. + DeviceLogContent: + description: Device log content. content: application/json: schema: From 223871c9a6b35fd523872feb0b8c398182639910 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Fri, 28 Jun 2024 09:27:40 -0700 Subject: [PATCH 5/7] Fix typo, rename files. --- reference/blob.v1.yaml | 4 ++-- ...e-log-contents.v1.yaml => device-log-content-list.v1.yaml} | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename reference/blob/models/{device-log-contents.v1.yaml => device-log-content-list.v1.yaml} (91%) diff --git a/reference/blob.v1.yaml b/reference/blob.v1.yaml index b5caf52c..a3f3d7bb 100644 --- a/reference/blob.v1.yaml +++ b/reference/blob.v1.yaml @@ -115,7 +115,7 @@ paths: Retrieves the content of the device log. responses: '200': - $ref: '#/components/responses/DeviceLogContents' + $ref: '#/components/responses/DeviceLogContent' '400': $ref: './common/responses/badrequest.v1.yaml' '401': @@ -309,7 +309,7 @@ components: content: application/json: schema: - $ref: ./blob/models/device-log-contents.v1.yaml + $ref: ./blob/models/device-log-content-list.v1.yaml DeviceLogsMetadata: description: Device logs metadata content: diff --git a/reference/blob/models/device-log-contents.v1.yaml b/reference/blob/models/device-log-content-list.v1.yaml similarity index 91% rename from reference/blob/models/device-log-contents.v1.yaml rename to reference/blob/models/device-log-content-list.v1.yaml index 76553a71..38c7253e 100644 --- a/reference/blob/models/device-log-contents.v1.yaml +++ b/reference/blob/models/device-log-content-list.v1.yaml @@ -1,4 +1,4 @@ -title: Contents of a single device log. +title: Contents of a device log. type: array minItems: 0 items: From d939c72ef38a1f59985225414cebc40d9aaeff10 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Tue, 10 Sep 2024 14:50:10 -0700 Subject: [PATCH 6/7] Document allowed text/plain MIME type for device log content. --- reference/blob.v1.yaml | 14 +++++++++----- .../blob/models/device-log-content-plain.v1.yaml | 7 +++++++ 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 reference/blob/models/device-log-content-plain.v1.yaml diff --git a/reference/blob.v1.yaml b/reference/blob.v1.yaml index a3f3d7bb..d2f7e2c3 100644 --- a/reference/blob.v1.yaml +++ b/reference/blob.v1.yaml @@ -55,7 +55,7 @@ paths: post: operationId: UploadDeviceLogs summary: Upload new device logs as json - description: Uploads a new device logs json to the user's account. The `Digest` header must represent the MD5 hash of the json data content. + description: Uploads new device logs to the user's account. The `Digest` header must represent the MD5 hash of the data. parameters: - $ref: ./common/parameters/digestmd5.v1.yaml - $ref: ./blob/parameters/logs-start-at.v1.yaml @@ -66,9 +66,10 @@ paths: content: application/json: schema: - type: array - items: - $ref: ./blob/models/device-log-content.v1.yaml + $ref: ./blob/models/device-log-content-list.v1.yaml + text/plain: + schema: + $ref: ./blob/models/device-log-content-plain.v1.yaml responses: '201': $ref: '#/components/responses/DeviceLogsMetadata' @@ -310,8 +311,11 @@ components: application/json: schema: $ref: ./blob/models/device-log-content-list.v1.yaml + text/plain: + schema: + $ref: ./blob/models/device-log-content-plain.v1.yaml DeviceLogsMetadata: - description: Device logs metadata + description: Device logs metadata. This is information about the log data, but is not the actual log data. content: application/json: schema: diff --git a/reference/blob/models/device-log-content-plain.v1.yaml b/reference/blob/models/device-log-content-plain.v1.yaml new file mode 100644 index 00000000..50e26f70 --- /dev/null +++ b/reference/blob/models/device-log-content-plain.v1.yaml @@ -0,0 +1,7 @@ +title: Unstructured device log content +description: >- + Device log entry. +type: string +example: >- + Any kind of arbritrary log data sent by a device. Establishing + connection... Connection established. Sending logs... From 6bc0a2e26c62786c8d2c19d9c4421deb80c7a8a4 Mon Sep 17 00:00:00 2001 From: lostlevels Date: Tue, 10 Sep 2024 16:08:47 -0700 Subject: [PATCH 7/7] Remove unnecessary content object. --- reference/blob.v1.yaml | 11 +++++++---- .../blob/models/device-log-content-plain.v1.yaml | 7 ------- 2 files changed, 7 insertions(+), 11 deletions(-) delete mode 100644 reference/blob/models/device-log-content-plain.v1.yaml diff --git a/reference/blob.v1.yaml b/reference/blob.v1.yaml index d2f7e2c3..812d0033 100644 --- a/reference/blob.v1.yaml +++ b/reference/blob.v1.yaml @@ -69,7 +69,7 @@ paths: $ref: ./blob/models/device-log-content-list.v1.yaml text/plain: schema: - $ref: ./blob/models/device-log-content-plain.v1.yaml + type: string responses: '201': $ref: '#/components/responses/DeviceLogsMetadata' @@ -111,9 +111,9 @@ paths: - $ref: './blob/parameters/device-log-id.v1.yaml' get: operationId: GetDeviceLogContent - summary: Get the content of a single device log. + summary: Get the content of a device log. description: >- - Retrieves the content of the device log. + Retrieves the content, the actual data, of a device log. responses: '200': $ref: '#/components/responses/DeviceLogContent' @@ -313,7 +313,10 @@ components: $ref: ./blob/models/device-log-content-list.v1.yaml text/plain: schema: - $ref: ./blob/models/device-log-content-plain.v1.yaml + type: string + example: >- + Any kind of arbritrary log data sent by a device. Establishing + connection... Connection established. Sending logs... DeviceLogsMetadata: description: Device logs metadata. This is information about the log data, but is not the actual log data. content: diff --git a/reference/blob/models/device-log-content-plain.v1.yaml b/reference/blob/models/device-log-content-plain.v1.yaml deleted file mode 100644 index 50e26f70..00000000 --- a/reference/blob/models/device-log-content-plain.v1.yaml +++ /dev/null @@ -1,7 +0,0 @@ -title: Unstructured device log content -description: >- - Device log entry. -type: string -example: >- - Any kind of arbritrary log data sent by a device. Establishing - connection... Connection established. Sending logs...