Open amnonkhen opened 1 week ago
sequenceDiagram
participant Client
participant ENA
participant BioSamples
participant schema_store
participant mongoDB
Client->>ENA: submit XML doc
ENA->>ENA: fix document
ENA->>ENA: convert to json in BioSamples format
note over ENA: by FAIRification team
par new flow: validation in BioSamples
note over ENA: ENA calls biosamples the <br> same way as currently <br> through bulk submission endpoint
note over BioSamples: [task] BioSamples send<br> doc to validation
ENA->>BioSamples: send for validation & accessioning
note over BioSamples: endpoint in BulkActionControllerV2 `/bulk-submit` <br> (now validates superuser submissions)
loop for all samples in the submission
BioSamples ->> schema_store: get schema by id
schema_store ->> mongoDB: fetch from DB
BioSamples ->> biovalidator: validate doc using schema
end
alt if no validation errors
BioSamples ->> mongoDB: persist samples
end
note over BioSamples: [task] build output
BioSamples ->> BioSamples: build output with <br>validation results
BioSamples -->> ENA: validation results
end
ENA->>ENA: build receipt
ENA->>ENA: save in db
ENA-->>Client: acknowledgement
Some changes are in a draft pull request. Need to speak with @dipayan1985 about APIs ENA is using. I assume they are only using Bulk submission endpoint. If ENA also using POST, PUT v2 endpoints, these changes should also be done there. EBIBioSamples/biosamples-v4#714
ENA needs to send BioSamples a request to accession the sample as well as validate it. If it is implemented, communicate to ENA team how to do it, if not, implement it and communicate to ENA.
DOD: