Skip to content

Releases: hazelcast/hazelcast-commandline-client

v5.4.1

28 Jun 13:56
1edb12a
Compare
Choose a tag to compare

Release Notes

On Linux/macOS you can install or update to the latest version of CLC using the following command:

curl https://hazelcast.com/clc/install.sh | bash

We provide an installer for Windows 10 and 11.

Note that this is a binary-only release.

The changes since v5.4.0 are below.

New Features

There are no new features in this release.

Fixes

  • Custom template actions aren't loaded when a template is cloned initially.
  • --force flag is ignored for job cancel command.

v5.4.0

17 Apr 08:08
d377c31
Compare
Choose a tag to compare

Release Notes

On Linux/macOS you can install or update to the latest version of CLC using the following command:

curl https://hazelcast.com/clc/install.sh | bash

We provide an installer for Windows 10 and 11.

Note that this is a binary-only release.

The changes since v5.3.7 are below.

New Features

CPMap

Hazelcast CPMap is a distributed implementation of a minimal key-value interface.
This release adds support for the CPMap data structures.
Note that CPMap is an Hazelcast Enterprise feature.

Added the following cpmap commands:

  • compare-and-set
  • delete
  • destroy
  • get
  • put
  • remove
  • set

Added the following advanced script functions for the CPMap:

  • cpmap_compare_and_set
  • cpmap_delete
  • cpmap_destroy
  • cpmap_get
  • cpmap_put
  • cpmap_remove
  • cpmap_set

Changes

  • Removed the ability to run scripts over HTTP.

v5.3.7

22 Feb 15:21
d377c31
Compare
Choose a tag to compare

Release Notes

On Linux/macOS you can install or update to the latest version of CLC using the following command:

curl https://hazelcast.com/clc/install.sh | bash

We provide an installer for Windows 10 and 11.

Note that this is a binary-only release.

The changes since v5.3.6 are below.

New Features

Configuration

Hazelcast Java Client XML Configuration (Beta)

We have added the clc config import-java command that imports a subset of the Java client configuration and associated keystore/trustore files.

Refer to the documentation for the clc config import-java command for more information about this command.

Project Creator

Custom Template Actions

You can now define custom template actions using advanced scripts.

Refer to the Custom Template Actions section for more information about this feature.

Success Note

You can add a success note when a project is created successfully.

Refer to the Success Note section for more information about this feature.

Changes

  • Viridian is renamed to Hazelcast Cloud.
  • clc viridian commands are renamed to clc cloud. clc viridian is set an alias to clc cloud.
  • clc config import command is renamed to clc config import-cloud. clc config import is an alias to clc config import-cloud.
  • map unlock was available to the non-interactive mode in the previous version. This is changed to be available to interactive/scripting modes only.

v5.3.6

12 Jan 12:59
fe5d802
Compare
Choose a tag to compare

Release Notes

On Linux/macOS you can install or update to the latest version of CLC using the following command:

curl https://hazelcast.com/clc/install.sh | bash

We provide an installer for Windows 10 and 11.

Note that this is a binary-only release.

The changes since v5.3.5 are below.

Breaking Changes

  • script command is renamed to script run.
  • Project creator uses the defaults field in template.yaml instead of the defaults.yaml.
  • Template name is optional with clc project create command. A selector is displayed if the template name is not specified.
  • clc viridian download-logs command outputs all log paths instead of the parent directory.
  • The behaviour of clc compact serializer was improved.
  • multi-map is renamed to multimap.
  • atomic-long was renamed to atomiclong.
  • Advanced script time duration constants were renamed to the corresponding uppercase name:
    • NANOSECOND
    • MICROSECOND
    • MILLISECOND
    • SECOND
    • MINUTE
    • HOUR
    • DAY

New Features

AtomicRef Support

Added the following atomicreference commands:

  • clear
  • compare-and-set
  • contains
  • destroy
  • get
  • get-and-set
  • is-null
  • set

The following advanced script functions are also supported:

  • atomicreference_clear(name='default')
  • atomicreference_compare_and_set(expected:any, value:any, name='default')
  • atomicreference_contains(value:any, name='default')
  • atomicreference_destroy(name='default')
  • atomicreference_get(name='default')
  • atomicreference_get_and_set(value:any, name='default')
  • atomicreference_is_null(name='default')
  • atomicreference_set(value:any, name='default')

