diff --git a/.docs/.swagger/api-analyse.yaml b/.docs/.swagger/api-analyse.yaml index 1aa3c5d60f4ae4758f49dc37b676cd85ab660219..4ec0ed6e72d74926538c22f42b92015730bb056a 100644 --- a/.docs/.swagger/api-analyse.yaml +++ b/.docs/.swagger/api-analyse.yaml @@ -1 +1,105 @@ -{"definitions":{},"externalDocs":{"description":"Sourcecode Documentation","url":"https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services"},"info":{"contact":{"email":"andreas.rauber@tuwien.ac.at","name":"Prof. Andreas Rauber"},"description":"Service that analyses data structures","license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0"},"title":"Database Repository Analyse Service API","version":"1.3.0"},"openapi":"3.0.0","paths":{"/api/analyse/determinedt":{"post":{"consumes":["application/json"],"description":"This is a simple API which returns the datatypes of a (path) csv file","parameters":[{"description":"to-do description","in":"body","name":"body","required":true,"schema":{"properties":{"enum":{"example":true,"type":"boolean"},"enum_tol":{"example":0.1},"filepath":{"example":"/data/testdt08.csv","type":"string"},"separator":{"example":",","type":"string"}},"type":"object"}}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"405":{"description":"Invalid input"}},"summary":"Determine datatypes"}},"/api/analyse/determinepk":{"post":{"consumes":["application/json"],"description":"This is a simple API which returns the primary keys + ranking of a (path) csv file","parameters":[{"description":"to-do description","in":"body","name":"body","required":true,"schema":{"properties":{"filepath":{"example":"/data/testdt08.csv","type":"string"},"seperator":{"example":",","type":"string"}},"type":"object"}}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"405":{"description":"Invalid input"}},"summary":"Determine primary keys"}},"/health":{"get":{"consumes":["application/json"],"description":"This is a simple API which checks if the application is healthy","parameters":[{"description":"to-do description","in":"body","name":"body","required":true,"schema":{"properties":{"status":{"example":"UP","type":"string"}},"type":"object"}}],"produces":["application/json"],"responses":{"200":{"description":"OK"}},"summary":"Check if application is running"}}},"servers":[{"description":"Generated server url","url":"http://localhost:5000"},{"description":"Sandbox","url":"https://dbrepo2.tuwien.ac.at"}]} +components: + schemas: {} +externalDocs: + description: Sourcecode Documentation + url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services +info: + contact: + email: andreas.rauber@tuwien.ac.at + name: Prof. Andreas Rauber + description: Service that analyses data structures + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0 + title: Database Repository Analyse Service API + version: $TAG +openapi: 3.0.0 +paths: + /api/analyse/determinedt: + post: + consumes: + - application/json + description: This is a simple API which returns the datatypes of a (path) csv + file + parameters: + - description: to-do description + in: body + name: body + required: true + schema: + properties: + enum: + example: true + type: boolean + enum_tol: + example: 0.1 + filename: + example: sample.csv + type: string + separator: + example: ',' + type: string + type: object + produces: + - application/json + responses: + '200': + description: OK + '405': + description: Invalid input + summary: Determine datatypes + /api/analyse/determinepk: + post: + consumes: + - application/json + description: This is a simple API which returns the primary keys + ranking of + a (path) csv file + parameters: + - description: to-do description + in: body + name: body + required: true + schema: + properties: + filepath: + example: /data/testdt08.csv + type: string + seperator: + example: ',' + type: string + type: object + produces: + - application/json + responses: + '200': + description: OK + '405': + description: Invalid input + summary: Determine primary keys + /health: + get: + consumes: + - application/json + description: This is a simple API which checks if the application is healthy + parameters: + - description: to-do description + in: body + name: body + required: true + schema: + properties: + status: + example: UP + type: string + type: object + produces: + - application/json + responses: + '200': + description: OK + summary: Check if application is running +servers: + - description: Generated server url + url: http://localhost:5000 + - description: Sandbox + url: https://dbrepo2.tuwien.ac.at diff --git a/.docs/.swagger/api-container.yaml b/.docs/.swagger/api-container.yaml deleted file mode 100644 index 2102e2f63cab2048d1c546149d233b3c141faf6d..0000000000000000000000000000000000000000 --- a/.docs/.swagger/api-container.yaml +++ /dev/null @@ -1,2410 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository Container Service API - description: Service that manages the containers - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.2.0 -externalDocs: - description: Sourcecode Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services -servers: -- url: http://localhost:9092 - description: Generated server url -- url: https://dbrepo2.tuwien.ac.at - description: Sandbox -paths: - /api/image/{id}: - get: - tags: - - image-endpoint - summary: Find some image - operationId: findById - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Found image - content: - application/json: - schema: - $ref: '#/components/schemas/ImageDto' - "404": - description: Image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - put: - tags: - - image-endpoint - summary: Update some image - operationId: update - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ImageChangeDto' - required: true - responses: - "202": - description: Updated image successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ImageDto' - "404": - description: Image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - image-endpoint - summary: Delete some image - operationId: delete - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "202": - description: Deleted image successfully - "404": - description: Image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}: - get: - tags: - - container-endpoint - summary: Find some container - operationId: findById_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "502": - description: Docker client failed to connect - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Found container - content: - application/json: - schema: - $ref: '#/components/schemas/ContainerDto' - "404": - description: Container image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - put: - tags: - - container-endpoint - summary: Modify some container - operationId: modify - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ContainerChangeDto' - required: true - responses: - "409": - description: Container is already started/stopped - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Container or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Modification of container state is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Modified state of container successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ContainerBriefDto' - security: - - bearerAuth: [] - delete: - tags: - - container-endpoint - summary: Delete some container - operationId: delete_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "410": - description: Container is already removed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Container is still running - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Deleted container successfully - security: - - bearerAuth: [] - /api/image: - get: - tags: - - image-endpoint - summary: Find all images - operationId: findAll - responses: - "200": - description: List images - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ContainerImage' - post: - tags: - - image-endpoint - summary: Create image - operationId: create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ImageCreateDto' - required: true - responses: - "201": - description: Created image - content: - application/json: - schema: - $ref: '#/components/schemas/ImageDto' - "404": - description: User could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Image specification is invalid - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Docker client failed to connect - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Image already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container: - get: - tags: - - container-endpoint - summary: Find all containers - operationId: findAll_1 - parameters: - - name: limit - in: query - required: false - schema: - type: integer - format: int32 - responses: - "200": - description: List containers - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ContainerBriefDto' - post: - tags: - - container-endpoint - summary: Create container - operationId: create_1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ContainerCreateRequestDto' - required: true - responses: - "201": - description: Created a new container - content: - application/json: - schema: - $ref: '#/components/schemas/ContainerBriefDto' - "404": - description: Container image or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Container name already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Docker client failed to connect - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] -components: - schemas: - ImageChangeDto: - required: - - dialect - - driver_class - - jdbc_method - - registry - type: object - properties: - registry: - type: string - example: docker.io/library - defaultPort: - maximum: 65535 - minimum: 1024 - type: integer - format: int32 - example: 5432 - environment: - type: array - items: - $ref: '#/components/schemas/ImageEnvItemDto' - dialect: - type: string - example: Postgres - driver_class: - type: string - example: org.postgresql.Driver - jdbc_method: - type: string - example: postgresql - ImageEnvItemDto: - required: - - iid - - key - - type - type: object - properties: - iid: - type: integer - format: int64 - key: - type: string - example: MARIADB_ROOT_PASSWORD - type: - type: string - example: PRIVILEGED_PASSWORD - enum: - - username - - password - - privileged_username - - privileged_password - ImageDateDto: - required: - - database_format - - example - - has_time - - id - - unix_format - type: object - properties: - id: - type: integer - format: int64 - example: - type: string - example: 30.01.2022 - database_format: - type: string - example: '%d.%c.%Y' - unix_format: - type: string - example: dd.MM.YYYY - has_time: - type: boolean - example: false - created_at: - type: string - format: date-time - ImageDto: - required: - - default_port - - dialect - - driver_class - - id - - jdbc_method - - registry - - repository - - tag - type: object - properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - repository: - type: string - example: mariadb - tag: - type: string - example: "10.5" - dialect: - type: string - example: org.hibernate.dialect.MariaDBDialect - hash: - type: string - example: sha256:c5ec7353d87dfc35067e7bffeb25d6a0d52dad41e8b7357213e3b12d6e7ff78e - compiled: - type: string - format: date-time - example: 2021-03-12T15:26:21.678396092Z - size: - type: integer - example: 314295447 - driver_class: - type: string - example: org.mariadb.jdbc.Driver - date_formats: - type: array - items: - $ref: '#/components/schemas/ImageDateDto' - jdbc_method: - type: string - example: mariadb - default_port: - type: integer - format: int32 - example: 3306 - ApiErrorDto: - required: - - code - - message - - status - type: object - properties: - status: - type: string - example: STATUS - enum: - - 100 CONTINUE - - 101 SWITCHING_PROTOCOLS - - 102 PROCESSING - - 103 EARLY_HINTS - - 103 CHECKPOINT - - 200 OK - - 201 CREATED - - 202 ACCEPTED - - 203 NON_AUTHORITATIVE_INFORMATION - - 204 NO_CONTENT - - 205 RESET_CONTENT - - 206 PARTIAL_CONTENT - - 207 MULTI_STATUS - - 208 ALREADY_REPORTED - - 226 IM_USED - - 300 MULTIPLE_CHOICES - - 301 MOVED_PERMANENTLY - - 302 FOUND - - 302 MOVED_TEMPORARILY - - 303 SEE_OTHER - - 304 NOT_MODIFIED - - 305 USE_PROXY - - 307 TEMPORARY_REDIRECT - - 308 PERMANENT_REDIRECT - - 400 BAD_REQUEST - - 401 UNAUTHORIZED - - 402 PAYMENT_REQUIRED - - 403 FORBIDDEN - - 404 NOT_FOUND - - 405 METHOD_NOT_ALLOWED - - 406 NOT_ACCEPTABLE - - 407 PROXY_AUTHENTICATION_REQUIRED - - 408 REQUEST_TIMEOUT - - 409 CONFLICT - - 410 GONE - - 411 LENGTH_REQUIRED - - 412 PRECONDITION_FAILED - - 413 PAYLOAD_TOO_LARGE - - 413 REQUEST_ENTITY_TOO_LARGE - - 414 URI_TOO_LONG - - 414 REQUEST_URI_TOO_LONG - - 415 UNSUPPORTED_MEDIA_TYPE - - 416 REQUESTED_RANGE_NOT_SATISFIABLE - - 417 EXPECTATION_FAILED - - 418 I_AM_A_TEAPOT - - 419 INSUFFICIENT_SPACE_ON_RESOURCE - - 420 METHOD_FAILURE - - 421 DESTINATION_LOCKED - - 422 UNPROCESSABLE_ENTITY - - 423 LOCKED - - 424 FAILED_DEPENDENCY - - 425 TOO_EARLY - - 426 UPGRADE_REQUIRED - - 428 PRECONDITION_REQUIRED - - 429 TOO_MANY_REQUESTS - - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - - 451 UNAVAILABLE_FOR_LEGAL_REASONS - - 500 INTERNAL_SERVER_ERROR - - 501 NOT_IMPLEMENTED - - 502 BAD_GATEWAY - - 503 SERVICE_UNAVAILABLE - - 504 GATEWAY_TIMEOUT - - 505 HTTP_VERSION_NOT_SUPPORTED - - 506 VARIANT_ALSO_NEGOTIATES - - 507 INSUFFICIENT_STORAGE - - 508 LOOP_DETECTED - - 509 BANDWIDTH_LIMIT_EXCEEDED - - 510 NOT_EXTENDED - - 511 NETWORK_AUTHENTICATION_REQUIRED - message: - type: string - example: Error message - code: - type: string - example: error.service.code - ContainerChangeDto: - required: - - action - type: object - properties: - action: - type: string - enum: - - start - - stop - ContainerBriefDto: - required: - - creator - - hash - - id - - internal_name - - name - - running - type: object - properties: - id: - type: integer - format: int64 - hash: - type: string - example: f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50 - name: - type: string - example: Air Quality - creator: - $ref: '#/components/schemas/UserBriefDto' - running: - type: boolean - example: true - database: - $ref: '#/components/schemas/DatabaseBriefDto' - created: - type: string - format: date-time - internal_name: - type: string - example: air-quality - CreatorBriefDto: - required: - - firstname - - lastname - type: object - properties: - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - DatabaseBriefDto: - required: - - id - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - identifier: - $ref: '#/components/schemas/IdentifierBriefDto' - engine: - type: string - example: mariadb:10.5 - owner: - $ref: '#/components/schemas/UserBriefDto' - container: - $ref: '#/components/schemas/ContainerBriefDto' - creator: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - is_public: - type: boolean - example: true - IdentifierBriefDto: - required: - - container id - - creators - - database id - - id - - publication_year - - title - - type - type: object - properties: - id: - type: integer - format: int64 - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - type: - type: string - enum: - - database - - subset - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - creators: - type: array - items: - $ref: '#/components/schemas/CreatorBriefDto' - container id: - type: integer - format: int64 - example: 1 - database id: - type: integer - format: int64 - example: 1 - query id: - type: integer - format: int64 - example: 1 - publication_year: - type: integer - format: int32 - example: 2022 - UserBriefDto: - required: - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - ImageCreateDto: - required: - - default_port - - dialect - - driver_class - - jdbc_method - - registry - - repository - - tag - type: object - properties: - registry: - type: string - example: docker.io/library - repository: - type: string - example: mariadb - tag: - type: string - dialect: - type: string - environment: - type: array - items: - $ref: '#/components/schemas/ImageEnvItemDto' - driver_class: - type: string - jdbc_method: - type: string - default_port: - maximum: 65535 - minimum: 1024 - type: integer - format: int32 - ContainerCreateRequestDto: - required: - - name - - repository - - tag - type: object - properties: - name: - type: string - example: Air Quality - repository: - type: string - example: mariadb - tag: - type: string - example: "10.5" - Constraints: - type: object - properties: - uniques: - type: array - items: - $ref: '#/components/schemas/Unique' - foreignKeys: - type: array - items: - $ref: '#/components/schemas/ForeignKey' - checks: - uniqueItems: true - type: array - items: - type: string - Container: - type: object - properties: - id: - type: integer - format: int64 - createdBy: - type: string - format: uuid - creator: - $ref: '#/components/schemas/User' - ownedBy: - type: string - format: uuid - owner: - $ref: '#/components/schemas/User' - name: - type: string - internalName: - type: string - hash: - type: string - imageId: - type: integer - format: int64 - port: - type: integer - format: int32 - database: - $ref: '#/components/schemas/Database' - image: - $ref: '#/components/schemas/ContainerImage' - ipAddress: - type: string - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - ContainerImage: - type: object - properties: - id: - type: integer - format: int64 - repository: - type: string - registry: - type: string - tag: - type: string - driverClass: - type: string - dialect: - type: string - jdbcMethod: - type: string - hash: - type: string - compiled: - type: string - format: date-time - size: - type: integer - format: int64 - defaultPort: - type: integer - format: int32 - environment: - type: array - items: - $ref: '#/components/schemas/ContainerImageEnvironmentItem' - dateFormats: - type: array - items: - $ref: '#/components/schemas/ContainerImageDate' - containers: - type: array - items: - $ref: '#/components/schemas/Container' - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - ContainerImageDate: - type: object - properties: - id: - type: integer - format: int64 - iid: - type: integer - format: int64 - image: - $ref: '#/components/schemas/ContainerImage' - example: - type: string - hasTime: - type: boolean - databaseFormat: - type: string - unixFormat: - type: string - createdAt: - type: string - format: date-time - ContainerImageEnvironmentItem: - type: object - properties: - id: - type: integer - format: int64 - iid: - type: integer - format: int64 - key: - type: string - value: - type: string - type: - type: string - enum: - - USERNAME - - PASSWORD - - PRIVILEGED_USERNAME - - PRIVILEGED_PASSWORD - image: - $ref: '#/components/schemas/ContainerImage' - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - Creator: - type: object - properties: - id: - type: integer - format: int64 - pid: - type: integer - format: int64 - firstname: - type: string - lastname: - type: string - affiliation: - type: string - orcid: - type: string - identifier: - $ref: '#/components/schemas/Identifier' - created: - type: string - format: date-time - creator: - $ref: '#/components/schemas/User' - lastModified: - type: string - format: date-time - Credential: - type: object - properties: - id: - type: string - format: uuid - type: - type: string - userId: - type: string - format: uuid - createdDate: - type: integer - format: int64 - secretData: - type: string - credentialData: - type: string - priority: - type: integer - format: int32 - user: - $ref: '#/components/schemas/User' - Database: - type: object - properties: - id: - type: integer - format: int64 - createdBy: - type: string - format: uuid - creator: - $ref: '#/components/schemas/User' - ownedBy: - type: string - format: uuid - owner: - $ref: '#/components/schemas/User' - container: - $ref: '#/components/schemas/Container' - name: - type: string - internalName: - type: string - exchangeName: - type: string - description: - type: string - contactPerson: - type: string - format: uuid - contact: - $ref: '#/components/schemas/User' - identifier: - $ref: '#/components/schemas/Identifier' - tables: - type: array - items: - $ref: '#/components/schemas/Table' - views: - type: array - items: - $ref: '#/components/schemas/View' - isPublic: - type: boolean - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - ForeignKey: - type: object - properties: - fkid: - type: integer - format: int64 - tid: - type: integer - format: int64 - tdbid: - type: integer - format: int64 - table: - $ref: '#/components/schemas/Table' - rtid: - type: integer - format: int64 - rtdbid: - type: integer - format: int64 - referencedTable: - $ref: '#/components/schemas/Table' - references: - type: array - items: - $ref: '#/components/schemas/ForeignKeyReference' - onUpdate: - type: string - enum: - - ReferenceType.RESTRICT - - ReferenceType.CASCADE - - ReferenceType.SET_NULL - - ReferenceType.NO_ACTION - - ReferenceType.SET_DEFAULT - onDelete: - type: string - enum: - - ReferenceType.RESTRICT - - ReferenceType.CASCADE - - ReferenceType.SET_NULL - - ReferenceType.NO_ACTION - - ReferenceType.SET_DEFAULT - ForeignKeyReference: - type: object - properties: - id: - type: integer - format: int64 - foreignKey: - $ref: '#/components/schemas/ForeignKey' - column: - $ref: '#/components/schemas/TableColumn' - referencedColumn: - $ref: '#/components/schemas/TableColumn' - Identifier: - required: - - publisher - type: object - properties: - id: - type: integer - format: int64 - containerId: - type: integer - format: int64 - databaseId: - type: integer - format: int64 - queryId: - type: integer - format: int64 - creator: - $ref: '#/components/schemas/User' - title: - type: string - description: - type: string - publisher: - type: string - language: - type: string - enum: - - LanguageType.AB - - LanguageType.AA - - LanguageType.AF - - LanguageType.AK - - LanguageType.SQ - - LanguageType.AM - - LanguageType.AR - - LanguageType.AN - - LanguageType.HY - - LanguageType.AS - - LanguageType.AV - - LanguageType.AE - - LanguageType.AY - - LanguageType.AZ - - LanguageType.BM - - LanguageType.BA - - LanguageType.EU - - LanguageType.BE - - LanguageType.BN - - LanguageType.BH - - LanguageType.BI - - LanguageType.BS - - LanguageType.BR - - LanguageType.BG - - LanguageType.MY - - LanguageType.CA - - LanguageType.KM - - LanguageType.CH - - LanguageType.CE - - LanguageType.NY - - LanguageType.ZH - - LanguageType.CU - - LanguageType.CV - - LanguageType.KW - - LanguageType.CO - - LanguageType.CR - - LanguageType.HR - - LanguageType.CS - - LanguageType.DA - - LanguageType.DV - - LanguageType.NL - - LanguageType.DZ - - LanguageType.EN - - LanguageType.EO - - LanguageType.ET - - LanguageType.EE - - LanguageType.FO - - LanguageType.FJ - - LanguageType.FI - - LanguageType.FR - - LanguageType.FF - - LanguageType.GD - - LanguageType.GL - - LanguageType.LG - - LanguageType.KA - - LanguageType.DE - - LanguageType.KI - - LanguageType.EL - - LanguageType.KL - - LanguageType.GN - - LanguageType.GU - - LanguageType.HT - - LanguageType.HA - - LanguageType.HE - - LanguageType.HZ - - LanguageType.HI - - LanguageType.HO - - LanguageType.HU - - LanguageType.IS - - LanguageType.IO - - LanguageType.IG - - LanguageType.ID - - LanguageType.IA - - LanguageType.IE - - LanguageType.IU - - LanguageType.IK - - LanguageType.GA - - LanguageType.IT - - LanguageType.JA - - LanguageType.JV - - LanguageType.KN - - LanguageType.KR - - LanguageType.KS - - LanguageType.KK - - LanguageType.RW - - LanguageType.KV - - LanguageType.KG - - LanguageType.KO - - LanguageType.KJ - - LanguageType.KU - - LanguageType.KY - - LanguageType.LO - - LanguageType.LA - - LanguageType.LV - - LanguageType.LB - - LanguageType.LI - - LanguageType.LN - - LanguageType.LT - - LanguageType.LU - - LanguageType.MK - - LanguageType.MG - - LanguageType.MS - - LanguageType.ML - - LanguageType.MT - - LanguageType.GV - - LanguageType.MI - - LanguageType.MR - - LanguageType.MH - - LanguageType.RO - - LanguageType.MN - - LanguageType.NA - - LanguageType.NV - - LanguageType.ND - - LanguageType.NG - - LanguageType.NE - - LanguageType.SE - - LanguageType.NO - - LanguageType.NB - - LanguageType.NN - - LanguageType.II - - LanguageType.OC - - LanguageType.OJ - - LanguageType.OR - - LanguageType.OM - - LanguageType.OS - - LanguageType.PI - - LanguageType.PA - - LanguageType.PS - - LanguageType.FA - - LanguageType.PL - - LanguageType.PT - - LanguageType.QU - - LanguageType.RM - - LanguageType.RN - - LanguageType.RU - - LanguageType.SM - - LanguageType.SG - - LanguageType.SA - - LanguageType.SC - - LanguageType.SR - - LanguageType.SN - - LanguageType.SD - - LanguageType.SI - - LanguageType.SK - - LanguageType.SL - - LanguageType.SO - - LanguageType.ST - - LanguageType.NR - - LanguageType.ES - - LanguageType.SU - - LanguageType.SW - - LanguageType.SS - - LanguageType.SV - - LanguageType.TL - - LanguageType.TY - - LanguageType.TG - - LanguageType.TA - - LanguageType.TT - - LanguageType.TE - - LanguageType.TH - - LanguageType.BO - - LanguageType.TI - - LanguageType.TO - - LanguageType.TS - - LanguageType.TN - - LanguageType.TR - - LanguageType.TK - - LanguageType.TW - - LanguageType.UG - - LanguageType.UK - - LanguageType.UR - - LanguageType.UZ - - LanguageType.VE - - LanguageType.VI - - LanguageType.VO - - LanguageType.WA - - LanguageType.CY - - LanguageType.FY - - LanguageType.WO - - LanguageType.XH - - LanguageType.YI - - LanguageType.YO - - LanguageType.ZA - - LanguageType.ZU - license: - $ref: '#/components/schemas/License' - type: - type: string - enum: - - DATABASE - - SUBSET - query: - type: string - queryNormalized: - type: string - queryHash: - type: string - resultHash: - type: string - execution: - type: string - format: date-time - resultNumber: - type: integer - format: int64 - publicationYear: - type: integer - format: int32 - publicationMonth: - type: integer - format: int32 - publicationDay: - type: integer - format: int32 - visibility: - type: string - enum: - - VisibilityType.EVERYONE - - VisibilityType.SELF - database: - $ref: '#/components/schemas/Database' - related: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifier' - doi: - type: string - creators: - type: array - items: - $ref: '#/components/schemas/Creator' - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - License: - type: object - properties: - identifier: - type: string - uri: - type: string - RelatedIdentifier: - type: object - properties: - id: - type: integer - format: int64 - iid: - type: integer - format: int64 - value: - type: string - type: - type: string - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - creator: - $ref: '#/components/schemas/User' - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - Role: - type: object - properties: - id: - type: string - format: uuid - name: - type: string - realmId: - type: string - format: uuid - users: - type: array - items: - $ref: '#/components/schemas/User' - Table: - type: object - properties: - id: - type: integer - format: int64 - tdbid: - type: integer - format: int64 - creator: - $ref: '#/components/schemas/User' - owner: - $ref: '#/components/schemas/User' - name: - type: string - internalName: - type: string - queueName: - type: string - routingKey: - type: string - description: - type: string - database: - $ref: '#/components/schemas/Database' - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - constraints: - $ref: '#/components/schemas/Constraints' - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - TableColumn: - type: object - properties: - id: - type: integer - format: int64 - tid: - type: integer - format: int64 - cdbid: - type: integer - format: int64 - dfid: - type: integer - format: int64 - dateFormat: - $ref: '#/components/schemas/ContainerImageDate' - table: - $ref: '#/components/schemas/Table' - view: - $ref: '#/components/schemas/View' - creator: - $ref: '#/components/schemas/User' - name: - type: string - autoGenerated: - type: boolean - internalName: - type: string - isPrimaryKey: - type: boolean - indexLength: - type: integer - format: int32 - alias: - type: string - columnType: - type: string - enum: - - TableColumnType.ENUM - - TableColumnType.NUMBER - - TableColumnType.DECIMAL - - TableColumnType.STRING - - TableColumnType.TEXT - - TableColumnType.BOOLEAN - - TableColumnType.DATE - - TableColumnType.TIMESTAMP - - TableColumnType.BLOB - length: - type: integer - format: int32 - isNullAllowed: - type: boolean - enumValues: - type: array - items: - type: string - ordinalPosition: - type: integer - format: int32 - created: - type: string - format: date-time - concept: - $ref: '#/components/schemas/TableColumnConcept' - unit: - $ref: '#/components/schemas/TableColumnUnit' - lastModified: - type: string - format: date-time - TableColumnConcept: - type: object - properties: - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - TableColumnUnit: - type: object - properties: - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - Unique: - type: object - properties: - uid: - type: integer - format: int64 - tid: - type: integer - format: int64 - tdbid: - type: integer - format: int64 - table: - $ref: '#/components/schemas/Table' - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - User: - type: object - properties: - id: - type: string - format: uuid - username: - type: string - firstname: - type: string - lastname: - type: string - realmId: - type: string - format: uuid - email: - type: string - emailVerified: - type: boolean - enabled: - type: boolean - createdTimestamp: - type: integer - format: int64 - databasePassword: - type: string - attributes: - type: array - items: - $ref: '#/components/schemas/UserAttribute' - credentials: - type: array - items: - $ref: '#/components/schemas/Credential' - containers: - type: array - items: - $ref: '#/components/schemas/Container' - databases: - type: array - items: - $ref: '#/components/schemas/Database' - identifiers: - type: array - items: - $ref: '#/components/schemas/Identifier' - roles: - type: array - items: - $ref: '#/components/schemas/Role' - tables: - type: array - items: - $ref: '#/components/schemas/Table' - UserAttribute: - type: object - properties: - id: - type: string - format: uuid - userId: - type: string - format: uuid - name: - type: string - value: - type: string - user: - $ref: '#/components/schemas/User' - View: - type: object - properties: - id: - type: integer - format: int64 - vcid: - type: integer - format: int64 - vdbid: - type: integer - format: int64 - createdBy: - type: string - format: uuid - creator: - $ref: '#/components/schemas/User' - database: - $ref: '#/components/schemas/Database' - name: - type: string - internalName: - type: string - isPublic: - type: boolean - isInitialView: - type: boolean - query: - type: string - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - ColumnBriefDto: - required: - - column_type - - database_id - - id - - internal_name - - name - - table_id - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: date - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - column_type: - type: string - example: date - enum: - - enum - - number - - decimal - - string - - text - - boolean - - date - - timestamp - - blob - ContainerDto: - required: - - created - - hash - - id - - internal_name - - name - - running - type: object - properties: - id: - type: integer - format: int64 - hash: - type: string - example: f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50 - name: - type: string - example: Air Quality - state: - type: string - example: running - enum: - - created - - restarting - - running - - paused - - exited - - dead - database: - $ref: '#/components/schemas/DatabaseDto' - running: - type: boolean - example: true - image: - $ref: '#/components/schemas/ImageBriefDto' - port: - type: integer - format: int32 - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21.678396092Z - internal_name: - type: string - example: air-quality - ip_address: - type: string - CreatorDto: - required: - - firstname - - id - - lastname - type: object - properties: - id: - type: integer - format: int64 - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - orcid: - type: string - example: 0000-0002-1825-0097 - DatabaseAccessDto: - required: - - type - - user - type: object - properties: - user: - $ref: '#/components/schemas/UserDto' - type: - type: string - enum: - - read - - write_own - - write_all - created: - type: string - format: date-time - DatabaseDto: - required: - - creator - - exchange_name - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - identifier: - $ref: '#/components/schemas/IdentifierDto' - description: - type: string - example: Weather Australia 2009-2021 - tables: - type: array - items: - $ref: '#/components/schemas/TableBriefDto' - views: - type: array - items: - $ref: '#/components/schemas/ViewBriefDto' - image: - $ref: '#/components/schemas/ImageDto' - container: - $ref: '#/components/schemas/ContainerDto' - accesses: - type: array - items: - $ref: '#/components/schemas/DatabaseAccessDto' - creator: - $ref: '#/components/schemas/UserBriefDto' - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - exchange_name: - type: string - example: dbrepo/air_quality - internal_name: - type: string - example: weather_australia - is_public: - type: boolean - example: true - IdentifierDto: - required: - - container id - - creators - - database id - - execution - - publication_year - - query - - query_hash - - query_normalized - - result_hash - - result_number - - title - - type - - visibility - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - query: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - execution: - type: string - format: date-time - visibility: - type: string - example: everyone - enum: - - everyone - - self - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - license: - $ref: '#/components/schemas/LicenseDto' - creators: - type: array - items: - $ref: '#/components/schemas/CreatorDto' - created: - type: string - format: date-time - container id: - type: integer - format: int64 - example: 1 - database id: - type: integer - format: int64 - example: 1 - query id: - type: integer - format: int64 - example: 1 - query_normalized: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - related: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierDto' - query_hash: - type: string - description: query hash in sha512 - result_hash: - type: string - result_number: - type: integer - format: int64 - example: 1 - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - last_modified: - type: string - format: date-time - ImageBriefDto: - required: - - id - - registry - - repository - - tag - type: object - properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - repository: - type: string - example: mariadb - tag: - type: string - example: "10.5" - LicenseDto: - required: - - identifier - - uri - type: object - properties: - identifier: - type: string - example: MIT - uri: - type: string - example: https://opensource.org/licenses/MIT - RelatedIdentifierDto: - required: - - created - - id - - value - type: object - properties: - id: - type: integer - format: int64 - value: - type: string - example: 10.70124/dc4zh-9ce78 - type: - type: string - example: DOI - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - example: Cites - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - created: - type: string - format: date-time - last_modified: - type: string - format: date-time - TableBriefDto: - required: - - columns - - description - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - owner: - $ref: '#/components/schemas/UserBriefDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - internal_name: - type: string - example: air_quality - UserAttributeDto: - type: object - properties: - name: - type: string - example: theme_dark - value: - type: string - example: "true" - UserDto: - required: - - email - - email_verified - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - attributes: - type: array - items: - $ref: '#/components/schemas/UserAttributeDto' - containers: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - databases: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - identifiers: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - email: - type: string - example: jcarberry@brown.edu - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - ViewBriefDto: - required: - - created - - creator - - id - - internal_name - - name - - query - - vdbid - type: object - properties: - id: - type: integer - format: int64 - vdbid: - type: integer - format: int64 - name: - type: string - example: Air Quality - query: - type: string - example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC - created: - type: string - format: date-time - creator: - $ref: '#/components/schemas/UserDto' - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - initial_view: - type: boolean - description: True if it is the default view for the database - example: true - last_modified: - type: string - format: date-time - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/.swagger/api-data.yaml b/.docs/.swagger/api-data.yaml index 4d40f4a702c2c8b62c8e555bf4c7191543902132..2dd3a10e3034a394e10836160d00a3e88f011023 100644 --- a/.docs/.swagger/api-data.yaml +++ b/.docs/.swagger/api-data.yaml @@ -8,7 +8,7 @@ info: license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.3.0 + version: $TAG externalDocs: description: Sourcecode Documentation url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services diff --git a/.docs/.swagger/api-database.yaml b/.docs/.swagger/api-database.yaml deleted file mode 100644 index 40b76995cc7f1fb0776ba1cd9e7dabb012ca377f..0000000000000000000000000000000000000000 --- a/.docs/.swagger/api-database.yaml +++ /dev/null @@ -1,1626 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository Database Service API - description: Service that manages the databases - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.2.0 -externalDocs: - description: Sourcecode Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services -servers: -- url: http://localhost:9092 - description: Generated server url -- url: https://dbrepo2.tuwien.ac.at - description: Sandbox -paths: - /api/container/{id}/database/{databaseId}/visibility: - put: - tags: - - database-endpoint - summary: Update database - operationId: visibility - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseModifyVisibilityDto' - required: true - responses: - "404": - description: Database or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Visibility modified successfully - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseDto' - "405": - description: Visibility modification is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/transfer: - put: - tags: - - database-endpoint - summary: Transfer database - operationId: transfer - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseTransferDto' - required: true - responses: - "202": - description: Transfer of ownership was successful - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseDto' - "404": - description: Database or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Transfer of ownership is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/access/{username}: - put: - tags: - - access-endpoint - summary: Modify access to some database - operationId: update - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: username - in: path - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseModifyAccessDto' - required: true - responses: - "404": - description: Database or user not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Modify access query or database connection is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Modify access succeeded - "403": - description: Modify access not permitted when no access is granted in the - first place - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - access-endpoint - summary: Revoke access to some database - operationId: revoke - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: username - in: path - required: true - schema: - type: string - responses: - "404": - description: User with access was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Modify access query or database connection is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Revoke of access not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Revoke of access not permitted as no access was found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Revoked access successfully - security: - - bearerAuth: [] - /api/container/{id}/database: - get: - tags: - - database-endpoint - summary: List databases - operationId: list - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: List of databases - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/DatabaseBriefDto' - post: - tags: - - database-endpoint - summary: Create database - operationId: create - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseCreateDto' - required: true - responses: - "201": - description: Created a new database - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseBriefDto' - "404": - description: "Container, user or database could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "406": - description: Failed to create user at broker service or virtual host could - not be reached at broker service - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Database create permission is missing or grant permissions - at broker service failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Container image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Connection to the container failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Database create query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Database name already exist or query store could not be created - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/access: - get: - tags: - - access-endpoint - summary: Check access to some database - operationId: find - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "403": - description: No access to this database - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Found database access - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseAccessDto' - "405": - description: Check access is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - post: - tags: - - access-endpoint - summary: Give access to some database - operationId: create_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseGiveAccessDto' - required: true - responses: - "202": - description: Granting access succeeded - "405": - description: Granting access not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Granting access query or database connection is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Database or user not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}: - get: - tags: - - database-endpoint - summary: Find some database - operationId: findById - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "405": - description: Database information is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Database or container could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Database found successfully - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseDto' - security: - - bearerAuth: [] - delete: - tags: - - database-endpoint - summary: Delete some database - operationId: delete - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "400": - description: Database delete query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Container or database could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Database delete permission is missing or revoke permissions - at broker service failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Container image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "406": - description: Failed to delete user at broker service or virtual host could - not be reached at broker service - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Connection to the container failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Deleted a database - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseBriefDto' - security: - - bearerAuth: [] - /api/container/{id}/database/license: - get: - tags: - - license-endpoint - summary: Get all licenses - operationId: list_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: List of licenses - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/LicenseDto' -components: - schemas: - DatabaseModifyVisibilityDto: - required: - - is_public - type: object - properties: - is_public: - type: boolean - example: true - ApiErrorDto: - required: - - code - - message - - status - type: object - properties: - status: - type: string - example: STATUS - enum: - - 100 CONTINUE - - 101 SWITCHING_PROTOCOLS - - 102 PROCESSING - - 103 EARLY_HINTS - - 103 CHECKPOINT - - 200 OK - - 201 CREATED - - 202 ACCEPTED - - 203 NON_AUTHORITATIVE_INFORMATION - - 204 NO_CONTENT - - 205 RESET_CONTENT - - 206 PARTIAL_CONTENT - - 207 MULTI_STATUS - - 208 ALREADY_REPORTED - - 226 IM_USED - - 300 MULTIPLE_CHOICES - - 301 MOVED_PERMANENTLY - - 302 FOUND - - 302 MOVED_TEMPORARILY - - 303 SEE_OTHER - - 304 NOT_MODIFIED - - 305 USE_PROXY - - 307 TEMPORARY_REDIRECT - - 308 PERMANENT_REDIRECT - - 400 BAD_REQUEST - - 401 UNAUTHORIZED - - 402 PAYMENT_REQUIRED - - 403 FORBIDDEN - - 404 NOT_FOUND - - 405 METHOD_NOT_ALLOWED - - 406 NOT_ACCEPTABLE - - 407 PROXY_AUTHENTICATION_REQUIRED - - 408 REQUEST_TIMEOUT - - 409 CONFLICT - - 410 GONE - - 411 LENGTH_REQUIRED - - 412 PRECONDITION_FAILED - - 413 PAYLOAD_TOO_LARGE - - 413 REQUEST_ENTITY_TOO_LARGE - - 414 URI_TOO_LONG - - 414 REQUEST_URI_TOO_LONG - - 415 UNSUPPORTED_MEDIA_TYPE - - 416 REQUESTED_RANGE_NOT_SATISFIABLE - - 417 EXPECTATION_FAILED - - 418 I_AM_A_TEAPOT - - 419 INSUFFICIENT_SPACE_ON_RESOURCE - - 420 METHOD_FAILURE - - 421 DESTINATION_LOCKED - - 422 UNPROCESSABLE_ENTITY - - 423 LOCKED - - 424 FAILED_DEPENDENCY - - 425 TOO_EARLY - - 426 UPGRADE_REQUIRED - - 428 PRECONDITION_REQUIRED - - 429 TOO_MANY_REQUESTS - - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - - 451 UNAVAILABLE_FOR_LEGAL_REASONS - - 500 INTERNAL_SERVER_ERROR - - 501 NOT_IMPLEMENTED - - 502 BAD_GATEWAY - - 503 SERVICE_UNAVAILABLE - - 504 GATEWAY_TIMEOUT - - 505 HTTP_VERSION_NOT_SUPPORTED - - 506 VARIANT_ALSO_NEGOTIATES - - 507 INSUFFICIENT_STORAGE - - 508 LOOP_DETECTED - - 509 BANDWIDTH_LIMIT_EXCEEDED - - 510 NOT_EXTENDED - - 511 NETWORK_AUTHENTICATION_REQUIRED - message: - type: string - example: Error message - code: - type: string - example: error.service.code - ColumnBriefDto: - required: - - column_type - - database_id - - id - - internal_name - - name - - table_id - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: date - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - column_type: - type: string - example: date - enum: - - enum - - number - - decimal - - string - - text - - boolean - - date - - timestamp - - blob - ContainerDto: - required: - - created - - hash - - id - - internal_name - - name - - running - type: object - properties: - id: - type: integer - format: int64 - hash: - type: string - example: f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50 - name: - type: string - example: Air Quality - state: - type: string - example: running - enum: - - created - - restarting - - running - - paused - - exited - - dead - database: - $ref: '#/components/schemas/DatabaseDto' - running: - type: boolean - example: true - image: - $ref: '#/components/schemas/ImageBriefDto' - port: - type: integer - format: int32 - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21.678396092Z - internal_name: - type: string - example: air-quality - ip_address: - type: string - CreatorDto: - required: - - firstname - - id - - lastname - type: object - properties: - id: - type: integer - format: int64 - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - orcid: - type: string - example: 0000-0002-1825-0097 - DatabaseAccessDto: - required: - - type - - user - type: object - properties: - user: - $ref: '#/components/schemas/UserDto' - type: - type: string - enum: - - read - - write_own - - write_all - created: - type: string - format: date-time - DatabaseDto: - required: - - creator - - exchange_name - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - identifier: - $ref: '#/components/schemas/IdentifierDto' - description: - type: string - example: Weather Australia 2009-2021 - tables: - type: array - items: - $ref: '#/components/schemas/TableBriefDto' - views: - type: array - items: - $ref: '#/components/schemas/ViewBriefDto' - image: - $ref: '#/components/schemas/ImageDto' - container: - $ref: '#/components/schemas/ContainerDto' - accesses: - type: array - items: - $ref: '#/components/schemas/DatabaseAccessDto' - creator: - $ref: '#/components/schemas/UserBriefDto' - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - exchange_name: - type: string - example: dbrepo/air_quality - internal_name: - type: string - example: weather_australia - is_public: - type: boolean - example: true - IdentifierDto: - required: - - container id - - creators - - database id - - execution - - publication_year - - query - - query_hash - - query_normalized - - result_hash - - result_number - - title - - type - - visibility - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - query: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - execution: - type: string - format: date-time - visibility: - type: string - example: everyone - enum: - - everyone - - self - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - license: - $ref: '#/components/schemas/LicenseDto' - creators: - type: array - items: - $ref: '#/components/schemas/CreatorDto' - created: - type: string - format: date-time - container id: - type: integer - format: int64 - example: 1 - database id: - type: integer - format: int64 - example: 1 - query id: - type: integer - format: int64 - example: 1 - query_normalized: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - related: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierDto' - query_hash: - type: string - description: query hash in sha512 - result_hash: - type: string - result_number: - type: integer - format: int64 - example: 1 - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - last_modified: - type: string - format: date-time - ImageBriefDto: - required: - - id - - registry - - repository - - tag - type: object - properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - repository: - type: string - example: mariadb - tag: - type: string - example: "10.5" - ImageDateDto: - required: - - database_format - - example - - has_time - - id - - unix_format - type: object - properties: - id: - type: integer - format: int64 - example: - type: string - example: 30.01.2022 - database_format: - type: string - example: '%d.%c.%Y' - unix_format: - type: string - example: dd.MM.YYYY - has_time: - type: boolean - example: false - created_at: - type: string - format: date-time - ImageDto: - required: - - default_port - - dialect - - driver_class - - id - - jdbc_method - - registry - - repository - - tag - type: object - properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - repository: - type: string - example: mariadb - tag: - type: string - example: "10.5" - dialect: - type: string - example: org.hibernate.dialect.MariaDBDialect - hash: - type: string - example: sha256:c5ec7353d87dfc35067e7bffeb25d6a0d52dad41e8b7357213e3b12d6e7ff78e - compiled: - type: string - format: date-time - example: 2021-03-12T15:26:21.678396092Z - size: - type: integer - example: 314295447 - driver_class: - type: string - example: org.mariadb.jdbc.Driver - date_formats: - type: array - items: - $ref: '#/components/schemas/ImageDateDto' - jdbc_method: - type: string - example: mariadb - default_port: - type: integer - format: int32 - example: 3306 - LicenseDto: - required: - - identifier - - uri - type: object - properties: - identifier: - type: string - example: MIT - uri: - type: string - example: https://opensource.org/licenses/MIT - RelatedIdentifierDto: - required: - - created - - id - - value - type: object - properties: - id: - type: integer - format: int64 - value: - type: string - example: 10.70124/dc4zh-9ce78 - type: - type: string - example: DOI - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - example: Cites - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - created: - type: string - format: date-time - last_modified: - type: string - format: date-time - TableBriefDto: - required: - - columns - - description - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - owner: - $ref: '#/components/schemas/UserBriefDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - internal_name: - type: string - example: air_quality - UserAttributeDto: - type: object - properties: - name: - type: string - example: theme_dark - value: - type: string - example: "true" - UserBriefDto: - required: - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - UserDto: - required: - - email - - email_verified - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - attributes: - type: array - items: - $ref: '#/components/schemas/UserAttributeDto' - containers: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - databases: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - identifiers: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - email: - type: string - example: jcarberry@brown.edu - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - ViewBriefDto: - required: - - created - - creator - - id - - internal_name - - name - - query - - vdbid - type: object - properties: - id: - type: integer - format: int64 - vdbid: - type: integer - format: int64 - name: - type: string - example: Air Quality - query: - type: string - example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC - created: - type: string - format: date-time - creator: - $ref: '#/components/schemas/UserDto' - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - initial_view: - type: boolean - description: True if it is the default view for the database - example: true - last_modified: - type: string - format: date-time - DatabaseTransferDto: - required: - - username - type: object - properties: - username: - type: string - DatabaseModifyAccessDto: - required: - - type - type: object - properties: - type: - type: string - enum: - - read - - write_own - - write_all - DatabaseCreateDto: - required: - - is_public - - name - type: object - properties: - name: - type: string - example: Air Quality - is_public: - type: boolean - example: true - ContainerBriefDto: - required: - - creator - - hash - - id - - internal_name - - name - - running - type: object - properties: - id: - type: integer - format: int64 - hash: - type: string - example: f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50 - name: - type: string - example: Air Quality - creator: - $ref: '#/components/schemas/UserBriefDto' - running: - type: boolean - example: true - database: - $ref: '#/components/schemas/DatabaseBriefDto' - created: - type: string - format: date-time - internal_name: - type: string - example: air-quality - CreatorBriefDto: - required: - - firstname - - lastname - type: object - properties: - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - DatabaseBriefDto: - required: - - id - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - identifier: - $ref: '#/components/schemas/IdentifierBriefDto' - engine: - type: string - example: mariadb:10.5 - owner: - $ref: '#/components/schemas/UserBriefDto' - container: - $ref: '#/components/schemas/ContainerBriefDto' - creator: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - is_public: - type: boolean - example: true - IdentifierBriefDto: - required: - - container id - - creators - - database id - - id - - publication_year - - title - - type - type: object - properties: - id: - type: integer - format: int64 - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - type: - type: string - enum: - - database - - subset - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - creators: - type: array - items: - $ref: '#/components/schemas/CreatorBriefDto' - container id: - type: integer - format: int64 - example: 1 - database id: - type: integer - format: int64 - example: 1 - query id: - type: integer - format: int64 - example: 1 - publication_year: - type: integer - format: int32 - example: 2022 - DatabaseGiveAccessDto: - required: - - type - - username - type: object - properties: - username: - type: string - type: - type: string - enum: - - read - - write_own - - write_all - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/.swagger/api-identifier.yaml b/.docs/.swagger/api-identifier.yaml deleted file mode 100644 index 002b392bb6df32db0e8153596b5d397297ffb6af..0000000000000000000000000000000000000000 --- a/.docs/.swagger/api-identifier.yaml +++ /dev/null @@ -1,1333 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository Identifier Service API - description: Service that manages the identifiers - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.2.0 -externalDocs: - description: Sourcecode Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services -servers: -- url: http://localhost:9096 - description: Generated server url -- url: https://dbrepo2.tuwien.ac.at - description: Sandbox -paths: - /api/pid/{id}: - put: - tags: - - persistence-endpoint - summary: Update some identifier - operationId: update - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierUpdateDto' - required: true - responses: - "405": - description: Updating identifier not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Updated identifier - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierDto' - "404": - description: Identifier or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Identifier data is not valid to the form - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "406": - description: Updating identifier not allowed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - persistence-endpoint - summary: Delete some identifier - operationId: delete - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "404": - description: Identifier could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Deleting identifier not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Deleted identifier - security: - - bearerAuth: [] - /api/identifier: - get: - tags: - - identifier-endpoint - summary: Find identifiers - operationId: list - parameters: - - name: dbid - in: query - required: false - schema: - type: integer - format: int64 - - name: qid - in: query - required: false - schema: - type: integer - format: int64 - - name: type - in: query - required: false - schema: - type: string - enum: - - database - - subset - responses: - "200": - description: List identifiers - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IdentifierDto' - post: - tags: - - identifier-endpoint - summary: Create identifier - operationId: create - parameters: - - name: Authorization - in: header - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierCreateDto' - required: true - responses: - "406": - description: Creating identifier not allowed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Identifier form contains invalid request data - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Query information could not be retrieved - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Created identifier - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierDto' - "403": - description: Insufficient access rights or authorities - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Creating identifier not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Identifier for this resource already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/pid/{pid}: - get: - tags: - - persistence-endpoint - summary: Find some identifier - operationId: find - parameters: - - name: pid - in: path - required: true - schema: - type: integer - format: int64 - - name: Accept - in: header - required: true - schema: - type: string - responses: - "200": - description: Found identifier successfully - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierDto' - text/csv: {} - text/xml: {} - text/bibliography: {} - text/bibliography; style=apa: {} - text/bibliography; style=ieee: {} - text/bibliography; style=bibtex: {} - "404": - description: Identifier could not be exported from database as the resource - was not found - content: - text/csv: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: "Identifier could not be exported, the requested style is not\ - \ known" - content: - text/bibliography: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Identifier could not exported from database as it is not reachable - content: - text/csv: - schema: - $ref: '#/components/schemas/ApiErrorDto' -components: - schemas: - CreatorDto: - required: - - firstname - - id - - lastname - type: object - properties: - id: - type: integer - format: int64 - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - orcid: - type: string - example: 0000-0002-1825-0097 - IdentifierUpdateDto: - required: - - cid - - creators - - dbid - - publication_year - - title - - type - - visibility - type: object - properties: - cid: - type: integer - format: int64 - dbid: - type: integer - format: int64 - qid: - type: integer - format: int64 - doi: - type: string - example: 10.1038/nphys1170 - type: - type: string - enum: - - database - - subset - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - visibility: - type: string - example: everyone - enum: - - everyone - - self - publisher: - type: string - example: TU Wien - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - license: - $ref: '#/components/schemas/LicenseDto' - creators: - type: array - items: - $ref: '#/components/schemas/CreatorDto' - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - related_identifiers: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierCreateDto' - LicenseDto: - required: - - identifier - - uri - type: object - properties: - identifier: - type: string - example: MIT - uri: - type: string - example: https://opensource.org/licenses/MIT - RelatedIdentifierCreateDto: - required: - - value - type: object - properties: - value: - type: string - example: 10.70124/dc4zh-9ce78 - type: - type: string - example: DOI - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - example: Cites - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - ApiErrorDto: - required: - - code - - message - - status - type: object - properties: - status: - type: string - example: STATUS - enum: - - 100 CONTINUE - - 101 SWITCHING_PROTOCOLS - - 102 PROCESSING - - 103 EARLY_HINTS - - 103 CHECKPOINT - - 200 OK - - 201 CREATED - - 202 ACCEPTED - - 203 NON_AUTHORITATIVE_INFORMATION - - 204 NO_CONTENT - - 205 RESET_CONTENT - - 206 PARTIAL_CONTENT - - 207 MULTI_STATUS - - 208 ALREADY_REPORTED - - 226 IM_USED - - 300 MULTIPLE_CHOICES - - 301 MOVED_PERMANENTLY - - 302 FOUND - - 302 MOVED_TEMPORARILY - - 303 SEE_OTHER - - 304 NOT_MODIFIED - - 305 USE_PROXY - - 307 TEMPORARY_REDIRECT - - 308 PERMANENT_REDIRECT - - 400 BAD_REQUEST - - 401 UNAUTHORIZED - - 402 PAYMENT_REQUIRED - - 403 FORBIDDEN - - 404 NOT_FOUND - - 405 METHOD_NOT_ALLOWED - - 406 NOT_ACCEPTABLE - - 407 PROXY_AUTHENTICATION_REQUIRED - - 408 REQUEST_TIMEOUT - - 409 CONFLICT - - 410 GONE - - 411 LENGTH_REQUIRED - - 412 PRECONDITION_FAILED - - 413 PAYLOAD_TOO_LARGE - - 413 REQUEST_ENTITY_TOO_LARGE - - 414 URI_TOO_LONG - - 414 REQUEST_URI_TOO_LONG - - 415 UNSUPPORTED_MEDIA_TYPE - - 416 REQUESTED_RANGE_NOT_SATISFIABLE - - 417 EXPECTATION_FAILED - - 418 I_AM_A_TEAPOT - - 419 INSUFFICIENT_SPACE_ON_RESOURCE - - 420 METHOD_FAILURE - - 421 DESTINATION_LOCKED - - 422 UNPROCESSABLE_ENTITY - - 423 LOCKED - - 424 FAILED_DEPENDENCY - - 425 TOO_EARLY - - 426 UPGRADE_REQUIRED - - 428 PRECONDITION_REQUIRED - - 429 TOO_MANY_REQUESTS - - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - - 451 UNAVAILABLE_FOR_LEGAL_REASONS - - 500 INTERNAL_SERVER_ERROR - - 501 NOT_IMPLEMENTED - - 502 BAD_GATEWAY - - 503 SERVICE_UNAVAILABLE - - 504 GATEWAY_TIMEOUT - - 505 HTTP_VERSION_NOT_SUPPORTED - - 506 VARIANT_ALSO_NEGOTIATES - - 507 INSUFFICIENT_STORAGE - - 508 LOOP_DETECTED - - 509 BANDWIDTH_LIMIT_EXCEEDED - - 510 NOT_EXTENDED - - 511 NETWORK_AUTHENTICATION_REQUIRED - message: - type: string - example: Error message - code: - type: string - example: error.service.code - IdentifierDto: - required: - - container id - - creators - - database id - - execution - - publication_year - - query - - query_hash - - query_normalized - - result_hash - - result_number - - title - - type - - visibility - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - query: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - execution: - type: string - format: date-time - visibility: - type: string - example: everyone - enum: - - everyone - - self - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - license: - $ref: '#/components/schemas/LicenseDto' - creators: - type: array - items: - $ref: '#/components/schemas/CreatorDto' - created: - type: string - format: date-time - container id: - type: integer - format: int64 - example: 1 - database id: - type: integer - format: int64 - example: 1 - query id: - type: integer - format: int64 - example: 1 - query_normalized: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - related: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierDto' - query_hash: - type: string - description: query hash in sha512 - result_hash: - type: string - result_number: - type: integer - format: int64 - example: 1 - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - last_modified: - type: string - format: date-time - RelatedIdentifierDto: - required: - - created - - id - - value - type: object - properties: - id: - type: integer - format: int64 - value: - type: string - example: 10.70124/dc4zh-9ce78 - type: - type: string - example: DOI - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - example: Cites - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - created: - type: string - format: date-time - last_modified: - type: string - format: date-time - CreatorCreateDto: - required: - - firstname - - lastname - type: object - properties: - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - orcid: - type: string - example: 0000-0002-1825-0097 - IdentifierCreateDto: - required: - - cid - - creators - - dbid - - publication_year - - title - - type - - visibility - type: object - properties: - cid: - type: integer - format: int64 - dbid: - type: integer - format: int64 - qid: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - visibility: - type: string - example: everyone - enum: - - everyone - - self - publisher: - type: string - example: TU Wien - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - license: - $ref: '#/components/schemas/LicenseDto' - creators: - type: array - items: - $ref: '#/components/schemas/CreatorCreateDto' - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - related_identifiers: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierCreateDto' - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/.swagger/api-metadata.yaml b/.docs/.swagger/api-metadata.yaml index b92b07c6709e5f92c26bd9917c6553da034c2988..55cafa02395b0c4381155cb29be50279f4b8ff3c 100644 --- a/.docs/.swagger/api-metadata.yaml +++ b/.docs/.swagger/api-metadata.yaml @@ -8,14 +8,14 @@ info: license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.3.0 + version: $TAG externalDocs: description: Sourcecode Documentation url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services servers: - url: http://localhost:9099 description: Generated server url -- url: https://dbrepo2.tuwien.ac.at +- url: https://test.dbrepo.tuwien.ac.at description: Sandbox paths: /api/database/{databaseId}/table/{tableId}/history: @@ -38,26 +38,26 @@ paths: type: integer format: int64 responses: - "404": - description: "Table, database or user could not be found" + "400": + description: Table history query is malformed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed + "403": + description: Find table history is not permitted content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find table history is not permitted + "409": + description: Query store failed to query table history content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Table history query is malformed + "404": + description: "Table, database or user could not be found" content: application/json: schema: @@ -70,12 +70,6 @@ paths: type: array items: $ref: '#/components/schemas/TableHistoryDto' - "504": - description: Query store failed to query table history - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] head: @@ -97,26 +91,26 @@ paths: type: integer format: int64 responses: - "404": - description: "Table, database or user could not be found" + "400": + description: Table history query is malformed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed + "403": + description: Find table history is not permitted content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find table history is not permitted + "409": + description: Query store failed to query table history content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Table history query is malformed + "404": + description: "Table, database or user could not be found" content: application/json: schema: @@ -129,12 +123,6 @@ paths: type: array items: $ref: '#/components/schemas/TableHistoryDto' - "504": - description: Query store failed to query table history - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/database/{databaseId}/table/{tableId}/data: @@ -188,42 +176,36 @@ paths: schema: type: string responses: - "200": - description: OK + "403": + description: Access to the database is forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "400": + description: Table data is malformed or image is not supported + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Get table data successfully content: '*/*': schema: $ref: '#/components/schemas/QueryResultDto' - security: - - bearerAuth: [] - put: - tags: - - table-data-endpoint - summary: Update data - operationId: update_6 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TableCsvUpdateDto' - required: true - responses: - "200": - description: OK - deprecated: true + "404": + description: Table or database could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "422": + description: Could not import csv via sidecar + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] post: @@ -251,15 +233,37 @@ paths: $ref: '#/components/schemas/TableCsvDto' required: true responses: - "200": - description: OK + "403": + description: Access to the database is forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Inserted data successfully + content: + '*/*': + schema: + type: object + "400": + description: Insert table data is malformed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: Table or database could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] delete: tags: - table-data-endpoint summary: Delete data - operationId: delete_7 + operationId: delete_6 parameters: - name: databaseId in: path @@ -280,8 +284,26 @@ paths: $ref: '#/components/schemas/TableCsvDeleteDto' required: true responses: - "200": - description: OK + "202": + description: Deleted table data successfully + "403": + description: Access to the database is forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: Table or database could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "400": + description: Table data or query is malformed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] head: @@ -334,12 +356,36 @@ paths: schema: type: string responses: - "200": - description: OK + "403": + description: Access to the database is forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "400": + description: Table data is malformed or image is not supported + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Get table data successfully content: '*/*': schema: $ref: '#/components/schemas/QueryResultDto' + "404": + description: Table or database could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "422": + description: Could not import csv via sidecar + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/user/{id}: @@ -356,24 +402,24 @@ paths: type: string format: uuid responses: - "200": - description: Found user - content: - application/json: - schema: - $ref: '#/components/schemas/UserDto' "404": description: User was not found content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "405": + "403": description: Find user is not permitted content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "200": + description: Found user + content: + application/json: + schema: + $ref: '#/components/schemas/UserDto' security: - bearerAuth: [] put: @@ -395,24 +441,36 @@ paths: $ref: '#/components/schemas/UserUpdateDto' required: true responses: - "405": - description: Modify user is not permitted + "202": + description: Modified user information content: application/json: schema: - $ref: '#/components/schemas/ApiErrorDto' + $ref: '#/components/schemas/UserDto' "404": description: User attribute was not found content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Modified user information + "403": + description: Modify user is not permitted content: application/json: schema: - $ref: '#/components/schemas/UserDto' + $ref: '#/components/schemas/ApiErrorDto' + "405": + description: Foreign user modification + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "400": + description: Modify user query is malformed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/user/{id}/theme: @@ -435,14 +493,14 @@ paths: $ref: '#/components/schemas/UserThemeSetDto' required: true responses: - "405": - description: Modify user is not permitted + "404": + description: User or user attribute was not found content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "404": - description: User or user attribute was not found + "403": + description: Modify user is not permitted content: application/json: schema: @@ -453,6 +511,12 @@ paths: application/json: schema: $ref: '#/components/schemas/UserDto' + "405": + description: Foreign user modification + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/user/{id}/password: @@ -482,7 +546,7 @@ paths: schema: $ref: '#/components/schemas/UserDto' "405": - description: Modify user is not permitted + description: Foreign user modification content: application/json: schema: @@ -493,6 +557,18 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "403": + description: Modify is not allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "503": + description: Authentication service does not respond + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/semantic/ontology/{id}: @@ -540,18 +616,18 @@ paths: $ref: '#/components/schemas/OntologyModifyDto' required: true responses: - "404": - description: Could not find ontology - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "202": description: Updated ontology successfully content: application/json: schema: $ref: '#/components/schemas/OntologyDto' + "404": + description: Could not find ontology + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] delete: @@ -579,12 +655,12 @@ paths: $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] - /api/pid/{id}: - put: + /api/maintenance/message/{id}: + get: tags: - - persistence-endpoint - summary: Update some identifier - operationId: update_1 + - maintenance-endpoint + summary: Find one maintenance message + operationId: find_4 parameters: - name: id in: path @@ -592,90 +668,15 @@ paths: schema: type: integer format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierSaveDto' - required: true responses: - "406": - description: Updating identifier not allowed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Updating identifier not permitted + "404": + description: Could not find message content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Updated identifier - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierDto' - "404": - description: Identifier or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Identifier data is not valid to the form - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - persistence-endpoint - summary: Delete some identifier - operationId: delete_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "405": - description: Deleting identifier not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Deleted identifier - "404": - description: Identifier could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/maintenance/message/{id}: - get: - tags: - - maintenance-endpoint - summary: Find one maintenance message - operationId: find_4 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Get messages + "200": + description: Get messages content: application/json: schema: @@ -684,7 +685,7 @@ paths: tags: - maintenance-endpoint summary: Update maintenance message - operationId: update_2 + operationId: update_1 parameters: - name: id in: path @@ -699,18 +700,18 @@ paths: $ref: '#/components/schemas/BannerMessageUpdateDto' required: true responses: - "404": - description: Could not find message - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageNotFoundException' "202": description: Updated message content: application/json: schema: $ref: '#/components/schemas/BannerMessageBriefDto' + "404": + description: Could not find message + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' delete: tags: - maintenance-endpoint @@ -724,16 +725,16 @@ paths: type: integer format: int64 responses: - "202": - description: Deleted message - content: - application/json: {} "404": description: Could not find message content: application/json: schema: - $ref: '#/components/schemas/BannerMessageNotFoundException' + $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Deleted message + content: + application/json: {} /api/image/{id}: get: tags: @@ -748,23 +749,23 @@ paths: type: integer format: int64 responses: - "404": - description: Image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "200": description: Found image content: application/json: schema: $ref: '#/components/schemas/ImageDto' + "404": + description: Image could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' put: tags: - image-endpoint summary: Update some image - operationId: update_3 + operationId: update_2 parameters: - name: id in: path @@ -779,18 +780,18 @@ paths: $ref: '#/components/schemas/ImageChangeDto' required: true responses: - "404": - description: Image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "202": description: Updated image successfully content: application/json: schema: $ref: '#/components/schemas/ImageDto' + "404": + description: Image could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] delete: @@ -836,7 +837,13 @@ paths: $ref: '#/components/schemas/DatabaseModifyVisibilityDto' required: true responses: - "405": + "404": + description: Database could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "403": description: Visibility modification is not permitted content: application/json: @@ -848,12 +855,6 @@ paths: application/json: schema: $ref: '#/components/schemas/DatabaseDto' - "404": - description: Database or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/database/{id}/transfer: @@ -876,8 +877,8 @@ paths: $ref: '#/components/schemas/DatabaseTransferDto' required: true responses: - "405": - description: Transfer of ownership is not permitted + "404": + description: Database or user could not be found content: application/json: schema: @@ -888,8 +889,8 @@ paths: application/json: schema: $ref: '#/components/schemas/DatabaseDto' - "404": - description: Database or user could not be found + "403": + description: Transfer of ownership is not permitted content: application/json: schema: @@ -901,7 +902,7 @@ paths: tags: - table-column-endpoint summary: Update a table column semantic mapping - operationId: update_4 + operationId: update_3 parameters: - name: id in: path @@ -933,21 +934,21 @@ paths: $ref: '#/components/schemas/ColumnSemanticsUpdateDto' required: true responses: - "405": - description: Update column semantics not permitted + "403": + description: Access to the database is forbidden content: application/json: schema: - $ref: '#/components/schemas/ColumnDto' + $ref: '#/components/schemas/ApiErrorDto' "404": - description: "Table, database, semantic concept, unit of measurement or\ - \ container could not be found" + description: Table or database could not be found content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Access to the database is forbidden + "400": + description: Update semantic concept query is malformed or update unit of + measurement query is malformed content: application/json: schema: @@ -958,13 +959,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ColumnDto' - "400": - description: Update semantic concept query is malformed or update unit of - measurement query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/database/{id}/access/{userId}: @@ -972,7 +966,7 @@ paths: tags: - access-endpoint summary: Modify access to some database - operationId: update_5 + operationId: update_4 parameters: - name: id in: path @@ -1000,14 +994,14 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Modify access succeeded "400": description: Modify access query or database connection is malformed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Modify access succeeded "404": description: Database or user not found content: @@ -1041,10 +1035,8 @@ paths: $ref: '#/components/schemas/DatabaseGiveAccessDto' required: true responses: - "202": - description: Granting access succeeded - "400": - description: Granting access query or database connection is malformed + "403": + description: Failed giving access content: application/json: schema: @@ -1055,12 +1047,20 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Granting access succeeded "404": description: Database or user not found content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "400": + description: Granting access query or database connection is malformed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] delete: @@ -1082,28 +1082,22 @@ paths: type: string format: uuid responses: - "403": - description: Revoke of access not permitted as no access was found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Revoke of access not permitted + "400": + description: Modify access query or database connection is malformed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' "404": - description: User with access was not found + description: "User, database with access was not found" content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' "202": description: Revoked access successfully - "400": - description: Modify access query or database connection is malformed + "403": + description: Revoke of access not permitted as no access was found content: application/json: schema: @@ -1130,8 +1124,8 @@ paths: type: integer format: int64 responses: - "503": - description: Connection to the database failed + "501": + description: Image is not supported content: application/json: schema: @@ -1154,8 +1148,8 @@ paths: application/json: schema: $ref: '#/components/schemas/QueryDto' - "501": - description: Image is not supported + "503": + description: Connection to the database failed content: application/json: schema: @@ -1193,42 +1187,42 @@ paths: $ref: '#/components/schemas/QueryPersistDto' required: true responses: - "409": + "412": description: Query is already persisted content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to persist query + "403": + description: Not allowed to persist query content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, query or user could not be found" + "400": + description: Image not supported content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Persist query successful + "405": + description: Persist query is not permitted content: application/json: schema: - $ref: '#/components/schemas/QueryDto' - "501": - description: Image is not supported + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: "Database, query or user could not be found" content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Persist query is not permitted + "200": + description: Persist query successful content: application/json: schema: - $ref: '#/components/schemas/ApiErrorDto' + $ref: '#/components/schemas/QueryDto' security: - bearerAuth: [] /api/user: @@ -1258,69 +1252,34 @@ paths: $ref: '#/components/schemas/SignupRequestDto' required: true responses: - "201": - description: Created user - content: - application/json: - schema: - $ref: '#/components/schemas/UserBriefDto' "400": description: Parameters are not well-formed (likely email) content: application/json: {} - "409": - description: User with username already exists + "404": + description: default role not found content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "417": - description: User with e-mail already exists + "409": + description: User with username already exists content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "404": - description: default role not found + "417": + description: User with e-mail already exists content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - /api/semantic/unit: - get: - tags: - - semantics-endpoint - summary: List semantic units - operationId: findAllUnits - responses: - "200": - description: Find all semantic units - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UnitDto' - post: - tags: - - semantics-endpoint - summary: Save a semantic unit - operationId: saveUnit - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UnitSaveDto' - required: true - responses: - "202": - description: Saved a semantic unit + "201": + description: Created user content: application/json: schema: - $ref: '#/components/schemas/UnitDto' - security: - - bearerAuth: [] + $ref: '#/components/schemas/UserBriefDto' /api/semantic/ontology: get: tags: @@ -1349,46 +1308,11 @@ paths: required: true responses: "201": - description: Could not find user + description: Registered ontology successfully content: application/json: schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/semantic/concept: - get: - tags: - - semantics-endpoint - summary: List semantic concepts - operationId: findAllConcepts - responses: - "200": - description: Find all semantic concepts - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ConceptDto' - post: - tags: - - semantics-endpoint - summary: Create or update a semantic concept - operationId: saveUnit_1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ConceptSaveDto' - required: true - responses: - "202": - description: Saved a semantic concept - content: - application/json: - schema: - $ref: '#/components/schemas/ConceptDto' + $ref: '#/components/schemas/OntologyDto' security: - bearerAuth: [] /api/maintenance/message: @@ -1451,14 +1375,8 @@ paths: $ref: '#/components/schemas/ImageCreateDto' required: true responses: - "409": - description: Image already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: User could not be found + "400": + description: Image specification is invalid content: application/json: schema: @@ -1469,14 +1387,8 @@ paths: application/json: schema: $ref: '#/components/schemas/ImageDto' - "502": - description: Failed to connect - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Image specification is invalid + "409": + description: Image already exists content: application/json: schema: @@ -1508,6 +1420,12 @@ paths: schema: type: integer format: int64 + - name: tid + in: query + required: false + schema: + type: integer + format: int64 - name: type in: query required: false @@ -1516,6 +1434,7 @@ paths: enum: - database - subset + - table - view responses: "200": @@ -1538,32 +1457,26 @@ paths: $ref: '#/components/schemas/IdentifierSaveDto' required: true responses: - "406": - description: Creating identifier not allowed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "201": description: Created identifier content: application/json: schema: $ref: '#/components/schemas/IdentifierDto' - "400": - description: Identifier form contains invalid request data + "409": + description: Identifier for this resource already exists content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Insufficient access rights or authorities + "503": + description: DataCite system did not respond content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Identifier for this resource already exists + "204": + description: Identifier could not be created content: application/json: schema: @@ -1574,12 +1487,36 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "406": + description: Creating identifier not allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: "Failed to find database, table or view" + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "400": + description: Identifier form contains invalid request data + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' "405": description: Creating identifier not permitted content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "403": + description: Insufficient access rights or authorities + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/database: @@ -1603,6 +1540,12 @@ paths: type: array items: $ref: '#/components/schemas/DatabaseBriefDto' + "404": + description: User not found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' post: tags: - database-endpoint @@ -1615,25 +1558,7 @@ paths: $ref: '#/components/schemas/DatabaseCreateDto' required: true responses: - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Container image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Container, user or database could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": + "403": description: Database create permission is missing or grant permissions at broker service failed content: @@ -1641,32 +1566,31 @@ paths: schema: $ref: '#/components/schemas/ApiErrorDto' "409": - description: Database name already exist or query store could not be created + description: Query store could not be created content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Database create query is malformed + "201": + description: Created a new database content: application/json: schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Connection to the container failed + $ref: '#/components/schemas/DatabaseBriefDto' + "503": + description: Connection to the database failed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Created a new database + "400": + description: Database create query is malformed or image is not supported content: application/json: schema: - $ref: '#/components/schemas/DatabaseBriefDto' - "406": - description: Failed to create user at broker service or virtual host could - not be reached at broker service + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: "Container, user or database could not be found" content: application/json: schema: @@ -1687,6 +1611,18 @@ paths: responses: "200": description: Count databases + content: + '*/*': + schema: + type: array + items: + $ref: '#/components/schemas/DatabaseDto' + "404": + description: User not found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' /api/database/{databaseId}/view: get: tags: @@ -1709,12 +1645,6 @@ paths: type: array items: $ref: '#/components/schemas/ViewBriefDto' - "405": - description: Find views is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "404": description: Database or user could not be found content: @@ -1742,8 +1672,8 @@ paths: $ref: '#/components/schemas/ViewCreateDto' required: true responses: - "503": - description: Connection to the database failed + "423": + description: Create view resulted in an invalid query statement content: application/json: schema: @@ -1754,20 +1684,20 @@ paths: application/json: schema: $ref: '#/components/schemas/ViewBriefDto' - "401": + "403": description: Credentials missing content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "423": - description: Create view resulted in an invalid query statement + "401": + description: Credentials missing content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Credentials missing + "503": + description: Connection to the database failed content: application/json: schema: @@ -1778,14 +1708,14 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Create view query is malformed + "405": + description: Create view is not permitted content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Create view is not permitted + "400": + description: Create view query is malformed content: application/json: schema: @@ -1806,6 +1736,12 @@ paths: type: integer format: int64 responses: + "404": + description: Database could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' "200": description: List tables content: @@ -1814,13 +1750,7 @@ paths: type: array items: $ref: '#/components/schemas/TableBriefDto' - "404": - description: Database could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": + "403": description: List tables not permitted content: application/json: @@ -1847,20 +1777,20 @@ paths: $ref: '#/components/schemas/TableCreateDto' required: true responses: - "409": - description: Create table conflicts with existing table name + "404": + description: "Database, container or user could not be found" content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Broker service failed to create queue + "409": + description: Create table conflicts with existing table name content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, container or user could not be found" + "400": + description: Create table query is malformed content: application/json: schema: @@ -1871,24 +1801,12 @@ paths: application/json: schema: $ref: '#/components/schemas/TableBriefDto' - "405": + "403": description: Create table not permitted content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Create table query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/database/{databaseId}/table/{tableId}/data/import: @@ -1917,8 +1835,32 @@ paths: $ref: '#/components/schemas/ImportDto' required: true responses: - "200": - description: OK + "202": + description: Import table data successfully + "403": + description: Access to the database is forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: Table or database could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "422": + description: Could not import csv via sidecar + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "400": + description: Table data is malformed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/database/{databaseId}/query: @@ -1940,14 +1882,8 @@ paths: schema: type: boolean responses: - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to select query + "404": + description: "Database, container or user could not be found" content: application/json: schema: @@ -1959,32 +1895,38 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, container or user could not be found" + "200": + description: List queries content: application/json: schema: - $ref: '#/components/schemas/ApiErrorDto' + type: array + items: + $ref: '#/components/schemas/QueryBriefDto' "501": description: Image is not supported content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find all queries is not permitted + "504": + description: Query store failed to select query content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "200": - description: List queries - content: + "503": + description: Connection to the database failed + content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/QueryBriefDto' + $ref: '#/components/schemas/ApiErrorDto' + "405": + description: Find all queries is not permitted + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] post: @@ -2031,12 +1973,42 @@ paths: $ref: '#/components/schemas/ExecuteStatementDto' required: true responses: - "200": - description: OK + "400": + description: Image is not supported content: - '*/*': + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "409": + description: Could not store query in query store + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Executed query + content: + application/json: schema: $ref: '#/components/schemas/QueryResultDto' + "404": + description: "Database, query or user could not be found" + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "403": + description: Execute query not permitted + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "417": + description: Could not parse columns + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/container: @@ -2073,14 +2045,14 @@ paths: $ref: '#/components/schemas/ContainerCreateRequestDto' required: true responses: - "409": - description: Container name already exists + "201": + description: Created a new container content: application/json: schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Failed to connect + $ref: '#/components/schemas/ContainerBriefDto' + "409": + description: Container name already exists content: application/json: schema: @@ -2091,14 +2063,23 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Created a new container + security: + - bearerAuth: [] + /api/semantic/unit: + get: + tags: + - semantics-endpoint + summary: List semantic units + operationId: findAllUnits + responses: + "200": + description: Find all semantic units content: application/json: schema: - $ref: '#/components/schemas/ContainerBriefDto' - security: - - bearerAuth: [] + type: array + items: + $ref: '#/components/schemas/UnitDto' /api/semantic/ontology/{id}/entity: get: tags: @@ -2129,26 +2110,32 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Filter params are invalid + "200": + description: Found entities content: application/json: schema: - $ref: '#/components/schemas/ApiErrorDto' + type: array + items: + $ref: '#/components/schemas/EntityDto' "404": description: Could not find ontology content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Found entities + "400": + description: Filter params are invalid content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/EntityDto' + $ref: '#/components/schemas/ApiErrorDto' + "422": + description: Ontology does not have rdf or sparql endpoint + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/semantic/database/{databaseId}/table/{tableId}: @@ -2177,6 +2164,18 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "404": + description: Could not find the table + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "422": + description: Ontology does not have rdf or sparql endpoint + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' "200": description: Suggested table semantics successfully content: @@ -2185,12 +2184,6 @@ paths: type: array items: $ref: '#/components/schemas/TableColumnEntityDto' - "404": - description: Could not find the table - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/semantic/database/{databaseId}/table/{tableId}/column/{columnId}: @@ -2219,12 +2212,6 @@ paths: type: integer format: int64 responses: - "404": - description: Could not find the table column - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "417": description: Generated query is malformed content: @@ -2239,8 +2226,35 @@ paths: type: array items: $ref: '#/components/schemas/TableColumnEntityDto' + "404": + description: Could not find the table column + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "422": + description: Ontology does not have rdf or sparql endpoint + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] + /api/semantic/concept: + get: + tags: + - semantics-endpoint + summary: List semantic concepts + operationId: findAllConcepts + responses: + "200": + description: Find all semantic concepts + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ConceptDto' /api/pid/{pid}: get: tags: @@ -2260,6 +2274,12 @@ paths: schema: type: string responses: + "409": + description: Exported resource was not found + content: + text/csv: + schema: + $ref: '#/components/schemas/ApiErrorDto' "200": description: Found identifier successfully content: @@ -2272,14 +2292,13 @@ paths: text/bibliography; style=apa: {} text/bibliography; style=ieee: {} text/bibliography; style=bibtex: {} - "404": - description: Identifier could not be exported from database as the resource - was not found + "422": + description: Failed to retrieve from database sidecar content: text/csv: schema: $ref: '#/components/schemas/ApiErrorDto' - "502": + "503": description: Identifier could not exported from database as it is not reachable content: text/csv: @@ -2292,6 +2311,18 @@ paths: text/bibliography: schema: $ref: '#/components/schemas/ApiErrorDto' + "410": + description: Failed to retrieve from S3 endpoint + content: + text/csv: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: Identifier could not be found + content: + text/csv: + schema: + $ref: '#/components/schemas/ApiErrorDto' /api/oai: get: tags: @@ -2331,7 +2362,7 @@ paths: tags: - identifier-endpoint summary: Retrieve metadata from identifier - operationId: create_10 + operationId: retrieve parameters: - name: url in: query @@ -2359,8 +2390,8 @@ paths: type: integer format: int64 responses: - "404": - description: Database could not be found + "503": + description: Connection to the broker service could not be established content: application/json: schema: @@ -2371,13 +2402,20 @@ paths: application/json: schema: $ref: '#/components/schemas/DatabaseDto' + "404": + description: Database or exchange could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] - delete: + /api/database/{id}/table/{tableId}/export: + get: tags: - - database-endpoint - summary: Delete some database - operationId: delete_4 + - export-endpoint + summary: Export table + operationId: export parameters: - name: id in: path @@ -2385,94 +2423,63 @@ paths: schema: type: integer format: int64 + - name: tableId + in: path + required: true + schema: + type: integer + format: int64 + - name: timestamp + in: query + required: false + schema: + type: string + format: date-time responses: - "503": - description: Connection to the database failed + "201": + description: Created identifier content: application/json: schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Container image is not supported + $ref: '#/components/schemas/IdentifierDto' + "503": + description: Database connection could not be established content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Database delete permission is missing or revoke permissions - at broker service failed + "403": + description: Operation is not allowed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Deleted a database - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseBriefDto' - "406": - description: Failed to delete user at broker service or virtual host could - not be reached at broker service + "422": + description: Sidecar operation could not be completed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Connection to the container failed + "404": + description: "Table, database or user was not found" content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' "400": - description: Database delete query is malformed + description: Images is not supported or table/query is malformed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Container or database could not be found + "410": + description: Blob storage operation could not be completed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] - /api/database/{id}/table/{tableId}/export: - get: - tags: - - export-endpoint - summary: Export table - operationId: export - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: timestamp - in: query - required: false - schema: - type: string - format: date-time - responses: - "200": - description: OK - content: - '*/*': - schema: - type: string - format: binary - security: - - bearerAuth: [] /api/database/{id}/access: get: tags: @@ -2487,18 +2494,18 @@ paths: type: integer format: int64 responses: - "405": - description: Check access is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "200": description: Found database access content: application/json: schema: $ref: '#/components/schemas/DatabaseAccessDto' + "404": + description: Database not found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' "403": description: No access to this database content: @@ -2527,31 +2534,31 @@ paths: type: integer format: int64 responses: - "404": - description: "Database, view or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "200": description: Find view successfully content: application/json: schema: $ref: '#/components/schemas/ViewDto' - "405": + "403": description: Find view is not permitted content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "404": + description: "Database, view or user could not be found" + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] delete: tags: - view-endpoint summary: Delete one view - operationId: delete_5 + operationId: delete_4 parameters: - name: databaseId in: path @@ -2566,22 +2573,14 @@ paths: type: integer format: int64 responses: - "200": - description: Delete view successfully - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, view or user could not be found" + "400": + description: Delete view query is malformed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "401": - description: Credentials missing + "403": + description: Deletion not allowed content: application/json: schema: @@ -2592,24 +2591,26 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "423": - description: Delete view resulted in an invalid query statement + "503": + description: Connection to the database failed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Delete view query is malformed + "423": + description: Delete view resulted in an invalid query statement content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Credentials missing + "404": + description: "Database, view or user could not be found" content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' + "200": + description: Delete view successfully security: - bearerAuth: [] /api/database/{databaseId}/view/{viewId}/data: @@ -2644,68 +2645,26 @@ paths: type: integer format: int64 responses: - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Pagination not in valid range or find data query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find data is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "401": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "417": - description: Parsing of resulting columns failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "404": description: "Database, view, container or user could not be found" content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "200": description: Find data successfully content: application/json: schema: $ref: '#/components/schemas/QueryResultDto' - "423": - description: Find data resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported + "400": + description: Pagination not in valid range or find data query is malformed content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to query view data + "403": + description: View data not allowed content: application/json: schema: @@ -2732,10 +2691,34 @@ paths: type: integer format: int64 responses: + "404": + description: "Database, view, container or user could not be found" + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "403": + description: Count data not allowed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "409": + description: Could not count query data + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "400": + description: Pagination not in valid range or find data query is malformed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' "200": - description: OK + description: Count data successfully content: - '*/*': + application/json: schema: type: integer format: int64 @@ -2761,6 +2744,12 @@ paths: type: integer format: int64 responses: + "404": + description: "Table, database or container could not be found" + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' "403": description: Access to the database is forbidden content: @@ -2773,14 +2762,8 @@ paths: application/json: schema: $ref: '#/components/schemas/TableDto' - "404": - description: "Table, database or container could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find table not permitted + "503": + description: Could not communicate with the broker service content: application/json: schema: @@ -2791,7 +2774,7 @@ paths: tags: - table-endpoint summary: Delete a table - operationId: delete_6 + operationId: delete_5 parameters: - name: databaseId in: path @@ -2806,20 +2789,8 @@ paths: type: integer format: int64 responses: - "400": - description: Delete table query resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Delete table successfully - content: - application/json: - schema: - $ref: '#/components/schemas/TableDto' - "423": - description: Delete table resulted in an invalid state + "404": + description: "Table, database or container could not be found" content: application/json: schema: @@ -2830,20 +2801,10 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Delete table not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Table, database or container could not be found" + "202": + description: Delete table successfully + "400": + description: Delete table query resulted in an invalid query statement content: application/json: schema: @@ -2876,8 +2837,32 @@ paths: type: string format: date-time responses: - "200": - description: OK + "403": + description: Access to the database is forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "400": + description: Table data is malformed or image is not supported + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: Table or database could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "422": + description: Could not import csv via sidecar + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Get table data count successfully content: '*/*': schema: @@ -2910,12 +2895,48 @@ paths: schema: type: string responses: + "400": + description: Image is not supported + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' "200": - description: OK + description: Executed query content: '*/*': schema: type: object + "410": + description: Could not find in S3 storage + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "403": + description: Execute query not permitted + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "422": + description: Sidecar failed to export + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "409": + description: Export of query failed + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: Database or query could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/database/{databaseId}/query/{queryId}/data: @@ -2963,12 +2984,42 @@ paths: schema: type: string responses: - "200": - description: OK + "400": + description: Image is not supported content: - '*/*': + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "409": + description: Could not store query in query store + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Executed query + content: + application/json: schema: $ref: '#/components/schemas/QueryResultDto' + "403": + description: Execute query not permitted + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "417": + description: Could not parse columns + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: Database or query could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' security: - bearerAuth: [] /api/database/{databaseId}/query/{queryId}/data/count: @@ -2991,24 +3042,47 @@ paths: type: integer format: int64 responses: - "200": - description: OK - content: - '*/*': - schema: - type: integer - format: int64 - security: - - bearerAuth: [] - /api/database/license: - get: - tags: - - license-endpoint - summary: Get all licenses - operationId: list_4 - responses: - "200": - description: List of licenses + "400": + description: Image is not supported + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "202": + description: Executed query + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResultDto' + "403": + description: Execute query not permitted + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "417": + description: Could not parse columns + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + "404": + description: Database or query could not be found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + security: + - bearerAuth: [] + /api/database/license: + get: + tags: + - license-endpoint + summary: Get all licenses + operationId: list_4 + responses: + "200": + description: List of licenses content: application/json: schema: @@ -3029,12 +3103,6 @@ paths: type: integer format: int64 responses: - "502": - description: Connection to the container failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' "200": description: Found container content: @@ -3051,7 +3119,7 @@ paths: tags: - container-endpoint summary: Delete some container - operationId: delete_8 + operationId: delete_7 parameters: - name: id in: path @@ -3060,16 +3128,48 @@ paths: type: integer format: int64 responses: - "410": - description: Container is already removed + "202": + description: Deleted container successfully + content: + '*/*': + schema: + type: object + "404": + description: Container not found + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorDto' + security: + - bearerAuth: [] + /api/pid/{id}: + delete: + tags: + - persistence-endpoint + summary: Delete some identifier + operationId: delete_1 + parameters: + - name: id + in: path + required: true + schema: + type: integer + format: int64 + responses: + "404": + description: Identifier or database could not be found content: application/json: schema: $ref: '#/components/schemas/ApiErrorDto' "202": - description: Deleted container successfully - "409": - description: Container is still running + description: Deleted identifier + content: + '*/*': + schema: + type: object + "403": + description: Deleting identifier not permitted content: application/json: schema: @@ -3235,7 +3335,6 @@ components: UserDto: required: - attributes - - email - id - username type: object @@ -3253,9 +3352,6 @@ components: example: Josiah Carberry attributes: $ref: '#/components/schemas/UserAttributesDto' - email: - type: string - example: jcarberry@brown.edu qualified_name: type: string example: Josiah Carberry — @jcarberry @@ -3295,6 +3391,9 @@ components: sparql_endpoint: type: string example: Ontology SPARQL endpoint + rdf_path: + type: string + example: rdf/om-2.0.rdf OntologyDto: required: - created @@ -3332,6 +3431,9 @@ components: sparql_endpoint: type: string example: https://query.wikidata.org/sparql + rdf_path: + type: string + example: rdf/om-2.0.rdf UserBriefDto: required: - id @@ -3361,644 +3463,692 @@ components: family_name: type: string example: Carberry - CreatorSaveDto: + BannerMessageUpdateDto: required: - - creator_name - - firstname - - lastname - - name_type + - message + - type type: object properties: - id: - type: integer - format: int64 - firstname: + type: type: string - example: Josiah - lastname: + enum: + - error + - warning + - info + message: type: string - example: Carberry - affiliation: + example: Maintenance starts on 8am on Monday + link: type: string - example: Wesleyan University - creator_name: + example: https://example.com + link_text: type: string - example: "Carberry, Josiah" - name_type: + example: More + display_start: type: string - example: Personal - enum: - - Personal - - Organizational - name_identifier: + format: date-time + example: 2021-03-12T15:26:21Z + display_end: type: string - example: 0000-0002-1825-0097 - name_identifier_scheme: + format: date-time + example: 2021-03-12T15:26:21Z + BannerMessageBriefDto: + required: + - message + - type + type: object + properties: + type: type: string - example: ORCID enum: - - ORCID - - ROR - - ISNI - - GRID - affiliation_identifier: + - error + - warning + - info + message: type: string - example: https://ror.org/04d836q62 - affiliation_identifier_scheme: + example: Maintenance starts on 8am on Monday + link: type: string - example: ROR - enum: - - ROR - - GRID - - ISNI - IdentifierFunderSaveDto: + example: https://example.com + link_text: + type: string + example: More + ImageChangeDto: required: - - funder_name + - dialect + - driver_class + - jdbc_method + - registry type: object properties: - id: + registry: + type: string + example: docker.io/library + defaultPort: + maximum: 65535 + minimum: 1024 type: integer - format: int64 - funder_name: + format: int32 + example: 5432 + dialect: type: string - example: European Commission - funder_identifier: + example: Postgres + driver_class: type: string - example: http://doi.org/10.13039/501100000780 - funder_identifier_type: + example: org.postgresql.Driver + jdbc_method: type: string - example: Crossref Funder ID - enum: - - Crossref Funder ID - - ROR - - GND - - ISNI - - Other - scheme_uri: + example: postgresql + ImageDateDto: + required: + - created_at + - database_format + - example + - has_time + - id + - unix_format + type: object + properties: + id: + type: integer + format: int64 + example: type: string - example: http://doi.org/ - award_number: + example: 30.01.2022 + database_format: type: string - example: "824087" - award_title: + example: '%d.%c.%Y' + unix_format: type: string - example: EOSC-Life - IdentifierSaveDescriptionDto: + example: dd.MM.YYYY + has_time: + type: boolean + example: false + created_at: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + ImageDto: + required: + - default_port + - dialect + - driver_class + - id + - jdbc_method + - name + - registry + - version type: object properties: id: type: integer format: int64 - description: + registry: type: string - example: "Air quality reports at Stephansplatz, Vienna" - language: + example: docker.io/library + name: type: string - example: en - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - type: + example: mariadb + version: type: string - example: Abstract - enum: - - Abstract - - Methods - - SeriesInformation - - TableOfContents - - TechnicalInfo - - Other - IdentifierSaveDto: + example: "10.5" + dialect: + type: string + example: org.hibernate.dialect.MariaDBDialect + driver_class: + type: string + example: org.mariadb.jdbc.Driver + date_formats: + type: array + items: + $ref: '#/components/schemas/ImageDateDto' + jdbc_method: + type: string + example: mariadb + default_port: + type: integer + format: int32 + example: 3306 + DatabaseModifyVisibilityDto: required: - - creators + - is_public + type: object + properties: + is_public: + type: boolean + example: true + ColumnBriefDto: + required: + - column_type - database_id - - publication_year - - type - - visibility + - id + - internal_name + - name + - table_id type: object properties: - type: + id: + type: integer + format: int64 + name: type: string - example: database - enum: - - database - - subset - - view - titles: - type: array - items: - $ref: '#/components/schemas/IdentifierSaveTitleDto' - descriptions: - type: array - items: - $ref: '#/components/schemas/IdentifierSaveDescriptionDto' - funders: - type: array - items: - $ref: '#/components/schemas/IdentifierFunderSaveDto' - licenses: - type: array - items: - $ref: '#/components/schemas/LicenseDto' - visibility: + example: date + alias: type: string - example: everyone - enum: - - everyone - - self - publisher: + database_id: + type: integer + format: int64 + table_id: + type: integer + format: int64 + internal_name: type: string - example: TU Wien - language: + example: mdb_date + column_type: type: string + example: date enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - creators: - type: array - items: - $ref: '#/components/schemas/CreatorSaveDto' - database_id: + - char + - varchar + - binary + - varbinary + - tinyblob + - tinytext + - text + - blob + - mediumtext + - mediumblob + - longtext + - longblob + - enum + - set + - bit + - tinyint + - bool + - smallint + - mediumint + - int + - bigint + - float + - double + - decimal + - date + - datetime + - timestamp + - time + - year + ColumnDto: + required: + - auto_generated + - column_type + - database_id + - id + - internal_name + - is_null_allowed + - is_primary_key + - is_public + - name + - table_id + type: object + properties: + id: type: integer format: int64 - example: 1 - query_id: + name: + type: string + example: Date + alias: + type: string + size: type: integer format: int64 - view_id: + example: 255 + d: type: integer format: int64 - publication_day: + example: 0 + dataLength: type: integer - format: int32 - example: 15 - publication_month: + format: int64 + example: 34300 + maxDataLength: type: integer - format: int32 - example: 12 - publication_year: + format: int64 + example: 34300 + numRows: type: integer - format: int32 - example: 2022 - related_identifiers: + format: int64 + example: 32 + valMin: + type: number + example: 0 + valMax: + type: number + example: 100 + mean: + type: number + example: 45.4 + median: + type: number + example: 51 + stdDev: + type: number + example: 5.32 + concept: + $ref: '#/components/schemas/ConceptDto' + unit: + $ref: '#/components/schemas/UnitDto' + enums: type: array items: - $ref: '#/components/schemas/RelatedIdentifierSaveDto' - IdentifierSaveTitleDto: + type: string + sets: + type: array + items: + type: string + database_id: + type: integer + format: int64 + table_id: + type: integer + format: int64 + internal_name: + type: string + example: mdb_date + date_format: + $ref: '#/components/schemas/ImageDateDto' + auto_generated: + type: boolean + example: false + is_primary_key: + type: boolean + example: true + index_length: + type: integer + format: int64 + length: + type: integer + format: int64 + column_type: + type: string + example: string + enum: + - char + - varchar + - binary + - varbinary + - tinyblob + - tinytext + - text + - blob + - mediumtext + - mediumblob + - longtext + - longblob + - enum + - set + - bit + - tinyint + - bool + - smallint + - mediumint + - int + - bigint + - float + - double + - decimal + - date + - datetime + - timestamp + - time + - year + is_public: + type: boolean + example: true + is_null_allowed: + type: boolean + example: false + ConceptDto: + required: + - columns + - created + - id + - uri type: object properties: id: type: integer format: int64 - title: + uri: type: string - example: Airquality Demonstrator - language: + name: type: string - example: en + description: + type: string + created: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + columns: + type: array + items: + $ref: '#/components/schemas/ColumnBriefDto' + ConstraintsDto: + type: object + properties: + uniques: + type: array + items: + $ref: '#/components/schemas/UniqueDto' + checks: + type: array + items: + type: string + foreign_keys: + type: array + items: + $ref: '#/components/schemas/ForeignKeyDto' + ContainerDto: + required: + - created + - host + - id + - internal_name + - name + - sidecar_host + - sidecar_port + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + example: Air Quality + host: + type: string + port: + type: integer + format: int32 + image: + $ref: '#/components/schemas/ImageDto' + created: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + internal_name: + type: string + example: data-db + sidecar_host: + type: string + sidecar_port: + type: integer + format: int32 + ui_host: + type: string + ui_port: + type: integer + format: int32 + CreatorDto: + required: + - creator_name + - id + type: object + properties: + id: + type: integer + format: int64 + firstname: + type: string + example: Josiah + lastname: + type: string + example: Carberry + affiliation: + type: string + example: Brown University + creator_name: + type: string + example: "Carberry, Josiah" + name_type: + type: string + example: Personal enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it + - Personal + - Organizational + name_identifier: + type: string + example: 0000-0002-1825-0097 + name_identifier_scheme: + type: string + example: ORCID + enum: + - ORCID + - ROR + - ISNI + - GRID + name_identifier_scheme_uri: + type: string + example: https://orcid.org/ + affiliation_identifier: + type: string + example: https://ror.org/05gq02987 + affiliation_identifier_scheme: + type: string + example: ROR + enum: + - ROR + - GRID + - ISNI + affiliation_identifier_scheme_uri: + type: string + example: https://ror.org/ + DatabaseAccessDto: + required: + - created + - type + - user + type: object + properties: + user: + $ref: '#/components/schemas/UserDto' + type: + type: string + enum: + - read + - write_own + - write_all + created: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + DatabaseDto: + required: + - contact + - created + - creator + - exchange_name + - id + - internal_name + - name + - owner + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + example: Air Quality + description: + type: string + example: Air Quality + tables: + type: array + items: + $ref: '#/components/schemas/TableDto' + views: + type: array + items: + $ref: '#/components/schemas/ViewDto' + container: + $ref: '#/components/schemas/ContainerDto' + accesses: + type: array + items: + $ref: '#/components/schemas/DatabaseAccessDto' + identifiers: + type: array + items: + $ref: '#/components/schemas/IdentifierDto' + subsets: + type: array + items: + $ref: '#/components/schemas/IdentifierDto' + creator: + $ref: '#/components/schemas/UserDto' + contact: + $ref: '#/components/schemas/UserDto' + owner: + $ref: '#/components/schemas/UserDto' + created: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + exchange_name: + type: string + example: dbrepo + exchange_type: + type: string + example: topic + internal_name: + type: string + example: air_quality + is_public: + type: boolean + example: true + ForeignKeyDto: + type: object + properties: + columns: + type: array + items: + $ref: '#/components/schemas/ColumnDto' + referenced_table: + $ref: '#/components/schemas/TableBriefDto' + referenced_columns: + type: array + items: + $ref: '#/components/schemas/ColumnDto' + on_update: + type: string + enum: + - restrict + - cascade + - set_null + - no_action + - set_default + on_delete: + type: string + enum: + - restrict + - cascade + - set_null + - no_action + - set_default + IdentifierDescriptionDto: + required: + - id + type: object + properties: + id: + type: integer + format: int64 + description: + type: string + example: "Air quality reports at Stephansplatz, Vienna" + language: + type: string + example: en + enum: + - ab + - aa + - af + - ak + - sq + - am + - ar + - an + - hy + - as + - av + - ae + - ay + - az + - bm + - ba + - eu + - be + - bn + - bh + - bi + - bs + - br + - bg + - my + - ca + - km + - ch + - ce + - ny + - zh + - cu + - cv + - kw + - co + - cr + - hr + - cs + - da + - dv + - nl + - dz + - en + - eo + - et + - ee + - fo + - fj + - fi + - fr + - ff + - gd + - gl + - lg + - ka + - de + - ki + - el + - kl + - gn + - gu + - ht + - ha + - he + - hz + - hi + - ho + - hu + - is + - io + - ig + - id + - ia + - ie + - iu + - ik + - ga + - it - ja - jv - kn @@ -4107,389 +4257,68 @@ components: - zu type: type: string - example: Subtitle + example: Abstract enum: - - AlternativeTitle - - Subtitle - - TranslatedTitle + - Abstract + - Methods + - SeriesInformation + - TableOfContents + - TechnicalInfo - Other - LicenseDto: + IdentifierDto: required: - - identifier - - uri - type: object - properties: - identifier: - type: string - example: MIT - uri: - type: string - example: https://opensource.org/licenses/MIT - RelatedIdentifierSaveDto: - required: - - value - type: object - properties: - value: - type: string - example: 10.70124/dc4zh-9ce78 - type: - type: string - example: DOI - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - example: Cites - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - ColumnBriefDto: - required: - - column_type - - database_id - - id - - internal_name - - name - - table_id + - created + - creators + - execution + - id + - last_modified + - publication_year + - query + - query_hash + - query_normalized + - result_hash + - result_number + - type type: object properties: id: type: integer format: int64 - name: - type: string - example: date - alias: - type: string - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - column_type: + type: type: string - example: date enum: - - char - - varchar - - binary - - varbinary - - tinyblob - - tinytext - - text - - blob - - mediumtext - - mediumblob - - longtext - - longblob - - enum - - set - - bit - - tinyint - - bool - - smallint - - mediumint - - int - - bigint - - float - - double - - decimal - - date - - datetime - - timestamp - - time - - year - ContainerDto: - required: - - created - - host - - id - - internal_name - - name - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - host: + - database + - subset + - table + - view + titles: + type: array + items: + $ref: '#/components/schemas/IdentifierTitleDto' + descriptions: + type: array + items: + $ref: '#/components/schemas/IdentifierDescriptionDto' + funders: + type: array + items: + $ref: '#/components/schemas/IdentifierFunderDto' + query: type: string - port: - type: integer - format: int32 - image: - $ref: '#/components/schemas/ImageBriefDto' - created: + example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ + \ = \"09:STEF\"" + execution: type: string format: date-time example: 2021-03-12T15:26:21Z - internal_name: - type: string - example: data-db - CreatorBriefDto: - required: - - creator_name - type: object - properties: - affiliation: - type: string - example: Wesleyan University - name_identifier: - type: string - example: https://orcid.org/0000-0002-1825-0097 - name_type: - type: string - example: Personal - enum: - - Personal - - Organizational - creator_name: - type: string - example: "Carberry, Josiah" - CreatorDto: - required: - - creator_name - - id - type: object - properties: - id: - type: integer - format: int64 - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Brown University - creator_name: - type: string - example: "Carberry, Josiah" - name_type: - type: string - example: Personal - enum: - - Personal - - Organizational - name_identifier: - type: string - example: 0000-0002-1825-0097 - name_identifier_scheme: - type: string - example: ORCID - enum: - - ORCID - - ROR - - ISNI - - GRID - name_identifier_scheme_uri: + doi: type: string - example: https://orcid.org/ - affiliation_identifier: + example: 10.1038/nphys1170 + publisher: type: string - example: https://ror.org/05gq02987 - affiliation_identifier_scheme: + example: TU Wien + language: type: string - example: ROR - enum: - - ROR - - GRID - - ISNI - affiliation_identifier_scheme_uri: - type: string - example: https://ror.org/ - DatabaseAccessDto: - required: - - created - - type - - user - type: object - properties: - user: - $ref: '#/components/schemas/UserDto' - type: - type: string - enum: - - read - - write_own - - write_all - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - DatabaseDto: - required: - - created - - creator - - exchange_name - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - identifier: - $ref: '#/components/schemas/IdentifierDto' - description: - type: string - example: Air Quality - tables: - type: array - items: - $ref: '#/components/schemas/TableBriefDto' - views: - type: array - items: - $ref: '#/components/schemas/ViewBriefDto' - image: - $ref: '#/components/schemas/ImageDto' - container: - $ref: '#/components/schemas/ContainerDto' - accesses: - type: array - items: - $ref: '#/components/schemas/DatabaseAccessDto' - creator: - $ref: '#/components/schemas/UserBriefDto' - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - exchange_name: - type: string - example: dbrepo - exchange_type: - type: string - example: topic - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - IdentifierBriefDto: - required: - - creators - - id - - publication_year - - type - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - - view - titles: - type: array - items: - $ref: '#/components/schemas/IdentifierTitleDto' - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - creators: - type: array - items: - $ref: '#/components/schemas/CreatorBriefDto' - database_id: - type: integer - format: int64 - example: 1 - query_id: - type: integer - format: int64 - example: 1 - publication_year: - type: integer - format: int32 - example: 2022 - IdentifierDescriptionDto: - required: - - id - type: object - properties: - id: - type: integer - format: int64 - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - language: - type: string - example: en enum: - ab - aa @@ -4675,340 +4504,86 @@ components: - yo - za - zu - type: - type: string - example: Abstract - enum: - - Abstract - - Methods - - SeriesInformation - - TableOfContents - - TechnicalInfo - - Other - IdentifierDto: - required: - - created - - creators - - database - - execution - - id - - last_modified - - publication_year - - query - - query_hash - - query_normalized - - result_hash - - result_number - - type - - visibility - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - - view - titles: - type: array - items: - $ref: '#/components/schemas/IdentifierTitleDto' - descriptions: + licenses: type: array items: - $ref: '#/components/schemas/IdentifierDescriptionDto' - funders: + $ref: '#/components/schemas/LicenseDto' + creators: type: array items: - $ref: '#/components/schemas/IdentifierFunderDto' - query: + $ref: '#/components/schemas/CreatorDto' + created: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + database_id: + type: integer + format: int64 + example: 1 + query_id: + type: integer + format: int64 + example: 1 + table_id: + type: integer + format: int64 + example: 1 + view_id: + type: integer + format: int64 + example: 1 + query_normalized: type: string example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ \ = \"09:STEF\"" - database: - $ref: '#/components/schemas/DatabaseDto' - execution: + related_identifiers: + type: array + items: + $ref: '#/components/schemas/RelatedIdentifierDto' + query_hash: + type: string + description: query hash in sha512 + result_hash: + type: string + example: 34fe82cda2c53f13f8d90cfd7a3469e3a939ff311add50dce30d9136397bf8e5 + result_number: + type: integer + format: int64 + example: 1 + publication_day: + type: integer + format: int32 + example: 15 + publication_month: + type: integer + format: int32 + example: 12 + publication_year: + type: integer + format: int32 + example: 2022 + last_modified: type: string format: date-time example: 2021-03-12T15:26:21Z - visibility: - type: string - example: everyone - enum: - - everyone - - self - doi: + IdentifierFunderDto: + required: + - funder_name + - id + type: object + properties: + id: + type: integer + format: int64 + funder_name: type: string - example: 10.1038/nphys1170 - publisher: + example: European Commission + funder_identifier: type: string - example: TU Wien - language: + example: http://doi.org/10.13039/501100000780 + funder_identifier_type: type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - licenses: - type: array - items: - $ref: '#/components/schemas/LicenseDto' - creators: - type: array - items: - $ref: '#/components/schemas/CreatorDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - database_id: - type: integer - format: int64 - example: 1 - query_id: - type: integer - format: int64 - example: 1 - view_id: - type: integer - format: int64 - example: 1 - query_normalized: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - related_identifiers: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierDto' - query_hash: - type: string - description: query hash in sha512 - result_hash: - type: string - example: 34fe82cda2c53f13f8d90cfd7a3469e3a939ff311add50dce30d9136397bf8e5 - result_number: - type: integer - format: int64 - example: 1 - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - last_modified: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - IdentifierFunderDto: - required: - - funder_name - - id - type: object - properties: - id: - type: integer - format: int64 - funder_name: - type: string - example: European Commission - funder_identifier: - type: string - example: http://doi.org/10.13039/501100000780 - funder_identifier_type: - type: string - example: Crossref Funder ID + example: Crossref Funder ID enum: - Crossref Funder ID - ROR @@ -5230,92 +4805,18 @@ components: - Subtitle - TranslatedTitle - Other - ImageBriefDto: + LicenseDto: required: - - id - - name - - version - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: mariadb - version: - type: string - example: "10.5" - ImageDateDto: - required: - - created_at - - database_format - - example - - has_time - - id - - unix_format - type: object - properties: - id: - type: integer - format: int64 - example: - type: string - example: 30.01.2022 - database_format: - type: string - example: '%d.%c.%Y' - unix_format: - type: string - example: dd.MM.YYYY - has_time: - type: boolean - example: false - created_at: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - ImageDto: - required: - - default_port - - dialect - - driver_class - - id - - jdbc_method - - name - - registry - - version + - identifier + - uri type: object properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - name: - type: string - example: mariadb - version: - type: string - example: "10.5" - dialect: - type: string - example: org.hibernate.dialect.MariaDBDialect - driver_class: + identifier: type: string - example: org.mariadb.jdbc.Driver - date_formats: - type: array - items: - $ref: '#/components/schemas/ImageDateDto' - jdbc_method: + example: MIT + uri: type: string - example: mariadb - default_port: - type: integer - format: int32 - example: 3306 + example: https://opensource.org/licenses/MIT RelatedIdentifierDto: required: - created @@ -5429,29 +4930,141 @@ components: is_versioned: type: boolean example: true - ViewBriefDto: + TableDto: required: + - columns - created + - created_by - creator - id - internal_name + - is_public + - is_versioned - name - - query - - query_hash - - vdbid + - owner + - queue_name + - routing_key + - tdbid type: object properties: id: type: integer format: int64 - vdbid: + tdbid: type: integer format: int64 name: type: string example: Air Quality - identifier: - $ref: '#/components/schemas/IdentifierBriefDto' + identifiers: + type: array + items: + $ref: '#/components/schemas/IdentifierDto' + creator: + $ref: '#/components/schemas/UserDto' + owner: + $ref: '#/components/schemas/UserDto' + description: + type: string + example: Air Quality in Austria + created: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + columns: + type: array + items: + $ref: '#/components/schemas/ColumnDto' + constraints: + $ref: '#/components/schemas/ConstraintsDto' + internal_name: + type: string + example: air_quality + is_versioned: + type: boolean + example: true + created_by: + type: string + format: uuid + queue_name: + type: string + example: air_quality + queue_type: + type: string + example: quorum + routing_key: + type: string + example: dbrepo.database.air_quality + is_public: + type: boolean + example: true + UniqueDto: + required: + - columns + - table + - uid + type: object + properties: + uid: + type: integer + format: int64 + table: + $ref: '#/components/schemas/TableDto' + columns: + type: array + items: + $ref: '#/components/schemas/ColumnDto' + UnitDto: + required: + - columns + - created + - id + - uri + type: object + properties: + id: + type: integer + format: int64 + uri: + type: string + name: + type: string + description: + type: string + created: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + columns: + type: array + items: + $ref: '#/components/schemas/ColumnBriefDto' + ViewDto: + required: + - columns + - created + - creator + - database + - database_id + - id + - internal_name + - name + - query + - query_hash + type: object + properties: + id: + type: integer + format: int64 + database: + $ref: '#/components/schemas/DatabaseDto' + name: + type: string + example: Air Quality + identifiers: + type: array + items: + $ref: '#/components/schemas/IdentifierDto' query: type: string example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC @@ -5461,6 +5074,13 @@ components: example: 2021-03-12T15:26:21Z creator: $ref: '#/components/schemas/UserDto' + columns: + type: array + items: + $ref: '#/components/schemas/ColumnDto' + database_id: + type: integer + format: int64 internal_name: type: string example: air_quality @@ -5478,156 +5098,133 @@ components: type: string format: date-time example: 2021-03-12T15:26:21Z - BannerMessageUpdateDto: + DatabaseTransferDto: required: - - message - - type + - username type: object properties: - type: - type: string - enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: + username: type: string - example: https://example.com - link_text: + ColumnSemanticsUpdateDto: + type: object + properties: + concept_uri: type: string - example: More - display_start: + unit_uri: type: string - format: date-time - example: 2021-03-12T15:26:21Z - display_end: + DatabaseModifyAccessDto: + required: + - type + type: object + properties: + type: type: string - format: date-time - example: 2021-03-12T15:26:21Z - BannerMessageNotFoundException: + enum: + - read + - write_own + - write_all + QueryPersistDto: + required: + - persist type: object properties: - cause: - type: object - properties: - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - suppressed: - type: array - items: - type: object - properties: - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - localizedMessage: - type: string - localizedMessage: - type: string - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: + persist: + type: boolean + example: true + QueryDto: + required: + - created + - creator + - database_id + - execution + - id + - is_persisted + - last_modified + - query + - query_hash + type: object + properties: + id: + type: integer + format: int64 + creator: + $ref: '#/components/schemas/UserDto' + execution: type: string - suppressed: + format: date-time + example: 2021-03-12T15:26:21Z + query: + type: string + example: SELECT `id` FROM `air_quality` + type: + type: string + example: query + enum: + - query + - view + identifiers: type: array items: - type: object - properties: - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - localizedMessage: - type: string - localizedMessage: + $ref: '#/components/schemas/IdentifierDto' + created: type: string - BannerMessageBriefDto: + format: date-time + example: 2021-03-12T15:26:21Z + database_id: + type: integer + format: int64 + query_normalized: + type: string + example: SELECT `id` FROM `air_quality` + query_hash: + type: string + example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 + is_persisted: + type: boolean + example: true + result_hash: + type: string + example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 + result_number: + type: integer + format: int64 + example: 1 + last_modified: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + SignupRequestDto: + required: + - email + - password + - username + type: object + properties: + username: + pattern: "^[a-z0-9]{3,}$" + type: string + example: user + email: + type: string + example: user@example.com + password: + type: string + OntologyCreateDto: + required: + - prefix + - uri + type: object + properties: + uri: + type: string + example: Ontology URI + prefix: + type: string + example: Ontology prefix + sparql_endpoint: + type: string + example: Ontology SPARQL endpoint + BannerMessageCreateDto: required: - message - type @@ -5648,418 +5245,861 @@ components: link_text: type: string example: More - ImageChangeDto: + display_start: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + display_end: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + ImageCreateDto: required: + - default_port - dialect - driver_class - jdbc_method + - name - registry + - version type: object properties: registry: type: string example: docker.io/library - defaultPort: - maximum: 65535 - minimum: 1024 - type: integer - format: int32 - example: 5432 + name: + type: string + example: mariadb + version: + type: string dialect: type: string - example: Postgres driver_class: type: string - example: org.postgresql.Driver jdbc_method: type: string - example: postgresql - DatabaseModifyVisibilityDto: + default_port: + maximum: 65535 + minimum: 1024 + type: integer + format: int32 + CreatorSaveDto: required: - - is_public + - creator_name + - firstname + - lastname + - name_type type: object properties: - is_public: - type: boolean - example: true - DatabaseTransferDto: + id: + type: integer + format: int64 + firstname: + type: string + example: Josiah + lastname: + type: string + example: Carberry + affiliation: + type: string + example: Wesleyan University + creator_name: + type: string + example: "Carberry, Josiah" + name_type: + type: string + example: Personal + enum: + - Personal + - Organizational + name_identifier: + type: string + example: 0000-0002-1825-0097 + name_identifier_scheme: + type: string + example: ORCID + enum: + - ORCID + - ROR + - ISNI + - GRID + affiliation_identifier: + type: string + example: https://ror.org/04d836q62 + affiliation_identifier_scheme: + type: string + example: ROR + enum: + - ROR + - GRID + - ISNI + IdentifierFunderSaveDto: required: - - username + - funder_name type: object properties: - username: + id: + type: integer + format: int64 + funder_name: type: string - ColumnSemanticsUpdateDto: - type: object - properties: - concept_uri: + example: European Commission + funder_identifier: type: string - unit_uri: + example: http://doi.org/10.13039/501100000780 + funder_identifier_type: type: string - ColumnDto: - required: - - auto_generated - - column_type - - database_id - - id - - internal_name - - is_null_allowed - - is_primary_key - - is_public - - name - - table_id + example: Crossref Funder ID + enum: + - Crossref Funder ID + - ROR + - GND + - ISNI + - Other + scheme_uri: + type: string + example: http://doi.org/ + award_number: + type: string + example: "824087" + award_title: + type: string + example: EOSC-Life + IdentifierSaveDescriptionDto: type: object properties: id: type: integer format: int64 - name: + description: type: string - example: Date - alias: + example: "Air quality reports at Stephansplatz, Vienna" + language: type: string - size: - type: integer - format: int32 - example: 255 - d: - type: integer - format: int32 - example: 0 - concept: - $ref: '#/components/schemas/ConceptDto' - unit: - $ref: '#/components/schemas/UnitDto' - enums: - type: array - items: - type: string - sets: - type: array - items: - type: string - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - date_format: - $ref: '#/components/schemas/ImageDateDto' - auto_generated: - type: boolean - example: false - is_primary_key: - type: boolean - example: true - index_length: - type: integer - format: int32 - column_type: - type: string - example: string - enum: - - char - - varchar - - binary - - varbinary - - tinyblob - - tinytext - - text - - blob - - mediumtext - - mediumblob - - longtext - - longblob - - enum - - set - - bit - - tinyint - - bool - - smallint - - mediumint - - int - - bigint - - float - - double - - decimal - - date - - datetime - - timestamp - - time - - year - is_public: - type: boolean - example: true - is_null_allowed: - type: boolean - example: false - ConceptDto: - required: - - columns - - created - - id - - uri - type: object - properties: - id: - type: integer - format: int64 - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - UnitDto: - required: - - columns - - created - - id - - uri - type: object - properties: - id: - type: integer - format: int64 - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - DatabaseModifyAccessDto: - required: - - type - type: object - properties: - type: - type: string - enum: - - read - - write_own - - write_all - TableCsvUpdateDto: - required: - - data - - keys - type: object - properties: - data: - type: object - additionalProperties: - type: object - keys: - type: object - additionalProperties: - type: object - QueryPersistDto: - required: - - persist - type: object - properties: - persist: - type: boolean - example: true - QueryDto: - required: - - cid - - created - - creator - - dbid - - execution - - id - - is_persisted - - last_modified - - query - - query_hash - type: object - properties: - id: - type: integer - format: int64 - cid: - type: integer - format: int64 - dbid: - type: integer - format: int64 - creator: - $ref: '#/components/schemas/UserDto' - execution: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - query: - type: string - example: SELECT `id` FROM `air_quality` - type: - type: string - example: query + example: en enum: - - query - - view - identifier: - $ref: '#/components/schemas/IdentifierDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - query_normalized: - type: string - example: SELECT `id` FROM `air_quality` - query_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - is_persisted: - type: boolean - example: true - result_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - result_number: - type: integer - format: int64 - example: 1 - last_modified: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - SignupRequestDto: - required: - - email - - password - - username - type: object - properties: - username: - pattern: "^[a-z0-9]{3,}$" - type: string - example: user - email: - type: string - example: user@example.com - password: - type: string - UnitSaveDto: - required: - - description - - name - - uri - type: object - properties: - uri: - type: string - name: - type: string - description: + - ab + - aa + - af + - ak + - sq + - am + - ar + - an + - hy + - as + - av + - ae + - ay + - az + - bm + - ba + - eu + - be + - bn + - bh + - bi + - bs + - br + - bg + - my + - ca + - km + - ch + - ce + - ny + - zh + - cu + - cv + - kw + - co + - cr + - hr + - cs + - da + - dv + - nl + - dz + - en + - eo + - et + - ee + - fo + - fj + - fi + - fr + - ff + - gd + - gl + - lg + - ka + - de + - ki + - el + - kl + - gn + - gu + - ht + - ha + - he + - hz + - hi + - ho + - hu + - is + - io + - ig + - id + - ia + - ie + - iu + - ik + - ga + - it + - ja + - jv + - kn + - kr + - ks + - kk + - rw + - kv + - kg + - ko + - kj + - ku + - ky + - lo + - la + - lv + - lb + - li + - ln + - lt + - lu + - mk + - mg + - ms + - ml + - mt + - gv + - mi + - mr + - mh + - ro + - mn + - na + - nv + - nd + - ng + - ne + - se + - "no" + - nb + - nn + - ii + - oc + - oj + - or + - om + - os + - pi + - pa + - ps + - fa + - pl + - pt + - qu + - rm + - rn + - ru + - sm + - sg + - sa + - sc + - sr + - sn + - sd + - si + - sk + - sl + - so + - st + - nr + - es + - su + - sw + - ss + - sv + - tl + - ty + - tg + - ta + - tt + - te + - th + - bo + - ti + - to + - ts + - tn + - tr + - tk + - tw + - ug + - uk + - ur + - uz + - ve + - vi + - vo + - wa + - cy + - fy + - wo + - xh + - yi + - yo + - za + - zu + type: type: string - OntologyCreateDto: + example: Abstract + enum: + - Abstract + - Methods + - SeriesInformation + - TableOfContents + - TechnicalInfo + - Other + IdentifierSaveDto: required: - - prefix - - uri + - creators + - database_id + - publication_year + - type type: object properties: - uri: + type: type: string - example: Ontology URI - prefix: + example: database + enum: + - database + - subset + - table + - view + titles: + type: array + items: + $ref: '#/components/schemas/IdentifierSaveTitleDto' + descriptions: + type: array + items: + $ref: '#/components/schemas/IdentifierSaveDescriptionDto' + funders: + type: array + items: + $ref: '#/components/schemas/IdentifierFunderSaveDto' + licenses: + type: array + items: + $ref: '#/components/schemas/LicenseDto' + publisher: type: string - example: Ontology prefix - sparql_endpoint: + example: TU Wien + language: type: string - example: Ontology SPARQL endpoint - ConceptSaveDto: - required: - - description - - name - - uri + enum: + - ab + - aa + - af + - ak + - sq + - am + - ar + - an + - hy + - as + - av + - ae + - ay + - az + - bm + - ba + - eu + - be + - bn + - bh + - bi + - bs + - br + - bg + - my + - ca + - km + - ch + - ce + - ny + - zh + - cu + - cv + - kw + - co + - cr + - hr + - cs + - da + - dv + - nl + - dz + - en + - eo + - et + - ee + - fo + - fj + - fi + - fr + - ff + - gd + - gl + - lg + - ka + - de + - ki + - el + - kl + - gn + - gu + - ht + - ha + - he + - hz + - hi + - ho + - hu + - is + - io + - ig + - id + - ia + - ie + - iu + - ik + - ga + - it + - ja + - jv + - kn + - kr + - ks + - kk + - rw + - kv + - kg + - ko + - kj + - ku + - ky + - lo + - la + - lv + - lb + - li + - ln + - lt + - lu + - mk + - mg + - ms + - ml + - mt + - gv + - mi + - mr + - mh + - ro + - mn + - na + - nv + - nd + - ng + - ne + - se + - "no" + - nb + - nn + - ii + - oc + - oj + - or + - om + - os + - pi + - pa + - ps + - fa + - pl + - pt + - qu + - rm + - rn + - ru + - sm + - sg + - sa + - sc + - sr + - sn + - sd + - si + - sk + - sl + - so + - st + - nr + - es + - su + - sw + - ss + - sv + - tl + - ty + - tg + - ta + - tt + - te + - th + - bo + - ti + - to + - ts + - tn + - tr + - tk + - tw + - ug + - uk + - ur + - uz + - ve + - vi + - vo + - wa + - cy + - fy + - wo + - xh + - yi + - yo + - za + - zu + creators: + type: array + items: + $ref: '#/components/schemas/CreatorSaveDto' + database_id: + type: integer + format: int64 + example: 1 + query_id: + type: integer + format: int64 + view_id: + type: integer + format: int64 + table_id: + type: integer + format: int64 + publication_day: + type: integer + format: int32 + example: 15 + publication_month: + type: integer + format: int32 + example: 12 + publication_year: + type: integer + format: int32 + example: 2022 + related_identifiers: + type: array + items: + $ref: '#/components/schemas/RelatedIdentifierSaveDto' + IdentifierSaveTitleDto: type: object properties: - uri: - type: string - name: + id: + type: integer + format: int64 + title: type: string - description: + example: Airquality Demonstrator + language: type: string - BannerMessageCreateDto: - required: - - message - - type - type: object - properties: + example: en + enum: + - ab + - aa + - af + - ak + - sq + - am + - ar + - an + - hy + - as + - av + - ae + - ay + - az + - bm + - ba + - eu + - be + - bn + - bh + - bi + - bs + - br + - bg + - my + - ca + - km + - ch + - ce + - ny + - zh + - cu + - cv + - kw + - co + - cr + - hr + - cs + - da + - dv + - nl + - dz + - en + - eo + - et + - ee + - fo + - fj + - fi + - fr + - ff + - gd + - gl + - lg + - ka + - de + - ki + - el + - kl + - gn + - gu + - ht + - ha + - he + - hz + - hi + - ho + - hu + - is + - io + - ig + - id + - ia + - ie + - iu + - ik + - ga + - it + - ja + - jv + - kn + - kr + - ks + - kk + - rw + - kv + - kg + - ko + - kj + - ku + - ky + - lo + - la + - lv + - lb + - li + - ln + - lt + - lu + - mk + - mg + - ms + - ml + - mt + - gv + - mi + - mr + - mh + - ro + - mn + - na + - nv + - nd + - ng + - ne + - se + - "no" + - nb + - nn + - ii + - oc + - oj + - or + - om + - os + - pi + - pa + - ps + - fa + - pl + - pt + - qu + - rm + - rn + - ru + - sm + - sg + - sa + - sc + - sr + - sn + - sd + - si + - sk + - sl + - so + - st + - nr + - es + - su + - sw + - ss + - sv + - tl + - ty + - tg + - ta + - tt + - te + - th + - bo + - ti + - to + - ts + - tn + - tr + - tk + - tw + - ug + - uk + - ur + - uz + - ve + - vi + - vo + - wa + - cy + - fy + - wo + - xh + - yi + - yo + - za + - zu type: type: string + example: Subtitle enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: - type: string - example: https://example.com - link_text: - type: string - example: More - display_start: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - display_end: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - ImageCreateDto: + - AlternativeTitle + - Subtitle + - TranslatedTitle + - Other + RelatedIdentifierSaveDto: required: - - default_port - - dialect - - driver_class - - jdbc_method - - name - - registry - - version + - value type: object properties: - registry: - type: string - example: docker.io/library - name: - type: string - example: mariadb - version: - type: string - dialect: + value: type: string - driver_class: + example: 10.70124/dc4zh-9ce78 + type: type: string - jdbc_method: + example: DOI + enum: + - DOI + - URL + - URN + - ARK + - arXiv + - bibcode + - EAN13 + - EISSN + - Handle + - IGSN + - ISBN + - ISTC + - LISSN + - LSID + - PMID + - PURL + - UPC + - w3id + relation: type: string - default_port: - maximum: 65535 - minimum: 1024 - type: integer - format: int32 + example: Cites + enum: + - IsCitedBy + - Cites + - IsSupplementTo + - IsSupplementedBy + - IsContinuedBy + - Continues + - IsDescribedBy + - Describes + - HasMetadata + - IsMetadataFor + - HasVersion + - IsVersionOf + - IsNewVersionOf + - IsPreviousVersionOf + - IsPartOf + - HasPart + - IsPublishedIn + - IsReferencedBy + - References + - IsDocumentedBy + - Documents + - IsCompiledBy + - Compiles + - IsVariantFormOf + - IsOriginalFormOf + - IsIdenticalTo + - IsReviewedBy + - Reviews + - IsDerivedFrom + - IsSourceOf + - IsRequiredBy + - Requires + - IsObsoletedBy + - Obsoletes DatabaseCreateDto: required: - container_id @@ -6082,6 +6122,7 @@ components: - created - hash - id + - image - internal_name - name - running @@ -6096,6 +6137,8 @@ components: name: type: string example: Air Quality + image: + $ref: '#/components/schemas/ImageBriefDto' running: type: boolean example: true @@ -6106,11 +6149,32 @@ components: internal_name: type: string example: air-quality + CreatorBriefDto: + required: + - creator_name + type: object + properties: + affiliation: + type: string + example: Wesleyan University + name_identifier: + type: string + example: https://orcid.org/0000-0002-1825-0097 + name_type: + type: string + example: Personal + enum: + - Personal + - Organizational + creator_name: + type: string + example: "Carberry, Josiah" DatabaseBriefDto: required: - created + - creator + - exchange_name - id - - image - internal_name - name - owner @@ -6122,32 +6186,160 @@ components: name: type: string example: Air Quality - description: - type: string - example: Air Quality in Austria identifier: - $ref: '#/components/schemas/IdentifierBriefDto' - engine: + $ref: '#/components/schemas/IdentifierDto' + description: type: string - example: mariadb:10.5 - owner: - $ref: '#/components/schemas/UserBriefDto' + example: Air Quality + tables: + type: array + items: + $ref: '#/components/schemas/TableBriefDto' + views: + type: array + items: + $ref: '#/components/schemas/ViewBriefDto' + image: + $ref: '#/components/schemas/ImageDto' container: $ref: '#/components/schemas/ContainerBriefDto' + accesses: + type: array + items: + $ref: '#/components/schemas/DatabaseAccessDto' creator: $ref: '#/components/schemas/UserBriefDto' + owner: + $ref: '#/components/schemas/UserBriefDto' created: type: string format: date-time example: 2021-03-12T15:26:21Z - image: - $ref: '#/components/schemas/ImageBriefDto' + exchange_name: + type: string + example: dbrepo + exchange_type: + type: string + example: topic + internal_name: + type: string + example: air_quality + is_public: + type: boolean + example: true + IdentifierBriefDto: + required: + - creators + - id + - publication_year + - type + type: object + properties: + id: + type: integer + format: int64 + type: + type: string + enum: + - database + - subset + - table + - view + titles: + type: array + items: + $ref: '#/components/schemas/IdentifierTitleDto' + doi: + type: string + example: 10.1038/nphys1170 + publisher: + type: string + example: TU Wien + creators: + type: array + items: + $ref: '#/components/schemas/CreatorBriefDto' + database_id: + type: integer + format: int64 + example: 1 + query_id: + type: integer + format: int64 + example: 1 + publication_year: + type: integer + format: int32 + example: 2022 + ImageBriefDto: + required: + - id + - jdbc_method + - name + - version + type: object + properties: + id: + type: integer + format: int64 + name: + type: string + example: mariadb + version: + type: string + example: "10.5" + jdbc_method: + type: string + example: mariadb + ViewBriefDto: + required: + - created + - creator + - id + - internal_name + - name + - query + - query_hash + - vdbid + type: object + properties: + id: + type: integer + format: int64 + vdbid: + type: integer + format: int64 + name: + type: string + example: Air Quality + identifier: + $ref: '#/components/schemas/IdentifierBriefDto' + query: + type: string + example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC + created: + type: string + format: date-time + example: 2021-03-12T15:26:21Z + creator: + $ref: '#/components/schemas/UserDto' internal_name: type: string example: air_quality is_public: type: boolean example: true + initial_view: + type: boolean + description: True if it is the default view for the database + example: true + query_hash: + type: string + example: 7de03e818900b6ea6d58ad0306d4a741d658c6df3d1964e89ed2395d8c7e7916 + last_modified: + type: string + format: date-time + example: 2021-03-12T15:26:21Z DatabaseGiveAccessDto: required: - type @@ -6221,11 +6413,11 @@ components: - year size: type: integer - format: int32 + format: int64 example: 255 d: type: integer - format: int32 + format: int64 example: 0 dfid: type: integer @@ -6248,7 +6440,7 @@ components: example: false index_length: type: integer - format: int32 + format: int64 null_allowed: type: boolean example: true @@ -6333,7 +6525,7 @@ components: properties: location: type: string - example: /tmp/file.csv + example: file.csv separator: type: string example: "," @@ -6517,14 +6709,23 @@ components: type: string internalName: type: string - imageId: - type: integer - format: int64 host: type: string port: type: integer format: int32 + sidecarHost: + type: string + sidecarPort: + type: integer + format: int32 + uiHost: + type: string + uiPort: + type: integer + format: int32 + uiAdditionalFlags: + type: string databases: type: array items: @@ -6611,8 +6812,8 @@ components: nameType: type: string enum: - - Personal - - Organizational + - PERSONAL + - ORGANIZATIONAL nameIdentifier: type: string nameIdentifierScheme: @@ -6678,8 +6879,14 @@ components: format: uuid contact: $ref: '#/components/schemas/User' - identifier: - $ref: '#/components/schemas/Identifier' + identifiers: + type: array + items: + $ref: '#/components/schemas/Identifier' + subsets: + type: array + items: + $ref: '#/components/schemas/Identifier' tables: type: array items: @@ -6688,6 +6895,10 @@ components: type: array items: $ref: '#/components/schemas/View' + accesses: + type: array + items: + $ref: '#/components/schemas/DatabaseAccess' isPublic: type: boolean created: @@ -6774,6 +6985,9 @@ components: queryId: type: integer format: int64 + tableId: + type: integer + format: int64 viewId: type: integer format: int64 @@ -6991,6 +7205,7 @@ components: enum: - DATABASE - SUBSET + - TABLE - VIEW query: type: string @@ -7015,11 +7230,6 @@ components: publicationDay: type: integer format: int32 - visibility: - type: string - enum: - - VisibilityType.EVERYONE - - VisibilityType.SELF database: $ref: '#/components/schemas/Database' relatedIdentifiers: @@ -7583,10 +7793,26 @@ components: type: array items: $ref: '#/components/schemas/TableColumn' + identifiers: + type: array + items: + $ref: '#/components/schemas/Identifier' constraints: $ref: '#/components/schemas/Constraints' isVersioned: type: boolean + numRows: + type: integer + format: int64 + dataLength: + type: integer + format: int64 + maxDataLength: + type: integer + format: int64 + avgRowLength: + type: integer + format: int64 created: type: string format: date-time @@ -7617,7 +7843,7 @@ components: type: boolean indexLength: type: integer - format: int32 + format: int64 alias: type: string columnType: @@ -7654,7 +7880,7 @@ components: - TableColumnType.YEAR length: type: integer - format: int32 + format: int64 isNullAllowed: type: boolean ordinalPosition: @@ -7677,10 +7903,20 @@ components: type: string size: type: integer - format: int32 + format: int64 d: type: integer - format: int32 + format: int64 + valMin: + type: number + valMax: + type: number + mean: + type: number + median: + type: number + stdDev: + type: number lastModified: type: string format: date-time @@ -7772,6 +8008,8 @@ components: createdBy: type: string format: uuid + creator: + $ref: '#/components/schemas/User' name: type: string internalName: @@ -7784,10 +8022,12 @@ components: type: string queryHash: type: string + identifiers: + type: array + items: + $ref: '#/components/schemas/Identifier' database: $ref: '#/components/schemas/Database' - identifier: - $ref: '#/components/schemas/Identifier' columns: type: array items: @@ -7798,194 +8038,14 @@ components: lastModified: type: string format: date-time - ViewDto: - required: - - columns - - created - - creator - - database - - database_id - - id - - internal_name - - name - - query - - query_hash - type: object - properties: - id: - type: integer - format: int64 - database: - $ref: '#/components/schemas/DatabaseDto' - name: - type: string - example: Air Quality - identifier: - $ref: '#/components/schemas/IdentifierDto' - query: - type: string - example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - creator: - $ref: '#/components/schemas/UserDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - database_id: - type: integer - format: int64 - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - initial_view: - type: boolean - description: True if it is the default view for the database - example: true - query_hash: - type: string - example: 7de03e818900b6ea6d58ad0306d4a741d658c6df3d1964e89ed2395d8c7e7916 - last_modified: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - ConstraintsDto: - type: object - properties: - uniques: - type: array - items: - $ref: '#/components/schemas/UniqueDto' - checks: - type: array - items: - type: string - foreign_keys: - type: array - items: - $ref: '#/components/schemas/ForeignKeyDto' - ForeignKeyDto: - type: object - properties: - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - referenced_table: - $ref: '#/components/schemas/TableBriefDto' - referenced_columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - on_update: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - on_delete: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - TableDto: - required: - - columns - - created - - created_by - - creator - - database - - id - - internal_name - - is_public - - is_versioned - - name - - owner - - queue_name - - routing_key - type: object - properties: - id: - type: integer - format: int64 - database: - $ref: '#/components/schemas/DatabaseDto' - name: - type: string - example: Air Quality - creator: - $ref: '#/components/schemas/UserDto' - owner: - $ref: '#/components/schemas/UserDto' - description: - type: string - example: Air Quality in Austria - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - constraints: - $ref: '#/components/schemas/ConstraintsDto' - internal_name: - type: string - example: air_quality - is_versioned: - type: boolean - example: true - created_by: - type: string - format: uuid - queue_name: - type: string - example: air_quality - queue_type: - type: string - example: quorum - routing_key: - type: string - example: dbrepo.database.air_quality - is_public: - type: boolean - example: true - UniqueDto: - required: - - columns - - table - - uid - type: object - properties: - uid: - type: integer - format: int64 - table: - $ref: '#/components/schemas/TableDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' QueryBriefDto: required: - - cid - created - creator - - dbid + - database_id - execution - id + - is_persisted - last_modified - query - query_hash @@ -7994,12 +8054,6 @@ components: id: type: integer format: int64 - cid: - type: integer - format: int64 - dbid: - type: integer - format: int64 creator: $ref: '#/components/schemas/UserDto' execution: @@ -8014,12 +8068,17 @@ components: enum: - query - view - identifier: - $ref: '#/components/schemas/IdentifierBriefDto' + identifiers: + type: array + items: + $ref: '#/components/schemas/IdentifierBriefDto' created: type: string format: date-time example: 2021-03-12T15:26:21Z + database_id: + type: integer + format: int64 query_normalized: type: string example: SELECT `id` FROM `air_quality` @@ -8033,6 +8092,9 @@ components: type: integer format: int64 example: 1 + is_persisted: + type: boolean + example: true last_modified: type: string format: date-time diff --git a/.docs/.swagger/api-mirror.yaml b/.docs/.swagger/api-mirror.yaml deleted file mode 100644 index 2310a7fd8baeb4fbc8d33224dc36869b8777a14e..0000000000000000000000000000000000000000 --- a/.docs/.swagger/api-mirror.yaml +++ /dev/null @@ -1,14 +0,0 @@ -openapi: 3.0.1 -info: - title: OpenAPI definition - version: v0 -servers: -- url: http://localhost:9050 - description: Generated server url -paths: {} -components: - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/.swagger/api-query.yaml b/.docs/.swagger/api-query.yaml deleted file mode 100644 index 16168d93b08fc5f2d3b79131526ad2c8a027b0eb..0000000000000000000000000000000000000000 --- a/.docs/.swagger/api-query.yaml +++ /dev/null @@ -1,2520 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository Query Service API - description: Service that manages the queries - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.2.0 -externalDocs: - description: Sourcecode Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services -servers: -- url: http://localhost:9093 - description: Generated server url -- url: https://dbrepo2.tuwien.ac.at - description: Sandbox -paths: - /api/container/{id}/database/{databaseId}/table/{tableId}/history: - get: - tags: - - table-history-endpoint - summary: Find all history - operationId: getAll - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "405": - description: Find table history is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Find table history successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableHistoryDto' - "404": - description: "Table, database or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to query table history - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Table history query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - head: - tags: - - table-history-endpoint - summary: Find all history - operationId: getAll_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "405": - description: Find table history is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Find table history successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableHistoryDto' - "404": - description: "Table, database or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to query table history - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Table history query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/table/{tableId}/data: - get: - tags: - - table-data-endpoint - summary: Find data - operationId: getAll_2 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: timestamp - in: query - required: false - schema: - type: string - format: date-time - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - - name: sortDirection - in: query - required: false - schema: - type: string - enum: - - asc - - desc - - name: sortColumn - in: query - required: false - schema: - type: string - responses: - "200": - description: OK - content: - '*/*': - schema: - $ref: '#/components/schemas/QueryResultDto' - security: - - bearerAuth: [] - put: - tags: - - table-data-endpoint - summary: Update data - operationId: update - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TableCsvUpdateDto' - required: true - responses: - "200": - description: OK - deprecated: true - security: - - bearerAuth: [] - post: - tags: - - table-data-endpoint - summary: Insert data - operationId: insert - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TableCsvDto' - required: true - responses: - "200": - description: OK - security: - - bearerAuth: [] - delete: - tags: - - table-data-endpoint - summary: Delete data - operationId: delete_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TableCsvDeleteDto' - required: true - responses: - "200": - description: OK - security: - - bearerAuth: [] - head: - tags: - - table-data-endpoint - summary: Find data - operationId: getAll_3 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: timestamp - in: query - required: false - schema: - type: string - format: date-time - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - - name: sortDirection - in: query - required: false - schema: - type: string - enum: - - asc - - desc - - name: sortColumn - in: query - required: false - schema: - type: string - responses: - "200": - description: OK - content: - '*/*': - schema: - $ref: '#/components/schemas/QueryResultDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/query/{queryId}: - get: - tags: - - store-endpoint - summary: Find some query - operationId: find_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: List queries - content: - application/json: - schema: - $ref: '#/components/schemas/QueryDto' - "404": - description: "Database, query or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find query is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to select query - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - put: - tags: - - store-endpoint - summary: Persist some query - operationId: persist - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "404": - description: "Database, query or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Persist query successful - content: - application/json: - schema: - $ref: '#/components/schemas/QueryDto' - "405": - description: Persist query is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to persist query - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Query is already persisted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/view: - get: - tags: - - view-endpoint - summary: Find all views - operationId: findAll - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "404": - description: Database or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find views is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Find views successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ViewBriefDto' - security: - - bearerAuth: [] - post: - tags: - - view-endpoint - summary: Create a view - operationId: create - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ViewCreateDto' - required: true - responses: - "401": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Database or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Create view is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Create view successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ViewBriefDto' - "423": - description: Create view resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Create view query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/table/{tableId}/data/import: - post: - tags: - - table-data-endpoint - summary: Insert data from csv - operationId: importCsv - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ImportDto' - required: true - responses: - "200": - description: OK - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/query: - get: - tags: - - store-endpoint - summary: Find queries - operationId: findAll_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: persisted - in: query - required: false - schema: - type: boolean - responses: - "405": - description: Find all queries is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to select query - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, container or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "423": - description: Selection of time-versioned query resulted in an invalid query - statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: List queries - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/QueryBriefDto' - security: - - bearerAuth: [] - post: - tags: - - query-endpoint - summary: Execute query - operationId: execute - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - - name: sortDirection - in: query - required: false - schema: - type: string - enum: - - asc - - desc - - name: sortColumn - in: query - required: false - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ExecuteStatementDto' - required: true - responses: - "200": - description: OK - content: - '*/*': - schema: - $ref: '#/components/schemas/QueryResultDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/view/{viewId}: - get: - tags: - - view-endpoint - summary: Find one view - operationId: find - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: viewId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Find view successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ViewDto' - "404": - description: "Database, view or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find view is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - view-endpoint - summary: Delete one view - operationId: delete - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: viewId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "401": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, view or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Delete view query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Delete view successfully - "423": - description: Delete view resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Delete view is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/view/{viewId}/data: - get: - tags: - - view-endpoint - summary: Find view data - operationId: data - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: viewId - in: path - required: true - schema: - type: integer - format: int64 - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - responses: - "200": - description: Find data successfully - content: - application/json: - schema: - $ref: '#/components/schemas/QueryResultDto' - "401": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "423": - description: Find data resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "417": - description: Parsing of resulting columns failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to query view data - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, view, container or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Pagination not in valid range or find data query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find data is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/view/{viewId}/data/count: - get: - tags: - - view-endpoint - summary: Find view data count - operationId: count - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: viewId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: OK - content: - '*/*': - schema: - type: integer - format: int64 - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/table/{tableId}/export: - get: - tags: - - export-endpoint - summary: Export table - operationId: export - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: timestamp - in: query - required: false - schema: - type: string - format: date-time - responses: - "200": - description: OK - content: - '*/*': - schema: - type: string - format: binary - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/table/{tableId}/data/count: - get: - tags: - - table-data-endpoint - summary: Find data - operationId: getCount - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: timestamp - in: query - required: false - schema: - type: string - format: date-time - responses: - "200": - description: OK - content: - '*/*': - schema: - type: integer - format: int64 - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/query/{queryId}/export: - get: - tags: - - query-endpoint - summary: Exports some query - operationId: export_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - - name: Accept - in: header - required: true - schema: - type: string - responses: - "200": - description: OK - content: - '*/*': - schema: - type: object - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/query/{queryId}/data: - get: - tags: - - query-endpoint - summary: Re-execute some query - operationId: reExecute - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - - name: sortDirection - in: query - required: false - schema: - type: string - enum: - - asc - - desc - - name: sortColumn - in: query - required: false - schema: - type: string - responses: - "200": - description: OK - content: - '*/*': - schema: - $ref: '#/components/schemas/QueryResultDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/query/{queryId}/data/count: - get: - tags: - - query-endpoint - summary: Re-execute some query - operationId: reExecuteCount - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: OK - content: - '*/*': - schema: - type: integer - format: int64 - security: - - bearerAuth: [] -components: - schemas: - ApiErrorDto: - required: - - code - - message - - status - type: object - properties: - status: - type: string - example: STATUS - enum: - - 100 CONTINUE - - 101 SWITCHING_PROTOCOLS - - 102 PROCESSING - - 103 EARLY_HINTS - - 103 CHECKPOINT - - 200 OK - - 201 CREATED - - 202 ACCEPTED - - 203 NON_AUTHORITATIVE_INFORMATION - - 204 NO_CONTENT - - 205 RESET_CONTENT - - 206 PARTIAL_CONTENT - - 207 MULTI_STATUS - - 208 ALREADY_REPORTED - - 226 IM_USED - - 300 MULTIPLE_CHOICES - - 301 MOVED_PERMANENTLY - - 302 FOUND - - 302 MOVED_TEMPORARILY - - 303 SEE_OTHER - - 304 NOT_MODIFIED - - 305 USE_PROXY - - 307 TEMPORARY_REDIRECT - - 308 PERMANENT_REDIRECT - - 400 BAD_REQUEST - - 401 UNAUTHORIZED - - 402 PAYMENT_REQUIRED - - 403 FORBIDDEN - - 404 NOT_FOUND - - 405 METHOD_NOT_ALLOWED - - 406 NOT_ACCEPTABLE - - 407 PROXY_AUTHENTICATION_REQUIRED - - 408 REQUEST_TIMEOUT - - 409 CONFLICT - - 410 GONE - - 411 LENGTH_REQUIRED - - 412 PRECONDITION_FAILED - - 413 PAYLOAD_TOO_LARGE - - 413 REQUEST_ENTITY_TOO_LARGE - - 414 URI_TOO_LONG - - 414 REQUEST_URI_TOO_LONG - - 415 UNSUPPORTED_MEDIA_TYPE - - 416 REQUESTED_RANGE_NOT_SATISFIABLE - - 417 EXPECTATION_FAILED - - 418 I_AM_A_TEAPOT - - 419 INSUFFICIENT_SPACE_ON_RESOURCE - - 420 METHOD_FAILURE - - 421 DESTINATION_LOCKED - - 422 UNPROCESSABLE_ENTITY - - 423 LOCKED - - 424 FAILED_DEPENDENCY - - 425 TOO_EARLY - - 426 UPGRADE_REQUIRED - - 428 PRECONDITION_REQUIRED - - 429 TOO_MANY_REQUESTS - - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - - 451 UNAVAILABLE_FOR_LEGAL_REASONS - - 500 INTERNAL_SERVER_ERROR - - 501 NOT_IMPLEMENTED - - 502 BAD_GATEWAY - - 503 SERVICE_UNAVAILABLE - - 504 GATEWAY_TIMEOUT - - 505 HTTP_VERSION_NOT_SUPPORTED - - 506 VARIANT_ALSO_NEGOTIATES - - 507 INSUFFICIENT_STORAGE - - 508 LOOP_DETECTED - - 509 BANDWIDTH_LIMIT_EXCEEDED - - 510 NOT_EXTENDED - - 511 NETWORK_AUTHENTICATION_REQUIRED - message: - type: string - example: Error message - code: - type: string - example: error.service.code - TableHistoryDto: - required: - - event - - timestamp - - total - type: object - properties: - timestamp: - type: string - format: date-time - event: - type: string - total: - type: integer - format: int64 - example: 1 - QueryResultDto: - required: - - id - - result - type: object - properties: - result: - type: array - items: - type: object - additionalProperties: - type: object - id: - type: integer - format: int64 - result_number: - type: integer - format: int64 - example: 1 - TableCsvUpdateDto: - required: - - data - - keys - type: object - properties: - data: - type: object - additionalProperties: - type: object - keys: - type: object - additionalProperties: - type: object - ColumnBriefDto: - required: - - column_type - - database_id - - id - - internal_name - - name - - table_id - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: date - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - column_type: - type: string - example: date - enum: - - enum - - number - - decimal - - string - - text - - boolean - - date - - timestamp - - blob - ContainerDto: - required: - - created - - hash - - id - - internal_name - - name - - running - type: object - properties: - id: - type: integer - format: int64 - hash: - type: string - example: f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50 - name: - type: string - example: Air Quality - state: - type: string - example: running - enum: - - created - - restarting - - running - - paused - - exited - - dead - database: - $ref: '#/components/schemas/DatabaseDto' - running: - type: boolean - example: true - image: - $ref: '#/components/schemas/ImageBriefDto' - port: - type: integer - format: int32 - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21.678396092Z - internal_name: - type: string - example: air-quality - ip_address: - type: string - CreatorDto: - required: - - firstname - - id - - lastname - type: object - properties: - id: - type: integer - format: int64 - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - orcid: - type: string - example: 0000-0002-1825-0097 - DatabaseAccessDto: - required: - - type - - user - type: object - properties: - user: - $ref: '#/components/schemas/UserDto' - type: - type: string - enum: - - read - - write_own - - write_all - created: - type: string - format: date-time - DatabaseDto: - required: - - creator - - exchange_name - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - identifier: - $ref: '#/components/schemas/IdentifierDto' - description: - type: string - example: Weather Australia 2009-2021 - tables: - type: array - items: - $ref: '#/components/schemas/TableBriefDto' - views: - type: array - items: - $ref: '#/components/schemas/ViewBriefDto' - image: - $ref: '#/components/schemas/ImageDto' - container: - $ref: '#/components/schemas/ContainerDto' - accesses: - type: array - items: - $ref: '#/components/schemas/DatabaseAccessDto' - creator: - $ref: '#/components/schemas/UserBriefDto' - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - exchange_name: - type: string - example: dbrepo/air_quality - internal_name: - type: string - example: weather_australia - is_public: - type: boolean - example: true - IdentifierDto: - required: - - container id - - creators - - database id - - execution - - publication_year - - query - - query_hash - - query_normalized - - result_hash - - result_number - - title - - type - - visibility - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - query: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - execution: - type: string - format: date-time - visibility: - type: string - example: everyone - enum: - - everyone - - self - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - license: - $ref: '#/components/schemas/LicenseDto' - creators: - type: array - items: - $ref: '#/components/schemas/CreatorDto' - created: - type: string - format: date-time - container id: - type: integer - format: int64 - example: 1 - database id: - type: integer - format: int64 - example: 1 - query id: - type: integer - format: int64 - example: 1 - query_normalized: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - related: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierDto' - query_hash: - type: string - description: query hash in sha512 - result_hash: - type: string - result_number: - type: integer - format: int64 - example: 1 - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - last_modified: - type: string - format: date-time - ImageBriefDto: - required: - - id - - registry - - repository - - tag - type: object - properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - repository: - type: string - example: mariadb - tag: - type: string - example: "10.5" - ImageDateDto: - required: - - database_format - - example - - has_time - - id - - unix_format - type: object - properties: - id: - type: integer - format: int64 - example: - type: string - example: 30.01.2022 - database_format: - type: string - example: '%d.%c.%Y' - unix_format: - type: string - example: dd.MM.YYYY - has_time: - type: boolean - example: false - created_at: - type: string - format: date-time - ImageDto: - required: - - default_port - - dialect - - driver_class - - id - - jdbc_method - - registry - - repository - - tag - type: object - properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - repository: - type: string - example: mariadb - tag: - type: string - example: "10.5" - dialect: - type: string - example: org.hibernate.dialect.MariaDBDialect - hash: - type: string - example: sha256:c5ec7353d87dfc35067e7bffeb25d6a0d52dad41e8b7357213e3b12d6e7ff78e - compiled: - type: string - format: date-time - example: 2021-03-12T15:26:21.678396092Z - size: - type: integer - example: 314295447 - driver_class: - type: string - example: org.mariadb.jdbc.Driver - date_formats: - type: array - items: - $ref: '#/components/schemas/ImageDateDto' - jdbc_method: - type: string - example: mariadb - default_port: - type: integer - format: int32 - example: 3306 - LicenseDto: - required: - - identifier - - uri - type: object - properties: - identifier: - type: string - example: MIT - uri: - type: string - example: https://opensource.org/licenses/MIT - QueryDto: - required: - - cid - - created - - creator - - dbid - - id - - is_persisted - - query - - query_hash - type: object - properties: - id: - type: integer - format: int64 - cid: - type: integer - format: int64 - dbid: - type: integer - format: int64 - creator: - $ref: '#/components/schemas/UserDto' - execution: - type: string - format: date-time - query: - type: string - example: SELECT `id` FROM `air_quality` - type: - type: string - example: query - enum: - - query - - view - identifier: - $ref: '#/components/schemas/IdentifierDto' - created: - type: string - format: date-time - query_normalized: - type: string - example: SELECT `id` FROM `air_quality` - query_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - is_persisted: - type: boolean - example: true - result_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - result_number: - type: integer - format: int64 - example: 1 - last_modified: - type: string - format: date-time - RelatedIdentifierDto: - required: - - created - - id - - value - type: object - properties: - id: - type: integer - format: int64 - value: - type: string - example: 10.70124/dc4zh-9ce78 - type: - type: string - example: DOI - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - example: Cites - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - created: - type: string - format: date-time - last_modified: - type: string - format: date-time - TableBriefDto: - required: - - columns - - description - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - owner: - $ref: '#/components/schemas/UserBriefDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - internal_name: - type: string - example: air_quality - UserAttributeDto: - type: object - properties: - name: - type: string - example: theme_dark - value: - type: string - example: "true" - UserBriefDto: - required: - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - UserDto: - required: - - email - - email_verified - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - attributes: - type: array - items: - $ref: '#/components/schemas/UserAttributeDto' - containers: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - databases: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - identifiers: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - email: - type: string - example: jcarberry@brown.edu - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - ViewBriefDto: - required: - - created - - creator - - id - - internal_name - - name - - query - - vdbid - type: object - properties: - id: - type: integer - format: int64 - vdbid: - type: integer - format: int64 - name: - type: string - example: Air Quality - query: - type: string - example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC - created: - type: string - format: date-time - creator: - $ref: '#/components/schemas/UserDto' - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - initial_view: - type: boolean - description: True if it is the default view for the database - example: true - last_modified: - type: string - format: date-time - ViewCreateDto: - required: - - is_public - - name - - query - type: object - properties: - name: - type: string - example: Air Quality - query: - type: string - example: SELECT `id` FROM `air_quality` - is_public: - type: boolean - example: true - TableCsvDto: - required: - - data - type: object - properties: - data: - type: object - additionalProperties: - type: object - ImportDto: - required: - - location - - separator - type: object - properties: - location: - type: string - example: /tmp/file.csv - separator: - type: string - example: "," - quote: - type: string - example: '"' - skip_lines: - minimum: 0 - type: integer - format: int64 - false_element: - type: string - true_element: - type: string - null_element: - type: string - example: NA - ExecuteStatementDto: - required: - - statement - type: object - properties: - statement: - type: string - example: SELECT `id` FROM `air_quality` - timestamp: - type: string - description: Execute query for data at this timestamp - format: date-time - ViewDto: - required: - - created - - creator - - database - - id - - internalName - - name - - query - - vdbid - type: object - properties: - id: - type: integer - format: int64 - vdbid: - type: integer - format: int64 - database: - $ref: '#/components/schemas/DatabaseDto' - name: - type: string - example: Air Quality - internalName: - type: string - example: air_quality - query: - type: string - example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC - created: - type: string - format: date-time - creator: - $ref: '#/components/schemas/UserDto' - is_public: - type: boolean - example: true - initial_view: - type: boolean - description: True if it is the default view for the database - example: true - last_modified: - type: string - format: date-time - CreatorBriefDto: - required: - - firstname - - lastname - type: object - properties: - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - IdentifierBriefDto: - required: - - container id - - creators - - database id - - id - - publication_year - - title - - type - type: object - properties: - id: - type: integer - format: int64 - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - type: - type: string - enum: - - database - - subset - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - creators: - type: array - items: - $ref: '#/components/schemas/CreatorBriefDto' - container id: - type: integer - format: int64 - example: 1 - database id: - type: integer - format: int64 - example: 1 - query id: - type: integer - format: int64 - example: 1 - publication_year: - type: integer - format: int32 - example: 2022 - QueryBriefDto: - required: - - cid - - created - - creator - - dbid - - id - - query - - query_hash - type: object - properties: - id: - type: integer - format: int64 - cid: - type: integer - format: int64 - dbid: - type: integer - format: int64 - creator: - $ref: '#/components/schemas/UserDto' - execution: - type: string - format: date-time - query: - type: string - example: SELECT `id` FROM `air_quality` - type: - type: string - example: query - enum: - - query - - view - identifier: - $ref: '#/components/schemas/IdentifierBriefDto' - created: - type: string - format: date-time - query_normalized: - type: string - example: SELECT `id` FROM `air_quality` - query_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - result_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - result_number: - type: integer - format: int64 - example: 1 - last_modified: - type: string - format: date-time - TableCsvDeleteDto: - required: - - keys - type: object - properties: - keys: - type: object - additionalProperties: - type: object - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/.swagger/api-search.yaml b/.docs/.swagger/api-search.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3baf8363629ae3098dec59d62ecf3cfc99ce7c6d --- /dev/null +++ b/.docs/.swagger/api-search.yaml @@ -0,0 +1,22 @@ +components: + schemas: {} +externalDocs: + description: Sourcecode Documentation + url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services +info: + contact: + email: andreas.rauber@tuwien.ac.at + name: Prof. Andreas Rauber + description: Service that searches the search database + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0 + title: Database Repository Search Service API + version: $TAG +openapi: 3.0.0 +paths: {} +servers: + - description: Generated server url + url: http://localhost:4000 + - description: Sandbox + url: https://test.dbrepo.tuwien.ac.at diff --git a/.docs/.swagger/api-semantics.yaml b/.docs/.swagger/api-semantics.yaml deleted file mode 100644 index c001c6d7bb3539f64f83b76b093d90ac679ce30b..0000000000000000000000000000000000000000 --- a/.docs/.swagger/api-semantics.yaml +++ /dev/null @@ -1,685 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository Semantic Service API - description: Service that manages the tables - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.2.0 -externalDocs: - description: Sourcecode Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services -servers: -- url: http://localhost:9097 - description: Generated server url -- url: https://dbrepo2.tuwien.ac.at - description: Sandbox -paths: - /api/semantic/ontology/{id}: - get: - tags: - - ontology-endpoint - summary: Find one ontology - operationId: find - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Find one ontology - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyDto' - "404": - description: Could not find ontology - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - put: - tags: - - ontology-endpoint - summary: Update an ontology - operationId: update - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyModifyDto' - required: true - responses: - "202": - description: Updated ontology successfully - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyDto' - "404": - description: Could not find ontology - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - ontology-endpoint - summary: Delete an ontology - operationId: delete - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "202": - description: Deleted ontology successfully - content: - application/json: {} - "404": - description: Could not find ontology - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/semantic/unit: - get: - tags: - - semantics-endpoint - summary: List semantic units - operationId: findAllUnits - responses: - "200": - description: Find all semantic units - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UnitDto' - post: - tags: - - semantics-endpoint - summary: Save a semantic unit - operationId: saveUnit - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UnitSaveDto' - required: true - responses: - "202": - description: Saved a semantic unit - content: - application/json: - schema: - $ref: '#/components/schemas/UnitDto' - security: - - bearerAuth: [] - /api/semantic/ontology: - get: - tags: - - ontology-endpoint - summary: List all ontologies - operationId: findAll - responses: - "200": - description: List all ontologies - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/OntologyDto' - post: - tags: - - ontology-endpoint - summary: Register a new ontology - operationId: create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyCreateDto' - required: true - responses: - "201": - description: Registered ontology successfully - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyDto' - security: - - bearerAuth: [] - /api/semantic/concept: - get: - tags: - - semantics-endpoint - summary: List semantic concepts - operationId: findAllConcepts - responses: - "200": - description: Find all semantic concepts - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ConceptDto' - post: - tags: - - semantics-endpoint - summary: Create or update a semantic concept - operationId: saveUnit_1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ConceptSaveDto' - required: true - responses: - "202": - description: Saved a semantic concept - content: - application/json: - schema: - $ref: '#/components/schemas/ConceptDto' - security: - - bearerAuth: [] - /api/semantic/ontology/{id}/entity: - get: - tags: - - query-endpoint - summary: Find entities - operationId: find_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: label - in: query - required: false - schema: - type: string - - name: uri - in: query - required: false - schema: - type: string - responses: - "200": - description: Found entities - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EntityDto' - "417": - description: Generated query or uri is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Could not find ontology - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Filter params are invalid - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/semantic/database/{databaseId}/table/{tableId}: - get: - tags: - - table-endpoint - summary: Suggest table semantics - operationId: analyseTable - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "417": - description: Generated query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Could not find the table - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Suggested table semantics successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableColumnEntityDto' - security: - - bearerAuth: [] - /api/semantic/database/{databaseId}/table/{tableId}/column/{columnId}: - get: - tags: - - table-endpoint - summary: Suggest table column semantics - operationId: analyseTableColumn - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: columnId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "417": - description: Generated query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Suggested table column semantics successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableColumnEntityDto' - "404": - description: Could not find the table column - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] -components: - schemas: - OntologyModifyDto: - required: - - prefix - - uri - type: object - properties: - uri: - type: string - example: Ontology URI - prefix: - type: string - example: Ontology prefix - sparql_endpoint: - type: string - example: Ontology SPARQL endpoint - OntologyDto: - required: - - created - - id - - prefix - - rdf - - sparql - - uri - type: object - properties: - id: - type: integer - format: int64 - uri: - type: string - example: Ontology URI - prefix: - type: string - example: Ontology prefix - sparql: - type: boolean - example: true - rdf: - type: boolean - example: true - creator: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21.678396092Z - sparql_endpoint: - type: string - example: Ontology SPARQL endpoint - UserBriefDto: - required: - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - ApiErrorDto: - required: - - code - - message - - status - type: object - properties: - status: - type: string - example: STATUS - enum: - - 100 CONTINUE - - 101 SWITCHING_PROTOCOLS - - 102 PROCESSING - - 103 EARLY_HINTS - - 103 CHECKPOINT - - 200 OK - - 201 CREATED - - 202 ACCEPTED - - 203 NON_AUTHORITATIVE_INFORMATION - - 204 NO_CONTENT - - 205 RESET_CONTENT - - 206 PARTIAL_CONTENT - - 207 MULTI_STATUS - - 208 ALREADY_REPORTED - - 226 IM_USED - - 300 MULTIPLE_CHOICES - - 301 MOVED_PERMANENTLY - - 302 FOUND - - 302 MOVED_TEMPORARILY - - 303 SEE_OTHER - - 304 NOT_MODIFIED - - 305 USE_PROXY - - 307 TEMPORARY_REDIRECT - - 308 PERMANENT_REDIRECT - - 400 BAD_REQUEST - - 401 UNAUTHORIZED - - 402 PAYMENT_REQUIRED - - 403 FORBIDDEN - - 404 NOT_FOUND - - 405 METHOD_NOT_ALLOWED - - 406 NOT_ACCEPTABLE - - 407 PROXY_AUTHENTICATION_REQUIRED - - 408 REQUEST_TIMEOUT - - 409 CONFLICT - - 410 GONE - - 411 LENGTH_REQUIRED - - 412 PRECONDITION_FAILED - - 413 PAYLOAD_TOO_LARGE - - 413 REQUEST_ENTITY_TOO_LARGE - - 414 URI_TOO_LONG - - 414 REQUEST_URI_TOO_LONG - - 415 UNSUPPORTED_MEDIA_TYPE - - 416 REQUESTED_RANGE_NOT_SATISFIABLE - - 417 EXPECTATION_FAILED - - 418 I_AM_A_TEAPOT - - 419 INSUFFICIENT_SPACE_ON_RESOURCE - - 420 METHOD_FAILURE - - 421 DESTINATION_LOCKED - - 422 UNPROCESSABLE_ENTITY - - 423 LOCKED - - 424 FAILED_DEPENDENCY - - 425 TOO_EARLY - - 426 UPGRADE_REQUIRED - - 428 PRECONDITION_REQUIRED - - 429 TOO_MANY_REQUESTS - - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - - 451 UNAVAILABLE_FOR_LEGAL_REASONS - - 500 INTERNAL_SERVER_ERROR - - 501 NOT_IMPLEMENTED - - 502 BAD_GATEWAY - - 503 SERVICE_UNAVAILABLE - - 504 GATEWAY_TIMEOUT - - 505 HTTP_VERSION_NOT_SUPPORTED - - 506 VARIANT_ALSO_NEGOTIATES - - 507 INSUFFICIENT_STORAGE - - 508 LOOP_DETECTED - - 509 BANDWIDTH_LIMIT_EXCEEDED - - 510 NOT_EXTENDED - - 511 NETWORK_AUTHENTICATION_REQUIRED - message: - type: string - example: Error message - code: - type: string - example: error.service.code - UnitSaveDto: - required: - - description - - name - - uri - type: object - properties: - uri: - type: string - name: - type: string - description: - type: string - ColumnBriefDto: - required: - - column_type - - database_id - - id - - internal_name - - name - - table_id - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: date - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - column_type: - type: string - example: date - enum: - - enum - - number - - decimal - - string - - text - - boolean - - date - - timestamp - - blob - UnitDto: - required: - - columns - - created - - uri - type: object - properties: - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - OntologyCreateDto: - required: - - prefix - - uri - type: object - properties: - uri: - type: string - example: Ontology URI - prefix: - type: string - example: Ontology prefix - sparql_endpoint: - type: string - example: Ontology SPARQL endpoint - ConceptSaveDto: - required: - - description - - name - - uri - type: object - properties: - uri: - type: string - name: - type: string - description: - type: string - ConceptDto: - required: - - columns - - created - - uri - type: object - properties: - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - EntityDto: - required: - - label - - uri - type: object - properties: - uri: - type: string - example: https://www.wikidata.org/entity/Q1686799 - label: - type: string - example: Apache Jena - description: - type: string - example: open source semantic web framework for Java - TableColumnEntityDto: - required: - - columnId - - databaseId - - tableId - - uri - type: object - properties: - databaseId: - type: integer - format: int64 - example: 1 - tableId: - type: integer - format: int64 - example: 1 - columnId: - type: integer - format: int64 - example: 1 - uri: - type: string - example: https://www.wikidata.org/entity/Q1686799 - label: - type: string - example: Apache Jena - description: - type: string - example: open source semantic web framework for Java - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/.swagger/api-sidecar.yaml b/.docs/.swagger/api-sidecar.yaml new file mode 100644 index 0000000000000000000000000000000000000000..16840f5350f8a53fc5bc985732b94bcbb5aaafa3 --- /dev/null +++ b/.docs/.swagger/api-sidecar.yaml @@ -0,0 +1,100 @@ +components: + schemas: + Health: + properties: + status: + example: UP + type: string + required: + - status + title: Status object + type: object +externalDocs: + description: Sourcecode Documentation + url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services +info: + contact: + email: andreas.rauber@tuwien.ac.at + name: Prof. Andreas Rauber + description: Sidecar that downloads the import .csv file + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0 + title: Database Repository Data Database sidecar API + version: $TAG +openapi: 3.0.0 +paths: + /health: + get: + consumes: + - application/json + description: 'Return UP if the instance is ready to serve connections. + + ' + produces: + - application/json + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Health' + description: OK, service is up and running + '404': + description: Service is not yet ready + summary: Return a healthcheck + tags: + - actuator + /sidecar/export/{filename}: + post: + consumes: + - application/json + description: 'Exports a specific .csv file to the Storage Service via S3 + + ' + parameters: + - description: Name of the object file to export to the Storage Service + in: path + name: filename + required: true + produces: + - application/json + responses: + '202': + content: {} + description: Exported the .csv + '400': + description: The Storage Service could not be contacted or .csv was not + found. + summary: Exports a .csv to the Storage Service + tags: + - sidecar + /sidecar/import/{filename}: + post: + consumes: + - application/json + description: 'Imports a specific .csv file from the Storage Service via S3 + + ' + parameters: + - description: Name of the object file to import from the Storage Service + in: path + name: filename + required: true + produces: + - application/json + responses: + '202': + content: {} + description: Imported the .csv + '400': + description: The Storage Service could not be contacted or .csv was not + found. + summary: Imports a .csv from the Storage Service + tags: + - sidecar +servers: + - description: Generated server url + url: http://localhost:5000 + - description: Sandbox + url: https://test.dbrepo.tuwien.ac.at diff --git a/.docs/.swagger/api-table.yaml b/.docs/.swagger/api-table.yaml deleted file mode 100644 index 9639c5fc4e24d730136b88d16a7b5a526dc469d4..0000000000000000000000000000000000000000 --- a/.docs/.swagger/api-table.yaml +++ /dev/null @@ -1,860 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository Table Service API - description: Service that manages the tables - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.2.0 -externalDocs: - description: Sourcecode Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services -servers: -- url: http://localhost:9094 - description: Generated server url -- url: https://dbrepo2.tuwien.ac.at - description: Sandbox -paths: - /api/container/{id}/database/{databaseId}/table/{tableId}/column/{columnId}: - put: - tags: - - table-column-endpoint - summary: Update a table column semantic mapping - operationId: update - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: columnId - in: path - required: true - schema: - type: integer - format: int64 - - name: Authorization - in: header - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ColumnSemanticsUpdateDto' - required: true - responses: - "404": - description: "Table, database, semantic concept, unit of measurement or\ - \ container could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Updated column semantics successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ColumnDto' - "403": - description: Access to the database is forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Update semantic concept query is malformed or update unit of - measurement query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Update column semantics not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ColumnDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/table: - get: - tags: - - table-endpoint - summary: List all tables - operationId: list - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "404": - description: Database could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: List tables not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: List tables - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableBriefDto' - security: - - bearerAuth: [] - post: - tags: - - table-endpoint - summary: Create a table - operationId: create - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TableCreateDto' - required: true - responses: - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Broker service failed to create queue - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, container or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Create table conflicts with existing table name - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Create table not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Created a new table - content: - application/json: - schema: - $ref: '#/components/schemas/TableBriefDto' - "400": - description: Create table query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/container/{id}/database/{databaseId}/table/{tableId}: - get: - tags: - - table-endpoint - summary: Get information about table - operationId: findById - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "405": - description: Find table not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Find table successfully - content: - application/json: - schema: - $ref: '#/components/schemas/TableDto' - "403": - description: Access to the database is forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Table, database or container could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - table-endpoint - summary: Delete a table - operationId: delete - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Delete table successfully - content: - application/json: - schema: - $ref: '#/components/schemas/TableDto' - "405": - description: Delete table not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "423": - description: Delete table resulted in an invalid state - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Delete table query resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Access to the database is forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Table, database or container could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] -components: - schemas: - ColumnSemanticsUpdateDto: - type: object - properties: - concept_uri: - type: string - unit_uri: - type: string - ApiErrorDto: - required: - - code - - message - - status - type: object - properties: - status: - type: string - example: STATUS - enum: - - 100 CONTINUE - - 101 SWITCHING_PROTOCOLS - - 102 PROCESSING - - 103 EARLY_HINTS - - 103 CHECKPOINT - - 200 OK - - 201 CREATED - - 202 ACCEPTED - - 203 NON_AUTHORITATIVE_INFORMATION - - 204 NO_CONTENT - - 205 RESET_CONTENT - - 206 PARTIAL_CONTENT - - 207 MULTI_STATUS - - 208 ALREADY_REPORTED - - 226 IM_USED - - 300 MULTIPLE_CHOICES - - 301 MOVED_PERMANENTLY - - 302 FOUND - - 302 MOVED_TEMPORARILY - - 303 SEE_OTHER - - 304 NOT_MODIFIED - - 305 USE_PROXY - - 307 TEMPORARY_REDIRECT - - 308 PERMANENT_REDIRECT - - 400 BAD_REQUEST - - 401 UNAUTHORIZED - - 402 PAYMENT_REQUIRED - - 403 FORBIDDEN - - 404 NOT_FOUND - - 405 METHOD_NOT_ALLOWED - - 406 NOT_ACCEPTABLE - - 407 PROXY_AUTHENTICATION_REQUIRED - - 408 REQUEST_TIMEOUT - - 409 CONFLICT - - 410 GONE - - 411 LENGTH_REQUIRED - - 412 PRECONDITION_FAILED - - 413 PAYLOAD_TOO_LARGE - - 413 REQUEST_ENTITY_TOO_LARGE - - 414 URI_TOO_LONG - - 414 REQUEST_URI_TOO_LONG - - 415 UNSUPPORTED_MEDIA_TYPE - - 416 REQUESTED_RANGE_NOT_SATISFIABLE - - 417 EXPECTATION_FAILED - - 418 I_AM_A_TEAPOT - - 419 INSUFFICIENT_SPACE_ON_RESOURCE - - 420 METHOD_FAILURE - - 421 DESTINATION_LOCKED - - 422 UNPROCESSABLE_ENTITY - - 423 LOCKED - - 424 FAILED_DEPENDENCY - - 425 TOO_EARLY - - 426 UPGRADE_REQUIRED - - 428 PRECONDITION_REQUIRED - - 429 TOO_MANY_REQUESTS - - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - - 451 UNAVAILABLE_FOR_LEGAL_REASONS - - 500 INTERNAL_SERVER_ERROR - - 501 NOT_IMPLEMENTED - - 502 BAD_GATEWAY - - 503 SERVICE_UNAVAILABLE - - 504 GATEWAY_TIMEOUT - - 505 HTTP_VERSION_NOT_SUPPORTED - - 506 VARIANT_ALSO_NEGOTIATES - - 507 INSUFFICIENT_STORAGE - - 508 LOOP_DETECTED - - 509 BANDWIDTH_LIMIT_EXCEEDED - - 510 NOT_EXTENDED - - 511 NETWORK_AUTHENTICATION_REQUIRED - message: - type: string - example: Error message - code: - type: string - example: error.service.code - ColumnBriefDto: - required: - - column_type - - database_id - - id - - internal_name - - name - - table_id - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: date - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - column_type: - type: string - example: date - enum: - - enum - - number - - decimal - - string - - text - - boolean - - date - - timestamp - - blob - ColumnDto: - required: - - auto_generated - - column_type - - id - - internal_name - - is_null_allowed - - is_primary_key - - is_public - - name - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Date - length: - type: integer - format: int32 - example: 255 - concept: - $ref: '#/components/schemas/ConceptDto' - unit: - $ref: '#/components/schemas/UnitDto' - internal_name: - type: string - example: mdb_date - date_format: - $ref: '#/components/schemas/ImageDateDto' - auto_generated: - type: boolean - example: false - is_primary_key: - type: boolean - example: true - index_length: - type: integer - format: int32 - column_type: - type: string - example: string - enum: - - enum - - number - - decimal - - string - - text - - boolean - - date - - timestamp - - blob - is_public: - type: boolean - example: true - is_null_allowed: - type: boolean - example: false - enum_values: - type: array - items: - type: string - ConceptDto: - required: - - columns - - created - - uri - type: object - properties: - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - ImageDateDto: - required: - - database_format - - example - - has_time - - id - - unix_format - type: object - properties: - id: - type: integer - format: int64 - example: - type: string - example: 30.01.2022 - database_format: - type: string - example: '%d.%c.%Y' - unix_format: - type: string - example: dd.MM.YYYY - has_time: - type: boolean - example: false - created_at: - type: string - format: date-time - UnitDto: - required: - - columns - - created - - uri - type: object - properties: - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - ColumnCreateDto: - required: - - name - - null_allowed - - primary_key - - type - type: object - properties: - name: - type: string - example: Date - type: - type: string - example: string - enum: - - enum - - number - - decimal - - string - - text - - boolean - - date - - timestamp - - blob - length: - type: integer - format: int32 - example: 255 - dfid: - type: integer - description: date format id - format: int64 - primary_key: - type: boolean - example: false - index_length: - type: integer - format: int32 - null_allowed: - type: boolean - example: true - enum_values: - type: array - description: "enum values, only considered when type = ENUM" - items: - type: string - description: "enum values, only considered when type = ENUM" - ConstraintsCreateDto: - type: object - properties: - uniques: - type: array - items: - type: array - items: - type: string - checks: - type: array - items: - type: string - foreign_keys: - type: array - items: - $ref: '#/components/schemas/ForeignKeyCreateDto' - ForeignKeyCreateDto: - type: object - properties: - columns: - type: array - items: - type: string - referenced_table: - type: string - referenced_columns: - type: array - items: - type: string - on_update: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - on_delete: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - TableCreateDto: - required: - - columns - - description - - name - type: object - properties: - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - columns: - type: array - items: - $ref: '#/components/schemas/ColumnCreateDto' - constraints: - $ref: '#/components/schemas/ConstraintsCreateDto' - TableBriefDto: - required: - - columns - - description - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - owner: - $ref: '#/components/schemas/UserBriefDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - internal_name: - type: string - example: air_quality - UserBriefDto: - required: - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - ConstraintsDto: - type: object - properties: - uniques: - type: array - items: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - checks: - type: array - items: - type: string - foreign_keys: - type: array - items: - $ref: '#/components/schemas/ForeignKeyDto' - ForeignKeyDto: - type: object - properties: - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - referenced_table: - $ref: '#/components/schemas/TableBriefDto' - referenced_columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - on_update: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - on_delete: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - TableDto: - required: - - columns - - creator - - description - - id - - internal_name - - is_public - - name - - owner - - queue_name - - routing_key - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - creator: - $ref: '#/components/schemas/UserBriefDto' - owner: - $ref: '#/components/schemas/UserBriefDto' - description: - type: string - example: Air Quality in Austria - created: - type: string - format: date-time - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - constraints: - $ref: '#/components/schemas/ConstraintsDto' - internal_name: - type: string - example: air_quality - queue_name: - type: string - example: dbrepo/air_quality/air_quality - routing_key: - type: string - example: dbrepo/air_quality/air_quality/1 - is_public: - type: boolean - example: true - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/.swagger/api-upload.yaml b/.docs/.swagger/api-upload.yaml index 6f93138b86ac7312d0f05c8cf4c90e08013b4749..138a9bb51ee60f8ba27365b79f42dbef8a670d2e 100644 --- a/.docs/.swagger/api-upload.yaml +++ b/.docs/.swagger/api-upload.yaml @@ -1,4 +1,4 @@ -openapi: 3.0.1 +openapi: 3.0.0 info: title: Database Repository Upload Service API description: Service that manages the uploads @@ -8,23 +8,23 @@ info: license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.3.0 + version: $TAG externalDocs: description: Sourcecode Documentation url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services servers: -- url: http://localhost:1080 - description: Generated server url -- url: https://test.dbrepo.tuwien.ac.at - description: Sandbox + - url: http://localhost:1080 + description: Generated server url + - url: https://test.dbrepo.tuwien.ac.at + description: Sandbox paths: /api/upload/files: post: tags: - - upload-endpoint + - upload-endpoint summary: Uploads a file operationId: upload responses: "201": description: "Successfully uploaded a file" - security: {} \ No newline at end of file + security: { } \ No newline at end of file diff --git a/.docs/.swagger/api-user.yaml b/.docs/.swagger/api-user.yaml deleted file mode 100644 index 56bd25f5380528b7f08b44b29c83363103d9bd93..0000000000000000000000000000000000000000 --- a/.docs/.swagger/api-user.yaml +++ /dev/null @@ -1,1521 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository User Service API - description: Service that manages the users - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.2.0 -externalDocs: - description: Wiki Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services/-/wikis -servers: -- url: http://localhost:9098 - description: Generated server url -paths: - /api/user/{id}: - get: - tags: - - user-endpoint - summary: Get a user info - operationId: find - parameters: - - name: id - in: path - required: true - schema: - type: string - responses: - "404": - description: User was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find user is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Found user - content: - application/json: - schema: - $ref: '#/components/schemas/UserDto' - security: - - bearerAuth: [] - put: - tags: - - user-endpoint - summary: Modify user information - operationId: modify - parameters: - - name: id - in: path - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserUpdateDto' - required: true - responses: - "202": - description: Modified user information - content: - application/json: - schema: - $ref: '#/components/schemas/UserDto' - "405": - description: Modify user is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: User attribute was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/user/{id}/theme: - put: - tags: - - user-endpoint - summary: Modify user theme - operationId: theme - parameters: - - name: id - in: path - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserThemeSetDto' - required: true - responses: - "405": - description: Modify user is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: User or user attribute was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Modified user theme - content: - application/json: - schema: - $ref: '#/components/schemas/UserDto' - security: - - bearerAuth: [] - /api/user/{id}/password: - put: - tags: - - user-endpoint - summary: Modify user password - operationId: password - parameters: - - name: id - in: path - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserPasswordDto' - required: true - responses: - "404": - description: User was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Modify user is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Modified user password - content: - application/json: - schema: - $ref: '#/components/schemas/UserDto' - security: - - bearerAuth: [] - /api/maintenance/message/{id}: - get: - tags: - - maintenance-endpoint - summary: Find one maintenance message - operationId: find_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Get messages - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageDto' - put: - tags: - - maintenance-endpoint - summary: Update maintenance message - operationId: update - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageUpdateDto' - required: true - responses: - "404": - description: Could not find message - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageNotFoundException' - "202": - description: Updated message - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageBriefDto' - delete: - tags: - - maintenance-endpoint - summary: Delete maintenance message - operationId: delete - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "202": - description: Deleted message - content: - application/json: {} - "404": - description: Could not find message - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageNotFoundException' - /api/user: - get: - tags: - - user-endpoint - summary: Find all users - operationId: findAll - responses: - "200": - description: List users - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UserBriefDto' - post: - tags: - - user-endpoint - summary: Create user - operationId: create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SignupRequestDto' - required: true - responses: - "409": - description: User with username already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Realm or default role not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Created user - content: - application/json: - schema: - $ref: '#/components/schemas/UserBriefDto' - "417": - description: User with e-mail already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - /api/maintenance/message: - get: - tags: - - maintenance-endpoint - summary: Find maintenance messages - operationId: list - responses: - "200": - description: List messages - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/BannerMessageDto' - post: - tags: - - maintenance-endpoint - summary: Create maintenance message - operationId: create_1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageCreateDto' - required: true - responses: - "201": - description: Created message - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageBriefDto' - /api/maintenance/message/active: - get: - tags: - - maintenance-endpoint - summary: Find active maintenance messages - operationId: active - responses: - "200": - description: List messages - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/BannerMessageBriefDto' -components: - schemas: - UserUpdateDto: - type: object - properties: - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Brown University - orcid: - type: string - example: 0000-0002-1825-0097 - ColumnBriefDto: - required: - - column_type - - database_id - - id - - internal_name - - name - - table_id - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: date - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - column_type: - type: string - example: date - enum: - - enum - - number - - decimal - - string - - text - - boolean - - date - - timestamp - - blob - ContainerDto: - required: - - created - - hash - - id - - internal_name - - name - - running - type: object - properties: - id: - type: integer - format: int64 - hash: - type: string - example: f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50 - name: - type: string - example: Air Quality - state: - type: string - example: running - enum: - - created - - restarting - - running - - paused - - exited - - dead - database: - $ref: '#/components/schemas/DatabaseDto' - running: - type: boolean - example: true - image: - $ref: '#/components/schemas/ImageBriefDto' - port: - type: integer - format: int32 - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21.678396092Z - internal_name: - type: string - example: air-quality - ip_address: - type: string - CreatorDto: - required: - - firstname - - id - - lastname - type: object - properties: - id: - type: integer - format: int64 - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - orcid: - type: string - example: 0000-0002-1825-0097 - DatabaseAccessDto: - required: - - type - - user - type: object - properties: - user: - $ref: '#/components/schemas/UserDto' - type: - type: string - enum: - - read - - write_own - - write_all - created: - type: string - format: date-time - DatabaseDto: - required: - - creator - - exchange_name - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - identifier: - $ref: '#/components/schemas/IdentifierDto' - description: - type: string - example: Weather Australia 2009-2021 - tables: - type: array - items: - $ref: '#/components/schemas/TableBriefDto' - views: - type: array - items: - $ref: '#/components/schemas/ViewBriefDto' - image: - $ref: '#/components/schemas/ImageDto' - container: - $ref: '#/components/schemas/ContainerDto' - accesses: - type: array - items: - $ref: '#/components/schemas/DatabaseAccessDto' - creator: - $ref: '#/components/schemas/UserBriefDto' - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - exchange_name: - type: string - example: dbrepo/air_quality - internal_name: - type: string - example: weather_australia - is_public: - type: boolean - example: true - IdentifierDto: - required: - - container id - - creators - - database id - - execution - - publication_year - - query - - query_hash - - query_normalized - - result_hash - - result_number - - title - - type - - visibility - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - title: - type: string - example: "Airquality Stephansplatz, Vienna, Austria" - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - query: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - execution: - type: string - format: date-time - visibility: - type: string - example: everyone - enum: - - everyone - - self - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - license: - $ref: '#/components/schemas/LicenseDto' - creators: - type: array - items: - $ref: '#/components/schemas/CreatorDto' - created: - type: string - format: date-time - container id: - type: integer - format: int64 - example: 1 - database id: - type: integer - format: int64 - example: 1 - query id: - type: integer - format: int64 - example: 1 - query_normalized: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - related: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierDto' - query_hash: - type: string - description: query hash in sha512 - result_hash: - type: string - result_number: - type: integer - format: int64 - example: 1 - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - last_modified: - type: string - format: date-time - ImageBriefDto: - required: - - id - - registry - - repository - - tag - type: object - properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - repository: - type: string - example: mariadb - tag: - type: string - example: "10.5" - ImageDateDto: - required: - - database_format - - example - - has_time - - id - - unix_format - type: object - properties: - id: - type: integer - format: int64 - example: - type: string - example: 30.01.2022 - database_format: - type: string - example: '%d.%c.%Y' - unix_format: - type: string - example: dd.MM.YYYY - has_time: - type: boolean - example: false - created_at: - type: string - format: date-time - ImageDto: - required: - - default_port - - dialect - - driver_class - - id - - jdbc_method - - registry - - repository - - tag - type: object - properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - repository: - type: string - example: mariadb - tag: - type: string - example: "10.5" - dialect: - type: string - example: org.hibernate.dialect.MariaDBDialect - hash: - type: string - example: sha256:c5ec7353d87dfc35067e7bffeb25d6a0d52dad41e8b7357213e3b12d6e7ff78e - compiled: - type: string - format: date-time - example: 2021-03-12T15:26:21.678396092Z - size: - type: integer - example: 314295447 - driver_class: - type: string - example: org.mariadb.jdbc.Driver - date_formats: - type: array - items: - $ref: '#/components/schemas/ImageDateDto' - jdbc_method: - type: string - example: mariadb - default_port: - type: integer - format: int32 - example: 3306 - LicenseDto: - required: - - identifier - - uri - type: object - properties: - identifier: - type: string - example: MIT - uri: - type: string - example: https://opensource.org/licenses/MIT - RelatedIdentifierDto: - required: - - created - - id - - value - type: object - properties: - id: - type: integer - format: int64 - value: - type: string - example: 10.70124/dc4zh-9ce78 - type: - type: string - example: DOI - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - example: Cites - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - created: - type: string - format: date-time - last_modified: - type: string - format: date-time - TableBriefDto: - required: - - columns - - description - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - owner: - $ref: '#/components/schemas/UserBriefDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - internal_name: - type: string - example: air_quality - UserAttributeDto: - type: object - properties: - name: - type: string - example: theme_dark - value: - type: string - example: "true" - UserBriefDto: - required: - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - UserDto: - required: - - email - - email_verified - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - attributes: - type: array - items: - $ref: '#/components/schemas/UserAttributeDto' - containers: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - databases: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - identifiers: - type: array - items: - $ref: '#/components/schemas/ContainerDto' - email: - type: string - example: jcarberry@brown.edu - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - email_verified: - type: boolean - example: true - ViewBriefDto: - required: - - created - - creator - - id - - internal_name - - name - - query - - vdbid - type: object - properties: - id: - type: integer - format: int64 - vdbid: - type: integer - format: int64 - name: - type: string - example: Air Quality - query: - type: string - example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC - created: - type: string - format: date-time - creator: - $ref: '#/components/schemas/UserDto' - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - initial_view: - type: boolean - description: True if it is the default view for the database - example: true - last_modified: - type: string - format: date-time - ApiErrorDto: - required: - - code - - message - - status - type: object - properties: - status: - type: string - example: STATUS - enum: - - 100 CONTINUE - - 101 SWITCHING_PROTOCOLS - - 102 PROCESSING - - 103 EARLY_HINTS - - 103 CHECKPOINT - - 200 OK - - 201 CREATED - - 202 ACCEPTED - - 203 NON_AUTHORITATIVE_INFORMATION - - 204 NO_CONTENT - - 205 RESET_CONTENT - - 206 PARTIAL_CONTENT - - 207 MULTI_STATUS - - 208 ALREADY_REPORTED - - 226 IM_USED - - 300 MULTIPLE_CHOICES - - 301 MOVED_PERMANENTLY - - 302 FOUND - - 302 MOVED_TEMPORARILY - - 303 SEE_OTHER - - 304 NOT_MODIFIED - - 305 USE_PROXY - - 307 TEMPORARY_REDIRECT - - 308 PERMANENT_REDIRECT - - 400 BAD_REQUEST - - 401 UNAUTHORIZED - - 402 PAYMENT_REQUIRED - - 403 FORBIDDEN - - 404 NOT_FOUND - - 405 METHOD_NOT_ALLOWED - - 406 NOT_ACCEPTABLE - - 407 PROXY_AUTHENTICATION_REQUIRED - - 408 REQUEST_TIMEOUT - - 409 CONFLICT - - 410 GONE - - 411 LENGTH_REQUIRED - - 412 PRECONDITION_FAILED - - 413 PAYLOAD_TOO_LARGE - - 413 REQUEST_ENTITY_TOO_LARGE - - 414 URI_TOO_LONG - - 414 REQUEST_URI_TOO_LONG - - 415 UNSUPPORTED_MEDIA_TYPE - - 416 REQUESTED_RANGE_NOT_SATISFIABLE - - 417 EXPECTATION_FAILED - - 418 I_AM_A_TEAPOT - - 419 INSUFFICIENT_SPACE_ON_RESOURCE - - 420 METHOD_FAILURE - - 421 DESTINATION_LOCKED - - 422 UNPROCESSABLE_ENTITY - - 423 LOCKED - - 424 FAILED_DEPENDENCY - - 425 TOO_EARLY - - 426 UPGRADE_REQUIRED - - 428 PRECONDITION_REQUIRED - - 429 TOO_MANY_REQUESTS - - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - - 451 UNAVAILABLE_FOR_LEGAL_REASONS - - 500 INTERNAL_SERVER_ERROR - - 501 NOT_IMPLEMENTED - - 502 BAD_GATEWAY - - 503 SERVICE_UNAVAILABLE - - 504 GATEWAY_TIMEOUT - - 505 HTTP_VERSION_NOT_SUPPORTED - - 506 VARIANT_ALSO_NEGOTIATES - - 507 INSUFFICIENT_STORAGE - - 508 LOOP_DETECTED - - 509 BANDWIDTH_LIMIT_EXCEEDED - - 510 NOT_EXTENDED - - 511 NETWORK_AUTHENTICATION_REQUIRED - message: - type: string - example: Error message - code: - type: string - example: error.service.code - UserThemeSetDto: - required: - - theme_dark - type: object - properties: - theme_dark: - type: boolean - example: true - UserPasswordDto: - required: - - password - type: object - properties: - password: - type: string - BannerMessageUpdateDto: - required: - - message - - type - type: object - properties: - type: - type: string - enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: - type: string - example: https://example.com - link_text: - type: string - example: More - display_start: - type: string - format: date-time - display_end: - type: string - format: date-time - BannerMessageNotFoundException: - type: object - properties: - cause: - type: object - properties: - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - suppressed: - type: array - items: - type: object - properties: - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - localizedMessage: - type: string - localizedMessage: - type: string - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - suppressed: - type: array - items: - type: object - properties: - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - localizedMessage: - type: string - localizedMessage: - type: string - BannerMessageBriefDto: - required: - - message - - type - type: object - properties: - type: - type: string - enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: - type: string - example: https://example.com - link_text: - type: string - example: More - SignupRequestDto: - required: - - email - - password - - username - type: object - properties: - username: - pattern: "^[a-z0-9]{3,}$" - type: string - example: user - email: - type: string - example: user@example.com - password: - type: string - BannerMessageCreateDto: - required: - - message - - type - type: object - properties: - type: - type: string - enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: - type: string - example: https://example.com - link_text: - type: string - example: More - display_start: - type: string - format: date-time - display_end: - type: string - format: date-time - BannerMessageDto: - required: - - id - - message - - type - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: - type: string - example: https://example.com - link_text: - type: string - example: More - display_start: - type: string - format: date-time - display_end: - type: string - format: date-time - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/.swagger/fetch.sh b/.docs/.swagger/fetch.sh deleted file mode 100644 index 378878f0ad59e76184a4ed1febf6784e34d4256d..0000000000000000000000000000000000000000 --- a/.docs/.swagger/fetch.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -# This script is executed before pushing to the pipeline for the moment. -# @author: Martin Weise - -declare -A services -services[5000]=analyse -services[9050]=mirror -services[9093]=data -services[9099]=metadata - -function retrieve () { - if [[ "$2" == analyse ]]; then - echo "... retrieve json api from localhost:$1" - wget "http://localhost:$1/api-$2.json" -O "./.docs/.swagger/api-$2.yaml" -q - else - echo "... retrieve yaml api from localhost:$1" - wget "http://localhost:$1/v3/api-docs.yaml" -O "./.docs/.swagger/api-$2.yaml" -q - fi -} - -for key in "${!services[@]}"; do - echo "Generating ${services[$key]} API" - retrieve "$key" "${services[$key]}" -done \ No newline at end of file diff --git a/.docs/.swagger/generate.sh b/.docs/.swagger/generate.sh deleted file mode 100644 index 5752f1578ea0e538844b5b5acfddd7a6d86e1921..0000000000000000000000000000000000000000 --- a/.docs/.swagger/generate.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# clean up -echo "clean up ./dist ./site" -rm -rf ./dist ./site - -# ensure target directories are present -echo "ensure target directory ./site are present" -mkdir -p ./site - -# extract static site -echo "extract static site .docs/.swagger/dist.tar.gz" -tar xzf .docs/.swagger/dist.tar.gz -for service in "analyse" "mirror" "data" "metadata" "upload"; do - mkdir -p ./site/$service - echo "extract static site ./dist -> ./site/$service" - cp -r ./dist/* ./site/$service - echo "placing .docs/.swagger/api-$service.yaml -> ./site/$service/api.yaml" - cp ".docs/.swagger/api-$service.yaml" "./site/$service/api.yaml" -done \ No newline at end of file diff --git a/.docs/generate_swagger.sh b/.docs/.swagger/swagger-generate.sh similarity index 53% rename from .docs/generate_swagger.sh rename to .docs/.swagger/swagger-generate.sh index 3438e8b9b8c186b9c859110ff7ce9d9131fc8a05..1469a23bd056649994670c213782686898745abb 100644 --- a/.docs/generate_swagger.sh +++ b/.docs/.swagger/swagger-generate.sh @@ -1,21 +1,22 @@ #!/bin/bash declare -A services +services[4000]=search services[5000]=analyse -services[9050]=mirror services[9093]=data services[9099]=metadata +services[3305]=sidecar function retrieve () { - if [[ "$2" == analyse ]]; then + if [[ "$2" == analyse ]] || [[ "$2" == search ]] || [[ "$2" == sidecar ]]; then echo "... retrieve json api from localhost:$1" - wget "http://localhost:$1/api-$2.json" -O "./api-$2.yaml" -q + curl -sSL "http://localhost:$1/api-$2.json" | yq -y > "./.docs/.swagger/api-$2.yaml" else echo "... retrieve yaml api from localhost:$1" - wget "http://localhost:$1/v3/api-docs.yaml" -O "./api-$2.yaml" -q + curl -sSL "http://localhost:$1/v3/api-docs.yaml" > "./.docs/.swagger/api-$2.yaml" fi } for key in "${!services[@]}"; do echo "Generating ${services[$key]} API" retrieve "$key" "${services[$key]}" -done \ No newline at end of file +done diff --git a/.docs/.swagger/swagger-site.sh b/.docs/.swagger/swagger-site.sh new file mode 100644 index 0000000000000000000000000000000000000000..98b8056a7773ac0288b3a6f7eaede10444ad0836 --- /dev/null +++ b/.docs/.swagger/swagger-site.sh @@ -0,0 +1,27 @@ +#!/bin/bash +declare -A services +services[1080]=upload +services[4000]=search +services[5000]=analyse +services[9093]=data +services[9099]=metadata +services[3305]=sidecar + +# clean up +echo "clean up ./dist ./site" +rm -rf ./dist ./site + +# ensure target directories are present +echo "ensure target directory ./site are present" +mkdir -p ./site + +# extract static site +echo "extract static site .docs/.swagger/dist.tar.gz" +tar xzf .docs/.swagger/dist.tar.gz +for key in "${!services[@]}"; do + mkdir -p ./site/${services[$key]} + echo "extract static site ./dist -> ./site/${services[$key]}" + cp -r ./dist/* ./site/${services[$key]} + echo "placing .docs/.swagger/api-${services[$key]}.yaml -> ./site/${services[$key]}/api.yaml" + cp ".docs/.swagger/api-${services[$key]}.yaml" "./site/${services[$key]}/api.yaml" +done \ No newline at end of file diff --git a/.docs/api-analyse.yaml b/.docs/api-analyse.yaml deleted file mode 100644 index 881130d530dd5587715ee701b6fbce6c5ef9919f..0000000000000000000000000000000000000000 --- a/.docs/api-analyse.yaml +++ /dev/null @@ -1 +0,0 @@ -{"definitions":{},"externalDocs":{"description":"Sourcecode Documentation","url":"https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services"},"info":{"contact":{"email":"andreas.rauber@tuwien.ac.at","name":"Prof. Andreas Rauber"},"description":"Service that analyses data structures","license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0"},"title":"Database Repository Analyse Service API","version":"1.3.0"},"openapi":"3.0.0","paths":{"/api/analyse/determinedt":{"post":{"consumes":["application/json"],"description":"This is a simple API which returns the datatypes of a (path) csv file","parameters":[{"description":"to-do description","in":"body","name":"body","required":true,"schema":{"properties":{"enum":{"example":true,"type":"boolean"},"enum_tol":{"example":0.1},"filename":{"example":"sample.csv","type":"string"},"separator":{"example":",","type":"string"}},"type":"object"}}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"405":{"description":"Invalid input"}},"summary":"Determine datatypes"}},"/api/analyse/determinepk":{"post":{"consumes":["application/json"],"description":"This is a simple API which returns the primary keys + ranking of a (path) csv file","parameters":[{"description":"to-do description","in":"body","name":"body","required":true,"schema":{"properties":{"filepath":{"example":"/data/testdt08.csv","type":"string"},"seperator":{"example":",","type":"string"}},"type":"object"}}],"produces":["application/json"],"responses":{"200":{"description":"OK"},"405":{"description":"Invalid input"}},"summary":"Determine primary keys"}},"/health":{"get":{"consumes":["application/json"],"description":"This is a simple API which checks if the application is healthy","parameters":[{"description":"to-do description","in":"body","name":"body","required":true,"schema":{"properties":{"status":{"example":"UP","type":"string"}},"type":"object"}}],"produces":["application/json"],"responses":{"200":{"description":"OK"}},"summary":"Check if application is running"}}},"servers":[{"description":"Generated server url","url":"http://localhost:5000"},{"description":"Sandbox","url":"https://dbrepo2.tuwien.ac.at"}]} diff --git a/.docs/api-data.yaml b/.docs/api-data.yaml deleted file mode 100644 index 4d40f4a702c2c8b62c8e555bf4c7191543902132..0000000000000000000000000000000000000000 --- a/.docs/api-data.yaml +++ /dev/null @@ -1,26 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository Data Service API - description: Service that manages the data - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.3.0 -externalDocs: - description: Sourcecode Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services -servers: -- url: http://localhost:9093 - description: Generated server url -- url: https://test.dbrepo.tuwien.ac.at - description: Sandbox -paths: {} -components: - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/api-metadata.yaml b/.docs/api-metadata.yaml deleted file mode 100644 index 41d0bbee22d7cfa46a03646a1c77bf0f281d044e..0000000000000000000000000000000000000000 --- a/.docs/api-metadata.yaml +++ /dev/null @@ -1,8019 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository Metadata Service API - description: Service that manages the metadata - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.3.0 -externalDocs: - description: Sourcecode Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services -servers: -- url: http://localhost:9099 - description: Generated server url -- url: https://dbrepo2.tuwien.ac.at - description: Sandbox -paths: - /api/database/{databaseId}/table/{tableId}/history: - get: - tags: - - table-history-endpoint - summary: Find all history - operationId: getAll - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "400": - description: Table history query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Find table history successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableHistoryDto' - "404": - description: "Table, database or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find table history is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to query table history - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - head: - tags: - - table-history-endpoint - summary: Find all history - operationId: getAll_1 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "400": - description: Table history query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Find table history successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableHistoryDto' - "404": - description: "Table, database or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find table history is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to query table history - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database/{databaseId}/table/{tableId}/data: - get: - tags: - - table-data-endpoint - summary: Find data - operationId: getAll_2 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: timestamp - in: query - required: false - schema: - type: string - format: date-time - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - - name: sortDirection - in: query - required: false - schema: - type: string - enum: - - asc - - desc - - name: sortColumn - in: query - required: false - schema: - type: string - responses: - "200": - description: OK - content: - '*/*': - schema: - $ref: '#/components/schemas/QueryResultDto' - security: - - bearerAuth: [] - post: - tags: - - table-data-endpoint - summary: Insert data - operationId: insert - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TableCsvDto' - required: true - responses: - "200": - description: OK - security: - - bearerAuth: [] - delete: - tags: - - table-data-endpoint - summary: Delete data - operationId: delete_6 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TableCsvDeleteDto' - required: true - responses: - "200": - description: OK - security: - - bearerAuth: [] - head: - tags: - - table-data-endpoint - summary: Find data - operationId: getAll_3 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: timestamp - in: query - required: false - schema: - type: string - format: date-time - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - - name: sortDirection - in: query - required: false - schema: - type: string - enum: - - asc - - desc - - name: sortColumn - in: query - required: false - schema: - type: string - responses: - "200": - description: OK - content: - '*/*': - schema: - $ref: '#/components/schemas/QueryResultDto' - security: - - bearerAuth: [] - /api/user/{id}: - get: - tags: - - user-endpoint - summary: Get a user info - operationId: find - parameters: - - name: id - in: path - required: true - schema: - type: string - format: uuid - responses: - "200": - description: Found user - content: - application/json: - schema: - $ref: '#/components/schemas/UserDto' - "405": - description: Find user is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: User was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - put: - tags: - - user-endpoint - summary: Modify user information - operationId: modify - parameters: - - name: id - in: path - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserUpdateDto' - required: true - responses: - "404": - description: User attribute was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Modify user is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Modified user information - content: - application/json: - schema: - $ref: '#/components/schemas/UserDto' - security: - - bearerAuth: [] - /api/user/{id}/theme: - put: - tags: - - user-endpoint - summary: Modify user theme - operationId: theme - parameters: - - name: id - in: path - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserThemeSetDto' - required: true - responses: - "202": - description: Modified user theme - content: - application/json: - schema: - $ref: '#/components/schemas/UserDto' - "404": - description: User or user attribute was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Modify user is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/user/{id}/password: - put: - tags: - - user-endpoint - summary: Modify user password - operationId: password - parameters: - - name: id - in: path - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UserPasswordDto' - required: true - responses: - "202": - description: Modified user password - content: - application/json: - schema: - $ref: '#/components/schemas/UserDto' - "404": - description: User was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Modify user is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/semantic/ontology/{id}: - get: - tags: - - ontology-endpoint - summary: Find one ontology - operationId: find_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Find one ontology - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyDto' - "404": - description: Could not find ontology - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - put: - tags: - - ontology-endpoint - summary: Update an ontology - operationId: update - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyModifyDto' - required: true - responses: - "202": - description: Updated ontology successfully - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyDto' - "404": - description: Could not find ontology - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - ontology-endpoint - summary: Delete an ontology - operationId: delete - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "202": - description: Deleted ontology successfully - content: - application/json: {} - "404": - description: Could not find ontology - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/maintenance/message/{id}: - get: - tags: - - maintenance-endpoint - summary: Find one maintenance message - operationId: find_4 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Get messages - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageDto' - put: - tags: - - maintenance-endpoint - summary: Update maintenance message - operationId: update_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageUpdateDto' - required: true - responses: - "404": - description: Could not find message - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageNotFoundException' - "202": - description: Updated message - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageBriefDto' - delete: - tags: - - maintenance-endpoint - summary: Delete maintenance message - operationId: delete_2 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "404": - description: Could not find message - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageNotFoundException' - "202": - description: Deleted message - content: - application/json: {} - /api/image/{id}: - get: - tags: - - image-endpoint - summary: Find some image - operationId: findById - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Found image - content: - application/json: - schema: - $ref: '#/components/schemas/ImageDto' - "404": - description: Image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - put: - tags: - - image-endpoint - summary: Update some image - operationId: update_2 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ImageChangeDto' - required: true - responses: - "202": - description: Updated image successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ImageDto' - "404": - description: Image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - image-endpoint - summary: Delete some image - operationId: delete_3 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "202": - description: Deleted image successfully - "404": - description: Image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database/{id}/visibility: - put: - tags: - - database-endpoint - summary: Update database - operationId: visibility - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseModifyVisibilityDto' - required: true - responses: - "404": - description: Database or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Visibility modification is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Visibility modified successfully - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseDto' - security: - - bearerAuth: [] - /api/database/{id}/transfer: - put: - tags: - - database-endpoint - summary: Transfer database - operationId: transfer - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseTransferDto' - required: true - responses: - "404": - description: Database or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Transfer of ownership is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Transfer of ownership was successful - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseDto' - security: - - bearerAuth: [] - /api/database/{id}/table/{tableId}/column/{columnId}: - put: - tags: - - table-column-endpoint - summary: Update a table column semantic mapping - operationId: update_3 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: columnId - in: path - required: true - schema: - type: integer - format: int64 - - name: Authorization - in: header - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ColumnSemanticsUpdateDto' - required: true - responses: - "202": - description: Updated column semantics successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ColumnDto' - "403": - description: Access to the database is forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Update semantic concept query is malformed or update unit of - measurement query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Table, database, semantic concept, unit of measurement or\ - \ container could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Update column semantics not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ColumnDto' - security: - - bearerAuth: [] - /api/database/{id}/access/{userId}: - put: - tags: - - access-endpoint - summary: Modify access to some database - operationId: update_4 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: userId - in: path - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseModifyAccessDto' - required: true - responses: - "403": - description: Modify access not permitted when no access is granted in the - first place - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Modify access query or database connection is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Database or user not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Modify access succeeded - security: - - bearerAuth: [] - post: - tags: - - access-endpoint - summary: Give access to some database - operationId: create_6 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: userId - in: path - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseGiveAccessDto' - required: true - responses: - "400": - description: Granting access query or database connection is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Granting access succeeded - "405": - description: Granting access not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Database or user not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - access-endpoint - summary: Revoke access to some database - operationId: revoke - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: userId - in: path - required: true - schema: - type: string - format: uuid - responses: - "404": - description: User with access was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Revoke of access not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Modify access query or database connection is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Revoked access successfully - "403": - description: Revoke of access not permitted as no access was found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database/{databaseId}/query/{queryId}: - get: - tags: - - store-endpoint - summary: Find some query - operationId: find_7 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "504": - description: Query store failed to select query - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, query or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find query is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: List queries - content: - application/json: - schema: - $ref: '#/components/schemas/QueryDto' - security: - - bearerAuth: [] - put: - tags: - - store-endpoint - summary: Persist some query - operationId: persist - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/QueryPersistDto' - required: true - responses: - "200": - description: Persist query successful - content: - application/json: - schema: - $ref: '#/components/schemas/QueryDto' - "405": - description: Persist query is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, query or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Query is already persisted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to persist query - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/user: - get: - tags: - - user-endpoint - summary: Find all users - operationId: findAll - responses: - "200": - description: List users - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UserBriefDto' - post: - tags: - - user-endpoint - summary: Create user - operationId: create - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/SignupRequestDto' - required: true - responses: - "400": - description: Parameters are not well-formed (likely email) - content: - application/json: {} - "404": - description: default role not found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: User with username already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Created user - content: - application/json: - schema: - $ref: '#/components/schemas/UserBriefDto' - "417": - description: User with e-mail already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - /api/semantic/ontology: - get: - tags: - - ontology-endpoint - summary: List all ontologies - operationId: findAll_1 - responses: - "200": - description: List all ontologies - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/OntologyDto' - post: - tags: - - ontology-endpoint - summary: Register a new ontology - operationId: create_1 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyCreateDto' - required: true - responses: - "201": - description: Registered ontology successfully - content: - application/json: - schema: - $ref: '#/components/schemas/OntologyDto' - security: - - bearerAuth: [] - /api/maintenance/message: - get: - tags: - - maintenance-endpoint - summary: Find maintenance messages - operationId: list - responses: - "200": - description: List messages - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/BannerMessageDto' - post: - tags: - - maintenance-endpoint - summary: Create maintenance message - operationId: create_2 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageCreateDto' - required: true - responses: - "201": - description: Created message - content: - application/json: - schema: - $ref: '#/components/schemas/BannerMessageBriefDto' - /api/image: - get: - tags: - - image-endpoint - summary: Find all images - operationId: findAll_2 - responses: - "200": - description: List images - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ContainerImage' - post: - tags: - - image-endpoint - summary: Create image - operationId: create_3 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ImageCreateDto' - required: true - responses: - "502": - description: Failed to connect - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Image already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: User could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Image specification is invalid - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Created image - content: - application/json: - schema: - $ref: '#/components/schemas/ImageDto' - security: - - bearerAuth: [] - /api/identifier: - get: - tags: - - identifier-endpoint - summary: Find identifiers - operationId: list_1 - parameters: - - name: dbid - in: query - required: false - schema: - type: integer - format: int64 - - name: qid - in: query - required: false - schema: - type: integer - format: int64 - - name: vid - in: query - required: false - schema: - type: integer - format: int64 - - name: tid - in: query - required: false - schema: - type: integer - format: int64 - - name: type - in: query - required: false - schema: - type: string - enum: - - database - - subset - - table - - view - responses: - "200": - description: List identifiers - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/IdentifierDto' - post: - tags: - - identifier-endpoint - summary: Create identifier - operationId: create_4 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierSaveDto' - required: true - responses: - "201": - description: Created identifier - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierDto' - "403": - description: Insufficient access rights or authorities - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Identifier for this resource already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Query information could not be retrieved - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "406": - description: Creating identifier not allowed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Failed to find database, table or view" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Identifier form contains invalid request data - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Creating identifier not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database: - get: - tags: - - database-endpoint - summary: List databases - operationId: list_2 - parameters: - - name: filter - in: query - required: false - schema: - type: string - responses: - "200": - description: List of databases - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/DatabaseBriefDto' - post: - tags: - - database-endpoint - summary: Create database - operationId: create_5 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseCreateDto' - required: true - responses: - "406": - description: Failed to create user at broker service or virtual host could - not be reached at broker service - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Database create permission is missing or grant permissions - at broker service failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Database create query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Created a new database - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseBriefDto' - "409": - description: Database name already exist or query store could not be created - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Container image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Connection to the container failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Container, user or database could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - head: - tags: - - database-endpoint - summary: Count databases - operationId: count - parameters: - - name: filter - in: query - required: false - schema: - type: string - responses: - "200": - description: Count databases - /api/database/{databaseId}/view: - get: - tags: - - view-endpoint - summary: Find all views - operationId: findAll_3 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Find views successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ViewBriefDto' - "404": - description: Database or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find views is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - post: - tags: - - view-endpoint - summary: Create a view - operationId: create_7 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ViewCreateDto' - required: true - responses: - "403": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "401": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Database or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Create view is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Create view query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "423": - description: Create view resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Create view successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ViewBriefDto' - security: - - bearerAuth: [] - /api/database/{databaseId}/table: - get: - tags: - - table-endpoint - summary: List all tables - operationId: list_3 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "405": - description: List tables not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Database could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: List tables - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableBriefDto' - security: - - bearerAuth: [] - post: - tags: - - table-endpoint - summary: Create a table - operationId: create_8 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/TableCreateDto' - required: true - responses: - "201": - description: Created a new table - content: - application/json: - schema: - $ref: '#/components/schemas/TableBriefDto' - "404": - description: "Database, container or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Create table not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Broker service failed to create queue - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Create table conflicts with existing table name - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Create table query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database/{databaseId}/table/{tableId}/data/import: - post: - tags: - - table-data-endpoint - summary: Insert data from csv - operationId: importCsv - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ImportDto' - required: true - responses: - "200": - description: OK - security: - - bearerAuth: [] - /api/database/{databaseId}/query: - get: - tags: - - store-endpoint - summary: Find queries - operationId: findAll_4 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: persisted - in: query - required: false - schema: - type: boolean - responses: - "423": - description: Selection of time-versioned query resulted in an invalid query - statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Database, container or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to select query - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: List queries - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/QueryBriefDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find all queries is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - post: - tags: - - query-endpoint - summary: Execute query - operationId: execute - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - - name: sortDirection - in: query - required: false - schema: - type: string - enum: - - asc - - desc - - name: sortColumn - in: query - required: false - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ExecuteStatementDto' - required: true - responses: - "200": - description: OK - content: - '*/*': - schema: - $ref: '#/components/schemas/QueryResultDto' - security: - - bearerAuth: [] - /api/container: - get: - tags: - - container-endpoint - summary: Find all containers - operationId: findAll_5 - parameters: - - name: limit - in: query - required: false - schema: - type: integer - format: int32 - responses: - "200": - description: List containers - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ContainerBriefDto' - post: - tags: - - container-endpoint - summary: Create container - operationId: create_9 - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/ContainerCreateRequestDto' - required: true - responses: - "502": - description: Failed to connect - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Container image or user could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "201": - description: Created a new container - content: - application/json: - schema: - $ref: '#/components/schemas/ContainerBriefDto' - "409": - description: Container name already exists - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/semantic/unit: - get: - tags: - - semantics-endpoint - summary: List semantic units - operationId: findAllUnits - responses: - "200": - description: Find all semantic units - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/UnitDto' - /api/semantic/ontology/{id}/entity: - get: - tags: - - ontology-endpoint - summary: Find entities - operationId: find_2 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: label - in: query - required: false - schema: - type: string - - name: uri - in: query - required: false - schema: - type: string - responses: - "200": - description: Found entities - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/EntityDto' - "417": - description: Generated query or uri is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Could not find ontology - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Filter params are invalid - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "422": - description: Ontology does not have rdf or sparql endpoint - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/semantic/database/{databaseId}/table/{tableId}: - get: - tags: - - semantics-endpoint - summary: Suggest table semantics - operationId: analyseTable - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Suggested table semantics successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableColumnEntityDto' - "417": - description: Generated query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Could not find the table - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "422": - description: Ontology does not have rdf or sparql endpoint - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/semantic/database/{databaseId}/table/{tableId}/column/{columnId}: - get: - tags: - - semantics-endpoint - summary: Suggest table column semantics - operationId: analyseTableColumn - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: columnId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Suggested table column semantics successfully - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/TableColumnEntityDto' - "417": - description: Generated query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Could not find the table column - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "422": - description: Ontology does not have rdf or sparql endpoint - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/semantic/concept: - get: - tags: - - semantics-endpoint - summary: List semantic concepts - operationId: findAllConcepts - responses: - "200": - description: Find all semantic concepts - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/ConceptDto' - /api/pid/{pid}: - get: - tags: - - persistence-endpoint - summary: Find some identifier - operationId: find_3 - parameters: - - name: pid - in: path - required: true - schema: - type: integer - format: int64 - - name: Accept - in: header - required: true - schema: - type: string - responses: - "400": - description: "Identifier could not be exported, the requested style is not\ - \ known" - content: - text/bibliography: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Found identifier successfully - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierDto' - text/csv: {} - text/xml: {} - text/bibliography: {} - text/bibliography; style=apa: {} - text/bibliography; style=ieee: {} - text/bibliography; style=bibtex: {} - "404": - description: Identifier could not be exported from database as the resource - was not found - content: - text/csv: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "502": - description: Identifier could not exported from database as it is not reachable - content: - text/csv: - schema: - $ref: '#/components/schemas/ApiErrorDto' - /api/oai: - get: - tags: - - metadata-endpoint - summary: Get the record - operationId: identify_1_1_1_1 - parameters: - - name: verb - in: query - - name: parameters - in: query - required: true - schema: - $ref: '#/components/schemas/OaiListIdentifiersParameters' - responses: - "200": - description: List containers - content: - text/xml: {} - /api/maintenance/message/active: - get: - tags: - - maintenance-endpoint - summary: Find active maintenance messages - operationId: active - responses: - "200": - description: List messages - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/BannerMessageBriefDto' - /api/identifier/retrieve: - get: - tags: - - identifier-endpoint - summary: Retrieve metadata from identifier - operationId: retrieve - parameters: - - name: url - in: query - required: true - schema: - type: string - responses: - "200": - description: Retrieved metadata from identifier - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierDto' - /api/database/{id}: - get: - tags: - - database-endpoint - summary: Find some database - operationId: findById_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "404": - description: Database could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Database found successfully - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseDto' - security: - - bearerAuth: [] - /api/database/{id}/table/{tableId}/export: - get: - tags: - - export-endpoint - summary: Export table - operationId: export - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: timestamp - in: query - required: false - schema: - type: string - format: date-time - responses: - "201": - description: Created identifier - content: - application/json: - schema: - $ref: '#/components/schemas/IdentifierDto' - "410": - description: Blob storage operation could not be completed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Database connection could not be established - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Table, database or user was not found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Operation is not allowed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "422": - description: Sidecar operation could not be completed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Images is not supported or table/query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database/{id}/access: - get: - tags: - - access-endpoint - summary: Check access to some database - operationId: find_5 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Found database access - content: - application/json: - schema: - $ref: '#/components/schemas/DatabaseAccessDto' - "405": - description: Check access is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "403": - description: No access to this database - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database/{databaseId}/view/{viewId}: - get: - tags: - - view-endpoint - summary: Find one view - operationId: find_6 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: viewId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Find view successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ViewDto' - "404": - description: "Database, view or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find view is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - view-endpoint - summary: Delete one view - operationId: delete_4 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: viewId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "400": - description: Delete view query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Delete view is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "401": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "423": - description: Delete view resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Delete view successfully - "404": - description: "Database, view or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database/{databaseId}/view/{viewId}/data: - get: - tags: - - view-endpoint - summary: Find view data - operationId: data - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: viewId - in: path - required: true - schema: - type: integer - format: int64 - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - responses: - "404": - description: "Database, view, container or user could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Find data successfully - content: - application/json: - schema: - $ref: '#/components/schemas/QueryResultDto' - "423": - description: Find data resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "504": - description: Query store failed to query view data - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "403": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "401": - description: Credentials missing - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "417": - description: Parsing of resulting columns failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "503": - description: Connection to the database failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Find data is not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Pagination not in valid range or find data query is malformed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database/{databaseId}/view/{viewId}/data/count: - get: - tags: - - view-endpoint - summary: Find view data count - operationId: count_1 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: viewId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: OK - content: - '*/*': - schema: - type: integer - format: int64 - security: - - bearerAuth: [] - /api/database/{databaseId}/table/{tableId}: - get: - tags: - - table-endpoint - summary: Get information about table - operationId: findById_2 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "403": - description: Access to the database is forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Table, database or container could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "200": - description: Find table successfully - content: - application/json: - schema: - $ref: '#/components/schemas/TableDto' - "405": - description: Find table not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - delete: - tags: - - table-endpoint - summary: Delete a table - operationId: delete_5 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "403": - description: Access to the database is forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: "Table, database or container could not be found" - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "405": - description: Delete table not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "501": - description: Image is not supported - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Delete table successfully - content: - application/json: - schema: - $ref: '#/components/schemas/TableDto' - "423": - description: Delete table resulted in an invalid state - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "400": - description: Delete table query resulted in an invalid query statement - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/database/{databaseId}/table/{tableId}/data/count: - get: - tags: - - table-data-endpoint - summary: Find data - operationId: getCount - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: tableId - in: path - required: true - schema: - type: integer - format: int64 - - name: timestamp - in: query - required: false - schema: - type: string - format: date-time - responses: - "200": - description: OK - content: - '*/*': - schema: - type: integer - format: int64 - security: - - bearerAuth: [] - /api/database/{databaseId}/query/{queryId}/export: - get: - tags: - - query-endpoint - summary: Exports some query - operationId: export_1 - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - - name: Accept - in: header - required: true - schema: - type: string - responses: - "200": - description: OK - content: - '*/*': - schema: - type: object - security: - - bearerAuth: [] - /api/database/{databaseId}/query/{queryId}/data: - get: - tags: - - query-endpoint - summary: Re-execute some query - operationId: reExecute - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - - name: page - in: query - required: false - schema: - type: integer - format: int64 - - name: size - in: query - required: false - schema: - type: integer - format: int64 - - name: sortDirection - in: query - required: false - schema: - type: string - enum: - - asc - - desc - - name: sortColumn - in: query - required: false - schema: - type: string - responses: - "200": - description: OK - content: - '*/*': - schema: - $ref: '#/components/schemas/QueryResultDto' - security: - - bearerAuth: [] - /api/database/{databaseId}/query/{queryId}/data/count: - get: - tags: - - query-endpoint - summary: Re-execute some query - operationId: reExecuteCount - parameters: - - name: databaseId - in: path - required: true - schema: - type: integer - format: int64 - - name: queryId - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: OK - content: - '*/*': - schema: - type: integer - format: int64 - security: - - bearerAuth: [] - /api/database/license: - get: - tags: - - license-endpoint - summary: Get all licenses - operationId: list_4 - responses: - "200": - description: List of licenses - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/LicenseDto' - /api/container/{id}: - get: - tags: - - container-endpoint - summary: Find some container - operationId: findById_3 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "200": - description: Found container - content: - application/json: - schema: - $ref: '#/components/schemas/ContainerDto' - "502": - description: Connection to the container failed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Container image could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - delete: - tags: - - container-endpoint - summary: Delete some container - operationId: delete_7 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "202": - description: Deleted container successfully - "410": - description: Container is already removed - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "409": - description: Container is still running - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - security: - - bearerAuth: [] - /api/pid/{id}: - delete: - tags: - - persistence-endpoint - summary: Delete some identifier - operationId: delete_1 - parameters: - - name: id - in: path - required: true - schema: - type: integer - format: int64 - responses: - "405": - description: Deleting identifier not permitted - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "404": - description: Identifier or database could not be found - content: - application/json: - schema: - $ref: '#/components/schemas/ApiErrorDto' - "202": - description: Deleted identifier - security: - - bearerAuth: [] -components: - schemas: - ApiErrorDto: - required: - - code - - message - - status - type: object - properties: - status: - type: string - example: NOT_FOUND - enum: - - 100 CONTINUE - - 101 SWITCHING_PROTOCOLS - - 102 PROCESSING - - 103 EARLY_HINTS - - 103 CHECKPOINT - - 200 OK - - 201 CREATED - - 202 ACCEPTED - - 203 NON_AUTHORITATIVE_INFORMATION - - 204 NO_CONTENT - - 205 RESET_CONTENT - - 206 PARTIAL_CONTENT - - 207 MULTI_STATUS - - 208 ALREADY_REPORTED - - 226 IM_USED - - 300 MULTIPLE_CHOICES - - 301 MOVED_PERMANENTLY - - 302 FOUND - - 302 MOVED_TEMPORARILY - - 303 SEE_OTHER - - 304 NOT_MODIFIED - - 305 USE_PROXY - - 307 TEMPORARY_REDIRECT - - 308 PERMANENT_REDIRECT - - 400 BAD_REQUEST - - 401 UNAUTHORIZED - - 402 PAYMENT_REQUIRED - - 403 FORBIDDEN - - 404 NOT_FOUND - - 405 METHOD_NOT_ALLOWED - - 406 NOT_ACCEPTABLE - - 407 PROXY_AUTHENTICATION_REQUIRED - - 408 REQUEST_TIMEOUT - - 409 CONFLICT - - 410 GONE - - 411 LENGTH_REQUIRED - - 412 PRECONDITION_FAILED - - 413 PAYLOAD_TOO_LARGE - - 413 REQUEST_ENTITY_TOO_LARGE - - 414 URI_TOO_LONG - - 414 REQUEST_URI_TOO_LONG - - 415 UNSUPPORTED_MEDIA_TYPE - - 416 REQUESTED_RANGE_NOT_SATISFIABLE - - 417 EXPECTATION_FAILED - - 418 I_AM_A_TEAPOT - - 419 INSUFFICIENT_SPACE_ON_RESOURCE - - 420 METHOD_FAILURE - - 421 DESTINATION_LOCKED - - 422 UNPROCESSABLE_ENTITY - - 423 LOCKED - - 424 FAILED_DEPENDENCY - - 425 TOO_EARLY - - 426 UPGRADE_REQUIRED - - 428 PRECONDITION_REQUIRED - - 429 TOO_MANY_REQUESTS - - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - - 451 UNAVAILABLE_FOR_LEGAL_REASONS - - 500 INTERNAL_SERVER_ERROR - - 501 NOT_IMPLEMENTED - - 502 BAD_GATEWAY - - 503 SERVICE_UNAVAILABLE - - 504 GATEWAY_TIMEOUT - - 505 HTTP_VERSION_NOT_SUPPORTED - - 506 VARIANT_ALSO_NEGOTIATES - - 507 INSUFFICIENT_STORAGE - - 508 LOOP_DETECTED - - 509 BANDWIDTH_LIMIT_EXCEEDED - - 510 NOT_EXTENDED - - 511 NETWORK_AUTHENTICATION_REQUIRED - message: - type: string - example: Error message - code: - type: string - example: error.service.code - TableHistoryDto: - required: - - event - - timestamp - - total - type: object - properties: - timestamp: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - event: - type: string - total: - type: integer - format: int64 - example: 1 - QueryResultDto: - required: - - headers - - id - - result - type: object - properties: - result: - type: array - items: - type: object - additionalProperties: - type: object - headers: - type: array - items: - type: object - additionalProperties: - type: integer - format: int32 - id: - type: integer - format: int64 - result_number: - type: integer - format: int64 - example: 1 - UserUpdateDto: - type: object - properties: - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Brown University - orcid: - type: string - example: 0000-0002-1825-0097 - UserAttributesDto: - type: object - properties: - orcid: - type: string - example: https://orcid.org/0000-0002-1825-0097 - affiliation: - type: string - example: Brown University - UserDto: - required: - - attributes - - email - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - attributes: - $ref: '#/components/schemas/UserAttributesDto' - email: - type: string - example: jcarberry@brown.edu - qualified_name: - type: string - example: Josiah Carberry — @jcarberry - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - UserThemeSetDto: - required: - - theme_dark - type: object - properties: - theme_dark: - type: boolean - example: true - UserPasswordDto: - required: - - password - type: object - properties: - password: - type: string - OntologyModifyDto: - required: - - prefix - - uri - type: object - properties: - uri: - type: string - example: Ontology URI - prefix: - type: string - example: Ontology prefix - sparql_endpoint: - type: string - example: Ontology SPARQL endpoint - rdf_path: - type: string - example: rdf/om-2.0.rdf - OntologyDto: - required: - - created - - id - - prefix - - rdf - - sparql - - uri - type: object - properties: - id: - type: integer - format: int64 - uri: - type: string - example: http://www.wikidata.org/ - prefix: - type: string - example: wd - sparql: - type: boolean - example: true - rdf: - type: boolean - example: false - creator: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - uri_pattern: - type: string - example: http://www.wikidata.org/entity/.* - sparql_endpoint: - type: string - example: https://query.wikidata.org/sparql - rdf_path: - type: string - example: rdf/om-2.0.rdf - UserBriefDto: - required: - - id - - username - type: object - properties: - id: - type: string - format: uuid - example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4 - username: - type: string - description: Only contains lowercase characters - example: jcarberry - name: - type: string - example: Josiah Carberry - orcid: - type: string - example: 0000-0002-1825-0097 - qualified_name: - type: string - example: Josiah Carberry — @jcarberry - given_name: - type: string - example: Josiah - family_name: - type: string - example: Carberry - BannerMessageUpdateDto: - required: - - message - - type - type: object - properties: - type: - type: string - enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: - type: string - example: https://example.com - link_text: - type: string - example: More - display_start: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - display_end: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - BannerMessageNotFoundException: - type: object - properties: - cause: - type: object - properties: - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - suppressed: - type: array - items: - type: object - properties: - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - localizedMessage: - type: string - localizedMessage: - type: string - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - suppressed: - type: array - items: - type: object - properties: - stackTrace: - type: array - items: - type: object - properties: - classLoaderName: - type: string - moduleName: - type: string - moduleVersion: - type: string - methodName: - type: string - fileName: - type: string - lineNumber: - type: integer - format: int32 - nativeMethod: - type: boolean - className: - type: string - message: - type: string - localizedMessage: - type: string - localizedMessage: - type: string - BannerMessageBriefDto: - required: - - message - - type - type: object - properties: - type: - type: string - enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: - type: string - example: https://example.com - link_text: - type: string - example: More - ImageChangeDto: - required: - - dialect - - driver_class - - jdbc_method - - registry - type: object - properties: - registry: - type: string - example: docker.io/library - defaultPort: - maximum: 65535 - minimum: 1024 - type: integer - format: int32 - example: 5432 - dialect: - type: string - example: Postgres - driver_class: - type: string - example: org.postgresql.Driver - jdbc_method: - type: string - example: postgresql - ImageDateDto: - required: - - created_at - - database_format - - example - - has_time - - id - - unix_format - type: object - properties: - id: - type: integer - format: int64 - example: - type: string - example: 30.01.2022 - database_format: - type: string - example: '%d.%c.%Y' - unix_format: - type: string - example: dd.MM.YYYY - has_time: - type: boolean - example: false - created_at: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - ImageDto: - required: - - default_port - - dialect - - driver_class - - id - - jdbc_method - - name - - registry - - version - type: object - properties: - id: - type: integer - format: int64 - registry: - type: string - example: docker.io/library - name: - type: string - example: mariadb - version: - type: string - example: "10.5" - dialect: - type: string - example: org.hibernate.dialect.MariaDBDialect - driver_class: - type: string - example: org.mariadb.jdbc.Driver - date_formats: - type: array - items: - $ref: '#/components/schemas/ImageDateDto' - jdbc_method: - type: string - example: mariadb - default_port: - type: integer - format: int32 - example: 3306 - DatabaseModifyVisibilityDto: - required: - - is_public - type: object - properties: - is_public: - type: boolean - example: true - ColumnBriefDto: - required: - - column_type - - database_id - - id - - internal_name - - name - - table_id - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: date - alias: - type: string - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - column_type: - type: string - example: date - enum: - - char - - varchar - - binary - - varbinary - - tinyblob - - tinytext - - text - - blob - - mediumtext - - mediumblob - - longtext - - longblob - - enum - - set - - bit - - tinyint - - bool - - smallint - - mediumint - - int - - bigint - - float - - double - - decimal - - date - - datetime - - timestamp - - time - - year - ColumnDto: - required: - - auto_generated - - column_type - - database_id - - id - - internal_name - - is_null_allowed - - is_primary_key - - is_public - - name - - table_id - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Date - alias: - type: string - size: - type: integer - format: int64 - example: 255 - d: - type: integer - format: int64 - example: 0 - dataLength: - type: integer - format: int64 - example: 34300 - maxDataLength: - type: integer - format: int64 - example: 34300 - numRows: - type: integer - format: int64 - example: 32 - valMin: - type: number - example: 0 - valMax: - type: number - example: 100 - mean: - type: number - example: 45.4 - median: - type: number - example: 51 - stdDev: - type: number - example: 5.32 - concept: - $ref: '#/components/schemas/ConceptDto' - unit: - $ref: '#/components/schemas/UnitDto' - enums: - type: array - items: - type: string - sets: - type: array - items: - type: string - database_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - internal_name: - type: string - example: mdb_date - date_format: - $ref: '#/components/schemas/ImageDateDto' - auto_generated: - type: boolean - example: false - is_primary_key: - type: boolean - example: true - index_length: - type: integer - format: int64 - length: - type: integer - format: int64 - column_type: - type: string - example: string - enum: - - char - - varchar - - binary - - varbinary - - tinyblob - - tinytext - - text - - blob - - mediumtext - - mediumblob - - longtext - - longblob - - enum - - set - - bit - - tinyint - - bool - - smallint - - mediumint - - int - - bigint - - float - - double - - decimal - - date - - datetime - - timestamp - - time - - year - is_public: - type: boolean - example: true - is_null_allowed: - type: boolean - example: false - ConceptDto: - required: - - columns - - created - - id - - uri - type: object - properties: - id: - type: integer - format: int64 - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - ConstraintsDto: - type: object - properties: - uniques: - type: array - items: - $ref: '#/components/schemas/UniqueDto' - checks: - type: array - items: - type: string - foreign_keys: - type: array - items: - $ref: '#/components/schemas/ForeignKeyDto' - ContainerDto: - required: - - created - - host - - id - - internal_name - - name - - sidecar_host - - sidecar_port - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - host: - type: string - port: - type: integer - format: int32 - image: - $ref: '#/components/schemas/ImageBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - internal_name: - type: string - example: data-db - sidecar_host: - type: string - sidecar_port: - type: integer - format: int32 - ui_host: - type: string - ui_port: - type: integer - format: int32 - CreatorDto: - required: - - creator_name - - id - type: object - properties: - id: - type: integer - format: int64 - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Brown University - creator_name: - type: string - example: "Carberry, Josiah" - name_type: - type: string - example: Personal - enum: - - Personal - - Organizational - name_identifier: - type: string - example: 0000-0002-1825-0097 - name_identifier_scheme: - type: string - example: ORCID - enum: - - ORCID - - ROR - - ISNI - - GRID - name_identifier_scheme_uri: - type: string - example: https://orcid.org/ - affiliation_identifier: - type: string - example: https://ror.org/05gq02987 - affiliation_identifier_scheme: - type: string - example: ROR - enum: - - ROR - - GRID - - ISNI - affiliation_identifier_scheme_uri: - type: string - example: https://ror.org/ - DatabaseAccessDto: - required: - - created - - type - - user - type: object - properties: - user: - $ref: '#/components/schemas/UserDto' - type: - type: string - enum: - - read - - write_own - - write_all - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - DatabaseDto: - required: - - contact - - created - - creator - - exchange_name - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality - tables: - type: array - items: - $ref: '#/components/schemas/TableDto' - views: - type: array - items: - $ref: '#/components/schemas/ViewDto' - container: - $ref: '#/components/schemas/ContainerDto' - accesses: - type: array - items: - $ref: '#/components/schemas/DatabaseAccessDto' - identifiers: - type: array - items: - $ref: '#/components/schemas/IdentifierDto' - subsets: - type: array - items: - $ref: '#/components/schemas/IdentifierDto' - creator: - $ref: '#/components/schemas/UserDto' - contact: - $ref: '#/components/schemas/UserDto' - owner: - $ref: '#/components/schemas/UserDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - exchange_name: - type: string - example: dbrepo - exchange_type: - type: string - example: topic - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - ForeignKeyDto: - type: object - properties: - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - referenced_table: - $ref: '#/components/schemas/TableBriefDto' - referenced_columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - on_update: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - on_delete: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - IdentifierDescriptionDto: - required: - - id - type: object - properties: - id: - type: integer - format: int64 - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - language: - type: string - example: en - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - type: - type: string - example: Abstract - enum: - - Abstract - - Methods - - SeriesInformation - - TableOfContents - - TechnicalInfo - - Other - IdentifierDto: - required: - - created - - creators - - execution - - id - - last_modified - - publication_year - - query - - query_hash - - query_normalized - - result_hash - - result_number - - type - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - - table - - view - titles: - type: array - items: - $ref: '#/components/schemas/IdentifierTitleDto' - descriptions: - type: array - items: - $ref: '#/components/schemas/IdentifierDescriptionDto' - funders: - type: array - items: - $ref: '#/components/schemas/IdentifierFunderDto' - query: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - execution: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - licenses: - type: array - items: - $ref: '#/components/schemas/LicenseDto' - creators: - type: array - items: - $ref: '#/components/schemas/CreatorDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - database_id: - type: integer - format: int64 - example: 1 - query_id: - type: integer - format: int64 - example: 1 - table_id: - type: integer - format: int64 - example: 1 - view_id: - type: integer - format: int64 - example: 1 - query_normalized: - type: string - example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\ - \ = \"09:STEF\"" - related_identifiers: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierDto' - query_hash: - type: string - description: query hash in sha512 - result_hash: - type: string - example: 34fe82cda2c53f13f8d90cfd7a3469e3a939ff311add50dce30d9136397bf8e5 - result_number: - type: integer - format: int64 - example: 1 - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - last_modified: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - IdentifierFunderDto: - required: - - funder_name - - id - type: object - properties: - id: - type: integer - format: int64 - funder_name: - type: string - example: European Commission - funder_identifier: - type: string - example: http://doi.org/10.13039/501100000780 - funder_identifier_type: - type: string - example: Crossref Funder ID - enum: - - Crossref Funder ID - - ROR - - GND - - ISNI - - Other - scheme_uri: - type: string - example: http://doi.org/ - award_number: - type: string - example: "824087" - award_title: - type: string - example: EOSC-Life - IdentifierTitleDto: - required: - - id - type: object - properties: - id: - type: integer - format: int64 - title: - type: string - example: Airquality Demonstrator - language: - type: string - example: en - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - type: - type: string - enum: - - AlternativeTitle - - Subtitle - - TranslatedTitle - - Other - ImageBriefDto: - required: - - id - - name - - version - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: mariadb - version: - type: string - example: "10.5" - LicenseDto: - required: - - identifier - - uri - type: object - properties: - identifier: - type: string - example: MIT - uri: - type: string - example: https://opensource.org/licenses/MIT - RelatedIdentifierDto: - required: - - created - - id - - value - type: object - properties: - id: - type: integer - format: int64 - value: - type: string - example: 10.70124/dc4zh-9ce78 - type: - type: string - example: DOI - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - example: Cites - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - last_modified: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - TableBriefDto: - required: - - columns - - description - - id - - internal_name - - is_versioned - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - owner: - $ref: '#/components/schemas/UserBriefDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - internal_name: - type: string - example: air_quality - is_versioned: - type: boolean - example: true - TableDto: - required: - - columns - - created - - created_by - - creator - - id - - internal_name - - is_public - - is_versioned - - name - - owner - - queue_name - - routing_key - - tdbid - type: object - properties: - id: - type: integer - format: int64 - tdbid: - type: integer - format: int64 - name: - type: string - example: Air Quality - identifiers: - type: array - items: - $ref: '#/components/schemas/IdentifierDto' - creator: - $ref: '#/components/schemas/UserDto' - owner: - $ref: '#/components/schemas/UserDto' - description: - type: string - example: Air Quality in Austria - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - constraints: - $ref: '#/components/schemas/ConstraintsDto' - internal_name: - type: string - example: air_quality - is_versioned: - type: boolean - example: true - created_by: - type: string - format: uuid - queue_name: - type: string - example: air_quality - queue_type: - type: string - example: quorum - routing_key: - type: string - example: dbrepo.database.air_quality - is_public: - type: boolean - example: true - UniqueDto: - required: - - columns - - table - - uid - type: object - properties: - uid: - type: integer - format: int64 - table: - $ref: '#/components/schemas/TableDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - UnitDto: - required: - - columns - - created - - id - - uri - type: object - properties: - id: - type: integer - format: int64 - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - columns: - type: array - items: - $ref: '#/components/schemas/ColumnBriefDto' - ViewDto: - required: - - columns - - created - - creator - - database - - database_id - - id - - internal_name - - name - - query - - query_hash - type: object - properties: - id: - type: integer - format: int64 - database: - $ref: '#/components/schemas/DatabaseDto' - name: - type: string - example: Air Quality - identifiers: - type: array - items: - $ref: '#/components/schemas/IdentifierDto' - query: - type: string - example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - creator: - $ref: '#/components/schemas/UserDto' - columns: - type: array - items: - $ref: '#/components/schemas/ColumnDto' - database_id: - type: integer - format: int64 - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - initial_view: - type: boolean - description: True if it is the default view for the database - example: true - query_hash: - type: string - example: 7de03e818900b6ea6d58ad0306d4a741d658c6df3d1964e89ed2395d8c7e7916 - last_modified: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - DatabaseTransferDto: - required: - - username - type: object - properties: - username: - type: string - ColumnSemanticsUpdateDto: - type: object - properties: - concept_uri: - type: string - unit_uri: - type: string - DatabaseModifyAccessDto: - required: - - type - type: object - properties: - type: - type: string - enum: - - read - - write_own - - write_all - QueryPersistDto: - required: - - persist - type: object - properties: - persist: - type: boolean - example: true - QueryDto: - required: - - cid - - created - - creator - - dbid - - execution - - id - - is_persisted - - last_modified - - query - - query_hash - type: object - properties: - id: - type: integer - format: int64 - cid: - type: integer - format: int64 - dbid: - type: integer - format: int64 - creator: - $ref: '#/components/schemas/UserDto' - execution: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - query: - type: string - example: SELECT `id` FROM `air_quality` - type: - type: string - example: query - enum: - - query - - view - identifiers: - type: array - items: - $ref: '#/components/schemas/IdentifierDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - query_normalized: - type: string - example: SELECT `id` FROM `air_quality` - query_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - is_persisted: - type: boolean - example: true - result_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - result_number: - type: integer - format: int64 - example: 1 - last_modified: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - SignupRequestDto: - required: - - email - - password - - username - type: object - properties: - username: - pattern: "^[a-z0-9]{3,}$" - type: string - example: user - email: - type: string - example: user@example.com - password: - type: string - OntologyCreateDto: - required: - - prefix - - uri - type: object - properties: - uri: - type: string - example: Ontology URI - prefix: - type: string - example: Ontology prefix - sparql_endpoint: - type: string - example: Ontology SPARQL endpoint - BannerMessageCreateDto: - required: - - message - - type - type: object - properties: - type: - type: string - enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: - type: string - example: https://example.com - link_text: - type: string - example: More - display_start: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - display_end: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - ImageCreateDto: - required: - - default_port - - dialect - - driver_class - - jdbc_method - - name - - registry - - version - type: object - properties: - registry: - type: string - example: docker.io/library - name: - type: string - example: mariadb - version: - type: string - dialect: - type: string - driver_class: - type: string - jdbc_method: - type: string - default_port: - maximum: 65535 - minimum: 1024 - type: integer - format: int32 - CreatorSaveDto: - required: - - creator_name - - firstname - - lastname - - name_type - type: object - properties: - id: - type: integer - format: int64 - firstname: - type: string - example: Josiah - lastname: - type: string - example: Carberry - affiliation: - type: string - example: Wesleyan University - creator_name: - type: string - example: "Carberry, Josiah" - name_type: - type: string - example: Personal - enum: - - Personal - - Organizational - name_identifier: - type: string - example: 0000-0002-1825-0097 - name_identifier_scheme: - type: string - example: ORCID - enum: - - ORCID - - ROR - - ISNI - - GRID - affiliation_identifier: - type: string - example: https://ror.org/04d836q62 - affiliation_identifier_scheme: - type: string - example: ROR - enum: - - ROR - - GRID - - ISNI - IdentifierFunderSaveDto: - required: - - funder_name - type: object - properties: - id: - type: integer - format: int64 - funder_name: - type: string - example: European Commission - funder_identifier: - type: string - example: http://doi.org/10.13039/501100000780 - funder_identifier_type: - type: string - example: Crossref Funder ID - enum: - - Crossref Funder ID - - ROR - - GND - - ISNI - - Other - scheme_uri: - type: string - example: http://doi.org/ - award_number: - type: string - example: "824087" - award_title: - type: string - example: EOSC-Life - IdentifierSaveDescriptionDto: - type: object - properties: - id: - type: integer - format: int64 - description: - type: string - example: "Air quality reports at Stephansplatz, Vienna" - language: - type: string - example: en - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - type: - type: string - example: Abstract - enum: - - Abstract - - Methods - - SeriesInformation - - TableOfContents - - TechnicalInfo - - Other - IdentifierSaveDto: - required: - - creators - - database_id - - publication_year - - type - type: object - properties: - type: - type: string - example: database - enum: - - database - - subset - - table - - view - titles: - type: array - items: - $ref: '#/components/schemas/IdentifierSaveTitleDto' - descriptions: - type: array - items: - $ref: '#/components/schemas/IdentifierSaveDescriptionDto' - funders: - type: array - items: - $ref: '#/components/schemas/IdentifierFunderSaveDto' - licenses: - type: array - items: - $ref: '#/components/schemas/LicenseDto' - publisher: - type: string - example: TU Wien - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - creators: - type: array - items: - $ref: '#/components/schemas/CreatorSaveDto' - database_id: - type: integer - format: int64 - example: 1 - query_id: - type: integer - format: int64 - view_id: - type: integer - format: int64 - table_id: - type: integer - format: int64 - publication_day: - type: integer - format: int32 - example: 15 - publication_month: - type: integer - format: int32 - example: 12 - publication_year: - type: integer - format: int32 - example: 2022 - related_identifiers: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifierSaveDto' - IdentifierSaveTitleDto: - type: object - properties: - id: - type: integer - format: int64 - title: - type: string - example: Airquality Demonstrator - language: - type: string - example: en - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - type: - type: string - example: Subtitle - enum: - - AlternativeTitle - - Subtitle - - TranslatedTitle - - Other - RelatedIdentifierSaveDto: - required: - - value - type: object - properties: - value: - type: string - example: 10.70124/dc4zh-9ce78 - type: - type: string - example: DOI - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - example: Cites - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - DatabaseCreateDto: - required: - - container_id - - is_public - - name - type: object - properties: - name: - type: string - example: Air Quality - container_id: - type: integer - format: int64 - example: 1 - is_public: - type: boolean - example: true - ContainerBriefDto: - required: - - created - - hash - - id - - image - - internal_name - - name - - running - type: object - properties: - id: - type: integer - format: int64 - hash: - type: string - example: f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50 - name: - type: string - example: Air Quality - image: - $ref: '#/components/schemas/ImageBriefDto' - running: - type: boolean - example: true - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - internal_name: - type: string - example: air-quality - CreatorBriefDto: - required: - - creator_name - type: object - properties: - affiliation: - type: string - example: Wesleyan University - name_identifier: - type: string - example: https://orcid.org/0000-0002-1825-0097 - name_type: - type: string - example: Personal - enum: - - Personal - - Organizational - creator_name: - type: string - example: "Carberry, Josiah" - DatabaseBriefDto: - required: - - created - - creator - - exchange_name - - id - - internal_name - - name - - owner - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - example: Air Quality - identifier: - $ref: '#/components/schemas/IdentifierDto' - description: - type: string - example: Air Quality - tables: - type: array - items: - $ref: '#/components/schemas/TableBriefDto' - views: - type: array - items: - $ref: '#/components/schemas/ViewBriefDto' - image: - $ref: '#/components/schemas/ImageDto' - container: - $ref: '#/components/schemas/ContainerBriefDto' - accesses: - type: array - items: - $ref: '#/components/schemas/DatabaseAccessDto' - creator: - $ref: '#/components/schemas/UserBriefDto' - owner: - $ref: '#/components/schemas/UserBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - exchange_name: - type: string - example: dbrepo - exchange_type: - type: string - example: topic - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - IdentifierBriefDto: - required: - - creators - - id - - publication_year - - type - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - database - - subset - - table - - view - titles: - type: array - items: - $ref: '#/components/schemas/IdentifierTitleDto' - doi: - type: string - example: 10.1038/nphys1170 - publisher: - type: string - example: TU Wien - creators: - type: array - items: - $ref: '#/components/schemas/CreatorBriefDto' - database_id: - type: integer - format: int64 - example: 1 - query_id: - type: integer - format: int64 - example: 1 - publication_year: - type: integer - format: int32 - example: 2022 - ViewBriefDto: - required: - - created - - creator - - id - - internal_name - - name - - query - - query_hash - - vdbid - type: object - properties: - id: - type: integer - format: int64 - vdbid: - type: integer - format: int64 - name: - type: string - example: Air Quality - identifier: - $ref: '#/components/schemas/IdentifierBriefDto' - query: - type: string - example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - creator: - $ref: '#/components/schemas/UserDto' - internal_name: - type: string - example: air_quality - is_public: - type: boolean - example: true - initial_view: - type: boolean - description: True if it is the default view for the database - example: true - query_hash: - type: string - example: 7de03e818900b6ea6d58ad0306d4a741d658c6df3d1964e89ed2395d8c7e7916 - last_modified: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - DatabaseGiveAccessDto: - required: - - type - type: object - properties: - type: - type: string - enum: - - read - - write_own - - write_all - ViewCreateDto: - required: - - is_public - - name - - query - type: object - properties: - name: - type: string - example: Air Quality - query: - type: string - example: SELECT `id` FROM `air_quality` - is_public: - type: boolean - example: true - ColumnCreateDto: - required: - - name - - null_allowed - - primary_key - - type - type: object - properties: - name: - type: string - example: Date - type: - type: string - example: string - enum: - - char - - varchar - - binary - - varbinary - - tinyblob - - tinytext - - text - - blob - - mediumtext - - mediumblob - - longtext - - longblob - - enum - - set - - bit - - tinyint - - bool - - smallint - - mediumint - - int - - bigint - - float - - double - - decimal - - date - - datetime - - timestamp - - time - - year - size: - type: integer - format: int64 - example: 255 - d: - type: integer - format: int64 - example: 0 - dfid: - type: integer - description: date format id - format: int64 - enums: - type: array - description: "enum values, only considered when type = ENUM" - items: - type: string - description: "enum values, only considered when type = ENUM" - sets: - type: array - description: "set values, only considered when type = SET" - items: - type: string - description: "set values, only considered when type = SET" - primary_key: - type: boolean - example: false - index_length: - type: integer - format: int64 - null_allowed: - type: boolean - example: true - ConstraintsCreateDto: - type: object - properties: - uniques: - type: array - items: - type: array - items: - type: string - checks: - type: array - items: - type: string - foreign_keys: - type: array - items: - $ref: '#/components/schemas/ForeignKeyCreateDto' - ForeignKeyCreateDto: - type: object - properties: - columns: - type: array - items: - type: string - referenced_table: - type: string - referenced_columns: - type: array - items: - type: string - on_update: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - on_delete: - type: string - enum: - - restrict - - cascade - - set_null - - no_action - - set_default - TableCreateDto: - required: - - columns - - name - type: object - properties: - name: - type: string - example: Air Quality - description: - type: string - example: Air Quality in Austria - columns: - type: array - items: - $ref: '#/components/schemas/ColumnCreateDto' - constraints: - $ref: '#/components/schemas/ConstraintsCreateDto' - TableCsvDto: - required: - - data - type: object - properties: - data: - type: object - additionalProperties: - type: object - ImportDto: - required: - - location - - separator - type: object - properties: - location: - type: string - example: file.csv - separator: - type: string - example: "," - quote: - type: string - example: '"' - skip_lines: - minimum: 0 - type: integer - format: int64 - false_element: - type: string - true_element: - type: string - null_element: - type: string - example: NA - ExecuteStatementDto: - required: - - statement - type: object - properties: - statement: - type: string - example: SELECT `id` FROM `air_quality` - timestamp: - type: string - description: Execute query for data at this timestamp - format: date-time - ContainerCreateRequestDto: - required: - - host - - imageId - - name - - privilegedPassword - - privilegedUsername - type: object - properties: - name: - type: string - example: Air Quality - imageId: - type: integer - description: Image ID - format: int64 - host: - type: string - description: Hostname of container - port: - type: integer - description: Port of container - format: int32 - privilegedUsername: - type: string - description: Username of privileged user - example: root - privilegedPassword: - type: string - description: Password of privileged user - EntityDto: - required: - - label - - uri - type: object - properties: - uri: - type: string - example: https://www.wikidata.org/entity/Q1686799 - label: - type: string - example: Apache Jena - description: - type: string - example: open source semantic web framework for Java - TableColumnEntityDto: - required: - - columnId - - databaseId - - tableId - - uri - type: object - properties: - databaseId: - type: integer - format: int64 - example: 1 - tableId: - type: integer - format: int64 - example: 1 - columnId: - type: integer - format: int64 - example: 1 - uri: - type: string - example: https://www.wikidata.org/entity/Q1686799 - label: - type: string - example: Apache Jena - description: - type: string - example: open source semantic web framework for Java - OaiListIdentifiersParameters: - type: object - properties: - metadataPrefix: - type: string - from: - type: string - until: - type: string - set: - type: string - resumptionToken: - type: string - fromDate: - type: string - format: date-time - untilDate: - type: string - format: date-time - parametersString: - type: string - BannerMessageDto: - required: - - id - - message - - type - type: object - properties: - id: - type: integer - format: int64 - type: - type: string - enum: - - error - - warning - - info - message: - type: string - example: Maintenance starts on 8am on Monday - link: - type: string - example: https://example.com - link_text: - type: string - example: More - display_start: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - display_end: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - Constraints: - type: object - properties: - uniques: - type: array - items: - $ref: '#/components/schemas/Unique' - foreignKeys: - type: array - items: - $ref: '#/components/schemas/ForeignKey' - checks: - uniqueItems: true - type: array - items: - type: string - Container: - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - internalName: - type: string - host: - type: string - port: - type: integer - format: int32 - sidecarHost: - type: string - sidecarPort: - type: integer - format: int32 - uiHost: - type: string - uiPort: - type: integer - format: int32 - uiAdditionalFlags: - type: string - databases: - type: array - items: - $ref: '#/components/schemas/Database' - image: - $ref: '#/components/schemas/ContainerImage' - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - privilegedUsername: - type: string - privilegedPassword: - type: string - ContainerImage: - type: object - properties: - id: - type: integer - format: int64 - name: - type: string - version: - type: string - driverClass: - type: string - dialect: - type: string - jdbcMethod: - type: string - defaultPort: - type: integer - format: int32 - dateFormats: - type: array - items: - $ref: '#/components/schemas/ContainerImageDate' - containers: - type: array - items: - $ref: '#/components/schemas/Container' - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - ContainerImageDate: - type: object - properties: - id: - type: integer - format: int64 - iid: - type: integer - format: int64 - image: - $ref: '#/components/schemas/ContainerImage' - example: - type: string - hasTime: - type: boolean - databaseFormat: - type: string - unixFormat: - type: string - createdAt: - type: string - format: date-time - Creator: - type: object - properties: - id: - type: integer - format: int64 - firstname: - type: string - lastname: - type: string - creatorName: - type: string - nameType: - type: string - enum: - - PERSONAL - - ORGANIZATIONAL - nameIdentifier: - type: string - nameIdentifierScheme: - type: string - enum: - - ORCID - - ROR - - ISNI - - GRID - nameIdentifierSchemeUri: - type: string - affiliation: - type: string - affiliationIdentifier: - type: string - affiliationIdentifierScheme: - type: string - enum: - - ROR - - GRID - - ISNI - affiliationIdentifierSchemeUri: - type: string - identifier: - $ref: '#/components/schemas/Identifier' - apaName: - type: string - bibtexName: - type: string - ieeeName: - type: string - Database: - type: object - properties: - id: - type: integer - format: int64 - createdBy: - type: string - format: uuid - creator: - $ref: '#/components/schemas/User' - ownedBy: - type: string - format: uuid - owner: - $ref: '#/components/schemas/User' - cid: - type: integer - format: int64 - container: - $ref: '#/components/schemas/Container' - name: - type: string - internalName: - type: string - exchangeName: - type: string - description: - type: string - contactPerson: - type: string - format: uuid - contact: - $ref: '#/components/schemas/User' - identifiers: - type: array - items: - $ref: '#/components/schemas/Identifier' - subsets: - type: array - items: - $ref: '#/components/schemas/Identifier' - tables: - type: array - items: - $ref: '#/components/schemas/Table' - views: - type: array - items: - $ref: '#/components/schemas/View' - accesses: - type: array - items: - $ref: '#/components/schemas/DatabaseAccess' - isPublic: - type: boolean - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - DatabaseAccess: - type: object - properties: - huserid: - type: string - format: uuid - user: - $ref: '#/components/schemas/User' - hdbid: - type: integer - format: int64 - database: - $ref: '#/components/schemas/Database' - type: - type: string - enum: - - AccessType.READ - - AccessType.WRITE_OWN - - AccessType.WRITE_ALL - created: - type: string - format: date-time - ForeignKey: - type: object - properties: - fkid: - type: integer - format: int64 - table: - $ref: '#/components/schemas/Table' - referencedTable: - $ref: '#/components/schemas/Table' - references: - type: array - items: - $ref: '#/components/schemas/ForeignKeyReference' - onUpdate: - type: string - enum: - - ReferenceType.RESTRICT - - ReferenceType.CASCADE - - ReferenceType.SET_NULL - - ReferenceType.NO_ACTION - - ReferenceType.SET_DEFAULT - onDelete: - type: string - enum: - - ReferenceType.RESTRICT - - ReferenceType.CASCADE - - ReferenceType.SET_NULL - - ReferenceType.NO_ACTION - - ReferenceType.SET_DEFAULT - ForeignKeyReference: - type: object - properties: - id: - type: integer - format: int64 - foreignKey: - $ref: '#/components/schemas/ForeignKey' - column: - $ref: '#/components/schemas/TableColumn' - referencedColumn: - $ref: '#/components/schemas/TableColumn' - Identifier: - required: - - publisher - type: object - properties: - id: - type: integer - format: int64 - databaseId: - type: integer - format: int64 - queryId: - type: integer - format: int64 - tableId: - type: integer - format: int64 - viewId: - type: integer - format: int64 - creators: - type: array - items: - $ref: '#/components/schemas/Creator' - publisher: - type: string - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - titles: - type: array - items: - $ref: '#/components/schemas/IdentifierTitle' - descriptions: - type: array - items: - $ref: '#/components/schemas/IdentifierDescription' - funders: - type: array - items: - $ref: '#/components/schemas/IdentifierFunder' - licenses: - type: array - items: - $ref: '#/components/schemas/License' - type: - type: string - enum: - - DATABASE - - SUBSET - - TABLE - - VIEW - query: - type: string - queryNormalized: - type: string - queryHash: - type: string - resultHash: - type: string - execution: - type: string - format: date-time - resultNumber: - type: integer - format: int64 - publicationYear: - type: integer - format: int32 - publicationMonth: - type: integer - format: int32 - publicationDay: - type: integer - format: int32 - database: - $ref: '#/components/schemas/Database' - relatedIdentifiers: - type: array - items: - $ref: '#/components/schemas/RelatedIdentifier' - doi: - type: string - createdBy: - type: string - format: uuid - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - IdentifierDescription: - type: object - properties: - id: - type: integer - format: int64 - description: - type: string - descriptionType: - type: string - enum: - - Abstract - - Methods - - SeriesInformation - - TableOfContents - - TechnicalInfo - - Other - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - identifier: - $ref: '#/components/schemas/Identifier' - IdentifierFunder: - type: object - properties: - id: - type: integer - format: int64 - funderName: - type: string - funderIdentifier: - type: string - funderIdentifierType: - type: string - enum: - - CROSSREF_FUNDER_ID - - ROR - - GND - - ISNI - - OTHER - schemeUri: - type: string - awardNumber: - type: string - awardTitle: - type: string - identifier: - $ref: '#/components/schemas/Identifier' - IdentifierTitle: - type: object - properties: - id: - type: integer - format: int64 - title: - type: string - titleType: - type: string - enum: - - AlternativeTitle - - Subtitle - - TranslatedTitle - - Other - language: - type: string - enum: - - ab - - aa - - af - - ak - - sq - - am - - ar - - an - - hy - - as - - av - - ae - - ay - - az - - bm - - ba - - eu - - be - - bn - - bh - - bi - - bs - - br - - bg - - my - - ca - - km - - ch - - ce - - ny - - zh - - cu - - cv - - kw - - co - - cr - - hr - - cs - - da - - dv - - nl - - dz - - en - - eo - - et - - ee - - fo - - fj - - fi - - fr - - ff - - gd - - gl - - lg - - ka - - de - - ki - - el - - kl - - gn - - gu - - ht - - ha - - he - - hz - - hi - - ho - - hu - - is - - io - - ig - - id - - ia - - ie - - iu - - ik - - ga - - it - - ja - - jv - - kn - - kr - - ks - - kk - - rw - - kv - - kg - - ko - - kj - - ku - - ky - - lo - - la - - lv - - lb - - li - - ln - - lt - - lu - - mk - - mg - - ms - - ml - - mt - - gv - - mi - - mr - - mh - - ro - - mn - - na - - nv - - nd - - ng - - ne - - se - - "no" - - nb - - nn - - ii - - oc - - oj - - or - - om - - os - - pi - - pa - - ps - - fa - - pl - - pt - - qu - - rm - - rn - - ru - - sm - - sg - - sa - - sc - - sr - - sn - - sd - - si - - sk - - sl - - so - - st - - nr - - es - - su - - sw - - ss - - sv - - tl - - ty - - tg - - ta - - tt - - te - - th - - bo - - ti - - to - - ts - - tn - - tr - - tk - - tw - - ug - - uk - - ur - - uz - - ve - - vi - - vo - - wa - - cy - - fy - - wo - - xh - - yi - - yo - - za - - zu - identifier: - $ref: '#/components/schemas/Identifier' - License: - type: object - properties: - identifier: - type: string - uri: - type: string - RelatedIdentifier: - type: object - properties: - id: - type: integer - format: int64 - value: - type: string - type: - type: string - enum: - - DOI - - URL - - URN - - ARK - - arXiv - - bibcode - - EAN13 - - EISSN - - Handle - - IGSN - - ISBN - - ISTC - - LISSN - - LSID - - PMID - - PURL - - UPC - - w3id - relation: - type: string - enum: - - IsCitedBy - - Cites - - IsSupplementTo - - IsSupplementedBy - - IsContinuedBy - - Continues - - IsDescribedBy - - Describes - - HasMetadata - - IsMetadataFor - - HasVersion - - IsVersionOf - - IsNewVersionOf - - IsPreviousVersionOf - - IsPartOf - - HasPart - - IsPublishedIn - - IsReferencedBy - - References - - IsDocumentedBy - - Documents - - IsCompiledBy - - Compiles - - IsVariantFormOf - - IsOriginalFormOf - - IsIdenticalTo - - IsReviewedBy - - Reviews - - IsDerivedFrom - - IsSourceOf - - IsRequiredBy - - Requires - - IsObsoletedBy - - Obsoletes - identifier: - $ref: '#/components/schemas/Identifier' - Table: - type: object - properties: - id: - type: integer - format: int64 - tdbid: - type: integer - format: int64 - createdBy: - type: string - format: uuid - creator: - $ref: '#/components/schemas/User' - ownedBy: - type: string - format: uuid - owner: - $ref: '#/components/schemas/User' - name: - type: string - internalName: - type: string - queueName: - type: string - routingKey: - type: string - description: - type: string - database: - $ref: '#/components/schemas/Database' - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - identifiers: - type: array - items: - $ref: '#/components/schemas/Identifier' - constraints: - $ref: '#/components/schemas/Constraints' - isVersioned: - type: boolean - numRows: - type: integer - format: int64 - dataLength: - type: integer - format: int64 - maxDataLength: - type: integer - format: int64 - avgRowLength: - type: integer - format: int64 - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - TableColumn: - type: object - properties: - id: - type: integer - format: int64 - dateFormat: - $ref: '#/components/schemas/ContainerImageDate' - table: - $ref: '#/components/schemas/Table' - views: - type: array - items: - $ref: '#/components/schemas/View' - name: - type: string - autoGenerated: - type: boolean - internalName: - type: string - isPrimaryKey: - type: boolean - indexLength: - type: integer - format: int64 - alias: - type: string - columnType: - type: string - enum: - - TableColumnType.CHAR - - TableColumnType.VARCHAR - - TableColumnType.BINARY - - TableColumnType.VARBINARY - - TableColumnType.TINYBLOB - - TableColumnType.TINYTEXT - - TableColumnType.TEXT - - TableColumnType.BLOB - - TableColumnType.MEDIUMTEXT - - TableColumnType.MEDIUMBLOB - - TableColumnType.LONGTEXT - - TableColumnType.LONGBLOB - - TableColumnType.ENUM - - TableColumnType.SET - - TableColumnType.BIT - - TableColumnType.TINYINT - - TableColumnType.BOOL - - TableColumnType.SMALLINT - - TableColumnType.MEDIUMINT - - TableColumnType.INT - - TableColumnType.BIGINT - - TableColumnType.FLOAT - - TableColumnType.DOUBLE - - TableColumnType.DECIMAL - - TableColumnType.DATE - - TableColumnType.DATETIME - - TableColumnType.TIMESTAMP - - TableColumnType.TIME - - TableColumnType.YEAR - length: - type: integer - format: int64 - isNullAllowed: - type: boolean - ordinalPosition: - type: integer - format: int32 - created: - type: string - format: date-time - concept: - $ref: '#/components/schemas/TableColumnConcept' - unit: - $ref: '#/components/schemas/TableColumnUnit' - enums: - type: array - items: - type: string - sets: - type: array - items: - type: string - size: - type: integer - format: int64 - d: - type: integer - format: int64 - valMin: - type: number - valMax: - type: number - mean: - type: number - median: - type: number - stdDev: - type: number - lastModified: - type: string - format: date-time - TableColumnConcept: - type: object - properties: - id: - type: integer - format: int64 - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - TableColumnUnit: - type: object - properties: - id: - type: integer - format: int64 - uri: - type: string - name: - type: string - description: - type: string - created: - type: string - format: date-time - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - Unique: - type: object - properties: - uid: - type: integer - format: int64 - table: - $ref: '#/components/schemas/Table' - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - User: - type: object - properties: - id: - type: string - format: uuid - username: - type: string - firstname: - type: string - lastname: - type: string - email: - type: string - orcid: - type: string - affiliation: - type: string - accesses: - type: array - items: - $ref: '#/components/schemas/DatabaseAccess' - themeDark: - type: boolean - mariadbPassword: - type: string - View: - type: object - properties: - id: - type: integer - format: int64 - vdbid: - type: integer - format: int64 - createdBy: - type: string - format: uuid - name: - type: string - internalName: - type: string - isPublic: - type: boolean - isInitialView: - type: boolean - query: - type: string - queryHash: - type: string - identifiers: - type: array - items: - $ref: '#/components/schemas/Identifier' - database: - $ref: '#/components/schemas/Database' - columns: - type: array - items: - $ref: '#/components/schemas/TableColumn' - created: - type: string - format: date-time - lastModified: - type: string - format: date-time - QueryBriefDto: - required: - - cid - - created - - creator - - dbid - - execution - - id - - is_persisted - - last_modified - - query - - query_hash - type: object - properties: - id: - type: integer - format: int64 - cid: - type: integer - format: int64 - dbid: - type: integer - format: int64 - creator: - $ref: '#/components/schemas/UserDto' - execution: - type: string - format: date-time - query: - type: string - example: SELECT `id` FROM `air_quality` - type: - type: string - example: query - enum: - - query - - view - identifier: - $ref: '#/components/schemas/IdentifierBriefDto' - created: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - query_normalized: - type: string - example: SELECT `id` FROM `air_quality` - query_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - result_hash: - type: string - example: 17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76 - result_number: - type: integer - format: int64 - example: 1 - is_persisted: - type: boolean - example: true - last_modified: - type: string - format: date-time - example: 2021-03-12T15:26:21Z - TableCsvDeleteDto: - required: - - keys - type: object - properties: - keys: - type: object - additionalProperties: - type: object - securitySchemes: - bearerAuth: - type: http - scheme: bearer - bearerFormat: JWT diff --git a/.docs/api-mirror.yaml b/.docs/api-mirror.yaml deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/.docs/api-upload.yaml b/.docs/api-upload.yaml deleted file mode 100644 index 6f93138b86ac7312d0f05c8cf4c90e08013b4749..0000000000000000000000000000000000000000 --- a/.docs/api-upload.yaml +++ /dev/null @@ -1,30 +0,0 @@ -openapi: 3.0.1 -info: - title: Database Repository Upload Service API - description: Service that manages the uploads - contact: - name: Prof. Andreas Rauber - email: andreas.rauber@tuwien.ac.at - license: - name: Apache 2.0 - url: https://www.apache.org/licenses/LICENSE-2.0 - version: 1.3.0 -externalDocs: - description: Sourcecode Documentation - url: https://gitlab.phaidra.org/fair-data-austria-db-repository/fda-services -servers: -- url: http://localhost:1080 - description: Generated server url -- url: https://test.dbrepo.tuwien.ac.at - description: Sandbox -paths: - /api/upload/files: - post: - tags: - - upload-endpoint - summary: Uploads a file - operationId: upload - responses: - "201": - description: "Successfully uploaded a file" - security: {} \ No newline at end of file diff --git a/.docs/docker/release.py b/.docs/docker/release.py index d29dc4ec271f906187412c8cebb6111c106b0d01..3c12886af54645cd2c6129ee5fc156ccbfa585cd 100644 --- a/.docs/docker/release.py +++ b/.docs/docker/release.py @@ -41,6 +41,16 @@ components = [ "name": "User Interface", "doc": "system-other-ui", "dir": "ui" + }, + { + "name": "Search Service", + "doc": "system-services-search", + "dir": "search-service" + }, + { + "name": "Data Database Sidecar", + "doc": "system-databases-data", + "dir": "data-db" } ] diff --git a/.docs/docker/setup.py b/.docs/docker/setup.py index 5eda1103d1838fac042ea1656bdf9fd592002ea7..e293833201ef7edf439412801fda08888848b5bb 100644 --- a/.docs/docker/setup.py +++ b/.docs/docker/setup.py @@ -5,6 +5,6 @@ setup(name='dockerhub-client', description='Dockerhub Maintenance Client', author='Martin Weise', author_email='martin.weise@tuwien.ac.at', - url='https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/latest/', + url='https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/', packages=['dockerhub-client'], ) diff --git a/.docs/overrides/main.html b/.docs/overrides/main.html index 58f3797f382e683fc237610383e568015a96d8e4..a637efc3f7d7664e00bc893e345f433762f0b61f 100644 --- a/.docs/overrides/main.html +++ b/.docs/overrides/main.html @@ -3,9 +3,9 @@ {% block announce %} <label for="version">Version</label> <select style="margin-left:8px;" id="version" name="version" onchange="switchVersion(this.options[this.selectedIndex].value)"> + <option value="1.4.0">1.4.0</option> + <option value="1.3.9">1.3.9</option> <option value="latest">latest</option> - <option value="1.4">1.4</option> - <option value="1.3">1.3</option> </select> <script> function getVersion() { @@ -13,7 +13,7 @@ if (segments.length >= 4) { return segments[3] } else { - return '1.4' + return '$TAG' } } function switchVersion(value) { diff --git a/.docs/redirect.html b/.docs/redirect.html index a5d576a99eec1af1450a9bc1c4edac0a70de953f..9c4c9805eecc1d43bcd50dc95750ecf336736423 100644 --- a/.docs/redirect.html +++ b/.docs/redirect.html @@ -3,16 +3,16 @@ <head> <meta charset="UTF-8"> <title>Redirect Notice</title> - <meta http-equiv="Refresh" content="0; url='https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.4/'" /> + <meta http-equiv="Refresh" content="0; url='https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/latest/'" /> </head> <body> <h1>Redirect Notice</h1> <p> - This page should automatically open the documentation for version 1.4. In case this page does not load the site is + This page should automatically open the documentation for version <code>latest</code>. In case this page does not load the site is available at: </p> <p> - <a href="https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.4/">https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.4/</a> + <a href="https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/latest/">https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/latest/</a> </p> </body> </html> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d96c2f62b1b3ae1f0a02994bf0c953a548a93b75..8919d855e9df961698354366c881fbe4fc56ab11 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,7 @@ variables: TRIVY_CACHE_DIR: ".trivycache/" DOCKER_HOST: "unix:///var/run/dind/docker.sock" TESTCONTAINERS_RYUK_DISABLED: "false" + VERSION: "1.4.0" image: debian:12-slim @@ -62,11 +63,12 @@ build-search-service: build-docker: image: docker.io/docker:24-dind stage: build + before_script: + - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL script: - "cp .env.unix.example .env" - "docker build -t dbrepo-metadata-service:build --target build dbrepo-metadata-service" - "docker build -t dbrepo-data-service:build --target build dbrepo-data-service" - - "docker build ./dbrepo-log-service -t dbrepo-log-service" - "docker compose build --parallel" test-metadata-service: @@ -155,8 +157,6 @@ scan-analyse-service: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-analyse-service-report.json docker.io/dbrepo/analyse-service:latest @@ -177,8 +177,6 @@ scan-authentication-service: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-authentication-service-report.json docker.io/dbrepo/authentication-service:latest @@ -199,8 +197,6 @@ scan-broker-service: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-broker-service-report.json docker.io/dbrepo/broker-service:latest @@ -221,8 +217,6 @@ scan-gateway-service: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-gateway-service-report.json docker.io/nginx:1.25.0-alpine-slim @@ -243,8 +237,6 @@ scan-metadata-service: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-metadata-service-report.json docker.io/dbrepo/metadata-service:latest @@ -259,14 +251,32 @@ scan-metadata-service: reports: container_scanning: ./.trivy/trivy-metadata-service-report.json +scan-data-service: + image: bitnami/trivy:latest + stage: scan + only: + refs: + - dev + allow_failure: true + script: + - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-data-service-report.json docker.io/dbrepo/data-service:latest + - trivy image --insecure --exit-code 0 docker.io/dbrepo/data-service:latest + - trivy image --insecure --exit-code 1 --severity CRITICAL docker.io/dbrepo/data-service:latest + cache: + paths: + - .trivycache/ + artifacts: + when: always + expire_in: 1 days + reports: + container_scanning: ./.trivy/trivy-data-service-report.json + scan-search-db: image: bitnami/trivy:latest stage: scan only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-search-db-report.json docker.io/dbrepo/search-db:latest @@ -287,8 +297,6 @@ scan-search-dashboard: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-search-dashboard-report.json docker.io/opensearchproject/opensearch-dashboards:2.10.0 @@ -309,8 +317,6 @@ scan-search-db-init: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-search-db-init-report.json docker.io/dbrepo/search-db-init:latest @@ -331,8 +337,6 @@ scan-data-db: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-data-db-report.json docker.io/bitnami/mariadb:11.2.2-debian-11-r0 @@ -353,8 +357,6 @@ scan-metadata-db: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-metadata-db-report.json docker.io/dbrepo/metadata-db:latest @@ -375,8 +377,6 @@ scan-ui: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-ui-report.json docker.io/dbrepo/ui:latest @@ -397,8 +397,6 @@ scan-storage-service: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-storage-service-report.json docker.io/chrislusf/seaweedfs:3.59 @@ -419,8 +417,6 @@ scan-storage-service-init: only: refs: - dev - - release-v1.3 - - release-v1.4 allow_failure: true script: - trivy image --insecure --exit-code 0 --format template --template "@.trivy/gitlab.tpl" -o ./.trivy/trivy-storage-service-init-report.json docker.io/dbrepo/storage-service-init:latest @@ -446,11 +442,12 @@ release-latest: only: refs: - dev + before_script: + - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL + - echo "$CI_REGISTRY2_PASSWORD" | docker login --username "$CI_REGISTRY2_USER" --password-stdin $CI_REGISTRY2_URL script: - "ifconfig eth0 mtu 1450 up" - "apk add make" - - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL - - echo "$CI_REGISTRY2_PASSWORD" | docker login --username "$CI_REGISTRY2_USER" --password-stdin $CI_REGISTRY2_URL - TAG=latest make release release-1.3: @@ -464,12 +461,13 @@ release-1.3: only: refs: - release-v1.3 + before_script: + - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL + - echo "$CI_REGISTRY2_PASSWORD" | docker login --username "$CI_REGISTRY2_USER" --password-stdin $CI_REGISTRY2_URL script: - "ifconfig eth0 mtu 1450 up" - "apk add make" - - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL - - echo "$CI_REGISTRY2_PASSWORD" | docker login --username "$CI_REGISTRY2_USER" --password-stdin $CI_REGISTRY2_URL - - "TAG=1.3 make release" + - "TAG=1.3.9 make release" release-1.4: stage: release @@ -482,12 +480,13 @@ release-1.4: only: refs: - release-v1.4 + before_script: + - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL + - echo "$CI_REGISTRY2_PASSWORD" | docker login --username "$CI_REGISTRY2_USER" --password-stdin $CI_REGISTRY2_URL script: - "ifconfig eth0 mtu 1450 up" - "apk add make" - - echo "$CI_REGISTRY_PASSWORD" | docker login --username "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY_URL - - echo "$CI_REGISTRY2_PASSWORD" | docker login --username "$CI_REGISTRY2_USER" --password-stdin $CI_REGISTRY2_URL - - "TAG=1.4 make release" + - "TAG=${VERSION} make release" build-api-latest: stage: build @@ -500,7 +499,7 @@ build-api-latest: script: - apk add bash git - git fetch && git checkout dev - - bash .docs/.swagger/generate.sh + - bash .docs/.swagger/swagger-site.sh - mkdir -p ./swagger/latest - cp -r ./site/* ./swagger/latest/ cache: @@ -521,18 +520,18 @@ build-api-1.3: - release-v1.3 - release-v1.4 script: - - apk add bash git + - apk add bash git maven - git fetch && git checkout release-v1.3 - bash .docs/.swagger/generate.sh - - mkdir -p ./swagger/1.3 - - cp -r ./site/* ./swagger/1.3/ + - mkdir -p ./swagger/1.3.9 + - cp -r ./site/* ./swagger/1.3.9/ cache: paths: - - ./swagger/1.3 + - ./swagger/1.3.9 artifacts: when: always paths: - - ./swagger/1.3 + - ./swagger/1.3.9 expire_in: 1 days build-api-1.4: @@ -544,18 +543,18 @@ build-api-1.4: - release-v1.3 - release-v1.4 script: - - apk add bash git + - apk add bash git maven - git fetch && git checkout release-v1.4 - - bash .docs/.swagger/generate.sh - - mkdir -p ./swagger/1.4 - - cp -r ./site/* ./swagger/1.4/ + - bash .docs/.swagger/swagger-site.sh + - mkdir -p ./swagger/${VERSION} + - cp -r ./site/* ./swagger/${VERSION}/ cache: paths: - - ./swagger/1.4 + - ./swagger/${VERSION} artifacts: when: always paths: - - ./swagger/1.4 + - ./swagger/${VERSION} expire_in: 1 days docs-registry: @@ -591,10 +590,11 @@ docs-latest: - release-v1.3 - release-v1.4 script: - - apt-get update && apt-get install -y git make + - apt-get update && apt-get install -y git make sed - git fetch && git checkout dev - pip install -r ./requirements.txt - mkdir -p ./final + - find ./.docs -type f -exec sed -i -e "s/\$TAG/latest/g" {} \; - mkdocs build && cp -r ./site ./final/latest - cp ./.docs/redirect.html ./final/index.html - cp -r ./swagger/latest ./final/latest/swagger @@ -623,8 +623,8 @@ docs-1.3: - git fetch && git checkout release-v1.3 - pip install -r ./.docs/requirements.txt - mkdir -p ./final - - mkdocs build && cp -r ./site ./final/1.3 - - cp -r ./swagger/1.3 ./final/1.3/swagger + - mkdocs build && cp -r ./site ./final/1.3.9 + - cp -r ./swagger/1.3.9 ./final/1.3.9/swagger cache: paths: - ./final @@ -647,12 +647,13 @@ docs-1.4: - release-v1.3 - release-v1.4 script: - - apt-get update && apt-get install -y git make + - apt-get update && apt-get install -y git make sed - git fetch && git checkout release-v1.4 - pip install -r ./.docs/requirements.txt - mkdir -p ./final - - mkdocs build && cp -r ./site ./final/1.4 - - cp -r ./swagger/1.4 ./final/1.4/swagger + - find ./.docs -type f -exec sed -i -e "s/\$TAG/${VERSION}/g" {} \; + - mkdocs build && cp -r ./site ./final/${VERSION} + - cp -r ./swagger/${VERSION} ./final/${VERSION}/swagger cache: paths: - ./final