Releases: DefangLabs/defang
nightly: chore: add deployment_id to ProjectUpdate proto (#1942)
Defang CLI
This is the Command Line Interface (CLI) for Defang. This is a beta version and is provided as-is, intended primarily for testing purposes.
For alternative installation methods, please check the README.
Manual installation Instructions
- Download the archive file for your Operating System.
- Extract the archive. This should reveal the binary file for Defang.
- Manually place the binary file in a directory that's included in your system's
PATHenvironment variable.
Additional Step for MacOS Users
If you're having trouble running the binary on MacOS, please check our FAQs.
Please remember this software is in beta, so please report any issues or feedback through our GitHub page. Your help in improving Defang is greatly appreciated!
Changelog
- 5cb83bd: chore: add deployment_id to ProjectUpdate proto (#1942) (Lio李歐 lionello@users.noreply.github.com)
- 0ebd3d7: Revert "Logs refactoring using Go iterators (#1845)" (Lionello Lunesu lio+git@lunesu.com)
- cfd7cab: PR comments (Lionello Lunesu lio+git@lunesu.com)
- bfa5ef1: Fix Docker multi-arch build by using buildx directly (#1935) (Copilot 198982749+Copilot@users.noreply.github.com)
- a9cfe07: Logs refactoring using Go iterators (#1845) (Lio李歐 lionello@users.noreply.github.com)
- ebb91af: return ErrInvalidComposeFile when yaml parsing fails (#1936) (Jordan Stephens jordan@stephens.io)
- 66c9f5b: Update Nix vendorHash to sha256-g/RvFIlekE6IJzeAhsJ+3zyKpIGQIIP5TtelkdslLh4= (github-actions[bot] <github-actions[bot]@users.noreply.github.com>)
- 6f6c673: chore(deps): bump axios from 1.12.0 to 1.13.5 in /pkgs/npm (#1923) (dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>)
- 2419d3f: chore: update compose-go (and yaml) (#1933) (Lio李歐 lionello@users.noreply.github.com)
- cd4061d: feat: use shortened authorize URL from new /cli endpoint (#1932) (Lio李歐 lionello@users.noreply.github.com)
- a5b04c1: fix: ignore ECS events after DEPLOYMENT_COMPLETED (Lionello Lunesu lio+git@lunesu.com)
- c528f8b: chore: make term.Println/f behave like fmt.Println/f (Lionello Lunesu lio+git@lunesu.com)
- 650c8d5: add PaidUntil and TrialUntil to WhoAmIResponse (#1929) (Jordan Stephens jordan@stephens.io)
- 24777d7: fix: add custom MarshalYAML (#1928) (Lio李歐 lionello@users.noreply.github.com)
v3.2.0
What's Changed
- [WIP] Fix logout functionality to remove token file by @Copilot in #1900
- Do not output a json array for whoami command when --json is given by @edwardrf in #1905
- add Until parameter to ListDeploymentsRequest by @jordanstephens in #1909
- CodeBuild event streaming by @jordanstephens in #1809
- Disambiguate stacks in interactive selector by @jordanstephens in #1910
- improve cd ls output and cd teardown error handling by @jordanstephens in #1914
- Remove RemoteProjectName by @jordanstephens in #1919
- elicitations validations by @jordanstephens in #1915
- record branch and commit author for portal in deployment origin metadata by @jordanstephens in #1924
- Redacting secret values in the configuration summary by @KevyVo in #1922
- Revert "Remove RemoteProjectName" by @lionello in #1925
Full Changelog: v3.1.0...v3.2.0
v3.1.0
What's Changed
New Features
-
Add DeploymentOrigin and metadata to DeployRequest schema by @jordanstephens in #1874
This allows you to see the origin (eg. GIT repo) of a deployment in the Defang portal. -
Add support for config set --if-not-set by @jordanstephens in #1873
This is use by the latest Defang GitHub Action to initialize config settings with random values, if they're currently not set in the cloud config. -
Add ServiceInfos to Deployment proto by @lionello in #1879
This allows you to see the endpoints of your deployed services in the Defang portal. -
Consolidate JSON and UTC mode handling by @jordanstephens in #1885
This makes--jsonand--utcglobal flags, so that most commands now have JSON output for easier scripting.
Fixes
- Fix CLI running forever by @lionello in #1876
- Avoid failing compose config on failure to load stack by @jordanstephens in #1878
- Restore defang compose ls by @jordanstephens in #1890
- Load stack after create stack in MCP by @KevyVo in #1881
- Fix panic in
defang compose configby @lionello in #1901
UX
- Skip login for BYOC logs/config commands by @lionello in #1865
- Avoid printing zero values in table by @jordanstephens in #1877
- Prefer remote stack to local by @jordanstephens in #1891
- Make info/warn go to stderr on --json by @lionello in #1893
Chore
- Remove context.TODO by @lionello in #1866
- chore(deps): bump tar from 7.5.3 to 7.5.7 in /pkgs/npm by @dependabot[bot] in #1883
- chore(deps): bump diff in /pkgs/npm by @dependabot[bot] in #1821
Full Changelog: v3.0.2...v3.1.0
v3.0.2
This patch release fixes a bug where a deployment using --provider and not using stacks could downgrade a production/high-availability deployment to affordable mode, resulting in a replacement of managed PostgresDB instances. The PostgresDB instances would not get deleted (because of deletion protection), resulting in a failed deployment, leaving the project in an unstable state with two databases.
What's Changed
- allow --provider to override default stack by @jordanstephens in #1862
- Use global Stack as fallback by @lionello in #1867
- fix(aws): make CIRoleArn output ARN by @lionello in #1854
- Deployment mode fail-safe by @lionello in #1868
Full Changelog: v3.0.0...v3.0.2
v3.0.0
What's Changed
- chore: remove unused QueryForDebug by @lionello in #1849
- fix(gcp): enable DNS API when needed by @lionello in #1850
- Retry setting the policies on service account up to 3 times by @edwardrf in #1851
- fix(upgrade): avoid running slow "brew config" unless necessary by @lionello in #1859
- fix: use shortened links for docs by @lionello in #1858
- Stacks Cleanup by @jordanstephens in #1855
- Lio/stacks by @lionello in #1860
Full Changelog: v2.10.0...v3.0.0
v2.10.0
What's Changed
- Resurrect "from" flag by @lionello in #1737
- feat(cd): show workspace name by @lionello in #1740
- Stacks onboarding with "remote" stacks by @jordanstephens in #1721
- fix(cd): update deployment history for cd down/destroy commands by @lionello in #1742
- env vars resolution summary by @KevyVo in #1728
- Avoid loading stacks from disk after selection by @jordanstephens in #1752
- avoid offering to create stack unless deploying by @jordanstephens in #1753
- Add GetUploadURL API and add 2 upload urls to Deploy call for Provider by @edwardrf in #1751
- Move power to defang by @KevyVo in #1758
- Fix CLI to not print table header for environments without data by @Copilot in #1757
- Add states and events url to Deployment protobuf by @edwardrf in #1761
- Support random generation in MCP tool set_config by @Copilot in #1760
- Run GCP cd in gcp cloud build by @edwardrf in #1747
- Get urls and pass to CD for states and events uploading by @edwardrf in #1764
- Add steering for configs by @KevyVo in #1768
- MCP login bug by @KevyVo in #1767
- automatically update the nix vendor hash by @jordanstephens in #1672
- fix: handle Spot Task interruption during deployment by @lionello in #1766
- Add random suffix to event and states file to prevent overwrite by @edwardrf in #1771
- Always use etag for gcp cdCommands, remove useless code by @edwardrf in #1772
- Add support for multiple config settings in one command by @Copilot in #1763
- Add stack url to README by @KevyVo in #1779
- Re-implement Stacks with Session Loader, support for any env var by @jordanstephens in #1754
- Update GCP environment variable usage by @Copilot in #1778
- feat: update OIDC provider parameters and conditions by @lionello in #1775
- ending backticks typo by @KevyVo in #1785
- Ensure gcp byoc cd bucket is versioned by @edwardrf in #1781
- chore: add mermaid flowchart by @lionello in #1786
- Add execution_id to ProjectUpdate protobuf to allow cd to record it by @edwardrf in #1784
- Improves AWS profile configuration instructions by @KevyVo in #1787
- Enhance 'whoami' and 'compose config' commands by @lionello in #1782
- Implement cd outputs command by @edwardrf in #1788
- Use dedicated Stack RPCs by @jordanstephens in #1780
- ensure stack env vars are loaded by @jordanstephens in #1790
- chore(deps): bump github.com/docker/docker from 27.3.1+incompatible to 28.0.0+incompatible in /src by @dependabot[bot] in #1650
- fix for wrapping GCP ADC error by @KevyVo in #1789
- Make stacks optional by @lionello in #1797
- chore(deps): bump golang.org/x/crypto from 0.37.0 to 0.45.0 in /src by @dependabot[bot] in #1653
- Refactoring service printing by @jordanstephens in #1796
- fix loading remote stack without stacks directory by @jordanstephens in #1795
- avoid double stack loading by @jordanstephens in #1800
- fix: by default, skip build if image is given by @lionello in #1792
- handle UploadModeDefault by @jordanstephens in #1801
- Enable scheduler to allow cd to setup cleanup job by @edwardrf in #1798
- Kiro to prefer MCP over CLI by @KevyVo in #1794
- Add Kiro MCP installation badge by @KevyVo in #1803
- chore(deps): bump tar from 7.4.3 to 7.5.3 in /pkgs/npm by @dependabot[bot] in #1802
- Fix CD refresh/list/down by @lionello in #1804
- fix: missing digest in default mode by @lionello in #1808
- avoid printing env vars conflict warnings if there is no conflict by @jordanstephens in #1807
- avoid printing mcp setup message in CI by @jordanstephens in #1806
- Parse the codebuild log etag and service name by @edwardrf in #1811
- Add -build to tail options when log type contains build by @edwardrf in #1813
- fix: log bookends should show stack by @lionello in #1810
- feat: allow multiple configs for --env, --random, and --env-file by @lionello in #1805
- fix: don't prompt in CI by @lionello in #1815
- Improve post MCP installation message by @KevyVo in #1822
- Lio/fix default stack by @lionello in #1820
- fix(gcp): during deployment, ls should show logs hint by @lionello in #1826
- allow missing project name when listing active deployments by @jordanstephens in #1829
- add warning for AWS_ACCESS_KEY and AWS_PROFILE by @KevyVo in #1817
- include Default column when listing stacks by @jordanstephens in #1836
- avoid ignoring missing stack error by @jordanstephens in #1835
- implement defang stack default foo by @jordanstephens in #1837
- We consider log serverity above or equal to WARNING as from stderr by @edwardrf in #1838
- check on the AWS_SECRET_ACCESS_KEY in env by @KevyVo in #1840
Full Changelog: v2.9.0...v2.10.0
v2.9.0
What's Changed
This release features the Defang Agent in Preview. It also has better multi-user workspace support through the new --workspace flag.
Features
- feat(cli): add tab-completion for string flags by @lionello in #1691
- feat: skip build if image is given, unless --build by @lionello in #1718
- feat: allow project/stack syntax for cd commands by @lionello in #1734
- feat: add support for unix timestamps by @lionello in #1739
- Defang Agent by @jordanstephens in #1687
- Multi-user workspaces by @raphaeltm in #1711
- Stack tools by @KevyVo in #1713
- support logs --deployment=latest by @jordanstephens in #1726
Bug Fixes
- Fix deployment to wrong account issue due to AWS_PROFILE by @Copilot in #1703
- Fixes for Windows by @lionello in #1710
- fix: suggest to check logs if no services are found by @lionello in #1714
- Fix nil pointer error in preview test by @edwardrf in #1716
- fix: make UserInfo optional for WhoAmI by @lionello in #1727
- fix: don't send 'beta' to domain delegation by @lionello in #1738
- fix(aws): ignore logs query limit until TS changes by @lionello in #1735
- Handle missing Dockerfiles gracefully in FindAllBaseImages by @KevyVo in #1741
Improvements
- Query logs without defang-cd stack by @lionello in #1670
- pass stackname to fabric when preparing delegate domain zone by @jordanstephens in #1697
- validate etags on tail by @jordanstephens in #1690
- avoid overwriting existing stackfiles by @jordanstephens in #1696
- ensure beta stack back compat by @jordanstephens in #1702
- Onboard users to stacks during deployment by @jordanstephens in #1700
- Improve context cancelation for agent mode by @lionello in #1707
- Clean up existing deployment printing by @jordanstephens in #1704
- Unify project status info by @lionello in #1508
- Detect and pass dockerhub creds as CI_REGISTRY_USER/PASSWORD to cd by @edwardrf in #1698
- Save mode for each deployment by @jordanstephens in #1722
- Only reuse delegation set of the existing zone if it is created by the same stack by @edwardrf in #1675
- Try to find a usable delegation set before creating one by @edwardrf in #1733
Chores
- chore: expose DEFANG_PULUMI_DEBUG by @lionello in #1688
- Automate Nix vendorHash updates in nix-shell-test workflow by @Copilot in #1664
- Rename packages by @lionello in #1730
- Fix unit test delays by @lionello in #1731
- Lio/cleanup tenants by @lionello in #1732
- chore: remove 'delete' command by @lionello in #1736
Full Changelog: v2.4.1...v2.9.0
v2.4.1
What's Changed
- add DEFANG_SUFFIX to override stack name by @lionello in #1674
- Winget Expired token by @KevyVo in #1676
- avoid printing log bookends during deployment by @jordanstephens in #1679
- fix(aws): panic in logging code by @lionello in #1682
Full Changelog: v2.3.0...v2.4.1
v2.4.0
What's Changed
- Fix gcp logging not stop and not providing the correct project without --since is given by @edwardrf in #1628
- Take head of stream with --limit and --since by @jordanstephens in #1627
- MCP Tool Prefactoring by @jordanstephens in #1620
- feat(cd): add explicit 'cd install' command by @lionello in #1632
- feat(cd): delete default SG rules by @lionello in #1633
- only print Bookends on defang logs or tail by @jordanstephens in #1630
- fix(install): support nightly by @lionello in #1635
- fix: close errChan when done by @lionello in #1634
- Impersonate defang-upload service account when accessing cd bucket obj by @edwardrf in #1637
- Impersonate uploader account when doing cd ls command for gcp by @edwardrf in #1643
- Add Dockerfile validation before deployments by @Copilot in #1642
- chore(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 in /pkgs/npm by @dependabot[bot] in #1639
- Avoid returning empty logs when only --deployment is passed by @jordanstephens in #1652
- Return error when cfn template container does not have an image by @edwardrf in #1522
- Add commands to help with stack cleanup by @lionello in #1656
- Remove globals by @KevyVo in #1646
- CLI will error if invalid stackname provided by @KevyVo in #1659
- trigger workflow dispatch in defang-mvp on merges to main by @jordanstephens in #1651
- Stacks UX fixes by @lionello in #1660
- chore: add extends unit test by @lionello in #1661
- avoid repository secrets by @jordanstephens in #1662
- Add OIDC to CloudFormation template by @lionello in #1654
- chore: rename configuration files from .defangrc to .defang by @lionello in #1666
- Make .defang a folder by @lionello in #1671
- fix: allow compose config without token by @lionello in #1673
Full Changelog: v2.2.2...v2.4.0
v2.2.2
What's Changed
- make chan by @KevyVo in #1625
- Log Bookend Hints by @jordanstephens in #1624
Full Changelog: v2.2.1...v2.2.2