Files
spacedrive/packages/types.json
Jamie Pine 6dfecac83e feat: Enhance job management and event handling in DaemonConnector
- Introduced new data structures for library and job information to align with the Rust daemon output.
- Implemented real-time job tracking by fetching the current job list and subscribing to job events.
- Enhanced event handling to manage job states (started, progress, completed, failed, paused, resumed) effectively.
- Improved logging for connection status and job events to aid in debugging and user experience.
- Updated JobInfo model to allow mutable properties for better state management during job updates.
2025-09-21 13:39:22 -07:00

5757 lines
153 KiB
JSON

{
"actions": [
{
"input": true,
"method": "action:network.pair.generate.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:libraries.rename.input.v1",
"output": true,
"type": "core_action"
},
{
"input": true,
"method": "action:volumes.untrack.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:libraries.session.set_current.input.v1",
"output": true,
"type": "core_action"
},
{
"input": true,
"method": "action:network.pair.cancel.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:locations.remove.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:network.start.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:locations.rescan.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:files.validation.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:files.delete.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:files.duplicate_detection.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:libraries.delete.input.v1",
"output": true,
"type": "core_action"
},
{
"input": true,
"method": "action:network.pair.join.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:jobs.pause.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:locations.add.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:jobs.cancel.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:volumes.speed_test.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:jobs.resume.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:media.thumbnail.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:files.copy.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:indexing.start.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:volumes.track.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:tags.create.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:libraries.export.input.v1",
"output": true,
"type": "core_action"
},
{
"input": true,
"method": "action:libraries.create.input.v1",
"output": true,
"type": "core_action"
},
{
"input": true,
"method": "action:network.stop.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:tags.apply.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:network.device.revoke.input.v1",
"output": true,
"type": "library_action"
},
{
"input": true,
"method": "action:network.spacedrop.send.input.v1",
"output": true,
"type": "library_action"
}
],
"events": true,
"queries": [
{
"input": null,
"method": "query:jobs.list.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:network.devices.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:jobs.info.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:libraries.session.current.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:network.pair.status.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:libraries.info.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:tags.search.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:core.status.v1",
"output": {
"properties": {
"built_at": {
"type": "string"
},
"device_info": {
"$ref": "#/definitions/DeviceInfo"
},
"libraries": {
"items": {
"$ref": "#/definitions/LibraryInfo"
},
"type": "array"
},
"library_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"network": {
"$ref": "#/definitions/NetworkStatus"
},
"services": {
"$ref": "#/definitions/ServiceStatus"
},
"system": {
"$ref": "#/definitions/SystemInfo"
},
"version": {
"type": "string"
}
},
"required": [
"built_at",
"device_info",
"libraries",
"library_count",
"network",
"services",
"system",
"version"
],
"title": "CoreStatus",
"type": "object"
},
"type": "query"
},
{
"input": null,
"method": "query:locations.list.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:search.files.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:libraries.list.v1",
"output": true,
"type": "query"
},
{
"input": null,
"method": "query:network.status.v1",
"output": true,
"type": "query"
}
],
"types": {
"ApfsContainer": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ApfsVolumeInfo": {
"description": "APFS volume information within a container",
"properties": {
"capacity_consumed": {
"description": "Capacity consumed by this volume in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"disk_id": {
"description": "Volume disk identifier (e.g., \"disk3s5\")",
"type": "string"
},
"filevault": {
"description": "Whether FileVault is enabled",
"type": "boolean"
},
"mount_point": {
"description": "Mount point (if mounted)",
"type": [
"string",
"null"
]
},
"name": {
"description": "Volume name",
"type": "string"
},
"role": {
"allOf": [
{
"$ref": "#/definitions/ApfsVolumeRole"
}
],
"description": "Volume role (System, Data, Preboot, etc.)"
},
"sealed": {
"description": "Whether the volume is sealed",
"type": "boolean"
},
"uuid": {
"description": "Volume UUID",
"type": "string"
}
},
"required": [
"capacity_consumed",
"disk_id",
"filevault",
"name",
"role",
"sealed",
"uuid"
],
"type": "object"
},
"ApfsVolumeRole": {
"description": "APFS volume roles in the container",
"oneOf": [
{
"description": "System volume (read-only system files)",
"enum": [
"System"
],
"type": "string"
},
{
"description": "Data volume (user data and applications)",
"enum": [
"Data"
],
"type": "string"
},
{
"description": "Preboot volume (boot support files)",
"enum": [
"Preboot"
],
"type": "string"
},
{
"description": "Recovery volume (recovery environment)",
"enum": [
"Recovery"
],
"type": "string"
},
{
"description": "VM volume (virtual memory)",
"enum": [
"VM"
],
"type": "string"
},
{
"additionalProperties": false,
"description": "Other role or no specific role",
"properties": {
"Other": {
"type": "string"
}
},
"required": [
"Other"
],
"type": "object"
}
]
}
},
"description": "Represents an APFS container (physical storage with multiple volumes)",
"properties": {
"capacity_free": {
"description": "Capacity not allocated in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"capacity_in_use": {
"description": "Capacity in use by all volumes in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"container_id": {
"description": "Container identifier (e.g., \"disk3\")",
"type": "string"
},
"physical_store": {
"description": "Physical store device (e.g., \"disk0s2\")",
"type": "string"
},
"total_capacity": {
"description": "Total container capacity in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"uuid": {
"description": "Container UUID",
"type": "string"
},
"volumes": {
"description": "All volumes in this container",
"items": {
"$ref": "#/definitions/ApfsVolumeInfo"
},
"type": "array"
}
},
"required": [
"capacity_free",
"capacity_in_use",
"container_id",
"physical_store",
"total_capacity",
"uuid",
"volumes"
],
"title": "ApfsContainer",
"type": "object"
},
"ApfsVolumeInfo": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ApfsVolumeRole": {
"description": "APFS volume roles in the container",
"oneOf": [
{
"description": "System volume (read-only system files)",
"enum": [
"System"
],
"type": "string"
},
{
"description": "Data volume (user data and applications)",
"enum": [
"Data"
],
"type": "string"
},
{
"description": "Preboot volume (boot support files)",
"enum": [
"Preboot"
],
"type": "string"
},
{
"description": "Recovery volume (recovery environment)",
"enum": [
"Recovery"
],
"type": "string"
},
{
"description": "VM volume (virtual memory)",
"enum": [
"VM"
],
"type": "string"
},
{
"additionalProperties": false,
"description": "Other role or no specific role",
"properties": {
"Other": {
"type": "string"
}
},
"required": [
"Other"
],
"type": "object"
}
]
}
},
"description": "APFS volume information within a container",
"properties": {
"capacity_consumed": {
"description": "Capacity consumed by this volume in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"disk_id": {
"description": "Volume disk identifier (e.g., \"disk3s5\")",
"type": "string"
},
"filevault": {
"description": "Whether FileVault is enabled",
"type": "boolean"
},
"mount_point": {
"description": "Mount point (if mounted)",
"type": [
"string",
"null"
]
},
"name": {
"description": "Volume name",
"type": "string"
},
"role": {
"allOf": [
{
"$ref": "#/definitions/ApfsVolumeRole"
}
],
"description": "Volume role (System, Data, Preboot, etc.)"
},
"sealed": {
"description": "Whether the volume is sealed",
"type": "boolean"
},
"uuid": {
"description": "Volume UUID",
"type": "string"
}
},
"required": [
"capacity_consumed",
"disk_id",
"filevault",
"name",
"role",
"sealed",
"uuid"
],
"title": "ApfsVolumeInfo",
"type": "object"
},
"ApfsVolumeRole": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "APFS volume roles in the container",
"oneOf": [
{
"description": "System volume (read-only system files)",
"enum": [
"System"
],
"type": "string"
},
{
"description": "Data volume (user data and applications)",
"enum": [
"Data"
],
"type": "string"
},
{
"description": "Preboot volume (boot support files)",
"enum": [
"Preboot"
],
"type": "string"
},
{
"description": "Recovery volume (recovery environment)",
"enum": [
"Recovery"
],
"type": "string"
},
{
"description": "VM volume (virtual memory)",
"enum": [
"VM"
],
"type": "string"
},
{
"additionalProperties": false,
"description": "Other role or no specific role",
"properties": {
"Other": {
"type": "string"
}
},
"required": [
"Other"
],
"type": "object"
}
],
"title": "ApfsVolumeRole"
},
"DiskType": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Represents the type of physical storage device",
"oneOf": [
{
"description": "Solid State Drive",
"enum": [
"SSD"
],
"type": "string"
},
{
"description": "Hard Disk Drive",
"enum": [
"HDD"
],
"type": "string"
},
{
"description": "Unknown or virtual disk type",
"enum": [
"Unknown"
],
"type": "string"
}
],
"title": "DiskType"
},
"Event": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ApfsContainer": {
"description": "Represents an APFS container (physical storage with multiple volumes)",
"properties": {
"capacity_free": {
"description": "Capacity not allocated in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"capacity_in_use": {
"description": "Capacity in use by all volumes in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"container_id": {
"description": "Container identifier (e.g., \"disk3\")",
"type": "string"
},
"physical_store": {
"description": "Physical store device (e.g., \"disk0s2\")",
"type": "string"
},
"total_capacity": {
"description": "Total container capacity in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"uuid": {
"description": "Container UUID",
"type": "string"
},
"volumes": {
"description": "All volumes in this container",
"items": {
"$ref": "#/definitions/ApfsVolumeInfo"
},
"type": "array"
}
},
"required": [
"capacity_free",
"capacity_in_use",
"container_id",
"physical_store",
"total_capacity",
"uuid",
"volumes"
],
"type": "object"
},
"ApfsVolumeInfo": {
"description": "APFS volume information within a container",
"properties": {
"capacity_consumed": {
"description": "Capacity consumed by this volume in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"disk_id": {
"description": "Volume disk identifier (e.g., \"disk3s5\")",
"type": "string"
},
"filevault": {
"description": "Whether FileVault is enabled",
"type": "boolean"
},
"mount_point": {
"description": "Mount point (if mounted)",
"type": [
"string",
"null"
]
},
"name": {
"description": "Volume name",
"type": "string"
},
"role": {
"allOf": [
{
"$ref": "#/definitions/ApfsVolumeRole"
}
],
"description": "Volume role (System, Data, Preboot, etc.)"
},
"sealed": {
"description": "Whether the volume is sealed",
"type": "boolean"
},
"uuid": {
"description": "Volume UUID",
"type": "string"
}
},
"required": [
"capacity_consumed",
"disk_id",
"filevault",
"name",
"role",
"sealed",
"uuid"
],
"type": "object"
},
"ApfsVolumeRole": {
"description": "APFS volume roles in the container",
"oneOf": [
{
"description": "System volume (read-only system files)",
"enum": [
"System"
],
"type": "string"
},
{
"description": "Data volume (user data and applications)",
"enum": [
"Data"
],
"type": "string"
},
{
"description": "Preboot volume (boot support files)",
"enum": [
"Preboot"
],
"type": "string"
},
{
"description": "Recovery volume (recovery environment)",
"enum": [
"Recovery"
],
"type": "string"
},
{
"description": "VM volume (virtual memory)",
"enum": [
"VM"
],
"type": "string"
},
{
"additionalProperties": false,
"description": "Other role or no specific role",
"properties": {
"Other": {
"type": "string"
}
},
"required": [
"Other"
],
"type": "object"
}
]
},
"DiskType": {
"description": "Represents the type of physical storage device",
"oneOf": [
{
"description": "Solid State Drive",
"enum": [
"SSD"
],
"type": "string"
},
{
"description": "Hard Disk Drive",
"enum": [
"HDD"
],
"type": "string"
},
{
"description": "Unknown or virtual disk type",
"enum": [
"Unknown"
],
"type": "string"
}
]
},
"Duration": {
"properties": {
"nanos": {
"format": "uint32",
"minimum": 0.0,
"type": "integer"
},
"secs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"nanos",
"secs"
],
"type": "object"
},
"FileOperation": {
"description": "Types of file operations",
"enum": [
"Copy",
"Move",
"Delete",
"Rename"
],
"type": "string"
},
"FileSystem": {
"description": "Represents the filesystem type of the volume",
"oneOf": [
{
"description": "Windows NTFS filesystem",
"enum": [
"NTFS"
],
"type": "string"
},
{
"description": "FAT32 filesystem",
"enum": [
"FAT32"
],
"type": "string"
},
{
"description": "Linux EXT4 filesystem",
"enum": [
"EXT4"
],
"type": "string"
},
{
"description": "Apple APFS filesystem",
"enum": [
"APFS"
],
"type": "string"
},
{
"description": "ExFAT filesystem",
"enum": [
"ExFAT"
],
"type": "string"
},
{
"description": "Btrfs filesystem (Linux)",
"enum": [
"Btrfs"
],
"type": "string"
},
{
"description": "ZFS filesystem",
"enum": [
"ZFS"
],
"type": "string"
},
{
"description": "Windows ReFS filesystem",
"enum": [
"ReFS"
],
"type": "string"
},
{
"additionalProperties": false,
"description": "Other/unknown filesystem type",
"properties": {
"Other": {
"type": "string"
}
},
"required": [
"Other"
],
"type": "object"
}
]
},
"FsRawEventKind": {
"description": "Raw filesystem event kinds emitted by the watcher without DB resolution",
"oneOf": [
{
"additionalProperties": false,
"properties": {
"Create": {
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
"required": [
"Create"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"Modify": {
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
"required": [
"Modify"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"Remove": {
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
"required": [
"Remove"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"Rename": {
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"type": "object"
}
},
"required": [
"Rename"
],
"type": "object"
}
]
},
"IndexerMetrics": {
"description": "Comprehensive metrics for indexing operations",
"properties": {
"avg_batch_size": {
"format": "float",
"type": "number"
},
"avg_memory_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"batch_count": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"bytes_per_second": {
"format": "double",
"type": "number"
},
"content_duration": {
"$ref": "#/definitions/Duration"
},
"critical_errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"db_reads": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"db_writes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"dirs_per_second": {
"format": "float",
"type": "number"
},
"discovery_duration": {
"$ref": "#/definitions/Duration"
},
"files_per_second": {
"format": "float",
"type": "number"
},
"non_critical_errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"peak_memory_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"processing_duration": {
"$ref": "#/definitions/Duration"
},
"skipped_paths": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_duration": {
"$ref": "#/definitions/Duration"
},
"total_errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"avg_batch_size",
"batch_count",
"bytes_per_second",
"content_duration",
"critical_errors",
"db_reads",
"db_writes",
"dirs_per_second",
"discovery_duration",
"files_per_second",
"non_critical_errors",
"processing_duration",
"skipped_paths",
"total_duration",
"total_errors"
],
"type": "object"
},
"IndexerStats": {
"description": "Statistics collected during indexing",
"properties": {
"bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"dirs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"files": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"skipped": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"symlinks": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"bytes",
"dirs",
"errors",
"files",
"skipped",
"symlinks"
],
"type": "object"
},
"JobOutput": {
"description": "Output from a completed job",
"oneOf": [
{
"description": "Job completed successfully with no specific output",
"properties": {
"type": {
"enum": [
"Success"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
{
"description": "File copy job output",
"properties": {
"data": {
"properties": {
"copied_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"total_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"copied_count",
"total_bytes"
],
"type": "object"
},
"type": {
"enum": [
"FileCopy"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Indexer job output",
"properties": {
"data": {
"properties": {
"metrics": {
"$ref": "#/definitions/IndexerMetrics"
},
"stats": {
"$ref": "#/definitions/IndexerStats"
}
},
"required": [
"metrics",
"stats"
],
"type": "object"
},
"type": {
"enum": [
"Indexed"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Thumbnail generation output",
"properties": {
"data": {
"properties": {
"failed_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"generated_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"failed_count",
"generated_count"
],
"type": "object"
},
"type": {
"enum": [
"ThumbnailsGenerated"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Thumbnail generation output (detailed)",
"properties": {
"data": {
"properties": {
"error_count": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"generated_count": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"skipped_count": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_size_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"error_count",
"generated_count",
"skipped_count",
"total_size_bytes"
],
"type": "object"
},
"type": {
"enum": [
"ThumbnailGeneration"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "File move/rename operation output",
"properties": {
"data": {
"properties": {
"failed_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"moved_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"total_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"failed_count",
"moved_count",
"total_bytes"
],
"type": "object"
},
"type": {
"enum": [
"FileMove"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "File delete operation output",
"properties": {
"data": {
"properties": {
"deleted_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"failed_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"total_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"deleted_count",
"failed_count",
"total_bytes"
],
"type": "object"
},
"type": {
"enum": [
"FileDelete"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Duplicate detection output",
"properties": {
"data": {
"properties": {
"duplicate_groups": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"potential_savings": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_duplicates": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"duplicate_groups",
"potential_savings",
"total_duplicates"
],
"type": "object"
},
"type": {
"enum": [
"DuplicateDetection"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "File validation output",
"properties": {
"data": {
"properties": {
"issues_found": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"total_bytes_validated": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"validated_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"issues_found",
"total_bytes_validated",
"validated_count"
],
"type": "object"
},
"type": {
"enum": [
"FileValidation"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Generic output with custom data",
"properties": {
"data": true,
"type": {
"enum": [
"Custom"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
}
]
},
"MountType": {
"description": "Represents how the volume is mounted in the system",
"oneOf": [
{
"description": "System/boot volume",
"enum": [
"System"
],
"type": "string"
},
{
"description": "External/removable volume",
"enum": [
"External"
],
"type": "string"
},
{
"description": "Network-attached volume",
"enum": [
"Network"
],
"type": "string"
},
{
"description": "Virtual/container volume",
"enum": [
"Virtual"
],
"type": "string"
}
]
},
"PathMapping": {
"description": "Path mapping for resolving virtual paths to actual storage locations",
"properties": {
"actual_path": {
"description": "Actual storage path (e.g., \"/System/Volumes/Data/Users\")",
"type": "string"
},
"virtual_path": {
"description": "Virtual path (e.g., \"/Users\")",
"type": "string"
}
},
"required": [
"actual_path",
"virtual_path"
],
"type": "object"
},
"Volume": {
"description": "Represents a physical or virtual storage volume in the system",
"properties": {
"apfs_container": {
"anyOf": [
{
"$ref": "#/definitions/ApfsContainer"
},
{
"type": "null"
}
],
"description": "APFS container information (macOS only)"
},
"auto_track_eligible": {
"description": "Whether this volume should be auto-tracked",
"type": "boolean"
},
"container_volume_id": {
"description": "Container-relative volume ID for same-container detection",
"type": [
"string",
"null"
]
},
"device_id": {
"description": "Device this volume belongs to",
"format": "uuid",
"type": "string"
},
"disk_type": {
"allOf": [
{
"$ref": "#/definitions/DiskType"
}
],
"description": "Type of storage device (SSD, HDD, etc)"
},
"error_status": {
"description": "Current error status if any",
"type": [
"string",
"null"
]
},
"file_system": {
"allOf": [
{
"$ref": "#/definitions/FileSystem"
}
],
"description": "Filesystem type (NTFS, EXT4, etc)"
},
"fingerprint": {
"allOf": [
{
"$ref": "#/definitions/VolumeFingerprint"
}
],
"description": "Unique fingerprint for this volume"
},
"hardware_id": {
"description": "Hardware identifier (platform-specific)",
"type": [
"string",
"null"
]
},
"is_mounted": {
"description": "Whether the volume is currently mounted",
"type": "boolean"
},
"is_user_visible": {
"description": "Whether this volume should be visible in default views",
"type": "boolean"
},
"last_updated": {
"description": "When this volume information was last updated",
"format": "date-time",
"type": "string"
},
"mount_point": {
"description": "Primary path where the volume is mounted",
"type": "string"
},
"mount_points": {
"description": "Additional mount points (for APFS volumes, etc.)",
"items": {
"type": "string"
},
"type": "array"
},
"mount_type": {
"allOf": [
{
"$ref": "#/definitions/MountType"
}
],
"description": "Type of mount (system, external, etc)"
},
"name": {
"description": "Human-readable volume name",
"type": "string"
},
"path_mappings": {
"description": "Path resolution mappings (for firmlinks/symlinks)",
"items": {
"$ref": "#/definitions/PathMapping"
},
"type": "array"
},
"read_only": {
"description": "Whether the volume is mounted read-only",
"type": "boolean"
},
"read_speed_mbps": {
"description": "Read speed in megabytes per second",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"total_bytes_available": {
"description": "Available storage space in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_bytes_capacity": {
"description": "Total storage capacity in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"volume_type": {
"allOf": [
{
"$ref": "#/definitions/VolumeType"
}
],
"description": "Classification of this volume for UX decisions"
},
"write_speed_mbps": {
"description": "Write speed in megabytes per second",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
}
},
"required": [
"auto_track_eligible",
"device_id",
"disk_type",
"file_system",
"fingerprint",
"is_mounted",
"is_user_visible",
"last_updated",
"mount_point",
"mount_points",
"mount_type",
"name",
"path_mappings",
"read_only",
"total_bytes_available",
"total_bytes_capacity",
"volume_type"
],
"type": "object"
},
"VolumeFingerprint": {
"description": "Unique fingerprint for a storage volume",
"type": "string"
},
"VolumeInfo": {
"description": "Summary information about a volume (for updates and caching)",
"properties": {
"error_status": {
"type": [
"string",
"null"
]
},
"is_mounted": {
"type": "boolean"
},
"read_speed_mbps": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"total_bytes_available": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"write_speed_mbps": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
}
},
"required": [
"is_mounted",
"total_bytes_available"
],
"type": "object"
},
"VolumeType": {
"description": "Classification of volume types for UX and auto-tracking decisions",
"oneOf": [
{
"description": "Primary system drive containing OS and user data Examples: C:\\ on Windows, / on Linux, Macintosh HD on macOS",
"enum": [
"Primary"
],
"type": "string"
},
{
"description": "Dedicated user data volumes (separate from OS) Examples: /System/Volumes/Data on macOS, separate /home on Linux",
"enum": [
"UserData"
],
"type": "string"
},
{
"description": "External or removable storage devices Examples: USB drives, external HDDs, /Volumes/* on macOS",
"enum": [
"External"
],
"type": "string"
},
{
"description": "Secondary internal storage (additional drives/partitions) Examples: D:, E: drives on Windows, additional mounted drives",
"enum": [
"Secondary"
],
"type": "string"
},
{
"description": "System/OS internal volumes (hidden from normal view) Examples: /System/Volumes/* on macOS, Recovery partitions",
"enum": [
"System"
],
"type": "string"
},
{
"description": "Network attached storage Examples: SMB mounts, NFS, cloud storage",
"enum": [
"Network"
],
"type": "string"
},
{
"description": "Unknown or unclassified volumes",
"enum": [
"Unknown"
],
"type": "string"
}
]
}
},
"description": "A central event type that represents all events that can be emitted throughout the system",
"oneOf": [
{
"enum": [
"CoreStarted",
"CoreShutdown"
],
"type": "string"
},
{
"additionalProperties": false,
"properties": {
"LibraryCreated": {
"properties": {
"id": {
"format": "uuid",
"type": "string"
},
"name": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"id",
"name",
"path"
],
"type": "object"
}
},
"required": [
"LibraryCreated"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"LibraryOpened": {
"properties": {
"id": {
"format": "uuid",
"type": "string"
},
"name": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"id",
"name",
"path"
],
"type": "object"
}
},
"required": [
"LibraryOpened"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"LibraryClosed": {
"properties": {
"id": {
"format": "uuid",
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"type": "object"
}
},
"required": [
"LibraryClosed"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"LibraryDeleted": {
"properties": {
"deleted_data": {
"type": "boolean"
},
"id": {
"format": "uuid",
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"deleted_data",
"id",
"name"
],
"type": "object"
}
},
"required": [
"LibraryDeleted"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"EntryCreated": {
"properties": {
"entry_id": {
"format": "uuid",
"type": "string"
},
"library_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"entry_id",
"library_id"
],
"type": "object"
}
},
"required": [
"EntryCreated"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"EntryModified": {
"properties": {
"entry_id": {
"format": "uuid",
"type": "string"
},
"library_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"entry_id",
"library_id"
],
"type": "object"
}
},
"required": [
"EntryModified"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"EntryDeleted": {
"properties": {
"entry_id": {
"format": "uuid",
"type": "string"
},
"library_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"entry_id",
"library_id"
],
"type": "object"
}
},
"required": [
"EntryDeleted"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"EntryMoved": {
"properties": {
"entry_id": {
"format": "uuid",
"type": "string"
},
"library_id": {
"format": "uuid",
"type": "string"
},
"new_path": {
"type": "string"
},
"old_path": {
"type": "string"
}
},
"required": [
"entry_id",
"library_id",
"new_path",
"old_path"
],
"type": "object"
}
},
"required": [
"EntryMoved"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"FsRawChange": {
"properties": {
"kind": {
"$ref": "#/definitions/FsRawEventKind"
},
"library_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"kind",
"library_id"
],
"type": "object"
}
},
"required": [
"FsRawChange"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"VolumeAdded": {
"$ref": "#/definitions/Volume"
}
},
"required": [
"VolumeAdded"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"VolumeRemoved": {
"properties": {
"fingerprint": {
"$ref": "#/definitions/VolumeFingerprint"
}
},
"required": [
"fingerprint"
],
"type": "object"
}
},
"required": [
"VolumeRemoved"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"VolumeUpdated": {
"properties": {
"fingerprint": {
"$ref": "#/definitions/VolumeFingerprint"
},
"new_info": {
"$ref": "#/definitions/VolumeInfo"
},
"old_info": {
"$ref": "#/definitions/VolumeInfo"
}
},
"required": [
"fingerprint",
"new_info",
"old_info"
],
"type": "object"
}
},
"required": [
"VolumeUpdated"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"VolumeSpeedTested": {
"properties": {
"fingerprint": {
"$ref": "#/definitions/VolumeFingerprint"
},
"read_speed_mbps": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"write_speed_mbps": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"fingerprint",
"read_speed_mbps",
"write_speed_mbps"
],
"type": "object"
}
},
"required": [
"VolumeSpeedTested"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"VolumeMountChanged": {
"properties": {
"fingerprint": {
"$ref": "#/definitions/VolumeFingerprint"
},
"is_mounted": {
"type": "boolean"
}
},
"required": [
"fingerprint",
"is_mounted"
],
"type": "object"
}
},
"required": [
"VolumeMountChanged"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"VolumeError": {
"properties": {
"error": {
"type": "string"
},
"fingerprint": {
"$ref": "#/definitions/VolumeFingerprint"
}
},
"required": [
"error",
"fingerprint"
],
"type": "object"
}
},
"required": [
"VolumeError"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"JobQueued": {
"properties": {
"job_id": {
"type": "string"
},
"job_type": {
"type": "string"
}
},
"required": [
"job_id",
"job_type"
],
"type": "object"
}
},
"required": [
"JobQueued"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"JobStarted": {
"properties": {
"job_id": {
"type": "string"
},
"job_type": {
"type": "string"
}
},
"required": [
"job_id",
"job_type"
],
"type": "object"
}
},
"required": [
"JobStarted"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"JobProgress": {
"properties": {
"generic_progress": true,
"job_id": {
"type": "string"
},
"job_type": {
"type": "string"
},
"message": {
"type": [
"string",
"null"
]
},
"progress": {
"format": "double",
"type": "number"
}
},
"required": [
"job_id",
"job_type",
"progress"
],
"type": "object"
}
},
"required": [
"JobProgress"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"JobCompleted": {
"properties": {
"job_id": {
"type": "string"
},
"job_type": {
"type": "string"
},
"output": {
"$ref": "#/definitions/JobOutput"
}
},
"required": [
"job_id",
"job_type",
"output"
],
"type": "object"
}
},
"required": [
"JobCompleted"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"JobFailed": {
"properties": {
"error": {
"type": "string"
},
"job_id": {
"type": "string"
},
"job_type": {
"type": "string"
}
},
"required": [
"error",
"job_id",
"job_type"
],
"type": "object"
}
},
"required": [
"JobFailed"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"JobCancelled": {
"properties": {
"job_id": {
"type": "string"
},
"job_type": {
"type": "string"
}
},
"required": [
"job_id",
"job_type"
],
"type": "object"
}
},
"required": [
"JobCancelled"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"JobPaused": {
"properties": {
"job_id": {
"type": "string"
}
},
"required": [
"job_id"
],
"type": "object"
}
},
"required": [
"JobPaused"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"JobResumed": {
"properties": {
"job_id": {
"type": "string"
}
},
"required": [
"job_id"
],
"type": "object"
}
},
"required": [
"JobResumed"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"IndexingStarted": {
"properties": {
"location_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"location_id"
],
"type": "object"
}
},
"required": [
"IndexingStarted"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"IndexingProgress": {
"properties": {
"location_id": {
"format": "uuid",
"type": "string"
},
"processed": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
}
},
"required": [
"location_id",
"processed"
],
"type": "object"
}
},
"required": [
"IndexingProgress"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"IndexingCompleted": {
"properties": {
"location_id": {
"format": "uuid",
"type": "string"
},
"total_dirs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_files": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"location_id",
"total_dirs",
"total_files"
],
"type": "object"
}
},
"required": [
"IndexingCompleted"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"IndexingFailed": {
"properties": {
"error": {
"type": "string"
},
"location_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"error",
"location_id"
],
"type": "object"
}
},
"required": [
"IndexingFailed"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"DeviceConnected": {
"properties": {
"device_id": {
"format": "uuid",
"type": "string"
},
"device_name": {
"type": "string"
}
},
"required": [
"device_id",
"device_name"
],
"type": "object"
}
},
"required": [
"DeviceConnected"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"DeviceDisconnected": {
"properties": {
"device_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"device_id"
],
"type": "object"
}
},
"required": [
"DeviceDisconnected"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"LocationAdded": {
"properties": {
"library_id": {
"format": "uuid",
"type": "string"
},
"location_id": {
"format": "uuid",
"type": "string"
},
"path": {
"type": "string"
}
},
"required": [
"library_id",
"location_id",
"path"
],
"type": "object"
}
},
"required": [
"LocationAdded"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"LocationRemoved": {
"properties": {
"library_id": {
"format": "uuid",
"type": "string"
},
"location_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"library_id",
"location_id"
],
"type": "object"
}
},
"required": [
"LocationRemoved"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"FilesIndexed": {
"properties": {
"count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"library_id": {
"format": "uuid",
"type": "string"
},
"location_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"count",
"library_id",
"location_id"
],
"type": "object"
}
},
"required": [
"FilesIndexed"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"ThumbnailsGenerated": {
"properties": {
"count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"library_id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"count",
"library_id"
],
"type": "object"
}
},
"required": [
"ThumbnailsGenerated"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"FileOperationCompleted": {
"properties": {
"affected_files": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"library_id": {
"format": "uuid",
"type": "string"
},
"operation": {
"$ref": "#/definitions/FileOperation"
}
},
"required": [
"affected_files",
"library_id",
"operation"
],
"type": "object"
}
},
"required": [
"FileOperationCompleted"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"FilesModified": {
"properties": {
"library_id": {
"format": "uuid",
"type": "string"
},
"paths": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"library_id",
"paths"
],
"type": "object"
}
},
"required": [
"FilesModified"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"LogMessage": {
"properties": {
"job_id": {
"type": [
"string",
"null"
]
},
"level": {
"type": "string"
},
"library_id": {
"format": "uuid",
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"target": {
"type": "string"
},
"timestamp": {
"format": "date-time",
"type": "string"
}
},
"required": [
"level",
"message",
"target",
"timestamp"
],
"type": "object"
}
},
"required": [
"LogMessage"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"Custom": {
"properties": {
"data": true,
"event_type": {
"type": "string"
}
},
"required": [
"data",
"event_type"
],
"type": "object"
}
},
"required": [
"Custom"
],
"type": "object"
}
],
"title": "Event"
},
"FileCopyActionOutput": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Output from file copy action dispatch",
"properties": {
"destination": {
"type": "string"
},
"job_id": {
"format": "uuid",
"type": "string"
},
"sources_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"destination",
"job_id",
"sources_count"
],
"title": "FileCopyActionOutput",
"type": "object"
},
"FileOperation": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Types of file operations",
"enum": [
"Copy",
"Move",
"Delete",
"Rename"
],
"title": "FileOperation",
"type": "string"
},
"FileSystem": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Represents the filesystem type of the volume",
"oneOf": [
{
"description": "Windows NTFS filesystem",
"enum": [
"NTFS"
],
"type": "string"
},
{
"description": "FAT32 filesystem",
"enum": [
"FAT32"
],
"type": "string"
},
{
"description": "Linux EXT4 filesystem",
"enum": [
"EXT4"
],
"type": "string"
},
{
"description": "Apple APFS filesystem",
"enum": [
"APFS"
],
"type": "string"
},
{
"description": "ExFAT filesystem",
"enum": [
"ExFAT"
],
"type": "string"
},
{
"description": "Btrfs filesystem (Linux)",
"enum": [
"Btrfs"
],
"type": "string"
},
{
"description": "ZFS filesystem",
"enum": [
"ZFS"
],
"type": "string"
},
{
"description": "Windows ReFS filesystem",
"enum": [
"ReFS"
],
"type": "string"
},
{
"additionalProperties": false,
"description": "Other/unknown filesystem type",
"properties": {
"Other": {
"type": "string"
}
},
"required": [
"Other"
],
"type": "object"
}
],
"title": "FileSystem"
},
"FsRawEventKind": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Raw filesystem event kinds emitted by the watcher without DB resolution",
"oneOf": [
{
"additionalProperties": false,
"properties": {
"Create": {
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
"required": [
"Create"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"Modify": {
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
"required": [
"Modify"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"Remove": {
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
}
},
"required": [
"Remove"
],
"type": "object"
},
{
"additionalProperties": false,
"properties": {
"Rename": {
"properties": {
"from": {
"type": "string"
},
"to": {
"type": "string"
}
},
"required": [
"from",
"to"
],
"type": "object"
}
},
"required": [
"Rename"
],
"type": "object"
}
],
"title": "FsRawEventKind"
},
"GenericProgress": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Duration": {
"properties": {
"nanos": {
"format": "uint32",
"minimum": 0.0,
"type": "integer"
},
"secs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"nanos",
"secs"
],
"type": "object"
},
"PerformanceMetrics": {
"description": "Performance and timing metrics",
"properties": {
"elapsed": {
"anyOf": [
{
"$ref": "#/definitions/Duration"
},
{
"type": "null"
}
],
"description": "Time elapsed since start"
},
"error_count": {
"description": "Number of errors encountered",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"estimated_remaining": {
"anyOf": [
{
"$ref": "#/definitions/Duration"
},
{
"type": "null"
}
],
"description": "Estimated time remaining"
},
"rate": {
"description": "Processing rate (items per second)",
"format": "float",
"type": "number"
},
"warning_count": {
"description": "Number of warnings",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"error_count",
"rate",
"warning_count"
],
"type": "object"
},
"ProgressCompletion": {
"description": "Progress completion information",
"properties": {
"bytes_completed": {
"description": "Bytes processed (if applicable)",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"completed": {
"description": "Items completed (files, entries, operations, etc.)",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total": {
"description": "Total items to complete",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_bytes": {
"description": "Total bytes to process (if applicable)",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
}
},
"required": [
"completed",
"total"
],
"type": "object"
},
"SdPath": {
"description": "A path within the Spacedrive Virtual Distributed File System\n\nThis is the core abstraction that enables cross-device operations. An SdPath can represent: - A physical file at a specific path on a specific device - A content-addressed file that can be sourced from any device\n\nThis enum-based approach enables resilient file operations by allowing content-based paths to be resolved to optimal physical locations at runtime.",
"oneOf": [
{
"additionalProperties": false,
"description": "A direct pointer to a file at a specific path on a specific device",
"properties": {
"Physical": {
"properties": {
"device_id": {
"description": "The device where this file exists",
"format": "uuid",
"type": "string"
},
"path": {
"description": "The local path on that device",
"type": "string"
}
},
"required": [
"device_id",
"path"
],
"type": "object"
}
},
"required": [
"Physical"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "An abstract, location-independent handle that refers to file content",
"properties": {
"Content": {
"properties": {
"content_id": {
"description": "The unique content identifier",
"format": "uuid",
"type": "string"
}
},
"required": [
"content_id"
],
"type": "object"
}
},
"required": [
"Content"
],
"type": "object"
}
]
}
},
"description": "Generic progress information that all job types can convert into",
"properties": {
"completion": {
"allOf": [
{
"$ref": "#/definitions/ProgressCompletion"
}
],
"description": "Completion metrics"
},
"current_path": {
"anyOf": [
{
"$ref": "#/definitions/SdPath"
},
{
"type": "null"
}
],
"description": "Current path being processed (if applicable)"
},
"message": {
"description": "Human-readable message describing current activity",
"type": "string"
},
"metadata": {
"description": "Extended metadata specific to job type"
},
"percentage": {
"description": "Current progress as a percentage (0.0 to 1.0)",
"format": "float",
"type": "number"
},
"performance": {
"allOf": [
{
"$ref": "#/definitions/PerformanceMetrics"
}
],
"description": "Performance metrics"
},
"phase": {
"description": "Current phase or stage name (e.g., \"Discovery\", \"Processing\", \"Finalizing\")",
"type": "string"
}
},
"required": [
"completion",
"message",
"metadata",
"percentage",
"performance",
"phase"
],
"title": "GenericProgress",
"type": "object"
},
"IndexerMetrics": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Duration": {
"properties": {
"nanos": {
"format": "uint32",
"minimum": 0.0,
"type": "integer"
},
"secs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"nanos",
"secs"
],
"type": "object"
}
},
"description": "Comprehensive metrics for indexing operations",
"properties": {
"avg_batch_size": {
"format": "float",
"type": "number"
},
"avg_memory_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"batch_count": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"bytes_per_second": {
"format": "double",
"type": "number"
},
"content_duration": {
"$ref": "#/definitions/Duration"
},
"critical_errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"db_reads": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"db_writes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"dirs_per_second": {
"format": "float",
"type": "number"
},
"discovery_duration": {
"$ref": "#/definitions/Duration"
},
"files_per_second": {
"format": "float",
"type": "number"
},
"non_critical_errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"peak_memory_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"processing_duration": {
"$ref": "#/definitions/Duration"
},
"skipped_paths": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_duration": {
"$ref": "#/definitions/Duration"
},
"total_errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"avg_batch_size",
"batch_count",
"bytes_per_second",
"content_duration",
"critical_errors",
"db_reads",
"db_writes",
"dirs_per_second",
"discovery_duration",
"files_per_second",
"non_critical_errors",
"processing_duration",
"skipped_paths",
"total_duration",
"total_errors"
],
"title": "IndexerMetrics",
"type": "object"
},
"IndexerStats": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Statistics collected during indexing",
"properties": {
"bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"dirs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"files": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"skipped": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"symlinks": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"bytes",
"dirs",
"errors",
"files",
"skipped",
"symlinks"
],
"title": "IndexerStats",
"type": "object"
},
"JobInfoOutput": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"JobStatus": {
"description": "Current status of a job",
"oneOf": [
{
"description": "Job is waiting to be executed",
"enum": [
"queued"
],
"type": "string"
},
{
"description": "Job is currently running",
"enum": [
"running"
],
"type": "string"
},
{
"description": "Job has been paused",
"enum": [
"paused"
],
"type": "string"
},
{
"description": "Job completed successfully",
"enum": [
"completed"
],
"type": "string"
},
{
"description": "Job failed with an error",
"enum": [
"failed"
],
"type": "string"
},
{
"description": "Job was cancelled",
"enum": [
"cancelled"
],
"type": "string"
}
]
}
},
"properties": {
"completed_at": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"error_message": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"type": "string"
},
"name": {
"type": "string"
},
"progress": {
"format": "float",
"type": "number"
},
"started_at": {
"format": "date-time",
"type": "string"
},
"status": {
"$ref": "#/definitions/JobStatus"
}
},
"required": [
"id",
"name",
"progress",
"started_at",
"status"
],
"title": "JobInfoOutput",
"type": "object"
},
"JobListItem": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"JobStatus": {
"description": "Current status of a job",
"oneOf": [
{
"description": "Job is waiting to be executed",
"enum": [
"queued"
],
"type": "string"
},
{
"description": "Job is currently running",
"enum": [
"running"
],
"type": "string"
},
{
"description": "Job has been paused",
"enum": [
"paused"
],
"type": "string"
},
{
"description": "Job completed successfully",
"enum": [
"completed"
],
"type": "string"
},
{
"description": "Job failed with an error",
"enum": [
"failed"
],
"type": "string"
},
{
"description": "Job was cancelled",
"enum": [
"cancelled"
],
"type": "string"
}
]
}
},
"properties": {
"id": {
"format": "uuid",
"type": "string"
},
"name": {
"type": "string"
},
"progress": {
"format": "float",
"type": "number"
},
"status": {
"$ref": "#/definitions/JobStatus"
}
},
"required": [
"id",
"name",
"progress",
"status"
],
"title": "JobListItem",
"type": "object"
},
"JobListOutput": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"JobListItem": {
"properties": {
"id": {
"format": "uuid",
"type": "string"
},
"name": {
"type": "string"
},
"progress": {
"format": "float",
"type": "number"
},
"status": {
"$ref": "#/definitions/JobStatus"
}
},
"required": [
"id",
"name",
"progress",
"status"
],
"type": "object"
},
"JobStatus": {
"description": "Current status of a job",
"oneOf": [
{
"description": "Job is waiting to be executed",
"enum": [
"queued"
],
"type": "string"
},
{
"description": "Job is currently running",
"enum": [
"running"
],
"type": "string"
},
{
"description": "Job has been paused",
"enum": [
"paused"
],
"type": "string"
},
{
"description": "Job completed successfully",
"enum": [
"completed"
],
"type": "string"
},
{
"description": "Job failed with an error",
"enum": [
"failed"
],
"type": "string"
},
{
"description": "Job was cancelled",
"enum": [
"cancelled"
],
"type": "string"
}
]
}
},
"properties": {
"jobs": {
"items": {
"$ref": "#/definitions/JobListItem"
},
"type": "array"
}
},
"required": [
"jobs"
],
"title": "JobListOutput",
"type": "object"
},
"JobOutput": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Duration": {
"properties": {
"nanos": {
"format": "uint32",
"minimum": 0.0,
"type": "integer"
},
"secs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"nanos",
"secs"
],
"type": "object"
},
"IndexerMetrics": {
"description": "Comprehensive metrics for indexing operations",
"properties": {
"avg_batch_size": {
"format": "float",
"type": "number"
},
"avg_memory_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"batch_count": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"bytes_per_second": {
"format": "double",
"type": "number"
},
"content_duration": {
"$ref": "#/definitions/Duration"
},
"critical_errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"db_reads": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"db_writes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"dirs_per_second": {
"format": "float",
"type": "number"
},
"discovery_duration": {
"$ref": "#/definitions/Duration"
},
"files_per_second": {
"format": "float",
"type": "number"
},
"non_critical_errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"peak_memory_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"processing_duration": {
"$ref": "#/definitions/Duration"
},
"skipped_paths": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_duration": {
"$ref": "#/definitions/Duration"
},
"total_errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"avg_batch_size",
"batch_count",
"bytes_per_second",
"content_duration",
"critical_errors",
"db_reads",
"db_writes",
"dirs_per_second",
"discovery_duration",
"files_per_second",
"non_critical_errors",
"processing_duration",
"skipped_paths",
"total_duration",
"total_errors"
],
"type": "object"
},
"IndexerStats": {
"description": "Statistics collected during indexing",
"properties": {
"bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"dirs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"errors": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"files": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"skipped": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"symlinks": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"bytes",
"dirs",
"errors",
"files",
"skipped",
"symlinks"
],
"type": "object"
}
},
"description": "Output from a completed job",
"oneOf": [
{
"description": "Job completed successfully with no specific output",
"properties": {
"type": {
"enum": [
"Success"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
{
"description": "File copy job output",
"properties": {
"data": {
"properties": {
"copied_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"total_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"copied_count",
"total_bytes"
],
"type": "object"
},
"type": {
"enum": [
"FileCopy"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Indexer job output",
"properties": {
"data": {
"properties": {
"metrics": {
"$ref": "#/definitions/IndexerMetrics"
},
"stats": {
"$ref": "#/definitions/IndexerStats"
}
},
"required": [
"metrics",
"stats"
],
"type": "object"
},
"type": {
"enum": [
"Indexed"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Thumbnail generation output",
"properties": {
"data": {
"properties": {
"failed_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"generated_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"failed_count",
"generated_count"
],
"type": "object"
},
"type": {
"enum": [
"ThumbnailsGenerated"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Thumbnail generation output (detailed)",
"properties": {
"data": {
"properties": {
"error_count": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"generated_count": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"skipped_count": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_size_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"error_count",
"generated_count",
"skipped_count",
"total_size_bytes"
],
"type": "object"
},
"type": {
"enum": [
"ThumbnailGeneration"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "File move/rename operation output",
"properties": {
"data": {
"properties": {
"failed_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"moved_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"total_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"failed_count",
"moved_count",
"total_bytes"
],
"type": "object"
},
"type": {
"enum": [
"FileMove"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "File delete operation output",
"properties": {
"data": {
"properties": {
"deleted_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"failed_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"total_bytes": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"deleted_count",
"failed_count",
"total_bytes"
],
"type": "object"
},
"type": {
"enum": [
"FileDelete"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Duplicate detection output",
"properties": {
"data": {
"properties": {
"duplicate_groups": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"potential_savings": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_duplicates": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"duplicate_groups",
"potential_savings",
"total_duplicates"
],
"type": "object"
},
"type": {
"enum": [
"DuplicateDetection"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "File validation output",
"properties": {
"data": {
"properties": {
"issues_found": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"total_bytes_validated": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"validated_count": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"issues_found",
"total_bytes_validated",
"validated_count"
],
"type": "object"
},
"type": {
"enum": [
"FileValidation"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Generic output with custom data",
"properties": {
"data": true,
"type": {
"enum": [
"Custom"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
}
],
"title": "JobOutput"
},
"JobStatus": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Current status of a job",
"oneOf": [
{
"description": "Job is waiting to be executed",
"enum": [
"queued"
],
"type": "string"
},
{
"description": "Job is currently running",
"enum": [
"running"
],
"type": "string"
},
{
"description": "Job has been paused",
"enum": [
"paused"
],
"type": "string"
},
{
"description": "Job completed successfully",
"enum": [
"completed"
],
"type": "string"
},
{
"description": "Job failed with an error",
"enum": [
"failed"
],
"type": "string"
},
{
"description": "Job was cancelled",
"enum": [
"cancelled"
],
"type": "string"
}
],
"title": "JobStatus"
},
"LibraryInfo": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"LibraryStatistics": {
"description": "Library statistics",
"properties": {
"last_indexed": {
"description": "Last time the library was fully indexed",
"format": "date-time",
"type": [
"string",
"null"
]
},
"location_count": {
"description": "Number of locations in this library",
"format": "uint32",
"minimum": 0.0,
"type": "integer"
},
"tag_count": {
"description": "Number of tags created",
"format": "uint32",
"minimum": 0.0,
"type": "integer"
},
"thumbnail_count": {
"description": "Number of thumbnails generated",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_files": {
"description": "Total number of files indexed",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_size": {
"description": "Total size of all files in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"updated_at": {
"description": "When these statistics were last updated",
"format": "date-time",
"type": "string"
}
},
"required": [
"location_count",
"tag_count",
"thumbnail_count",
"total_files",
"total_size",
"updated_at"
],
"type": "object"
}
},
"description": "Information about a library for listing purposes",
"properties": {
"id": {
"description": "Library unique identifier",
"format": "uuid",
"type": "string"
},
"name": {
"description": "Human-readable library name",
"type": "string"
},
"path": {
"description": "Path to the library directory",
"type": "string"
},
"stats": {
"anyOf": [
{
"$ref": "#/definitions/LibraryStatistics"
},
{
"type": "null"
}
],
"description": "Optional statistics if requested"
}
},
"required": [
"id",
"name",
"path"
],
"title": "LibraryInfo",
"type": "object"
},
"LocationAddOutput": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Output from location add action dispatch",
"properties": {
"job_id": {
"format": "uuid",
"type": [
"string",
"null"
]
},
"location_id": {
"format": "uuid",
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"path": {
"type": "string"
}
},
"required": [
"location_id",
"path"
],
"title": "LocationAddOutput",
"type": "object"
},
"MountType": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Represents how the volume is mounted in the system",
"oneOf": [
{
"description": "System/boot volume",
"enum": [
"System"
],
"type": "string"
},
{
"description": "External/removable volume",
"enum": [
"External"
],
"type": "string"
},
{
"description": "Network-attached volume",
"enum": [
"Network"
],
"type": "string"
},
{
"description": "Virtual/container volume",
"enum": [
"Virtual"
],
"type": "string"
}
],
"title": "MountType"
},
"PathMapping": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Path mapping for resolving virtual paths to actual storage locations",
"properties": {
"actual_path": {
"description": "Actual storage path (e.g., \"/System/Volumes/Data/Users\")",
"type": "string"
},
"virtual_path": {
"description": "Virtual path (e.g., \"/Users\")",
"type": "string"
}
},
"required": [
"actual_path",
"virtual_path"
],
"title": "PathMapping",
"type": "object"
},
"PerformanceMetrics": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Duration": {
"properties": {
"nanos": {
"format": "uint32",
"minimum": 0.0,
"type": "integer"
},
"secs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"nanos",
"secs"
],
"type": "object"
}
},
"description": "Performance and timing metrics",
"properties": {
"elapsed": {
"anyOf": [
{
"$ref": "#/definitions/Duration"
},
{
"type": "null"
}
],
"description": "Time elapsed since start"
},
"error_count": {
"description": "Number of errors encountered",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"estimated_remaining": {
"anyOf": [
{
"$ref": "#/definitions/Duration"
},
{
"type": "null"
}
],
"description": "Estimated time remaining"
},
"rate": {
"description": "Processing rate (items per second)",
"format": "float",
"type": "number"
},
"warning_count": {
"description": "Number of warnings",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"error_count",
"rate",
"warning_count"
],
"title": "PerformanceMetrics",
"type": "object"
},
"Progress": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"Duration": {
"properties": {
"nanos": {
"format": "uint32",
"minimum": 0.0,
"type": "integer"
},
"secs": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"nanos",
"secs"
],
"type": "object"
},
"GenericProgress": {
"description": "Generic progress information that all job types can convert into",
"properties": {
"completion": {
"allOf": [
{
"$ref": "#/definitions/ProgressCompletion"
}
],
"description": "Completion metrics"
},
"current_path": {
"anyOf": [
{
"$ref": "#/definitions/SdPath"
},
{
"type": "null"
}
],
"description": "Current path being processed (if applicable)"
},
"message": {
"description": "Human-readable message describing current activity",
"type": "string"
},
"metadata": {
"description": "Extended metadata specific to job type"
},
"percentage": {
"description": "Current progress as a percentage (0.0 to 1.0)",
"format": "float",
"type": "number"
},
"performance": {
"allOf": [
{
"$ref": "#/definitions/PerformanceMetrics"
}
],
"description": "Performance metrics"
},
"phase": {
"description": "Current phase or stage name (e.g., \"Discovery\", \"Processing\", \"Finalizing\")",
"type": "string"
}
},
"required": [
"completion",
"message",
"metadata",
"percentage",
"performance",
"phase"
],
"type": "object"
},
"PerformanceMetrics": {
"description": "Performance and timing metrics",
"properties": {
"elapsed": {
"anyOf": [
{
"$ref": "#/definitions/Duration"
},
{
"type": "null"
}
],
"description": "Time elapsed since start"
},
"error_count": {
"description": "Number of errors encountered",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"estimated_remaining": {
"anyOf": [
{
"$ref": "#/definitions/Duration"
},
{
"type": "null"
}
],
"description": "Estimated time remaining"
},
"rate": {
"description": "Processing rate (items per second)",
"format": "float",
"type": "number"
},
"warning_count": {
"description": "Number of warnings",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"error_count",
"rate",
"warning_count"
],
"type": "object"
},
"ProgressCompletion": {
"description": "Progress completion information",
"properties": {
"bytes_completed": {
"description": "Bytes processed (if applicable)",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"completed": {
"description": "Items completed (files, entries, operations, etc.)",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total": {
"description": "Total items to complete",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_bytes": {
"description": "Total bytes to process (if applicable)",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
}
},
"required": [
"completed",
"total"
],
"type": "object"
},
"SdPath": {
"description": "A path within the Spacedrive Virtual Distributed File System\n\nThis is the core abstraction that enables cross-device operations. An SdPath can represent: - A physical file at a specific path on a specific device - A content-addressed file that can be sourced from any device\n\nThis enum-based approach enables resilient file operations by allowing content-based paths to be resolved to optimal physical locations at runtime.",
"oneOf": [
{
"additionalProperties": false,
"description": "A direct pointer to a file at a specific path on a specific device",
"properties": {
"Physical": {
"properties": {
"device_id": {
"description": "The device where this file exists",
"format": "uuid",
"type": "string"
},
"path": {
"description": "The local path on that device",
"type": "string"
}
},
"required": [
"device_id",
"path"
],
"type": "object"
}
},
"required": [
"Physical"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "An abstract, location-independent handle that refers to file content",
"properties": {
"Content": {
"properties": {
"content_id": {
"description": "The unique content identifier",
"format": "uuid",
"type": "string"
}
},
"required": [
"content_id"
],
"type": "object"
}
},
"required": [
"Content"
],
"type": "object"
}
]
}
},
"description": "Progress information for a job",
"oneOf": [
{
"description": "Simple count-based progress",
"properties": {
"data": {
"properties": {
"current": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
},
"total": {
"format": "uint",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"current",
"total"
],
"type": "object"
},
"type": {
"enum": [
"Count"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Percentage-based progress (0.0 to 1.0)",
"properties": {
"data": {
"format": "float",
"type": "number"
},
"type": {
"enum": [
"Percentage"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Indeterminate progress with a message",
"properties": {
"data": {
"type": "string"
},
"type": {
"enum": [
"Indeterminate"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Bytes-based progress",
"properties": {
"data": {
"properties": {
"current": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
}
},
"required": [
"current",
"total"
],
"type": "object"
},
"type": {
"enum": [
"Bytes"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Custom structured progress",
"properties": {
"data": true,
"type": {
"enum": [
"Structured"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
},
{
"description": "Generic progress (recommended for all jobs)",
"properties": {
"data": {
"$ref": "#/definitions/GenericProgress"
},
"type": {
"enum": [
"Generic"
],
"type": "string"
}
},
"required": [
"data",
"type"
],
"type": "object"
}
],
"title": "Progress"
},
"ProgressCompletion": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Progress completion information",
"properties": {
"bytes_completed": {
"description": "Bytes processed (if applicable)",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"completed": {
"description": "Items completed (files, entries, operations, etc.)",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total": {
"description": "Total items to complete",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_bytes": {
"description": "Total bytes to process (if applicable)",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
}
},
"required": [
"completed",
"total"
],
"title": "ProgressCompletion",
"type": "object"
},
"SdPath": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "A path within the Spacedrive Virtual Distributed File System\n\nThis is the core abstraction that enables cross-device operations. An SdPath can represent: - A physical file at a specific path on a specific device - A content-addressed file that can be sourced from any device\n\nThis enum-based approach enables resilient file operations by allowing content-based paths to be resolved to optimal physical locations at runtime.",
"oneOf": [
{
"additionalProperties": false,
"description": "A direct pointer to a file at a specific path on a specific device",
"properties": {
"Physical": {
"properties": {
"device_id": {
"description": "The device where this file exists",
"format": "uuid",
"type": "string"
},
"path": {
"description": "The local path on that device",
"type": "string"
}
},
"required": [
"device_id",
"path"
],
"type": "object"
}
},
"required": [
"Physical"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "An abstract, location-independent handle that refers to file content",
"properties": {
"Content": {
"properties": {
"content_id": {
"description": "The unique content identifier",
"format": "uuid",
"type": "string"
}
},
"required": [
"content_id"
],
"type": "object"
}
},
"required": [
"Content"
],
"type": "object"
}
],
"title": "SdPath"
},
"SdPathBatch": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"SdPath": {
"description": "A path within the Spacedrive Virtual Distributed File System\n\nThis is the core abstraction that enables cross-device operations. An SdPath can represent: - A physical file at a specific path on a specific device - A content-addressed file that can be sourced from any device\n\nThis enum-based approach enables resilient file operations by allowing content-based paths to be resolved to optimal physical locations at runtime.",
"oneOf": [
{
"additionalProperties": false,
"description": "A direct pointer to a file at a specific path on a specific device",
"properties": {
"Physical": {
"properties": {
"device_id": {
"description": "The device where this file exists",
"format": "uuid",
"type": "string"
},
"path": {
"description": "The local path on that device",
"type": "string"
}
},
"required": [
"device_id",
"path"
],
"type": "object"
}
},
"required": [
"Physical"
],
"type": "object"
},
{
"additionalProperties": false,
"description": "An abstract, location-independent handle that refers to file content",
"properties": {
"Content": {
"properties": {
"content_id": {
"description": "The unique content identifier",
"format": "uuid",
"type": "string"
}
},
"required": [
"content_id"
],
"type": "object"
}
},
"required": [
"Content"
],
"type": "object"
}
]
}
},
"description": "A batch of SdPaths, useful for operations on multiple files",
"properties": {
"paths": {
"items": {
"$ref": "#/definitions/SdPath"
},
"type": "array"
}
},
"required": [
"paths"
],
"title": "SdPathBatch",
"type": "object"
},
"Volume": {
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"ApfsContainer": {
"description": "Represents an APFS container (physical storage with multiple volumes)",
"properties": {
"capacity_free": {
"description": "Capacity not allocated in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"capacity_in_use": {
"description": "Capacity in use by all volumes in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"container_id": {
"description": "Container identifier (e.g., \"disk3\")",
"type": "string"
},
"physical_store": {
"description": "Physical store device (e.g., \"disk0s2\")",
"type": "string"
},
"total_capacity": {
"description": "Total container capacity in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"uuid": {
"description": "Container UUID",
"type": "string"
},
"volumes": {
"description": "All volumes in this container",
"items": {
"$ref": "#/definitions/ApfsVolumeInfo"
},
"type": "array"
}
},
"required": [
"capacity_free",
"capacity_in_use",
"container_id",
"physical_store",
"total_capacity",
"uuid",
"volumes"
],
"type": "object"
},
"ApfsVolumeInfo": {
"description": "APFS volume information within a container",
"properties": {
"capacity_consumed": {
"description": "Capacity consumed by this volume in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"disk_id": {
"description": "Volume disk identifier (e.g., \"disk3s5\")",
"type": "string"
},
"filevault": {
"description": "Whether FileVault is enabled",
"type": "boolean"
},
"mount_point": {
"description": "Mount point (if mounted)",
"type": [
"string",
"null"
]
},
"name": {
"description": "Volume name",
"type": "string"
},
"role": {
"allOf": [
{
"$ref": "#/definitions/ApfsVolumeRole"
}
],
"description": "Volume role (System, Data, Preboot, etc.)"
},
"sealed": {
"description": "Whether the volume is sealed",
"type": "boolean"
},
"uuid": {
"description": "Volume UUID",
"type": "string"
}
},
"required": [
"capacity_consumed",
"disk_id",
"filevault",
"name",
"role",
"sealed",
"uuid"
],
"type": "object"
},
"ApfsVolumeRole": {
"description": "APFS volume roles in the container",
"oneOf": [
{
"description": "System volume (read-only system files)",
"enum": [
"System"
],
"type": "string"
},
{
"description": "Data volume (user data and applications)",
"enum": [
"Data"
],
"type": "string"
},
{
"description": "Preboot volume (boot support files)",
"enum": [
"Preboot"
],
"type": "string"
},
{
"description": "Recovery volume (recovery environment)",
"enum": [
"Recovery"
],
"type": "string"
},
{
"description": "VM volume (virtual memory)",
"enum": [
"VM"
],
"type": "string"
},
{
"additionalProperties": false,
"description": "Other role or no specific role",
"properties": {
"Other": {
"type": "string"
}
},
"required": [
"Other"
],
"type": "object"
}
]
},
"DiskType": {
"description": "Represents the type of physical storage device",
"oneOf": [
{
"description": "Solid State Drive",
"enum": [
"SSD"
],
"type": "string"
},
{
"description": "Hard Disk Drive",
"enum": [
"HDD"
],
"type": "string"
},
{
"description": "Unknown or virtual disk type",
"enum": [
"Unknown"
],
"type": "string"
}
]
},
"FileSystem": {
"description": "Represents the filesystem type of the volume",
"oneOf": [
{
"description": "Windows NTFS filesystem",
"enum": [
"NTFS"
],
"type": "string"
},
{
"description": "FAT32 filesystem",
"enum": [
"FAT32"
],
"type": "string"
},
{
"description": "Linux EXT4 filesystem",
"enum": [
"EXT4"
],
"type": "string"
},
{
"description": "Apple APFS filesystem",
"enum": [
"APFS"
],
"type": "string"
},
{
"description": "ExFAT filesystem",
"enum": [
"ExFAT"
],
"type": "string"
},
{
"description": "Btrfs filesystem (Linux)",
"enum": [
"Btrfs"
],
"type": "string"
},
{
"description": "ZFS filesystem",
"enum": [
"ZFS"
],
"type": "string"
},
{
"description": "Windows ReFS filesystem",
"enum": [
"ReFS"
],
"type": "string"
},
{
"additionalProperties": false,
"description": "Other/unknown filesystem type",
"properties": {
"Other": {
"type": "string"
}
},
"required": [
"Other"
],
"type": "object"
}
]
},
"MountType": {
"description": "Represents how the volume is mounted in the system",
"oneOf": [
{
"description": "System/boot volume",
"enum": [
"System"
],
"type": "string"
},
{
"description": "External/removable volume",
"enum": [
"External"
],
"type": "string"
},
{
"description": "Network-attached volume",
"enum": [
"Network"
],
"type": "string"
},
{
"description": "Virtual/container volume",
"enum": [
"Virtual"
],
"type": "string"
}
]
},
"PathMapping": {
"description": "Path mapping for resolving virtual paths to actual storage locations",
"properties": {
"actual_path": {
"description": "Actual storage path (e.g., \"/System/Volumes/Data/Users\")",
"type": "string"
},
"virtual_path": {
"description": "Virtual path (e.g., \"/Users\")",
"type": "string"
}
},
"required": [
"actual_path",
"virtual_path"
],
"type": "object"
},
"VolumeFingerprint": {
"description": "Unique fingerprint for a storage volume",
"type": "string"
},
"VolumeType": {
"description": "Classification of volume types for UX and auto-tracking decisions",
"oneOf": [
{
"description": "Primary system drive containing OS and user data Examples: C:\\ on Windows, / on Linux, Macintosh HD on macOS",
"enum": [
"Primary"
],
"type": "string"
},
{
"description": "Dedicated user data volumes (separate from OS) Examples: /System/Volumes/Data on macOS, separate /home on Linux",
"enum": [
"UserData"
],
"type": "string"
},
{
"description": "External or removable storage devices Examples: USB drives, external HDDs, /Volumes/* on macOS",
"enum": [
"External"
],
"type": "string"
},
{
"description": "Secondary internal storage (additional drives/partitions) Examples: D:, E: drives on Windows, additional mounted drives",
"enum": [
"Secondary"
],
"type": "string"
},
{
"description": "System/OS internal volumes (hidden from normal view) Examples: /System/Volumes/* on macOS, Recovery partitions",
"enum": [
"System"
],
"type": "string"
},
{
"description": "Network attached storage Examples: SMB mounts, NFS, cloud storage",
"enum": [
"Network"
],
"type": "string"
},
{
"description": "Unknown or unclassified volumes",
"enum": [
"Unknown"
],
"type": "string"
}
]
}
},
"description": "Represents a physical or virtual storage volume in the system",
"properties": {
"apfs_container": {
"anyOf": [
{
"$ref": "#/definitions/ApfsContainer"
},
{
"type": "null"
}
],
"description": "APFS container information (macOS only)"
},
"auto_track_eligible": {
"description": "Whether this volume should be auto-tracked",
"type": "boolean"
},
"container_volume_id": {
"description": "Container-relative volume ID for same-container detection",
"type": [
"string",
"null"
]
},
"device_id": {
"description": "Device this volume belongs to",
"format": "uuid",
"type": "string"
},
"disk_type": {
"allOf": [
{
"$ref": "#/definitions/DiskType"
}
],
"description": "Type of storage device (SSD, HDD, etc)"
},
"error_status": {
"description": "Current error status if any",
"type": [
"string",
"null"
]
},
"file_system": {
"allOf": [
{
"$ref": "#/definitions/FileSystem"
}
],
"description": "Filesystem type (NTFS, EXT4, etc)"
},
"fingerprint": {
"allOf": [
{
"$ref": "#/definitions/VolumeFingerprint"
}
],
"description": "Unique fingerprint for this volume"
},
"hardware_id": {
"description": "Hardware identifier (platform-specific)",
"type": [
"string",
"null"
]
},
"is_mounted": {
"description": "Whether the volume is currently mounted",
"type": "boolean"
},
"is_user_visible": {
"description": "Whether this volume should be visible in default views",
"type": "boolean"
},
"last_updated": {
"description": "When this volume information was last updated",
"format": "date-time",
"type": "string"
},
"mount_point": {
"description": "Primary path where the volume is mounted",
"type": "string"
},
"mount_points": {
"description": "Additional mount points (for APFS volumes, etc.)",
"items": {
"type": "string"
},
"type": "array"
},
"mount_type": {
"allOf": [
{
"$ref": "#/definitions/MountType"
}
],
"description": "Type of mount (system, external, etc)"
},
"name": {
"description": "Human-readable volume name",
"type": "string"
},
"path_mappings": {
"description": "Path resolution mappings (for firmlinks/symlinks)",
"items": {
"$ref": "#/definitions/PathMapping"
},
"type": "array"
},
"read_only": {
"description": "Whether the volume is mounted read-only",
"type": "boolean"
},
"read_speed_mbps": {
"description": "Read speed in megabytes per second",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"total_bytes_available": {
"description": "Available storage space in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"total_bytes_capacity": {
"description": "Total storage capacity in bytes",
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"volume_type": {
"allOf": [
{
"$ref": "#/definitions/VolumeType"
}
],
"description": "Classification of this volume for UX decisions"
},
"write_speed_mbps": {
"description": "Write speed in megabytes per second",
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
}
},
"required": [
"auto_track_eligible",
"device_id",
"disk_type",
"file_system",
"fingerprint",
"is_mounted",
"is_user_visible",
"last_updated",
"mount_point",
"mount_points",
"mount_type",
"name",
"path_mappings",
"read_only",
"total_bytes_available",
"total_bytes_capacity",
"volume_type"
],
"title": "Volume",
"type": "object"
},
"VolumeFingerprint": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Unique fingerprint for a storage volume",
"title": "VolumeFingerprint",
"type": "string"
},
"VolumeInfo": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Summary information about a volume (for updates and caching)",
"properties": {
"error_status": {
"type": [
"string",
"null"
]
},
"is_mounted": {
"type": "boolean"
},
"read_speed_mbps": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
},
"total_bytes_available": {
"format": "uint64",
"minimum": 0.0,
"type": "integer"
},
"write_speed_mbps": {
"format": "uint64",
"minimum": 0.0,
"type": [
"integer",
"null"
]
}
},
"required": [
"is_mounted",
"total_bytes_available"
],
"title": "VolumeInfo",
"type": "object"
},
"VolumeType": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Classification of volume types for UX and auto-tracking decisions",
"oneOf": [
{
"description": "Primary system drive containing OS and user data Examples: C:\\ on Windows, / on Linux, Macintosh HD on macOS",
"enum": [
"Primary"
],
"type": "string"
},
{
"description": "Dedicated user data volumes (separate from OS) Examples: /System/Volumes/Data on macOS, separate /home on Linux",
"enum": [
"UserData"
],
"type": "string"
},
{
"description": "External or removable storage devices Examples: USB drives, external HDDs, /Volumes/* on macOS",
"enum": [
"External"
],
"type": "string"
},
{
"description": "Secondary internal storage (additional drives/partitions) Examples: D:, E: drives on Windows, additional mounted drives",
"enum": [
"Secondary"
],
"type": "string"
},
{
"description": "System/OS internal volumes (hidden from normal view) Examples: /System/Volumes/* on macOS, Recovery partitions",
"enum": [
"System"
],
"type": "string"
},
{
"description": "Network attached storage Examples: SMB mounts, NFS, cloud storage",
"enum": [
"Network"
],
"type": "string"
},
{
"description": "Unknown or unclassified volumes",
"enum": [
"Unknown"
],
"type": "string"
}
],
"title": "VolumeType"
}
}
}