elixir-cloud-aai / drs-filer

Lightweight, flexible Flask/Gunicorn-based GA4GH DRS implementation
Apache License 2.0
5 stars 8 forks source link

Implement POST endpoint #8

Closed sarthakgupta072 closed 4 years ago

sarthakgupta072 commented 4 years ago

Design and implement the POST endpoint to register meta-data in drs-filer.

Design doc: https://docs.google.com/document/d/1yNaL_XClDkcqJ9npm3uYX_66fmRsH9GvhhXlKW_eIOI/edit?usp=sharing

uniqueg commented 4 years ago

Note from a previous discussion in #5 that some parameters are not set by the user, but by the implementation. This includes identifiers, e.g.:

See DRS specification for details.

@sarthakgupta072: Could you please prepare a list of all properties that either of the GET endpoints in the DRS specs request? We can then decide which ones are to be provided by the user in the POST endpoint when registering data and which ones are to be generated by the implementation. Please add it as a comment to this issue and not to the design doc.

sarthakgupta072 commented 4 years ago

The specs of data repository service schema have been specified here: https://github.com/ga4gh/data-repository-service-schemas/blob/master/openapi/data_repository_service.swagger.yaml

For GET endpoints, there are the properties that are included. The properties in bold are required properties:

Definition Type Property: type
DrsObject object id: string
name: string
self_uri: string
size: integer (format: int64)
created_time: string (format: date-time)
updated_time: string (format: date-time)
version: string
mime_type: string
checksums: array (items: Checksum)
access_methods: array (items: AccessMethod)
contents: array (items: ContentsObject)
description: string
aliases: array(items: string)
Checksum object checksum: string
type: string
AccessMethod object type: string
access_url: AccessURL
access_id: string
region: string
AccessURL object url: string
headers: array (items: string)
ContentsObject object name: string
id: string
drs_uri: array (items: string)
contents: array (items: ContentsObject)