cavctl

cavctl is the standalone Go CLI client for Cavaliba, versioned independently of the Cavaliba server itself (see the cavctl_supported_version field in /api/version/, which the server uses to warn on a client/server mismatch).

Version Numbering (X.Y.Z)

cavctl uses the same semantic versioning scheme as Cavaliba:

  • X (Major): breaking changes to command syntax, output shape, or config file format.
  • Y (Minor): new commands or flags, or a behavior change to an existing one.
  • Z (Patch): bug fixes and minor improvements.

Release

2.5.0

- FIX: option --delimiter check if load/rawfile and csv, error if missing 
- FIX: local detect BOM utf-8 (instead of requiring a utf-8-sig encoding) 
- REFACTOR:  --verbose option cleaner output (before/after)
- REFACTOR: --page, --size  client-side only
- REFACTOR: pass --schema server side, no local processing
- REFACTOR: pass --action server-side only

2.4.0

- new conf command: GET/POST /api/conf/ (read/write DB-persisted configuration entries)
- new --confprofile/-c flag: named config profile resolving to ~/.cavaliba/<name>.yaml
  (mutually exclusive with --conf)

2.3.0

- load: CSV cells containing "^" between values are auto-split into JSON arrays
  (cavctl has no access to the remote schema, so this is a plain string heuristic)
- load: new --no-multi (disable the auto-split above) and --multi-field (force specific
  fields to arrays regardless, even under --no-multi)

2.2.0

- rawfile command (renamed from "import"): POST a whole YAML/JSON/CSV file to
  /api/rawfile/ in a single request, server-side parsing, no client-side batching
- new load command: convert a YAML/JSON/CSV file (or inline --data-json/--data-yaml)
  into a JSON object list client-side, POST to /api/load/ in --batch-sized chunks,
  aggregate the results

2.1.0

- get -o csv: id/classname are always dropped from CSV output

2.0.0 (ALPHA)

- version subcommand renamed to remote (remote instance version/info)
- asset/instance commands merged into get (aliases removed - get is the only name now)
- new permission command
- new query/schema/key/id options for get

1.8.0

- launch pipeline tasks from the CLI, poll long-running tasks
- new --outfile option
- CSV reader accepts abnormal column counts and bare quotes without a full stop

1.7.0

- new group, role, permission subcommands (later merged into get at v2.0.0)
- check max supported cavctl version against the server ; displays a NOTICE on mismatch

1.6.1

- new --refs option (inline referenced assets) and --rev option (revision history)

1.5.0

- default config file renamed to default.yaml
- chunked CSV imports (--batch-size) - the precursor to the v2.2.0 load command

1.0 - init

- first golang cavctl CLI client, included alongside the Cavaliba server source