JSON is probably the right approach, it already handles binary as a value
using Base64 encoding.
However, passing JSON on the command line is tricky with the quoting and
it might need to be on one line. I think the best approach here is for the
client tool to read the JSON from a file.
I asked Gemini to create a JSON schema (below) using Base64 encoding and
only requiring the row.
{
"$schema": "https://json-schema.org",
"title": "AccumuloKeyBase64RowRequired",
"type": "object",
"description": "Accumulo Key object with base64 binary fields where only
the row is required",
"properties": {
"row": {
"type": "string",
"contentEncoding": "base64",
"description": "Base64 encoded row ID byte array"
},
"columnFamily": {
"type": "string",
"contentEncoding": "base64",
"description": "Base64 encoded column family byte array"
},
"columnQualifier": {
"type": "string",
"contentEncoding": "base64",
"description": "Base64 encoded column qualifier byte array"
},
"columnVisibility": {
"type": "string",
"description": "Plain ASCII string representing security expressions"
},
"timestamp": {
"type": "integer",
"minimum": 0,
"description": "64-bit millisecond epoch version timestamp"
}
},
"required": [
"row"
]
}
On Fri, Aug 14, 2026 at 5:11 PM Christopher <[email protected]> wrote:
> Accumulo Devs,
>
> In the context of my comment at
> https://github.com/apache/accumulo/pull/5959#pullrequestreview-4941125333,
> I was wondering if anybody had any ideas for a standard KEYSPEC format
> to express an Accumulo entry key in a standard way for client tools.
> Is JSON the right approach? Or some standard delimiter with special
> characters to denote binary? I feel like there's a bunch of options
> here, but if we can formalize the spec, it would make feature
> decisions for CLI tools and parsing implementations easier.
>
> Thoughts?
>