Skip to content

Releases: zsoftly/zcp-cli

0.0.9

14 Apr 18:36
a121795

Choose a tag to compare

zcp 0.0.9 Release Notes

What's New

Environment variable support

All create commands now respect environment variables for the three most commonly repeated flags. Set them once and every command picks them up:

export ZCP_CLOUD_PROVIDER=zcp
export ZCP_REGION=yow-1
export ZCP_PROJECT=my-project

# Before: every command needed all 3 flags
zcp instance create --name my-vm --cloud-provider zcp --region yow-1 --project my-project --template ubuntu-22f --plan bp-4vc-8gb --billing-cycle hourly --storage-category nvme --blockstorage-plan 50-gb-2

# Now: just the resource-specific flags
zcp instance create --name my-vm --template ubuntu-22f --plan bp-4vc-8gb --billing-cycle hourly --storage-category nvme --blockstorage-plan 50-gb-2

Works across all create commands: instance, volume, vpc, network, kubernetes, dns, loadbalancer, autoscale, snapshot, vm-snapshot, vm-backup, virtual-router, vpn, iso, affinity-group, template, backup.

Zero-config mode

The CLI can now run with just environment variables — no config file needed:

export ZCP_BEARER_TOKEN=your-token
export ZCP_API_URL=https://api.zcp.zsoftly.ca
zcp region list

All new environment variables

Variable Overrides Example
ZCP_BEARER_TOKEN Profile bearer_token export ZCP_BEARER_TOKEN=abc123
ZCP_API_URL Profile api_url export ZCP_API_URL=https://...
ZCP_PROFILE Active profile (when --profile not set) export ZCP_PROFILE=staging
ZCP_PROJECT --project flag export ZCP_PROJECT=my-project
ZCP_REGION --region flag export ZCP_REGION=yow-1
ZCP_CLOUD_PROVIDER --cloud-provider flag export ZCP_CLOUD_PROVIDER=zcp
ZCP_OUTPUT --output flag export ZCP_OUTPUT=json
ZCP_DEBUG --debug flag export ZCP_DEBUG=true

Precedence: CLI flag > environment variable > profile config > default.

Bug fix: Kubernetes create

--billing-cycle validation was accidentally removed in v0.0.8. Restored — the API requires it (confirmed via Postman collection).


Installation

macOS/Linux/WSL:

curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bash

Windows:

irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iex

Full Changelog: 0.0.8...0.0.9

0.0.8

09 Apr 14:36
e365769

Choose a tag to compare

zcp 0.0.8 Release Notes

What's New

VPC create fixed

VPC creation now works with the correct payload structure:

zcp vpc create \
  --name my-vpc \
  --cloud-provider nimbo \
  --region noida \
  --project default-124 \
  --plan vpc-1 \
  --network-address 10.1.0.1 \
  --size 16 \
  --billing-cycle hourly \
  --storage-category nvme

Key: --network-address is just the IP (not CIDR notation), --size is the mask separately.

ACL list creation fixed

zcp vpc acl-create and zcp acl create now correctly create ACL lists:

zcp vpc acl-create my-vpc --name allow-web --description "Allow HTTP"
zcp acl create my-vpc --name private-acl --description "Deny all inbound"

Create commands gain required flags

--cloud-provider, --region, --project added to: network, vpc, virtualrouter, dns, vpn, autoscale create commands.

Volume Size type fix

Volume list no longer fails when the API returns size as a number.

Roadmap published

See docs/roadmap.md for what's working, what's coming, and what's blocked on the platform.


Known limitations (blocked on platform)

These require API changes from the STKCNSL team:

  • No DELETE endpoints for VPCs, networks, virtual routers, IP addresses, or ACL lists
  • No ACL rule CRUD — can create ACL lists but not rules inside them
  • Network create (isolated)networkofferingid not resolvable for nimbo/noida
  • DNS create — needs admin-side cloud_provider_setup provisioning
  • billing cancel-service for VPCs — returns "service not found"

See docs/roadmap.md for full details.


Installation

macOS/Linux/WSL:

curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bash

Windows:

irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iex

Full Changelog: 0.0.7...0.0.8

0.0.7

08 Apr 18:07
e8f04c6

Choose a tag to compare

zcp 0.0.7 Release Notes

What's New

8 new commands

Command Description
zcp region list List available regions (replaces zone list)
zcp profile-info User profile, company details, time settings, API access, activity logs (2FA status via get)
zcp vm-backup list/create VM backup operations
zcp cloud-provider list List available cloud providers
zcp server list List available servers
zcp currency list List available currencies
zcp billing-cycle list List available billing cycles
zcp storage-category list List available storage categories

Dead code removed

11 commands and 13 API packages that still pointed at old /restapi/ endpoints have been removed. These commands were broken since v0.0.6 and would return 403 errors:

zone, offering, resource, host, cost, usage, internal-lb, snapshot-policy, security-group, tag, admin

Use the STKCNSL replacements instead:

