diff --git a/tdei-api-gateway-prod.json b/tdei-api-gateway-prod.json
index d8cc828..8ae52e5 100644
--- a/tdei-api-gateway-prod.json
+++ b/tdei-api-gateway-prod.json
@@ -2600,6 +2600,160 @@
]
}
},
+ "/api/v1/osw/dataset-viewer/feedbacks/download/{tdei_project_group_id}":{
+ "get":{
+ "tags":[
+ "OSW"
+ ],
+ "summary":"Downloads dataset viewer feedbacks as a CSV.",
+ "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.",
+ "operationId":"oswDatasetViewerFeedbacksDownload",
+ "parameters":[
+ {
+ "name":"tdei_dataset_id",
+ "in":"query",
+ "required":false,
+ "description":"ID of the dataset.",
+ "schema":{
+ "type":"string"
+ }
+ },
+ {
+ "name":"from_date",
+ "in":"query",
+ "description":"from_date: Date in ISO 8601 format, filters feedback created after this date.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "format":"date-time"
+ }
+ },
+ {
+ "name":"to_date",
+ "in":"query",
+ "description":"to_date: Date in ISO 8601 format, filters feedback created before this date.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "format":"date-time"
+ }
+ },
+ {
+ "name":"status",
+ "in":"query",
+ "required":false,
+ "description":"status: Filters feedbacks by their status.",
+ "schema":{
+ "type":"string",
+ "enum":[
+ "open",
+ "resolved"
+ ]
+ }
+ },
+ {
+ "name":"sort_by",
+ "in":"query",
+ "description":"sort_by: String, defaults to 'created_at'. Sorts feedbacks by the specified field.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "default":"created_at",
+ "enum":[
+ "created_at",
+ "due_date"
+ ]
+ }
+ },
+ {
+ "name":"due_date",
+ "in":"query",
+ "description":"due_date: Legacy alias for sort_by. Use 'created_at' or 'due_date'.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "enum":[
+ "created_at",
+ "due_date"
+ ]
+ }
+ },
+ {
+ "name":"sort_order",
+ "in":"query",
+ "description":"sort_order: String, defaults to 'desc'. Sorts feedbacks in ascending or descending order.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "default":"desc",
+ "enum":[
+ "asc",
+ "desc"
+ ]
+ }
+ },
+ {
+ "name":"page_no",
+ "in":"query",
+ "description":"page_no: Integer, specifies the page number to retrieve. If omitted with page_size, the response is unpaginated.",
+ "required":false,
+ "schema":{
+ "type":"integer",
+ "format":"int32"
+ }
+ },
+ {
+ "name":"page_size",
+ "in":"query",
+ "description":"Page size: Integer, between 1 to 50. If omitted with page_no, the response is unpaginated.",
+ "required":false,
+ "schema":{
+ "type":"integer",
+ "format":"int32"
+ }
+ },
+ {
+ "name":"format",
+ "in":"query",
+ "required":false,
+ "description":"format: Output format. Only 'csv' is supported.",
+ "schema":{
+ "type":"string",
+ "default":"csv",
+ "enum":[
+ "csv"
+ ]
+ }
+ }
+ ],
+ "responses":{
+ "200":{
+ "description":"CSV file streamed successfully.",
+ "content":{
+ "text/csv":{
+ "schema":{
+ "type":"string",
+ "format":"binary"
+ }
+ }
+ }
+ },
+ "400":{
+ "description":"Invalid request parameters."
+ },
+ "500":{
+ "description":"A server error occurred."
+ }
+ },
+ "security":[
+ {
+ "AuthorizationToken":[
+
+ ]
+ }
+ ]
+ }
+ },
"/api/v1/osw/dataset-viewer/feedbacks/metadata": {
"get": {
"tags": [
diff --git a/tdei-api-gateway-stage.json b/tdei-api-gateway-stage.json
index 9aee3fe..084fb7a 100644
--- a/tdei-api-gateway-stage.json
+++ b/tdei-api-gateway-stage.json
@@ -2600,6 +2600,160 @@
]
}
},
+ "/api/v1/osw/dataset-viewer/feedbacks/download/{tdei_project_group_id}":{
+ "get":{
+ "tags":[
+ "OSW"
+ ],
+ "summary":"Downloads dataset viewer feedbacks as a CSV.",
+ "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.",
+ "operationId":"oswDatasetViewerFeedbacksDownload",
+ "parameters":[
+ {
+ "name":"tdei_dataset_id",
+ "in":"query",
+ "required":false,
+ "description":"ID of the dataset.",
+ "schema":{
+ "type":"string"
+ }
+ },
+ {
+ "name":"from_date",
+ "in":"query",
+ "description":"from_date: Date in ISO 8601 format, filters feedback created after this date.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "format":"date-time"
+ }
+ },
+ {
+ "name":"to_date",
+ "in":"query",
+ "description":"to_date: Date in ISO 8601 format, filters feedback created before this date.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "format":"date-time"
+ }
+ },
+ {
+ "name":"status",
+ "in":"query",
+ "required":false,
+ "description":"status: Filters feedbacks by their status.",
+ "schema":{
+ "type":"string",
+ "enum":[
+ "open",
+ "resolved"
+ ]
+ }
+ },
+ {
+ "name":"sort_by",
+ "in":"query",
+ "description":"sort_by: String, defaults to 'created_at'. Sorts feedbacks by the specified field.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "default":"created_at",
+ "enum":[
+ "created_at",
+ "due_date"
+ ]
+ }
+ },
+ {
+ "name":"due_date",
+ "in":"query",
+ "description":"due_date: Legacy alias for sort_by. Use 'created_at' or 'due_date'.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "enum":[
+ "created_at",
+ "due_date"
+ ]
+ }
+ },
+ {
+ "name":"sort_order",
+ "in":"query",
+ "description":"sort_order: String, defaults to 'desc'. Sorts feedbacks in ascending or descending order.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "default":"desc",
+ "enum":[
+ "asc",
+ "desc"
+ ]
+ }
+ },
+ {
+ "name":"page_no",
+ "in":"query",
+ "description":"page_no: Integer, specifies the page number to retrieve. If omitted with page_size, the response is unpaginated.",
+ "required":false,
+ "schema":{
+ "type":"integer",
+ "format":"int32"
+ }
+ },
+ {
+ "name":"page_size",
+ "in":"query",
+ "description":"Page size: Integer, between 1 to 50. If omitted with page_no, the response is unpaginated.",
+ "required":false,
+ "schema":{
+ "type":"integer",
+ "format":"int32"
+ }
+ },
+ {
+ "name":"format",
+ "in":"query",
+ "required":false,
+ "description":"format: Output format. Only 'csv' is supported.",
+ "schema":{
+ "type":"string",
+ "default":"csv",
+ "enum":[
+ "csv"
+ ]
+ }
+ }
+ ],
+ "responses":{
+ "200":{
+ "description":"CSV file streamed successfully.",
+ "content":{
+ "text/csv":{
+ "schema":{
+ "type":"string",
+ "format":"binary"
+ }
+ }
+ }
+ },
+ "400":{
+ "description":"Invalid request parameters."
+ },
+ "500":{
+ "description":"A server error occurred."
+ }
+ },
+ "security":[
+ {
+ "AuthorizationToken":[
+
+ ]
+ }
+ ]
+ }
+ },
"/api/v1/osw/dataset-viewer/feedbacks/metadata": {
"get": {
"tags": [
diff --git a/tdei-api-gateway.json b/tdei-api-gateway.json
index 0368123..0b4c946 100644
--- a/tdei-api-gateway.json
+++ b/tdei-api-gateway.json
@@ -2600,6 +2600,160 @@
]
}
},
+ "/api/v1/osw/dataset-viewer/feedbacks/download/{tdei_project_group_id}":{
+ "get":{
+ "tags":[
+ "OSW"
+ ],
+ "summary":"Downloads dataset viewer feedbacks as a CSV.",
+ "description":"Streams all feedback for the specified project group in CSV format. Requires poc or osw_data_generator role.",
+ "operationId":"oswDatasetViewerFeedbacksDownload",
+ "parameters":[
+ {
+ "name":"tdei_dataset_id",
+ "in":"query",
+ "required":false,
+ "description":"ID of the dataset.",
+ "schema":{
+ "type":"string"
+ }
+ },
+ {
+ "name":"from_date",
+ "in":"query",
+ "description":"from_date: Date in ISO 8601 format, filters feedback created after this date.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "format":"date-time"
+ }
+ },
+ {
+ "name":"to_date",
+ "in":"query",
+ "description":"to_date: Date in ISO 8601 format, filters feedback created before this date.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "format":"date-time"
+ }
+ },
+ {
+ "name":"status",
+ "in":"query",
+ "required":false,
+ "description":"status: Filters feedbacks by their status.",
+ "schema":{
+ "type":"string",
+ "enum":[
+ "open",
+ "resolved"
+ ]
+ }
+ },
+ {
+ "name":"sort_by",
+ "in":"query",
+ "description":"sort_by: String, defaults to 'created_at'. Sorts feedbacks by the specified field.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "default":"created_at",
+ "enum":[
+ "created_at",
+ "due_date"
+ ]
+ }
+ },
+ {
+ "name":"due_date",
+ "in":"query",
+ "description":"due_date: Legacy alias for sort_by. Use 'created_at' or 'due_date'.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "enum":[
+ "created_at",
+ "due_date"
+ ]
+ }
+ },
+ {
+ "name":"sort_order",
+ "in":"query",
+ "description":"sort_order: String, defaults to 'desc'. Sorts feedbacks in ascending or descending order.",
+ "required":false,
+ "schema":{
+ "type":"string",
+ "default":"desc",
+ "enum":[
+ "asc",
+ "desc"
+ ]
+ }
+ },
+ {
+ "name":"page_no",
+ "in":"query",
+ "description":"page_no: Integer, specifies the page number to retrieve. If omitted with page_size, the response is unpaginated.",
+ "required":false,
+ "schema":{
+ "type":"integer",
+ "format":"int32"
+ }
+ },
+ {
+ "name":"page_size",
+ "in":"query",
+ "description":"Page size: Integer, between 1 to 50. If omitted with page_no, the response is unpaginated.",
+ "required":false,
+ "schema":{
+ "type":"integer",
+ "format":"int32"
+ }
+ },
+ {
+ "name":"format",
+ "in":"query",
+ "required":false,
+ "description":"format: Output format. Only 'csv' is supported.",
+ "schema":{
+ "type":"string",
+ "default":"csv",
+ "enum":[
+ "csv"
+ ]
+ }
+ }
+ ],
+ "responses":{
+ "200":{
+ "description":"CSV file streamed successfully.",
+ "content":{
+ "text/csv":{
+ "schema":{
+ "type":"string",
+ "format":"binary"
+ }
+ }
+ }
+ },
+ "400":{
+ "description":"Invalid request parameters."
+ },
+ "500":{
+ "description":"A server error occurred."
+ }
+ },
+ "security":[
+ {
+ "AuthorizationToken":[
+
+ ]
+ }
+ ]
+ }
+ },
"/api/v1/osw/dataset-viewer/feedbacks/metadata": {
"get": {
"tags": [