Expand description
Protobuf messages, generated from proto/wire.proto at build time.
Modules§
- ark_
to_ host - Nested message and enum types in
ArkToHost. - host_
to_ ark - Nested message and enum types in
HostToArk. - slot_
status - Nested message and enum types in
SlotStatus.
Structs§
- ArkTo
Host - ArkToHost represents a message sent from the Ark to the host via the USB connection. It embeds all possible message types to keep the protocol simple.
- Cloud
Sync Finish Request - CloudSyncFinishRequest is the completion of a previously initiated cloud sync procedure, this time being signed by a single identity currently used by the cloud.
- Cloud
Sync Finish Response - CloudSyncFinishResponse is the acknowledgement whether the device accepted the cloud sync from the server or rejected for some reason.
- Cloud
Sync Start Request - CloudSyncStartRequest requests the device to start a synchronization procedure against the cloud servers to establish the current time as well as the currently active cloud identity.
- Cloud
Sync Start Response - CloudSyncStartResponse is an initiation of a cloud sync from the device, authed to the requested cloud identity.
- Error
- Error is sent along a response to a failed request.
- Execution
Cancel Request - ExecutionCancelRequest cancels a previously started 3rd party app run or an in-progress upload.
- Execution
Cancel Response - ExecutionCancelResponse contains the data gathered during an app’s execution.
- Execution
Result Response - ExecutionResultResponse contains the data gathered during an app’s execution.
- Execution
Schedule Request - ExecutionScheduleRequest finalizes an upload and requests the device to execute the uploaded 3rd party app. The upload must have been completed (i.e. the sum of chunk sizes matches the declared size).
- Execution
Schedule Response - ExecutionScheduleResponse acks that the execution was authorized and the task is now running. The host already holds the task id from the preceding ExecutionUploadStartResponse.
- Execution
Status Request - ExecutionStatusRequest checks the execution status of a previously started 3rd party app run.
- Execution
Status Response - ExecutionStatusResponse contains the status of a started 3rd party app execution.
- Execution
Upload Chunk Request - ExecutionUploadChunkRequest appends a chunk of data to a pending upload. Chunks must be appended in order and must not overrun the declared size.
- Execution
Upload Chunk Response - ExecutionUploadChunkResponse is an empty ack of the chunk upload request.
- Execution
Upload Start Request - ExecutionUploadStartRequest begins a chunked upload of a WASM binary to execute. The declared size is used to pre-allocate the receive buffer and to reject oversized uploads early; the actual bytes are sent via subsequent ExecutionUploadChunkRequest messages.
- Execution
Upload Start Response - ExecutionUploadStartResponse contains the task id to use for subsequent chunk, schedule and cancel messages.
- Firmware
Update Init Request - FirmwareUpdateInitRequest initiates a previously prepared firmware update procedure by providing the authenticated and encrypted firmware key.
- Firmware
Update Init Response - FirmwareUpdateInitResponse confirms whether a new firmware update process was started, or if the request was rejected and why.
- Firmware
Update Install Request - FirmwareUpdateInstallRequest requests the currently pending (but already verified) firmware to be applied to disk. This message will cause the device to reboot if applied successfully.
- Firmware
Update Install Response - FirmwareUpdateInstallResponse is the response whether the firmware was applied successfully or not.
- Firmware
Update Prep Request - FirmwareUpdatePrepRequest prepares a firmware update procedure. If any previous update procedure was in progress, it is aborted.
- Firmware
Update Prep Response - FirmwareUpdatePrepResponse confirms whether a new firmware update process was started, or if the request was rejected and why.
- Firmware
Update Upload Request - FirmwareUpdateUploadRequest requests appending a new chunk of data to the currently pending firmware upload process.
- Firmware
Update Upload Response - FirmwareUpdateUploadResponse is the response whether the requested chunk was accepted or rejected.
- Firmware
Update Verify Request - FirmwareUpdateVerifyRequest requests decrypting the uploaded firmware and verifying its contents, preparing for the last step of actually installing the firmware update.
- Firmware
Update Verify Response - FirmwareUpdateVerifyResponse is the response whether the firmware just uploaded passed all verifications and is ready for application.
- Genuinity
Proof Request - GenuinityProofRequest requests the device to generate a cryptographic proof of its own authenticity.
- Genuinity
Proof Response - GenuinityProofResponse is the device genuinity proof, an encrypted signature of the device.
- Handshake
Request - HandshakeRequest is sent by the client to initiate a new session.
- Handshake
Response - HandshakeResponse acknowledges starting a new session. It returns the device identity (public key) and various version information.
- Host
ToArk - HostToArk represents a message sent from the host to the Ark via the USB connection. It embeds all possible message types to keep the protocol simple.
- Onboarding
Request - OnboardingRequest is a vendor utility to onboard an Ark. Currently it contains the signed device genuinity attestation (certificate).
- Onboarding
Response - OnboardingResponse is the acknowledgement of the onboarding.
- Pairing
Acceptance Request - PairingAcceptanceRequest is a blocking poller to wait until the user accepts a pairing request or it times out.
- Pairing
Acceptance Response - PairingAcceptanceResponse returns whether the user accepted the pairing or if it timed out. At this point, the device still needs to format itself.
- Pairing
AckArk Storage Request - PairingAckArkStorageRequest confirms from the app that the Ark’s key material was received correctly.
- Pairing
AckArk Storage Response - PairingAckArkStorageResponse confirms that the key ack was accepted.
- Pairing
Auth Request - PairingAuthRequest requests the initiation of a pairing.
- Pairing
Auth Response - PairingAuthResponse responds whether the device is in a state compatible with pairing (i.e. reset) and if so, it signs an authorization for the server to open a new rendezvous point; containing the xHPKE public key to use for encrypting messages to this Ark after pairing.
- Pairing
Completion Request - PairingCompletionRequest is a blocking poller to wait until the device finishes any pairing maintenance operation (e.g. encrypting itself).
- Pairing
Completion Response - PairingCompletionResponse returns whether the device finished preparing for live operation.
- Pairing
SetApp Identity Request - PairingSetAppIdentityRequest injects the companion app’s identity, relayed by the cloud.
- Pairing
SetApp Identity Response - PairingSetAppIdentityResponse confirms whether the remote identity was accepted by the Ark or not.
- Pairing
SetApp Storage Request - PairingSetAppStorageRequest injects the app’s storage key material into the pairing flow.
- Pairing
SetApp Storage Response - PairingSetAppStorageResponse confirms whether the remote storage material was accepted, and if so, bundles the ark device infos and ark key material.
- Pairing
Status Request - PairingStatusRequest requests the initialization status from the device.
- Pairing
Status Response - PairingStatusResponse is the initialization status response of the device.
- Relay
AppTo ArkFailure - RelayAppToArkFailure is returned if a low level protocol violation is detected when an app-to-ark response was processed.
- Relay
AppTo ArkRequest - RelayAppToArkRequest is an opaque request from the companion app that the Ark may respond to, or may flat out reject.
- Relay
AppTo ArkResponse - RelayAppToArkResponse is an opaque response from the companion app to an opaque Ark request. The ark will respond with the deferred response to the original request.
- Relay
ArkTo AppRequest - RelayArkToAppRequest is an opaque request from the Ark to the companion app, which will generally be sent as an interim response to some other request, requiring authorization from the app side.
- Relay
ArkTo AppResponse - RelayArkToAppResponse is an opaque response from the Ark to the companion app to an opaque request.
- Relay
Join Request - RelayJoinRequest requests authorization to join the communication relay with the companion app.
- Relay
Join Response - RelayJoinResponse responds whether the device is in a state compatible with relaying (i.e. paired) and if so, it signs an authorization for the server to join the rendezvous point.
- Slot
Delete Request - SlotDeleteRequest removes the contents of a filled slot. The slot must be in a healthy, filled state; corrupted or half-written slots must be cleaned up via SlotRepair instead.
- Slot
Delete Response - Slot
List Request - SlotListRequest requests the state of all slot slots on the device.
- Slot
List Response - SlotListResponse contains the current state of every slot slot.
- Slot
Meta Gene Annotations - SlotMetaGeneAnnotations contains metadata for the gene annotations slot. Includes download information so the dashboard can fetch it from public sources.
- Slot
Meta Reference Genome - SlotMetaReferenceGenome contains metadata for the reference genome slot. Includes download information so the dashboard can fetch it from public sources.
- Slot
Meta SnpIndel Calls - SlotMetaSnpIndelCalls contains metadata for the user’s variant calls slot.
- Slot
Meta Variant Catalog - SlotMetaVariantCatalog contains metadata for the variant-catalog slot. Includes download information so the dashboard can fetch it from public sources.
- Slot
Repair Request - SlotRepairRequest resets a slot to empty regardless of its current state. Unlike SlotDelete (which requires the slot to be filled), repair is a stateless force cleanup that removes any leftover metadata and/or files on disk. It is intended for recovering from corruption or half-written state after crashes.
- Slot
Repair Response - Slot
Status - SlotStatus describes the current state of a single slot slot on the device.
- Slot
Upload Cancel Request - SlotUploadCancelRequest contains an upload session id to abort.
- Slot
Upload Cancel Response - SlotUploadCancelResponse is an empty ack of the cancellation request.
- Slot
Upload Chunk Request - SlotUploadChunkRequest contains a new chunk of data to append to a pending upload session.
- Slot
Upload Chunk Response - SlotUploadChunkResponse is an empty ack of the chunk upload request.
- Slot
Upload Peek Request - SlotUploadPeekRequest can be used to send an ephemeral file chunk to the Ark and ask it to attempt to identify it for the caller. Its purpose is to allow quickly filtering out potentially huge slots without uploading them first (e.g. q 30GB compressed whole genome sequencing).
- Slot
Upload Peek Response - SlotUploadPeekResponse contains the data identification based on the small chunk shared in the request.
- Slot
Upload Process Request - SlotUploadProcessRequest marks an upload session ready for processing and requests a progress report to be sent back. May be called multiple times.
- Slot
Upload Process Response - SlotUploadProcessResponse acks the completion of a slot upload and also contains the current processing progress.
- Slot
Upload Start Request - SlotUploadStartRequest requests uploading a specific type of slot (e.g a whole genome variant call file, a bloodwork report).
- Slot
Upload Start Response - SlotUploadStartResponse contains a unique session id for an approved upload and a maximum file limit after which the upload will be killed.
- Unlock
Request - UnlockRequest requests the device to start the unlock procedure. This request is async, potentially returning a response only after confirming with the app.
- Unlock
Response - UnlockResponse contains whether the unlock was successfully executed.
Enums§
- Slot
Confidence - SlotConfidence indicates how confident the device is in its classification of a peeked slot, based on content, filename, and size.
- Slot
Kind - SlotKind identifies a slot slot on the device. Each value corresponds to a unique data type that the device can store and manage.
- Slot
Origin - SlotOrigin describes the nature of the data in a slot, determining what actions are available to the user for filling it.