Viridian Advanced Script Functions

Added the viridian_api type.
Create an instance using Viridian(API_KEY).

The type has the following methods:

  • create_cluster(name:string, development=False, prerelease=False, wait=False) -> Cluster
  • list_clusters() -> list(Cluster)
  • delete_cluster(cluster:id | name | Cluster)
  • get_cluster(cluster:id | name | Cluster) -> Cluster
  • import_config(cluster:id | name | Cluster, name='') -> path
  • stop_cluster(cluster:id | name | Cluster, wait=False)
  • resume_cluster(cluster:id | name | Cluster, wait=False)
  • list_custom_classes(cluster:id | name | Cluster) -> list(Class)
  • upload_custom_class(cluster:id | name | Cluster, path:string, wait=False)
  • download_custom_class(cluster:id | name | Cluster, artifact:any, output_path:string) -> path
  • delete_custom_class(cluster:id | name | Cluster, artifact_id:any, wait=False)
  • download_logs(cluster:id | name | Cluster, dir:string) -> list(path)

Added the viridian_cluster type with the following attributes:

  • id
  • name
  • cluster_type
  • state
  • desired_state
  • creation_time
  • start_time
  • client_count
  • hot_backup_enabled
  • hot_restart_enabled
  • ip_white_list_enabled

Add viridian_custom_class type with the following attributes:

  • id
  • name
  • status
  • temporary_id
  • generated_filename

Job Advanced Script Functions

  • job_submit(path:string, params:string*, name='', snapshot='', class_name='')
  • job_list(include_sql=False, include_user_cancelled=False) -> list(dict)
  • job_cancel(job_name_or_id:string, force=False)
  • job_restart(job_name_or_id:string, force=False)
  • job_suspend(job_name_or_id:string, force=False)
  • job_resume(job_name_or_id:string)
  • job_export_snapshot(job_name_or_id:string, name:string, cancel=False)

Snapshot Advanced Script Functions

  • snapshot_list() -> list(dict)
  • snapshot_delete(name:string)

Configuration Advanced Script Functions

  • config_add(config_name_or_path:string, config:dict) -> path
  • config_list() -> list(config_name)

List Advanced Script Functions

  • list_add(value:any, name='default', index=0)
  • list_clear(name='default')
  • list_contains(value:any, name='default')
  • list_destroy(name='default')
  • list_remove_index(index:int, name='default')
  • list_remove_value(value:any, name='default')
  • list_set(index:int, value:any, name='default')
  • list_size(name='default')

MultiMap Advanced Script Functions

  • multimap_clear(name='default')
  • multimap_destroy(name='default')
  • multimap_entry_set(name='default')
  • multimap_get(key:any, name='default')
  • multimap_key_set(name='default')
  • multimap_lock(key:any, name='default', ttl=-1)
  • multimap_put(key:any, value:any, name='default')
  • multimap_remove(key:any, name='default')
  • multimap_size(name='default')
  • multimap_try_lock(key:any, name='default', ttl=-1)
  • multimap_unlock(key:any, name='default')
  • multimap_values(name='default')

Queue Advanced Script Functions

  • queue_clear(name='default')
  • queue_destroy(name='default')
  • queue_offer(value:any*, name='default')
  • queue_poll(name='default')
  • queue_size(name='default')

Topic Advanced Script Functions

  • topic_destroy(name='default')
  • topic_publish(value:any+, name='default')

Other Advanvced Script Functions

  • object_list(dds:string?, show_hidden=False) -> list(object_name) | list(service_name, object_name)
  • exit(code:int)
  • home() -> path
  • version() -> string
  • write(value:any, location:string, format='')
  • read(location:string, format='default')
  • write_data(data:data, location:string)
  • read_data(location:string)
  • decode_data(value:data)

Other Features

  • Added doc strings support to advanced scripts. All lines starting with # doc: are doc strings.
  • Added script list command.
  • Added the sql advanced script command.
  • Added the file template action, which can read from a file with an extension of .yaml, .json or .txt.
  • Added the \exit and \echo commands. These commands are available in the script and interactive modes. See the echo and exit command documentation.
  • Added --wait flag to viridian commands.
  • Added the ability to change the interactive mode prompt and banner. See the def topic.

