Response:
{
"users": [
"<sub1>",
"..."
],
"unconfirmed": [
"<sub2>",
"..."
]
}Request Body:
{
"name": "<new name>",
"publicKey": "{public key in jwk format}"
}Request Body:
{
"keyHash": "jg94g...."
}Response:
If the key is valid and confirmed the response will be{
"valid": true
}Response:
[
{
"mnemonic": <dataset id>,
"name": <dataset name>,
"fileName": <name of the file in the dataset>,
"hash": <sha-256 hash of all hashes of chunks>,
"size": <total size in bytes>,
"keyHash": <sha-256 hash of the AES key>,
"permission": <your permission>
"members": [{
"sub": <user id>,
"permission": <either 'read', 'write' or 'none'>,
}, ...],
}, ...
]Response:
{
"mnemonic": <dataset id>,
"name": <dataset name>,
"fileName": <name of the file in the dataset>,
"hash": <sha-256 hash of all hashes of chunks>,
"size": <total size in bytes>,
"keyHash": <sha-256 hash of the AES key>,
"chunks": [{
"id": <db id>,
"hash": <sha-256 hash of the unencrypted data>,
"iv": <AES initialization vector>,
"crc": <CRC32 checksum of the encrypted data (hex)>,
"start": <byte positon of the chunk start (inclusive)>,
"end": <byte positon of the chunk end (non-inclusive)>,
}, ...],
}You need to have `write` permission for the dataset for this call to succeed
Request Body:
{
"key": "<decrypted AES key>",
"members": [
"<sub1>",
"<sub2>",
"..."
]
}You need to have `write` permission for the dataset for this call to succeed
Request Body:
{
"user": "<sub>",
"permission": "<new permission read, write or none>"
}Request Body:
{
"key": "<decrypted AES key>"
}Request Body:
{
"name": "<new name>"
}Request Body:
{
"keyHash": "jg94g...."
}Response:
The response will contain the encrypted AES key.Request Body:
{
"name": "The name of the uploaded file"
}Response:
The response contains the newly created dataset, the size and hash will be null because they can only be determined after the upload is complete.{
"mnemonic": <dataset id>,
"name": <dataset name>,
"fileName": <name of the file in the dataset>,
"hash": null,
"size": null,
"keyHash": <sha-256 hash of the AES key>,
}Request:
The request is special and needs to be of type `multipart/form-data` Only a single file is supported and should be part of the form data. We also require the HTTP headers `Content-Range` and `Digest` . `Content-Range` should indicate with bytes of the complete file the chunk contains. All chunks (except the last one should be 2MiB in size. `Digest` should be the sha256 hash of the chunk data.Response:
The chunk of the encrypted data as an `application/octet-stream` the client is resposible for decrypting the data
Response:
[{
"id": <key id>
"hash": <sha256 hash of the key data>
"name": <key name>,
"sub": <key owner>,
"data": {
"alg": "RSA-OAEP-256",
"e": "AQAB",
"ext": true,
"key_ops": ["encrypt"],
"kty": "RSA",
"n": "<key data>"
},
"isRootKey": false,
"confirmedBy": <admin user or null>,
"confirmed": <date or null>,
}, ... Request Body:
{
"keyId": <key id>,
"confirmed": <true or false>,
}Request Body:
{
"keyId": <key id>,
}Response:
[
{
"mnemonic": <dataset id>,
"name": <dataset name>,
"fileName": <name of the file in the dataset>,
"hash": <sha-256 hash of all hashes of chunks>,
"size": <total size in bytes>,
"keyHash": <sha-256 hash of the AES key>,
"deleted": <null or date>,
}, ...
]
["2022-10-27", "2022-10-26", ...]
[{
"sub": <event user sub>,
"mnemonic": <dataset id>,
"event": <event type>,
"message": <event message>,
"day": <event day>,
"createdAt": <event timestamp>,
}, ...]Institute of functional genomics-Statistical Bioinformatics
©2023 · Version 1.0.22
Contact/Impressum · Privacy Policy · Data Policy