DevOp.DK.Plus.Cli is the .NET 10 global tool named devop-dk. It uses the same typed client, DTO mappings, validation, resilience, and safe diagnostics as library consumers.
dotnet tool install --global DevOp.DK.Plus.Cli
devop-dk login
devop-dk connection test
Already installed?
devop-dk update
devop-dk --version
devop-dk update runs the supported dotnet tool update flow against NuGet.org and returns its exit code; --version, --prerelease, and --tool-path select a specific version or a custom installation. dotnet tool update --global DevOp.DK.Plus.Cli is equivalent. Start a new devop-dk process after an update.
| Guide | Use it for |
|---|---|
| Setup and authentication | Installation, login, environment secrets, language, timeouts, retries, and diagnostics |
| Output, columns, and files | Personalized table columns, JSON output, the Stored Date column, malformed product rows, PDF/HTML exports, and overwrite behavior |
| Command reference | Command groups, discovery, and common read/write workflows |
| Automation and safety | stdout/stderr contracts, confirmations, exit codes, correlation IDs, and secret handling |
Typed list tables keep their familiar default columns but can be personalized locally:
devop-dk config columns show
devop-dk config columns show sales.person
devop-dk config columns select sales.person
devop-dk config columns set sales.person 1,4,6,5,2
The selector shows localized display labels together with stable property paths. Numeric IDs are convenient input shortcuts; saved configuration uses the property names. --json output is unchanged.
product list skips malformed DK Plus rows without an ItemCode, reports their bounded RecordId list on stderr, and continues returning valid products. File-producing commands create missing parent directories automatically; --force is needed only to replace an existing file.
devop-dk product list --take 100
devop-dk sales order pdf 962 --output ./documents/order-962.pdf
devop-dk company show
devop-dk customer list --take 100
devop-dk customer get C-100
devop-dk customer get C-100 --expand Settings,Contacts
devop-dk customer contact list C-100
devop-dk product price ITEM-1 --quantity 2 --customer C-100
devop-dk sales order list --take 25 --json
devop-dk permission show
customer get keeps its detail table compact; --expand adds tables for Settings, Contacts, Receivers, Memos, Properties, Changes, or Attachments (or All) and cannot be combined with --json. Settings was named Options before 0.3.0. JSON output is the flat DkPlus* shape with enum member names (for example "gender":"Company").
Append --help at any level to discover options, for example devop-dk sales order --help. All list commands default to a bounded --take 100; on the fluent list commands --take accepts 1 to 1000, and --all reads every record after a confirmation (see Reading more than 100 records).
Prefer cmdlets to shell commands? The DevOp.DK.Plus PowerShell module has one cmdlet for every devop-dk command. It shares the CLI's stored login and configuration, so after devop-dk login the cmdlets work without another sign-in.
Install-Module DevOp.DK.Plus -Scope CurrentUser
Get-Customer -Number C-100
Get-Quote -Number 12345 | Update-Quote -Customer C-100
The cmdlet reference maps each CLI command to its cmdlet. Cmdlets use -WhatIf and -Confirm instead of --yes, and PowerShell formatting instead of column profiles.
Create and update commands accept direct options or a JSON document and run without --yes; the update target is a positional argument and the document is sparse:
devop-dk customer update C-100 --file customer-update.json
devop-dk customer contact create C-100 --number 1 --name "Accounts payable" --email [email protected]
devop-dk product update ITEM-1 --description "Renamed item" --price 120
devop-dk project work-request list --project P-100
project work-request replaces the former project request group. Customer contacts and item receivers are managed with their own customer contact and customer receiver commands, not through the customer document. See the command reference for the document types and Models and writes for the sparse-update rules. Moving from 0.3? The 0.4 upgrade checklist lists the changed documents and commands. Moving from 0.4? The 0.5 upgrade checklist lists the new --take limit, the --all/--yes rule, and the Windows login location.
JSON and requested content are written to stdout. Warnings, errors, and explicitly enabled diagnostics are written to stderr. Destructive and safety-sensitive remote actions require --yes; ordinary create and update commands do not. In PowerShell the same split applies: ordinary New- and Update- cmdlets run directly, and cmdlets for the commands that need --yes ask for confirmation unless you pass -Confirm:$false (PowerShell safety).