5.1 KiB
5.1 KiB
Info Command
Shows what's in an archive file: metadata, observation timeline, and file statistics.
Basic Usage
json-archive info file.archive
json-archive info --output json file.archive
The command reads the entire archive file to collect observation data, so expect memory usage proportional to file size.
Output Modes
Human-readable (default)
json-archive info docs/demo/v1.json.archive
Archive: docs/demo/v1.json.archive
Created: Sun 15:23:40 28-Sep-2025
3 observations from Sun 15:23:40 28-Sep-2025 to Sun 15:23:40 28-Sep-2025
# Observation ID Date & Time Changes JSON Size
────────────────────────────────────────────────────────────────────────────────────────
0 (initial) Sun 15:23:40 28-Sep-2025 - 52 bytes
1 obs-c4636428-1400-44... Sun 15:23:40 28-Sep-2025 3 86 bytes
2 obs-389b4a7c-4d78-42... Sun 15:23:40 28-Sep-2025 7 94 bytes
Total archive size: 1.1 KB (0 snapshots)
To get the JSON value at a specific observation:
json-archive state --index <#> docs/demo/v1.json.archive
json-archive state --id <observation-id> docs/demo/v1.json.archive
Examples:
json-archive state --index 0 docs/demo/v1.json.archive # Get initial state
json-archive state --index 2 docs/demo/v1.json.archive # Get state after observation 2
Use this mode when you want to quickly understand what's in an archive or debug observation timelines.
JSON output
Use JSON output for scripting, monitoring, or feeding data into other tools.
json-archive info --output json docs/demo/v1.json.archive
{
"archive": "docs/demo/v1.json.archive",
"created": "2025-09-28T15:23:40.633960+00:00",
"file_size": 1096,
"snapshot_count": 0,
"observations": [
{
"index": 0,
"id": "initial",
"timestamp": "2025-09-28T15:23:40.633960+00:00",
"changes": 0,
"json_size": 52
},
{
"index": 1,
"id": "obs-c4636428-1400-44d7-b30f-1c080c608e3c",
"timestamp": "2025-09-28T15:23:40.634520+00:00",
"changes": 3,
"json_size": 86
}
]
}
Field Reference
Human-readable fields
- #: Index number (0-indexed) for use with
--indexflag - Observation ID: Unique identifier for use with
--idflag - Date & Time: When the observation was recorded
- Changes: Number of fields modified (dash for initial state)
- JSON Size: Size in bytes of the reconstructed JSON at this observation
JSON output fields
- archive: File path
- created: Archive creation timestamp (ISO-8601)
- file_size: Archive file size in bytes
- snapshot_count: Number of snapshots for seeking optimization
- observations[]: Array of observation metadata
- index: 0-based position for
--indexaccess - id: Unique ID for
--idaccess ("initial" for index 0) - timestamp: ISO-8601 timestamp
- changes: Change count (0 for initial)
- json_size: Reconstructed JSON size in bytes
- index: 0-based position for
Practical Use Cases
Monitoring archive growth
# Archive size and observation count
json-archive info --output json data.json.archive | jq '{file_size, observation_count: (.observations | length)}'
Finding large observations
# Observations with JSON size > 1KB
json-archive info --output json data.json.archive | jq '.observations[] | select(.json_size > 1024)'
Performance Characteristics
- Memory usage: Loads entire archive into memory to reconstruct states
- I/O pattern: Single full file read, no seeking
- CPU usage: Minimal - mostly JSON parsing and formatting
For archives larger than available RAM, consider using json-archive state with specific observation IDs instead of getting full timeline info.
Error Cases
Missing archive file
$ json-archive info nonexistent.archive
error E051: Path not found
I couldn't find the archive file: nonexistent.archive
Make sure the file path is correct and the file exists.
Check for typos in the filename.
Corrupt archive header
$ json-archive info corrupted.archive
error E003: Missing header
I couldn't parse the header: unexpected character at line 1
The archive file appears to be corrupted or not a valid json-archive file.
Invalid output format
$ json-archive info --output xml data.json.archive
# Silently falls back to human-readable format
# (no validation on output parameter)
Known Issues
Command reference bug: The human-readable output currently shows json-archive get commands in the usage examples, but the correct command is json-archive state. This is a display bug - the actual functionality is unaffected.
See Also
json-archive state- Retrieve JSON data at specific observations- File Format Specification - Archive format details
- Getting Started Guide - Basic usage examples