Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Changelog

All notable changes to the DeployHQ CLI are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
While the CLI is pre-1.0, minor versions may carry breaking changes to the public
`pkg/sdk` surface; these are always called out under **Breaking (SDK)**.

## [0.20.0] - 2026-07-14

Broad expansion of API coverage (DHQ-639): account-level resources, template
sub-resources, managed hosting, and project/server actions. See #31, #32, #33.

### Breaking (SDK)

These affect external importers of `github.com/deployhq/deployhq-cli/pkg/sdk` and
scripts that parse the JSON output of existing commands. They correct types that
never matched the live API (the old fields were populated from a response shape
the backend does not return), so end-user behaviour of `dhq launch` is fixed
rather than regressed.

- **`ManagedHostingSize`**: renamed `Description` → `Label` and
`PriceMonthly` → `MonthlyCost`; removed `PriceHourly`, `Memory`, `VCPUs`,
`Disk`; added `Currency`. Matches the `{ "sizes": [...] }` envelope from
`GET /managed_hosting/sizes`.
- **`ManagedHostingRegion`**: removed `Available`; added `Flag` and `Country`.
Regions are now served grouped (`{ "grouped_regions": {...} }`).
- **`Client.UpdateConfigFile`**: now takes `ConfigFileUpdateRequest` (all-pointer
fields for partial updates) instead of `ConfigFileCreateRequest`.
- **`dhq launch --dry-run --json`**: `monthly_cost` is now currency-aware
(e.g. `£12.00`, `12.00 SEK`) instead of always `$X.XX`. Update any parser that
assumes a leading `$`.
Comment on lines +15 to +33

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Separate the CLI breaking change from the SDK section.

dhq launch --dry-run --json changes the CLI JSON contract, not pkg/sdk. Move this bullet into a dedicated Breaking (CLI) section so SDK consumers and JSON-output parsers can identify the migration they need.

Suggested structure
 ### Breaking (SDK)
 
 - **Client.UpdateConfigFile**: now takes `ConfigFileUpdateRequest` ...
 
+### Breaking (CLI)
+
+- **`dhq launch --dry-run --json`**: `monthly_cost` is now currency-aware ...
+
 ### Added
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Breaking (SDK)
These affect external importers of `github.com/deployhq/deployhq-cli/pkg/sdk` and
scripts that parse the JSON output of existing commands. They correct types that
never matched the live API (the old fields were populated from a response shape
the backend does not return), so end-user behaviour of `dhq launch` is fixed
rather than regressed.
- **`ManagedHostingSize`**: renamed `Description``Label` and
`PriceMonthly``MonthlyCost`; removed `PriceHourly`, `Memory`, `VCPUs`,
`Disk`; added `Currency`. Matches the `{ "sizes": [...] }` envelope from
`GET /managed_hosting/sizes`.
- **`ManagedHostingRegion`**: removed `Available`; added `Flag` and `Country`.
Regions are now served grouped (`{ "grouped_regions": {...} }`).
- **`Client.UpdateConfigFile`**: now takes `ConfigFileUpdateRequest` (all-pointer
fields for partial updates) instead of `ConfigFileCreateRequest`.
- **`dhq launch --dry-run --json`**: `monthly_cost` is now currency-aware
(e.g. `£12.00`, `12.00 SEK`) instead of always `$X.XX`. Update any parser that
assumes a leading `$`.
### Breaking (SDK)
These affect external importers of `github.com/deployhq/deployhq-cli/pkg/sdk` and
scripts that parse the JSON output of existing commands. They correct types that
never matched the live API (the old fields were populated from a response shape
the backend does not return), so end-user behaviour of `dhq launch` is fixed
rather than regressed.
- **`ManagedHostingSize`**: renamed `Description``Label` and
`PriceMonthly``MonthlyCost`; removed `PriceHourly`, `Memory`, `VCPUs`,
`Disk`; added `Currency`. Matches the `{ "sizes": [...] }` envelope from
`GET /managed_hosting/sizes`.
- **`ManagedHostingRegion`**: removed `Available`; added `Flag` and `Country`.
Regions are now served grouped (`{ "grouped_regions": {...} }`).
- **`Client.UpdateConfigFile`**: now takes `ConfigFileUpdateRequest` (all-pointer
fields for partial updates) instead of `ConfigFileCreateRequest`.
### Breaking (CLI)
- **`dhq launch --dry-run --json`**: `monthly_cost` is now currency-aware
(e.g. `£12.00`, `12.00 SEK`) instead of always `$X.XX`. Update any parser that
assumes a leading `$`.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CHANGELOG.md` around lines 15 - 33, Restructure the CHANGELOG
breaking-changes section by moving the `dhq launch --dry-run --json`
monthly_cost bullet out of `Breaking (SDK)` and into a new dedicated `Breaking
(CLI)` section. Keep the SDK bullets together and preserve the existing
currency-aware migration details in the CLI section.


### Added

- **Account resources**: `dhq folders`, `dhq users`, `dhq account`,
`dhq profile`, `dhq api-keys`, `dhq teams` (account-level permission groups),
and `dhq ssh-keys download` (writes with secure `0600` permissions).
- **Project actions**: `dhq projects regenerate-key`,
`dhq projects undeployed-changes`, `dhq projects ai-overview`.
- **Server actions**: `dhq servers from-global`, `dhq servers metrics` (beta).
- **Global links**: `dhq config-files link-global|unlink-global` and
`dhq ssh-commands link-global|unlink-global`.
- **Managed hosting**: `dhq hosted-resources list|show|sync|retry-provision` and
`dhq managed-hosting regions|sizes`.
- **Template sub-resources**: `dhq templates {config-files, excluded-files,
integrations, commands, build-commands, build-cache-files, build-known-hosts,
build-languages, build-configuration, servers, server-groups}`.
- **Utilities**: `dhq ip-ranges`, `dhq plans`, `dhq invoices list|download`,
`dhq detect`, `dhq beta enroll`.
- **SDK**: `NewPublic(account, …)` client path for public, no-auth endpoints
(`ip-ranges`, `plans`).

### Changed

- `dhq config-files update` now performs partial updates — unset `--path`/`--body`
flags are no longer sent, so they are left untouched server-side instead of
being cleared.

[0.20.0]: https://github.com/deployhq/deployhq-cli/releases/tag/v0.20.0
Loading