file-ops
Shared-vault file operations
File operations inside a shared vault mirror the private-vault file API but
live under user.sharedVault(id).file.
All operations require the vault to be unsealed and membership with the
appropriate role.
Queries (read)
Any member role.
list
query($vaultId: ID!) {
user {
sharedVault(id: $vaultId) {
file {
list { id label fileName fileSize mimeType version }
}
}
}
}
get
query($vaultId: ID!, $fileId: ID!) {
user {
sharedVault(id: $vaultId) {
file {
get(id: $fileId) {
metadata { id label fileName fileSize mimeType }
content { downloadUrl }
}
}
}
}
}
versions
query($vaultId: ID!, $fileId: ID!) {
user {
sharedVault(id: $vaultId) {
file {
versions(id: $fileId) { version fileSize audit { updatedAt } }
}
}
}
}
Mutations (write)
Requires OWNER, MANAGER, or EDITOR.
upload (multipart)
curl -X POST https://api.test.geena.eu/graphql \
-H "Authorization: Bearer $TOKEN" \
-F operations='{"query":"mutation($v: ID!, $i: FileUploadInput!) { user { sharedVault(id: $v) { file { upload(input: $i) { id label } } } } }","variables":{"v":"v1a2-...","i":{"label":"Contract","file":null}}}' \
-F map='{"0":["variables.i.file"]}' \
-F 0=@/path/to/contract.pdf
See private-vault upload for an
explanation of the multipart request spec.
delete
mutation($vaultId: ID!, $fileId: ID!) {
user {
sharedVault(id: $vaultId) {
file {
delete(id: $fileId)
}
}
}
}