Improvements

  • clc demo map-setmany command shows a progress bar and is faster for small values.
  • \echo command takes 0 or more arguments.
  • Viridian commands display an API key selector if more than one API keys exists.
  • Viridian cluster list is paged.

Fixes

  • \di command panics when indexes for a map cannot be retrieved.
  • Removed the extra OK line in config list.
  • Restored the --format flag to home and version commands.
  • Fixed column names produced by advanced script output function.
  • Fixed time and date actions in templates.
  • Fixed the prompt suffix.

v5.3.6-PREVIEW3

15 Dec 16:01
fe5d802
Compare
Choose a tag to compare
v5.3.6-PREVIEW3 Pre-release
Pre-release

Release Notes

On Linux/macOS you can install or update to the latest version of CLC using the following command:

curl https://hazelcast.com/clc/install.sh | bash -s -- --beta

We provide an installer for Windows 10 and 11.

Note that this is a binary-only release.

The changes since v5.3.6-PREVIEW2 are below.

New Features

AtomicRef support

Added the following atomicref commands:

  • clear
  • compare-and-set
  • contains
  • get
  • get-and-set
  • is-null
  • set

The following advanced script functions are also supported:

  • atomicref_clear(name='default')
  • atomicref_compare_and_set(expected:any, value:any, name='default')
  • atomicref_contains(value:any, name='default')
  • atomicref_get(name='default')
  • atomicref_get_and_set(value:any, name='default')
  • atomicref_is_null(name='default')
  • atomicref_set(value:any, name='default')

Viridian advanced script functions

Added the viridian_api type.
Create an instance using Viridian(API_KEY).

The type has the following methods:

  • create_cluster(name:string, development=False, prerelease=False, wait=False) -> Cluster
  • list_clusters() -> list(Cluster)
  • delete_cluster(cluster:id | name | Cluster)
  • get_cluster(cluster:id | name | Cluster) -> Cluster
  • import_config(cluster:id | name | Cluster, name='') -> path
  • stop_cluster(cluster:id | name | Cluster, wait=False)
  • resume_cluster(cluster:id | name | Cluster, wait=False)
  • list_custom_classes(cluster:id | name | Cluster) -> list(Class)
  • upload_custom_class(cluster:id | name | Cluster, path:string, wait=False)
  • download_custom_class(cluster:id | name | Cluster, artifact:any, output_path:string) -> path
  • delete_custom_class(cluster:id | name | Cluster, artifact_id:any, wait=False)
  • download_logs(cluster:id | name | Cluster, dir:string) -> list(path)

Added the viridian_cluster type with the following attributes:

  • id
  • name
  • cluster_type
  • state
  • desired_state
  • creation_time
  • start_time
  • client_count
  • hot_backup_enabled
  • hot_restart_enabled
  • ip_white_list_enabled

Add viridian_custom_class type with the following attributes:

  • id
  • name
  • status
  • temporary_id
  • generated_filename

Job advanced script functions

  • job_submit(path:string, params:string*, name='', snapshot='', class_name='')
  • job_list(include_sql=False, include_user_cancelled=False) -> list(dict)
  • job_cancel(job_name_or_id:string, force=False)
  • job_restart(job_name_or_id:string, force=False)
  • job_suspend(job_name_or_id:string, force=False)
  • job_resume(job_name_or_id:string)
  • job_export_snapshot(job_name_or_id:string, name:string, cancel=False)

Snapshot advanced script functions

  • snapshot_list() -> list(dict)
  • snapshot_delete(name:string)

Configuration advanced script functions

  • config_add(config_name_or_path:string, config:dict) -> path
  • config_list() -> list(config_name)

List advanced script functions

  • list_add(value:any, name='default', index=0)
  • list_clear(name='default')
  • list_contains(value:any, name='default')
  • list_destroy(name='default')
  • list_remove_index(index:int, name='default')
  • list_remove_value(value:any, name='default')
  • list_set(index:int, value:any, name='default')
  • list_size(name='default')

