Skip to content
Aa

Command reference

Use xcsh blindfold <operation> --help or xcsh request secrets <operation> --help for full command help.

CommandRequired inputDefault result
blindfold public-keyAuthenticated tenantsnake_case JSON public-key document.
blindfold policyAuthenticated tenantsnake_case JSON policy; default shared/ves-io-allow-volterra.
blindfold encryptRaw file/stdin; authenticated tenant or paired public documentsstring:/// location; no tenant write.
blindfold certificateName, PEM chain/key or single-key PKCS#12Validated JSON manifest; no tenant write.
blindfold createCertificate inputs and an absent owned nameOne creation and named readback.
blindfold replaceCertificate inputs and an existing owned nameOne replacement and named readback; preserves writable metadata and certificate options.
request secrets get-public-keyAuthenticated tenantcamelCase YAML public-key document.
request secrets get-policy-documentAuthenticated tenant and --namecamelCase YAML policy; namespace defaults to default.
request secrets encryptRaw file/stdin; authenticated tenant or paired public documentsBare-base64 text; no tenant write.

For the request-secrets TLS policy, specify --namespace shared --name ves-io-allow-volterra. Preview combined create or replace with --dry-run client before writing; for a referenced certificate, replacement requires the same key algorithm.

FlagUse
--context-name NAMEAssert the current online context; does not switch it. Rejected offline.
--policy NAMESPACE/NAMEPolicy for canonical retrieval/encryption or certificate operations; defaults to shared/ves-io-allow-volterra. Conflicts with explicit policy-retrieval --namespace/--name.
--name NAME, -n NAMESPACECertificate name/namespace, or policy retrieval target. Certificate namespace otherwise uses XCSH_NAMESPACE.
--key-version UINT32Public-key retrieval: 0–4294967295; zero uses the server default, positive values require an exact returned version.
--input FILERaw encryption; alternative to one positional filename, -, or redirected stdin.
--public-key FILE, --policy-document FILERaw encryption only; required together for offline processing.
--cert FILE, --key FILE, --bundle FILENative certificate operations: PEM chain/key or PKCS#12, never both forms.
--passphrase-env NAMEEnvironment-variable name containing the protected-key or bundle password.
--output json|yaml, --outfmt json|yamlPublic-document format; --outfmt belongs to request-secrets and conflicts with --output. Neither selects ciphertext encoding.
--encoding base64|locationText encoding for raw encryption.
--output-file FILESave the artifact; stdout becomes a public JSON report. Conflicts with --json.
--outfile FILERequest-secrets encryption: raw binary envelope; conflicts with explicit --encoding, --output-file, or --json. Default stdout is empty.
--jsonPublic report only; excludes artifact material and conflicts with --output/--output-file. Encryption without an artifact destination does not retain ciphertext.
--result-file FILESave a public JSON report separately from the artifact; also allowed with --outfile.
--dry-run clientNative certificate operations: validate without a tenant write; create/replace also inspect the target.

Blindfold artifact/report files are atomic mode-0600 writes to new paths in an existing directory. Existing files and symlinks fail; choose fresh filenames. Generic resource reports may contain complete manifests, diffs, and ciphertext, so keep them private.

A location contains one string:/// prefix plus base64 encrypted bytes. Add that prefix to bare-base64 output, trimming the final newline, before using spec.private_key.blindfold_secret_info.location. Binary output contains the encrypted bytes directly. spec.certificate_url holds string:/// plus base64 PEM encoding of the public chain. xcsh has no decryption operation.

InputContract
Native certificate keysRSA 2048–8192 bits; EC P-256 or P-384.
Certificate chainPEM, leaf first, valid issuer names/signatures and validity dates; matching private key.
Protected inputsProtected PEM or PKCS#12 with exactly one private key, handled by native certificate operations.
Public documentsOne JSON/YAML document; known camelCase/snake_case fields and API data wrapper accepted. Conflicting aliases, duplicate keys, multiple documents, and mismatched tenants fail.
Raw inputBinary-safe file or redirected stdin; one positional input or --input, never both. Use -- before dash-prefixed filenames. Interactive missing input fails.
File sizeAt most 2 MiB per native input file.
Encoded sizeAt most 131072 bytes each for the encrypted location and encoded certificate chain; no override.

Blindfold reports exclude private keys and encrypted payloads. prepared confirms local preparation; combined create/replace returns accepted when named readback matches the submitted certificate and encrypted key. Its readiness: unverified requires endpoint verification. Generic apply returns created, updated, or unchanged as described in Certificate use.

Exit codeMeaning
0Success.
1Operational failure: input validation, API failure, or unresolved write outcome.
2Usage error: missing inputs or conflicting flags.
130Ctrl+C cancellation.

Read stderr, correct the input or authentication, and retry with fresh artifact paths. For uncertain create/replace outcomes, inspect the named resource before retrying: cancellation or a later failure does not undo an API write. A fingerprint mismatch requires checking the certificate reference and propagation before trusting the endpoint.