ghidra-cli/schemas/v1/cleanup.schema.json
2026-07-28 19:49:43 +00:00

417 lines
10 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "SuccessEnvelope",
"description": "Versioned successful response.",
"type": "object",
"properties": {
"data": {
"description": "Operation-specific result.",
"$ref": "#/$defs/CleanupData"
},
"kind": {
"type": "string",
"const": "cleanup"
},
"provenance": {
"description": "Reproducibility and execution context.",
"$ref": "#/$defs/ToolProvenance"
},
"schema_version": {
"type": "integer",
"const": 1
},
"warnings": {
"description": "Deduplicated stable warnings.",
"type": "array",
"items": {
"$ref": "#/$defs/Warning"
}
}
},
"required": [
"schema_version",
"kind",
"provenance",
"data",
"warnings"
],
"$defs": {
"AnalysisStoreProvenance": {
"description": "Analysis Store provenance.",
"type": "object",
"properties": {
"path": {
"description": "Tagged absolute store path.",
"$ref": "#/$defs/TaggedPath"
},
"source": {
"description": "Store resolution source.",
"$ref": "#/$defs/StoreSource"
}
},
"required": [
"path",
"source"
]
},
"CleanupData": {
"description": "Cleanup result data; detailed count contracts are carried as typed snapshots.",
"type": "object",
"properties": {
"matched": {
"description": "Preflight match snapshot.",
"$ref": "#/$defs/CleanupSnapshot"
},
"mode": {
"description": "Execution or dry-run mode.",
"$ref": "#/$defs/CleanupMode"
},
"removed": {
"description": "Exact removed snapshot, null for dry runs.",
"anyOf": [
{
"$ref": "#/$defs/CleanupSnapshot"
},
{
"type": "null"
}
]
},
"target": {
"description": "Resolved cleanup target.",
"$ref": "#/$defs/CleanupTarget"
}
},
"required": [
"mode",
"target",
"matched"
]
},
"CleanupMode": {
"description": "Cleanup mode.",
"oneOf": [
{
"description": "Data was removed.",
"type": "string",
"const": "executed"
},
{
"description": "No data was removed.",
"type": "string",
"const": "dry_run"
}
]
},
"CleanupSnapshot": {
"description": "Counts and disk usage associated with cleanup targets.",
"type": "object",
"properties": {
"analyses": {
"description": "Complete Analyses.",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"analysis_profile_sha256": {
"description": "Unique bytewise-sorted Analysis Profile digests.",
"type": "array",
"items": {
"$ref": "#/$defs/Digest"
}
},
"artifacts": {
"description": "Query Artifacts.",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"diagnostic_logs": {
"description": "Diagnostic Log bundles.",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"quarantined_analyses": {
"description": "Quarantined Analyses.",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"usage": {
"description": "Logical and allocated usage.",
"$ref": "#/$defs/StorageUsage"
}
},
"required": [
"analyses",
"quarantined_analyses",
"artifacts",
"diagnostic_logs",
"usage",
"analysis_profile_sha256"
]
},
"CleanupTarget": {
"description": "Resolved cleanup target.",
"oneOf": [
{
"description": "Digest resolved from a caller Sample.",
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "sample"
},
"sha256": {
"description": "Resolved content identity.",
"$ref": "#/$defs/Digest"
},
"source_path": {
"description": "Exact caller path.",
"$ref": "#/$defs/TaggedPath"
}
},
"required": [
"kind",
"source_path",
"sha256"
]
},
{
"description": "Caller-supplied digest.",
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "digest"
},
"sha256": {
"description": "Selected content identity.",
"$ref": "#/$defs/Digest"
}
},
"required": [
"kind",
"sha256"
]
},
{
"description": "Entire Analysis Store.",
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "all"
}
},
"required": [
"kind"
]
}
]
},
"Digest": {
"description": "A lowercase SHA-256 digest.",
"type": "string"
},
"SandboxBackend": {
"description": "Sandbox backend.",
"oneOf": [
{
"description": "Bubblewrap namespaces.",
"type": "string",
"const": "bubblewrap"
},
{
"description": "Caller-supplied isolation.",
"type": "string",
"const": "external"
},
{
"description": "Isolation disabled.",
"type": "string",
"const": "off"
}
]
},
"SandboxProvenance": {
"description": "Worker sandbox provenance.",
"type": "object",
"properties": {
"backend": {
"description": "Selected backend.",
"$ref": "#/$defs/SandboxBackend"
},
"verification": {
"description": "Isolation verification state.",
"$ref": "#/$defs/SandboxVerification"
}
},
"required": [
"backend",
"verification"
]
},
"SandboxVerification": {
"description": "Sandbox verification state.",
"oneOf": [
{
"description": "Verified by `ghidr`.",
"type": "string",
"const": "verified"
},
{
"description": "Declared but not verifiable by `ghidr`.",
"type": "string",
"const": "unverified"
},
{
"description": "Explicitly disabled.",
"type": "string",
"const": "disabled"
}
]
},
"StorageUsage": {
"description": "Filesystem usage represented without implying freed space.",
"type": "object",
"properties": {
"allocated_bytes": {
"description": "Sum of Linux allocated blocks including directories.",
"type": "integer",
"format": "uint64",
"minimum": 0
},
"logical_bytes": {
"description": "Sum of file lengths.",
"type": "integer",
"format": "uint64",
"minimum": 0
}
},
"required": [
"logical_bytes",
"allocated_bytes"
]
},
"StoreSource": {
"description": "Analysis Store resolution source.",
"oneOf": [
{
"description": "Explicit `--store` flag.",
"type": "string",
"const": "cli"
},
{
"description": "`GHIDR_STORE` environment variable.",
"type": "string",
"const": "environment"
},
{
"description": "Explicit `XDG_CACHE_HOME` fallback.",
"type": "string",
"const": "xdg"
},
{
"description": "Home-directory fallback.",
"type": "string",
"const": "home_fallback"
}
]
},
"TaggedPath": {
"description": "A path preserving either UTF-8 text or exact Unix bytes.",
"oneOf": [
{
"description": "An unmodified UTF-8 path.",
"type": "object",
"properties": {
"encoding": {
"type": "string",
"const": "utf8"
},
"value": {
"type": "string"
}
},
"required": [
"encoding",
"value"
]
},
{
"description": "Standard padded Base64 over exact Unix path bytes.",
"type": "object",
"properties": {
"encoding": {
"type": "string",
"const": "unix_bytes_base64"
},
"value": {
"type": "string"
}
},
"required": [
"encoding",
"value"
]
}
]
},
"ToolProvenance": {
"description": "Minimal provenance available to non-Sample operations.",
"type": "object",
"properties": {
"adapter_protocol_version": {
"description": "Rust/Java protocol version.",
"type": "integer",
"format": "uint32",
"minimum": 0
},
"analysis_store": {
"description": "Selected Analysis Store.",
"$ref": "#/$defs/AnalysisStoreProvenance"
},
"ghidr_version": {
"description": "CLI package version.",
"type": "string"
},
"sandbox": {
"description": "Selected sandbox policy.",
"$ref": "#/$defs/SandboxProvenance"
}
},
"required": [
"ghidr_version",
"adapter_protocol_version",
"analysis_store",
"sandbox"
]
},
"Warning": {
"description": "Stable non-fatal warning.",
"type": "object",
"properties": {
"code": {
"description": "Stable machine identifier.",
"type": "string"
},
"details": {
"description": "Warning-specific context, always an object.",
"type": "object",
"additionalProperties": true
},
"message": {
"description": "Concise human context.",
"type": "string"
}
},
"required": [
"code",
"message",
"details"
]
}
}
}