REST API

GET /v1/drives/{sg}/nodes/{node_id}

Get one drive node

GET /v1/drives/{sg}/nodes/{node_id}

One ready file's metadata plus its decrypted name.

Path parameters #

  • sg string required

    The security group (the drive).

  • node_id string required

    The file's node id.

Responses #

  • 200 Successful Response

    • node object required

      One file or folder of a workspace (`docs/PROTOCOL.md §9`) — the vault's index of it, never its content. Every node has its own DEK, wrapped for its security group in `encrypted_keys`; the name stays sealed in `encrypted_name` until `name_of` opens it on demand (doing it eagerly for a whole page would mean an AES-GCM per row nobody asked for). A folder has no content and no upload fields; a file's `size` is what the vault measured, never just what was declared.

    • name object
  • 400 The vault refused the request as invalid.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 401 No client certificate, or the SDK session was rejected or expired (`session_expired`).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 402 The workspace has no credit for this.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 403 CN not allowed, permission denied, or no key for the data's security group (`group_key_unavailable`).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 404 Not found — also a node read under a group it does not belong to.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 409 A pending or newer version, a replay, or an upload that never reached storage.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 422 The body or query failed validation (`invalid_request`).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 429 Rate limited, after the SDK's own backoff gave up.

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 500 An envelope did not open (`crypto_error`, no detail on purpose).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

  • 502 The vault failed, or answered outside the protocol (`protocol_error`).

    • error object required

      The body of every non-2xx response: what went wrong, for a program and for a person.

curl --cert client.crt --key client.key \
  -X GET "https://api.imgexam.com/v1/drives/<sg>/nodes/<node_id>" \
  -H "Content-Type: application/json"
{
  "node": {
    "node_id": "string",
    "workspace_id": "string",
    "security_group_id": "string",
    "kind": "file",
    "status": "pending",
    "exam_id": {},
    "parent_id": {},
    "mode": {},
    "media_kind": {},
    "declared_size": {},
    "size": {},
    "mime_type": {},
    "encrypted_name": {
      "salt": "string",
      "nonce": "string",
      "ciphertext": "string"
    },
    "encrypted_keys": {},
    "storage_path": {},
    "optimized_variants": [
      {
        "kind": "string",
        "storage_bucket": "string",
        "storage_path": "string",
        "storage_size": 0,
        "storage_mime_type": "string",
        "created_at": "string"
      }
    ],
    "processing_status": {},
    "processing_error": {},
    "total_size": {},
    "created_by": "string",
    "created_at": "string",
    "completed_at": {},
    "is_deleted": false
  },
  "name": {}
}