MultiMap advanced script functions

  • multimap_clear(name='default')
  • multimap_destroy(name='default')
  • multimap_entry_set(name='default')
  • multimap_get(key:any, name='default')
  • multimap_key_set(name='default')
  • multimap_lock(key:any, name='default', ttl=-1)
  • multimap_put(key:any, value:any, name='default')
  • multimap_remove(key:any, name='default')
  • multimap_size(name='default')
  • multimap_try_lock(key:any, name='default', ttl=-1)
  • multimap_unlock(key:any, name='default')
  • multimap_values(name='default')

Queue advanced script functions

  • queue_clear(name='default')
  • queue_destroy(name='default')
  • queue_offer(value:any*, name='default')
  • queue_poll(name='default')
  • queue_size(name='default')

Topic advanced script functions

  • topic_destroy(name='default')
  • topic_publish(value:any+, name='default')

Other advanvced script functions

  • object_list(dds:string?, show_hidden=False) -> list(object_name) | list(service_name, object_name)
  • exit(code:int)
  • home() -> path
  • version() -> string
  • write(value:any, location:string, format='')
  • read(location:string, format='default')
  • write_data(data:data, location:string)
  • read_data(location:string)
  • decode_data(value:data)

Other features

  • Added doc strings support to advanced scripts. All lines starting with # doc: are doc strings.
  • Added script list command.

Breaking Changes

  • script command is renamed to script run.

Improvements

  • If you have more than one Viridian API key, a selector is displayed unless ab API key wasn't specified.
  • viridian download-logs command returns the list of all log paths.
  • The alias list list alphabeically sorted.

Fixes

  • Fixed CP group names for atomic-long.

v5.3.6-PREVIEW2

20 Nov 05:53
046a523
Compare
Choose a tag to compare
v5.3.6-PREVIEW2 Pre-release
Pre-release

Release Notes

On Linux/macOS you can install or update to the latest version of CLC using the following command:

curl https://hazelcast.com/clc/install.sh | bash -s -- --beta

We provide an installer for Windows 10 and 11.

Note that this is a binary-only release.

The changes since v5.3.6-PREVIEW1 are below.

Improvements

  • \echo command takes 0 or more arguments.

Fixes

  • Fixed column names produced by advanced script output function.
  • Fixed time and date actions in templates.
  • Fixed the prompt suffix.

v5.3.6-PREVIEW1

17 Nov 14:43
046a523
Compare
Choose a tag to compare
v5.3.6-PREVIEW1 Pre-release
Pre-release

Release Notes

On Linux/macOS you can install or update to the latest version of CLC using the following command:

curl https://hazelcast.com/clc/install.sh | bash -s -- --beta

We provide an installer for Windows 10 and 11.

Note that this is a binary-only release.

The new features and changes since v5.3.5 are below.

New Features

  • Added the sql advanced script command.
  • Added the file template action which can read from a file with one of the extensions: .yaml, .json or .txt.
  • Added the \exit and \echo commands. These commands are available in the script and interactive modes. See: echo and exit command documentation.
  • Added --wait flag to viridian commands.
  • Added the ability to change the interactive mode prompt and banner. See: def.

Improvements

  • clc demo map-setmany command shows a progress bar and it is faster for small values.

Changes

  • Project creator uses the defaults field in template.yaml instead of the defaults.yaml.

Fixes

  • \di command panics when indexes for a map cannot be retrieved.
  • Removed the extra OK line in config list.
  • Restored the --format flag to home and version commands.

v5.3.5

13 Oct 19:52
63940d8
Compare
Choose a tag to compare

Release Notes

On Linux/macOS you can install or update to the latest version of CLC using the following command:

curl https://hazelcast.com/clc/install.sh | bash

We provide an installer for Windows 10 and 11.

Note that this is a binary-only release.

The new features and changes since v5.3.4 are below.

New Features

  • Added the Advanced Scripting as a BETA future. Advanced Scripting enables writing the scripts in a Python-like language. The following commands are available with this release: Advanced Script. Check out the scripts directory for example scripts.
  • CLC now supports loading the shell.clc script on startup in the interactive mode. shell.clc must be in $CLC_HOME. You can find the $CLC_HGME using clc home command.
  • Added the ability to define "aliases" in the interactive or script modes. An alias, like the shell aliases, enable you to create shortcuts for your CLC commands. For example: \alias maps -- \\object list map creates an alias to list Maps in the cluster. In order to make the aliases permanent, you can put them in the shell.clc file. Check out the Alias documentation.
  • Added the map entry-view command. Check out the entry-view documentation.