Old command Replacement
zcp zone list zcp region list
zcp offering compute zcp plan vm
zcp offering storage zcp plan storage
zcp cost summary zcp billing costs
zcp usage list zcp billing monthly-usage
zcp tag create zcp instance tag-create
zcp admin list-accounts Not available via API

Auth validate fixed

zcp auth validate now correctly hits the STKCNSL region API instead of the dead zone API.


42 total commands

The CLI now has 42 commands, all backed by the STKCNSL API with zero legacy code remaining.


Installation

Quick Install (Recommended)

Windows:

irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iex

macOS/Linux/WSL:

curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bash

Manual Install

Download the binary for your platform from the assets below, make it executable, and move it to your PATH.

Platforms

OS Architecture Binary
Linux amd64 zcp-linux-amd64
Linux arm64 zcp-linux-arm64
macOS amd64 zcp-darwin-amd64
macOS arm64 zcp-darwin-arm64
Windows amd64 zcp-windows-amd64.exe
Windows arm64 zcp-windows-arm64.exe

Full Changelog: 0.0.6...0.0.7

0.0.6

08 Apr 13:31
4ee62c1

Choose a tag to compare

zcp 0.0.6 Release Notes

What's New

API backend migration

The CLI now communicates with the STKCNSL API backend, replacing the previous STKBILL backend. This is a breaking change for configuration files — existing profiles using apikey/secretkey must be recreated with bearer_token.

Bearer token authentication

Authentication now uses a single bearer token instead of separate API key and secret key. Update your profiles:

zcp profile add default --bearer-token YOUR_TOKEN

Config files now use bearer_token instead of apikey/secretkey.

15 new command groups

Command Description
zcp dns DNS domain and record management
zcp project Project management with users and dashboards
zcp monitoring Global and per-VM resource monitoring
zcp billing Costs, invoices, subscriptions, coupons, budget alerts
zcp support Support tickets, replies, feedback, FAQs
zcp autoscale VM autoscale groups with policies and conditions
zcp dashboard Account service counts overview
zcp plan Service plans for all resource types
zcp store Store items and checkout
zcp marketplace Marketplace app listing
zcp product Product categories and listing
zcp iso ISO image management
zcp affinity-group Affinity group management
zcp backup VM and block storage backups
zcp region Region listing

Expanded existing commands

  • instance: reboot, reset, tags, change-hostname, change-password, change-plan, change-OS, add-network, addons
  • instance create: now requires --blockstorage-plan flag (e.g. 50-gb-2, 100gb)
  • project: added delete subcommand with confirmation prompt
  • billing cancel-service: now requires --service flag and supports --reason, --type
  • network: egress firewall rule management
  • vpc: ACL management, VPN gateway management
  • loadbalancer: rule creation, VM attachment to rules
  • Discovery: cloud-providers, currencies, storage-categories, billing-cycles, unit-pricings

Auto-approve for CI/CD

All destructive commands now respect the global --auto-approve (or -y) flag, skipping confirmation prompts. Useful for scripting and automation pipelines:

zcp -y project delete my-project
zcp -y billing cancel-service my-vm --service "Virtual Machine"

RESTful API with pagination

All endpoints now use clean RESTful paths with slug identifiers. List responses include pagination metadata (current_page, per_page, total).

VM creation example

zcp instance create \
  --name my-vm \
  --cloud-provider nimbo \
  --project my-project \
  --region noida \
  --template ubuntu-22f \
  --plan bp-4vc-8gb \
  --billing-cycle hourly \
  --storage-category nvme \
  --blockstorage-plan 50-gb-2 \
  --ssh-key my-key

Breaking Changes

  • Config format: apikey/secretkey replaced by bearer_token. Run zcp profile add to reconfigure.
  • Zone commands: zcp zone list still works but zcp region list is the new canonical command.
  • UUID flags: Flags like --zone-uuid, --uuid replaced by slug-based identifiers.

Installation

Quick Install (Recommended)

Windows:

irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iex

macOS/Linux/WSL:

curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bash

Manual Install

Download the binary for your platform from the assets below, make it executable, and move it to your PATH.

Platforms

OS Architecture Binary
Linux amd64 zcp-linux-amd64
Linux arm64 zcp-linux-arm64
macOS amd64 zcp-darwin-amd64
macOS arm64 zcp-darwin-arm64
Windows amd64 zcp-windows-amd64.exe
Windows arm64 zcp-windows-arm64.exe

Full Changelog: 0.0.5...0.0.6

0.0.5

31 Mar 18:50

Choose a tag to compare

zcp 0.0.5 Release Notes

What's New

Delete verification

Delete commands now verify the resource is actually removed. Previously, the API could
return success (HTTP 204) while silently failing — the CLI would report "deleted" when
the resource was still there. Now affected commands check after delete and warn if the
resource still exists.

Applies to: vpc delete, network delete, volume delete, security-group delete

Volume list deduplication

The API sometimes returns duplicate entries for the same volume. The CLI now deduplicates
by UUID before displaying results.

