Files
invoiceninja-cli/CHANGELOG.md
T
awkawbandClaude Sonnet 5 a0a629cbfe Add credits, projects, tasks, vendors, and purchase orders
Five more resources following clients.rs's template exactly, same as
the previous batch. credits.rs is otherwise identical to quotes.rs
since Credit is also a type alias for Invoice in the SDK (same table,
distinguished by entity_type upstream).

Verified against a live local server: full create/list/get/update/
delete round trip for all five.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-26 16:49:39 -04:00

2.2 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. Pre-1.0, per GOALS.md, a minor release can still break flags or output — this file is where that gets written down instead of discovered at the command line.

[Unreleased]

Added

  • Eleven resources, each with list (with --all for every page, --status, and --param key=value for anything ListParams doesn't have a typed setter for), get, create, update, and delete: clients, invoices, quotes, credits, payments, products, expenses, projects, tasks, vendors, purchase-orders. quotes and credits are invoices under different endpoints — Invoice Ninja stores all three in the same table, distinguished by entity_type, so Quote and Credit are type aliases for Invoice in the SDK and commands/quotes.rs / commands/credits.rs are otherwise identical to commands/invoices.rs.
  • update fetches the current record, shallow-merges the caller's --data/--file JSON on top, and writes the merged result back, rather than sending the patch alone — Invoice Ninja's PUT is a full replace. See CLAUDE.md and the comment in src/body.rs.
  • --output json on every command for the model's full Serialize output (including extra), suitable as input to a later update/create; the default table view is a convenience subset of columns.
  • Global --base-url, --token, and --api-password flags, each with a matching environment variable (IN_BASE_URL, IN_API_TOKEN, IN_API_PASSWORD); both secrets are hidden from --help and any echoed default.
  • Depends on invoiceninja-sdk 0.2.0 from crates.io.
  • A flake.nix with devShells.default, packages.default (built with a pinned toolchain), and overlays.default (for pulling invoiceninja-cli into another flake's own pkgs).
  • CI on GitHub Actions, mirroring invoiceninja-sdk's own ci.yml: a pinned-toolchain test job, a build-only msrv job on the declared 1.88 floor, and an advisory stable job.