Improvements

  • Improved configuration selector.
  • If there's a single configuration, do not display the configuration selector and use that configuration automatically.
  • Updated job submit command to deduce the job ID.
  • clc template list can show all repositories in an organization.
  • Added the --source flag to clc project create and clc template list commands. This flag enables using templates outside of the hazelcast-templates organiation.
  • Added clc_home placeholder to Project Creator templates.
  • Added repeat and each actions to the Project Creator templates.
  • Compact Serializer does not overwrite generated files and displays a prompt. Use the --yes flag to aloways overwrite generated fiels.
  • Compact Serializer does not produce code that dependes on the Notnull annotation.
  • Compact Serializer respects the namespace field when generating the path. The final path is derived from the value of --output-dir flag and the namespace.

Changes

  • Table format is the default format for all commands except version and home. In order to use the delimited mode, you can append -f delimited flag to your command line.
  • Moved clc project list-templates command to clc template list. The behaviour of the command didn't change.
  • Compact serializer creates only the serializer classes.
  • We've changed our logging implementation, so CLC logs appear slighlty different. You can find your log directory using clc home logs.

Fixes

  • Fixed Project Creator template update.
  • Fixed copying hidden directories with the .keep suffix in the Project Creator.
  • Fixed Compect Serializer generated files should not have their execute bits set.

v5.3.4

26 Sep 16:21
63940d8
Compare
Choose a tag to compare

Release Notes

This is the seventh stable release of Hazelcast CLC.

Note that this is a binary-only release.

The new features and changes since v5.3.3 are below.

New Features

  • Added the serializer generate command that creates Java Compact Serialization classess from the given schema.
  • Added an update checker which displays a notification in the interactive mode. You can disable it by setting the CLC_SKIP_SERVER_VERSION_CHECK to 1.
  • In order to make an informed decision about CLC improvements and features, we started to collect non-identifiable telemetry. You can disable this by setting HZ_PHONE_HOME_ENABLED environment variable to false. You can find more information in the Phone Homes documentation.
  • CLC can now be installed using an install script on Linux and macOS systems. Just run curl https://hazelcast.com/clc/install.sh | bash.

Improvements

  • Improved configuration selector.
  • If there's a single configuration, do not display the configuration selector and use that configuration automatically.
  • Updated job submit command to deduce the job ID.

Changes

  • Confirmation is required from the user when demo generate-data command runs.

Fixes

  • CLC interactive prompt doesn't change after config wizard.
  • Readline panic in the interactive mode if terminal width cannot be determined and left arrow is pressed.
  • Map proxy is created when a map command is used.
  • "connecting to cluster" prompt is not shown when object list command runs.
  • Fixed list add command.

v5.3.3

11 Sep 12:54
95ef838
Compare
Choose a tag to compare

Release Notes

This is the sixth stable release of Hazelcast CLC.

The new features and changes since v5.3.2 are below.

New Features

  • Added the demo generate-data command that creates data from a Wikipedia event stream.
  • Added the demo map-setmany command that generates multiple Map entries.
  • Added the project list-templates command that lists templates that can be used with the project create command.
  • Added the \di shortcut that lists all or some indexes. This command is available only in the interactive mode.
  • Added --prelease and --development flags to viridian create-cluster command.

Improvements

  • The Viridian "CLI" bundle is used with config import and viridian import-config commands. The configuration bundle includes certificates for all supported Hazelcast client libraries.
  • CLC configuration is saved as both config.yaml and config.json when config import, viridian import-config or config add commands are used.
  • An installation script may be used to install CLC on Linux and macOS.
  • Configuration menu is displayed in the non-interactive mode when the default configuration doesn't exist.
  • snapshot list command provides more information.
  • Configuration name is used in the CLC interactive prompt.
  • "Invalid number of arguments" error is improved to display which positional arguments are missing.
  • project create command updates the corresponding template if necessary when run.
  • Updated command output.

Fixes

  • Full stack trace is shown on job submit errors.