Friendlier error messages

  • snapshot create on a detached volume now says:
    volume must be attached to a running instance before taking a snapshot
    instead of the raw CloudStack error.
  • firewall list on accounts with no IP addresses now returns an empty table
    instead of API error 412: Invalid IpAddress Details.

Installation

Quick Install (Recommended)

Windows:

irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iex

macOS/Linux/WSL:

curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bash

Manual Install

Download the binary for your platform from the assets below, make it executable, and move it to your PATH.

Platforms

OS Architecture Binary
Linux amd64 zcp-linux-amd64
Linux arm64 zcp-linux-arm64
macOS amd64 zcp-darwin-amd64
macOS arm64 zcp-darwin-arm64
Windows amd64 zcp-windows-amd64.exe
Windows arm64 zcp-windows-arm64.exe

Full Changelog: 0.0.4...0.0.5

0.0.4

27 Mar 13:44

Choose a tag to compare

zcp 0.0.4 Release Notes

What's New

VPC tier network commands

Create and update networks inside a VPC using the dedicated StackBill endpoint
(/restapi/vpc/createVpcNetwork):

zcp vpc create-network --vpc <uuid> --name my-tier --offering <uuid> \
  --gateway 10.1.1.1 --netmask 255.255.255.0 --acl <uuid>

zcp vpc update-network <network-uuid> --offering <uuid> --name new-name

This resolves the VPC tier creation issue — the previous network create endpoint
(/restapi/network/createNetwork) is for isolated networks only.


Installation

Quick Install (Recommended)

Windows:

irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iex

macOS/Linux/WSL:

curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bash

Manual Install

Download the binary for your platform from the assets below, make it executable, and move it to your PATH.

Platforms

OS Architecture Binary
Linux amd64 zcp-linux-amd64
Linux arm64 zcp-linux-arm64
macOS amd64 zcp-darwin-amd64
macOS arm64 zcp-darwin-arm64
Windows amd64 zcp-windows-amd64.exe
Windows arm64 zcp-windows-arm64.exe

Full Changelog: 0.0.3...0.0.4

0.0.3

27 Mar 04:15

Choose a tag to compare

zcp 0.0.3 Release Notes

What's New

API field type fixes

Fixed JSON unmarshal errors across multiple resources where the live API returns
different types than the OpenAPI spec documents:

  • volumecreatedTimeStamp (string to int64)
  • hostcpuCores, vmCount (int to string)
  • kubernetesminMemory, minCpuNumber (string to int)
  • vpc / network — CIDR field name corrected (getcIDR to cIDR)

New host list command

zcp host list

Lists all hypervisor hosts with CPU cores, VM count, and status.

Network create supports VPC tiers

zcp network create --name my-tier --offering <uuid> --vpc <uuid> \
  --gateway 10.1.1.1 --netmask 255.255.255.0

New flags: --vpc, --gateway, --netmask, --acl

Resource quota subcommand

zcp resource quota

Integration test suite

Full lifecycle tests against the live API:

go test -tags integration -v -timeout 30m ./tests/integration/

Other fixes

  • snapshot-policy list now requires --volume (matches API spec)
  • network.IsPublic moved from body to query parameter (matches API spec)
  • VPC description and publicLoadBalancerProvider now required in create

Installation

Quick Install (Recommended)

Windows:

irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iex

macOS/Linux/WSL:

curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bash

Manual Install

Download the binary for your platform from the assets below, make it executable, and move it to your PATH.

Platforms

OS Architecture Binary
Linux amd64 zcp-linux-amd64
Linux arm64 zcp-linux-arm64
macOS amd64 zcp-darwin-amd64
macOS arm64 zcp-darwin-arm64
Windows amd64 zcp-windows-amd64.exe
Windows arm64 zcp-windows-arm64.exe

Full Changelog: 0.0.2...0.0.3

0.0.2

24 Mar 02:47

Choose a tag to compare

zcp 0.0.2 Release Notes

What's New

Default zone per profile

Stop passing --zone on every command. Set it once:

zcp zone list                  # find your zone UUID
zcp zone use <uuid>            # save it to your active profile

Every command that previously required --zone now falls back to the profile default
automatically. You can still override per-command:

zcp instance list              # uses default zone
zcp instance list --zone <uuid>  # overrides for this call

To clear the default:

zcp zone use ""

Installation

Quick Install (Recommended)

Windows:

irm https://github.com/zsoftly/zcp-cli/releases/latest/download/install.ps1 | iex

macOS/Linux/WSL:

curl -fsSL https://github.com/zsoftly/zcp-cli/releases/latest/download/install.sh | bash

Manual Install

Download the binary for your platform from the assets below, make it executable, and move it to your PATH.

Platforms

OS Architecture Binary
Linux amd64 zcp-linux-amd64
Linux arm64 zcp-linux-arm64
macOS amd64 zcp-darwin-amd64
macOS arm64 zcp-darwin-arm64
Windows amd64 zcp-windows-amd64.exe
Windows arm64 zcp-windows-arm64.exe

Full Changelog: 0.0.1...0.0.2

0.0.1

23 Mar 20:55

Choose a tag to compare