- added NO_COLOR support for CLI error messages #564
- made trailing newline behavior of
cloudtruth templates preview
consistent withcloudtruth templates get
#530 - made improvements to the
install.sh
script #513 #515- will now use wget if curl is not found on the system
- enforces download with TLS 1.2
- Note: BusyBox wget does not support enforcing TLS and a warning is emitted instead
- error handling and reporting improvements
- checks that script is ran with elevated privileges and alerts user prior to doing anything
- checks for required shell commands and alerts user if they are missing (ex.
tar
,uname
,mktemp
) - better error handling when attempting to create or enter the temp install directory
- alerts user with a message when download fails (instead of just showing curl status code)
- added checksums to releases #511
- Added the following build targets to the release
arm-unknown-linux-musleabihf
armv7-unknown-linux-musleabihf
aarch64-unknown-linux-musl
- Added
projects copy
command - Added
environments copy
command - Added
parameters copy
command - Added creation of immutable environment tags with the
--immutable
(ex.environments tag set --immutable <name>
) - Fixed a bug where service accounts could not be created when no role was explicitly provided
- make output of groups subcommands consistent with other subcommands #482
- a tarball of the integration test binaries generated by cargo-nextest is now included in the release artifacts #481
- Bug fix: workaround to populate rules array on types partial update #443
- Fix to RPM builds to support CentOS 7 and RHEL 7 #474
- Updates to API client for compatibility with the latest server release
- Fixed various issues with the install scripts on some platforms and networks
- Azure integrations now show up in
integrations list
#388 - Removed tag usage stats from the tag commands as they are no longer used #409
- Fixed race condition in
projects list
on large data sets #410
- Added the
groups
subcommand for group management - Updated
actions pushes
commands with new optionsactions pushes list
- Added data filtering options
--tag
,--env
, and--project
- Added data filtering options
actions pushes set
andactions pushes sync
- Added
--force
and--no-force
(alias of the existing--no-check-owner
and--check-owner
options, respectively) - Added
--local
and--no-local
options
- Added
- Added a configuration to accept invalid certs
- Environment variable:
CLOUDTRUTH_ACCEPT_INVALID_CERTS=1
- YAML profile config:
accept_invalid_certs: true
- Environment variable:
- Use Rocky instead of CentOS for Linux testing
- Add support for macOS (arm64)
- Adjust help text for template preview
- Pick up latest API changes
- Internal changes to improve testing
- Add several flags to
action push set
andaction push sync
- Flags control dry-run, ownership check, and other parameter controls
- Update
action import list
andaction push list
displays to show flags - Show GitHub items in
action import list
- Add
parameter drift
command to compare current shell environment to project/environment. - Add
backup snapshot
command to download a full set of parameter-types, environments, and projects (including templates, and parameters/values in the different environments) - Add filter options to
audit-log list
for--project
,--parameter
, and--env
. - Improve general handling for server-side enumeration updates.
- Use API for password generation:
- Add
generate password
command with many options. - Add
parameter set --generate
to allow generating 12 character value.
- Add
- Removed
Successfully
prefix from parameter operation results. - Improve performance for
parameter-type
rules.
- Add
import parameters
command for easy project and environment creation/update - Add
parameter-types
command to manage custom types- Removed restriction on
parameter set --type <param-type>
values - Changed
parameter set --type bool
toparameter set --type boolean
- Removed restriction on
- Allow overriding parent project parameter values
- Use
--create-child
to create the parameter in a child project
- Use
- Add
integration explore [-j|--jmes <path>]
to get specific JMES path values - Add shorter versions of several commands
- Add
Organization
touser current
, andconfig current
displays. - Add
versions
commands to display, check, and install the latest CLI version. - Enhanced
integrations explore
command with--raw
, and--secrets
options. - Add configurable version checking
- Defaults to checking once a week, and warning when running an older CLI version
- Checks can be disabled, or stop CLI execution when running an older CLI version
- Added ability to see specific successful response types using
CLOUDTRUTH_REST_SUCCESS
whenCLOUDTRUTH_REST_DEBUG
is enabled. - Updated to Rust 1.57.0.
- Add
actions imports
commands. - Add
actions push task-steps
command. - Add
parameters push
command to show push action task-steps for parameters. - Improve feedback when encounter parsing error.
- Avoid issues with
audit-logs
not knowing about new object types. - Improve
schema
commands:- Avoid issues with display changing every time.
- Added
diff
command to compare local and server differences.
- Improve behavior when server reports a service account without a user.
- Properly handle pagination for many list commands, and make pagination configurable.
- BREAKING CHANGE:
- Moved
integrations pushes
commands toactions pushes
.- Made integration-name optional (using
--integration|-i <name>
) for mostpushes
commands.
- Made integration-name optional (using
- Moved
- Internal changes to improve testing.
- Added several
integrations
commands:- Added
refresh
to trigger update of an integration connection status. - Added
get
to get detailed information about an integration. - Added
pushes <set|delete|list|get|sync|tasks>
commands to manage push actions.
- Added
- Added
schema
command to get the latest schema from the server, or local CLI version. - Added
--user
,--before
, and--after
filters toaudit-logs list
. - Fixed issue with
templates history --as-of
using tags. - Show values for items when a
--format <table|csv|json|yaml>
is specified.
- Added parent project support:
- Added
projects set --parent
argument to set/update a project parent. - Added
parent
name to theproject list --values
display. - Added
projects tree
to show dependencies between projects. - Added
parameters list --parents
to display parameters defined in a parent project. - Added
parameters list --children
to display parameters defined in a descendant project.
- Added
- Added username and role information to
config current
. - Added validation checks/options after
config edit
. - Added username to
template history
output. - Added
users
commands to manage user accounts and invitations. - Added
audit-logs
commands to view audit log information. - Improved performance for several
templates
commands (e.g.get
,diff
,validate
).
- Added support for evaluated parameters:
- Added
parameter set --evaluate
to enable parameters referencing templates or parameters. - Added
parameter list --evaluated
to see both evaluated and unevaluated parameter values.
- Added
- Added
template difference
command to compare template versions and environments. - Added
--rename
option toenvironment tag set
.
- Added
--as-of
totemplates get
for raw or evaluated template at specified date/time (or tag). - Changes to
configuration profile set
:- Fixed issue with reporting wrong action.
- Added ability to set a source-profile using
--source
.
- Improved error handling to provide more understandable information.
- Updated several help strings.
- Enhanced
parameters set
to allow parameter creation without a value for any environment. - Added
template validate
to check if an existing template still evaluates properly. - Fixed
parameters environment --as-of
issue when using a tag name. - Added
configuration profile
commands to avoid need to modify configuration file with editor.- Moved
configuration list
functionality intoconfiguration profile list
.
- Moved
- Improved handling for many error responses to provide more understandable information.
- Added
environments tag
command with the following sub-commands:list
- display tags for a specific environment.set
- create/update environment tag properties.delete
- delete environment tag.
- Added
--show-times
tolist
forintegrations
,projects
, andenvironments
. - Changed parameter properties
dynamic
toexternal
, andstatic
tointernal
. - Added Centos-8 RPM support.
- Improved debugging for failed tests.
- Improved
templates
commands:- Added
history
command. - Better error feedback when
get
orpreview
fail due to external parameters. - Added
--as-of
argument topreview
. - Added
--show-times
flag tolist
.
- Added
- Added
--as-of
argument toparameter export
. - Support additional date formats in
--as-of
arguments (e.g.mm/dd/YYYY
,mm-dd-YYYY
). - Improved integration tests to use environment variables.
- Updated
parameters set
with type and rule arguments:- Added
--type <string|integer|bool>
for parameter type. - Added
--max
,--min
,--max-len
,--min-len
,--regex
to set the rules, and ano
version of each (e.g.--no-min-len
) to delete the rules.
- Added
- Updated
parameters list
with type and rule information:- Added "Param Type" and "Rules" (count) to the
--values
output. - Added
--rules
view of existing rules.
- Added "Param Type" and "Rules" (count) to the
- Allow retrieving unevaluated template text using
template get --raw
. - Add
login
andlogout
commands for API key management. - Added
--show-times
flag to display created-at and modified-at values parameterslist
andenvironment
commands. - Allow retrieving parameter information at the specified
--as-of
value for:parameters list
parameters get
parameters environment
run
- Updated
parameter difference
command:- Added properties to include
created-at
andmodified-at
. - Change arguments to allow environment and/or time-based (using
--as-of
) differences.
- Added properties to include
- Display complete parameter information with
--details
flag inparameter get
command.
- Added
template edit
for easier template modification. - Added
environment tree
to display environment inheritance. - Added
parameter environment
to display values of a single parameter in all environments. - Require user to confirm a
parameter delete
using the--yes
flag or a prompt. - Performance improvement for
parameter get
. - Upgrade to Rust 1.54.
- Added
parameters difference
command to compare parameters between two different environments. - Performance improvements:
- Reduce the number of instances where secrets are retrieved.
- Get parameter details using retrieve (by identifier), instead of a filtered list.
- Added REST profiling prints when
CLOUDTRUTH_REST_DEBUG
is true.
- Improved feedback for errors retrieving dynamic parameters.
- Use standard cookie handling.
- Improved aliases (e.g.
list
now acceptsls
orl
). - Templates: added
set
,delete
, andpreview
commands. - Fixed issue with multiple parameters with no value -- only some values shown in
parameters list
. - Fixed a couple issues with
templates get
:- Improved feedback when there are no templates found.
- No longer show secrets without
--secrets
specified.
- When fail to add a value for a new parameter, the parameter is now removed.
- Pickup latest OpenAPI changes.
- Add HTTP Cookie header sent from the first response in subsequent requests.
- Remove generated client docs from repository.
- Restore GiHub CI testing.
- Removed RPM builds due to infrastructure failures.
- Update to use REST API server (replaces GraphQL).
- Added
parameters unset
to support removing override for a specific environment. - Integrations:
- Simplified
explore
interface -- use FQN instead of NAME/PATH/[TYPE] - Adjusted information displayed for
list -v
-- show Status (and update time), remove Type
- Simplified
- Config:
edit
displays edited file path.- Added
current
to display current configuration with sources.
- Added
--rename
option forset
subcommand ofparameters
,projects
, andenvironments
. - Deprecated support for setting API key via
CT_API_KEY
(useCLOUDTRUTH_API_KEY
).
- Fix display issue for no parameters in default project.
- Allow configuration file to be edited, even when it is invalid YAML.
- Improved error message when attempting to delete a parameter that does not exist.
- Allow request_timeout to be set in profile or environment variable.
- Improved integration tests with timeouts and server_url settings.
- Add wrap()/unwrap() functions to secure secrets (tested but not used).
- Initial work for REST interface to CTAAS.
- Parameters: added
--dynamic
flag toparameter list --values
view FQN/JMES path values. - Added
yaml
andjson
table formatting options to tables. - Fixed issue with Windows pre-release GitHub action.
- Upgrade to Rust compiler 1.52.1.
- Added
make integration
target to facilitate easier integration testing.
- Important changes:
- Templates: must use
--secrets
or-s
to display secret values. - Parameters:
list --values
display has newType
andSecret
columns.export
filtering and sorts are now case-insensitive, secret parameters included in normal export with redacted value.
- Templates: must use
- Prefer to use
-y/--yes
instead of--confirm
to avoid confirmation prompts. - Integrations: new sub-command with
list
andexplore
. - Parameters: added
--fqn
and--jmes
options to set references to dynamic values.
- Upload install.sh, install.ps1, and CHANGELOG.md as release assets.
- Enhance install.sh to be more tolerant of non-standard release tags.
- Improve error checking on release tag names.
- Improve pre-commit checks for Rust version, and CLI command changes.
- Breaking changes:
- Parameters:
set
must use--secret
instead of--secrets
. - Environments:
set
will error out if trying to change the parent (not just warn and succeed).
- Parameters:
- Added installer scripts for Posix shells, and Windows PowerShell.
- Can use
CLOUDTRUTH_PROFILE
to set the configuration profile, in addition to--profile
option. - Projects: sub-command can also be accessed with
project
. - Parameters:
list
uses consistent message for empty parameter list. - Moved development information out of
README.md
and intoDEVELOPMENT.md
. - Changed release process to test installer scripts.
- Changed CI process to run the integration tests (using
tests/pytest/live_test.py
). - Updated to Rust version 1.52.0.
- Bug fix: use the
--env <env>
argument.
- Breaking changes:
- Moved
templates getit
functionality toparameters export
.
- Moved
- Arguments
--project <proj>
and--env <env>
can also be set using configuration profile, or environment variable (e.g.CLOUDTRUTH_PROJECT
,CLOUDTRUTH_ENVIRONMENT
). - Config: enhanced
list
with--values
,--format
, and--secrets
options - Environments: added
set
anddelete
- Parameters: added
export
- Projects: added
set
anddelete
- Breaking changes:
- The
--profile
option no longer supports the short (-p
) version to avoid confusion with the newly supported--project
option. - Parameters:
set
must provide--value
,--prompt
, or--input
option to set the value.
- The
- Added
--project
option to specify a non-default project - Environments: enhanced
list
with--values
and--format
options - Projects: added
list
- Parameters:
- Added
delete
- Enhanced
set
to allow settingdescription
andsecret
properties, along with options to enter a value without showing on screen.
- Added
- Templates: enhanced
list
with--values
and--format
options - Added RPM packages.
- Use
CLOUDTRUTH_API_KEY
instead ofCT_API_KEY
to set API key in the environment. - Templates:
getit
command to render implicit templates of all parameters for different environments - Parameters: enhanced
list
command with--values
flag and--format
option to display parameter information and values. - Run: breaking changes to replace
--preserve
flag with--inherit
option for more control.
- Added
run
option to run a command from an environment with parameters injected from the CloudTruth CLI.
- Added a new dependency on the ca-certificates package for our Debian installer in order to handle SSL certificates issued by Amazon's CA.
- Improved error messages when operations fail due to access restrictions on the API key.
- Improved error messages for data validation issues.
- Synchronized with the latest CloudTruth API
- Replaced separate parameter creation and update calls with new upsert operation to avoid race conditions in CloudTruth parameter store
The first release of the CloudTruth CLI tool, being made available for:
- Linux (x86_64) (tarball & deb packages)
- Linux (ARMv6) (tarball & deb packages)
- Linux (AArch64) (tarball & deb packages)
- macOS (x86_64)
- Windows (x86_64)
This release includes the following functionality:
- Environments: list
- Parameters: list, get, and create/update
- Templates: list and evaluate
- Multi-profile configuration to support different API keys
- Shell file completion scripts