ak.schema.file_transfer.v1
ak.schema.file_transfer.v1 · file: schemas/file-transfer.schema.json Plaintext shape that MUST be encrypted before writing ak.profile.file_transfer.v1 account-data values.
* $ · object
Plaintext shape that MUST be encrypted before writing ak.profile.file_transfer.v1 account-data values.
allOf · allOf[0] ·
?allOf · allOf[1] ·
?* kind ·
const "file_transfer"enum:
"file_transfer"* transfer_id ·
string · $ref #/$defs/transfer_idpattern:
^[A-Za-z0-9._~=-]{22,128}$* blob_ref ·
string · $ref #/$defs/blob_refContent-addressed reference to exact Blob bytes. The embedded suite and digest are the sole wire commitment to those bytes; sibling content/ciphertext digest mirrors are forbidden.
pattern:
^ak:blob:(?:sha256|blake3):[0-9a-f]{64}$* blob_size_bytes ·
integerSize of the stored blob bytes, usually ciphertext plus AEAD overhead.
* media_type ·
string · $ref #/$defs/media_typeOriginal file media type. This field lives inside encrypted account data; encrypted blob metadata SHOULD use application/octet-stream.
pattern:
^[a-z0-9.+-]+/[a-z0-9.+-]+$filename ·
string* plaintext_size_bytes ·
integerOriginal file byte length before client-side encryption.
* access · object · $ref #/$defs/access
* visibility ·
string (enum)enum:
"actor_private" "device_bound"recipient_device_ids · array<$ref #/$defs/device_id>
items ·
string · $ref #/$defs/device_idpattern:
^ak:device:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$* encryption · object · $ref #/$defs/encryption
oneOf · oneOf[0] · object
scheme ·
const "ak.blob.whole_file_aead.v1"enum:
"ak.blob.whole_file_aead.v1"oneOf · oneOf[1] · object
scheme ·
const "ak.blob.stream_aead.v1"enum:
"ak.blob.stream_aead.v1"* scheme ·
string (enum)enum:
"ak.blob.whole_file_aead.v1" "ak.blob.stream_aead.v1"* aead_profile ·
string (enum)enum:
"ak.aead.xchacha20_poly1305.v1"nonce ·
stringpattern:
^[A-Za-z0-9_-]{32}$nonce_prefix ·
stringpattern:
^[A-Za-z0-9_-]{25}[AQgw]$segment_bytes ·
integer* aad · object · $ref #/$defs/encryption_aad
* schema ·
const "ak.schema.file_transfer.v1"enum:
"ak.schema.file_transfer.v1"* purpose ·
const "file_transfer"enum:
"file_transfer"* transfer_id ·
string · $ref #/$defs/transfer_idpattern:
^[A-Za-z0-9._~=-]{22,128}$* origin_device_id ·
string · $ref #/$defs/device_idpattern:
^ak:device:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$* created_at ·
string (date-time) · format=date-time · $ref #/$defs/timestampCanonical Arkret-owned absolute instant. UTC Z form with exactly three millisecond digits. Whole seconds MUST use .000Z; offsets, missing/finer fractions, lowercase separators, leap seconds, and invalid Gregorian calendar dates are forbidden. Shape validation by this pattern is supplemented by semantic date validation.
pattern:
^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\.[0-9]{3}Z$* key_delivery · oneOf[2]
oneOf · oneOf[0] · object · $ref #/$defs/account_data_wrapped_key
* method ·
const "account_data_wrapped_key"enum:
"account_data_wrapped_key"* content_key ·
string · $ref #/$defs/base64urlFresh per-transfer content key carried only inside encrypted account-data plaintext.
pattern:
^[A-Za-z0-9_-]+$oneOf · oneOf[1] · object · $ref #/$defs/to_device_wrapped_key
* method ·
const "to_device_wrapped_key"enum:
"to_device_wrapped_key"* key_message_kind ·
const "ak.file_transfer.key.v1"enum:
"ak.file_transfer.key.v1"* origin_device_id ·
string · $ref #/$defs/device_idpattern:
^ak:device:[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$* created_at ·
string (date-time) · format=date-time · $ref #/$defs/timestampCanonical Arkret-owned absolute instant. UTC Z form with exactly three millisecond digits. Whole seconds MUST use .000Z; offsets, missing/finer fractions, lowercase separators, leap seconds, and invalid Gregorian calendar dates are forbidden. Shape validation by this pattern is supplemented by semantic date validation.
pattern:
^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\.[0-9]{3}Z$* updated_hlc ·
string · $ref #/$defs/hlc* retention_expires_at ·
string (date-time) · format=date-time · $ref #/$defs/timestampCanonical Arkret-owned absolute instant. UTC Z form with exactly three millisecond digits. Whole seconds MUST use .000Z; offsets, missing/finer fractions, lowercase separators, leap seconds, and invalid Gregorian calendar dates are forbidden. Shape validation by this pattern is supplemented by semantic date validation.
pattern:
^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]\.[0-9]{3}Z$* status ·
string (enum)enum:
"available" "downloaded" "dismissed" "deleted"Source
- registry row:
spec/v1/artifacts/registry/schema-registry.json - schema document:
spec/v1/artifacts/schemas/file-transfer.schema.json