pbm 0.3.3

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global pbm --version 0.3.3
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local pbm --version 0.3.3
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=pbm&version=0.3.3
nuke :add-package pbm --version 0.3.3

Petabridge.Cmd is a tool provided by Petabridge to make it easy to manage remote Akka.NET systems. It can be used in production, staging, testing, and development environments to help perform common management tasks such inspecting logs, downing unreachable nodes in a cluster, and so forth.

How it Works

Petabridge.Cmd exists as two connected parts:

  • The pbm client, which runs locally on an end-user work station as a stand-alone executable and
  • The Petabridge.Cmd.Host component, which runs as an ActorSystem extension hosted inside your Akka.NET applications.

In order for the pbm client to be able to communicate with any part of your Akka.NET applications, it connects to one of your nodes and speaks directly to the PetabridgeCmd actor system extension running inside your Akka.NET application.

Petabridge.Cmd connectivity model

The pbm client connects directly to a single host and interacts with that host specifically. Some of the operations, such as cluster join and cluster down have the ability to affect nodes other than the Petabridge.Cmd.Host that pbm.exe is currently connected to, but that's a side-effect of how the commands are implemented, not an implementation detail of petabridge.cmd itself.

Setting this up requires installing the Petabridge.Cmd.Host NuGet package into your Akka.NET application and opening a port that can be used by pbm to contact the server. This is explained in more detail in the "Petabridge.Cmd.Host Configuration" section.

Once the pbm client is able to successfully establish a connection to a host, the client will then download the list of commands supported by the host. These are referred to as "command palettes" and you can read more about them here.

Petabridge.Cmd client downloading set of support command palettes from server

This is a key point of Petabridge.Cmd's extensibility and power: the client is automatically programmed to support only the commands that are implemented on the server. You can extend any of your Akka.NET applications with a combination of built-in command palettes and user-defined ones, and the pbm client will download the list of supported commands and expose them directly on the command line, including auto-complete and help documentation.

One Akka.NET application can have a totally different set of commands than another, and the pbm client will automatically adjust to support the commands that are available on the hosts it connects to.

Once a pbm client has downloaded the available set of commands from the server, it exposes that information to the end user and allows them to send commands to the Petabridge.Cmd.Host.

Petabridge.Cmd request-response model with command host on server

All of the pbm commands are sent over the network via Akka.IO, processed by the host, and a set of responses are streamed back to the pbm client for rendering. Once the stream terminates the client will be able to accept more input.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.1 is compatible.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
1.4.1 1,430 3/18/2024
1.4.0 10,071 1/12/2024
1.3.3 475 1/10/2024
1.3.2 23,193 7/18/2023
1.3.1 8,581 5/4/2023
1.3.0 16,426 3/3/2023
1.3.0-beta1 212 3/1/2023
1.2.2 8,124 1/19/2023
1.2.1 3,986 12/19/2022
1.2.0 5,257 11/18/2022
1.1.4 117 7/17/2023
1.1.3 5,555 10/20/2022
1.1.2 3,974 9/28/2022
1.1.1 948 9/23/2022
1.1.0 17,029 6/9/2022
1.0.2 27,174 11/16/2021
1.0.1 13,586 8/3/2021
1.0.0 1,019 7/26/2021
0.8.5 10,081 5/3/2021
0.8.4 647 4/30/2021
0.8.3 7,617 3/18/2021
0.8.2 12,240 11/24/2020
0.8.1 1,151 11/16/2020
0.8.0 18,797 3/11/2020
0.8.0-rc2 375 3/10/2020
0.8.0-rc1 391 3/3/2020
0.7.1 1,035 3/3/2020
0.7.0 8,033 10/3/2019
0.6.3 3,230 7/30/2019
0.6.2 1,741 6/19/2019
0.6.1 2,438 5/19/2019
0.6.0 848 5/9/2019
0.5.0 1,319 3/6/2019
0.4.1 815 12/7/2018
0.4.1-beta351 557 12/7/2018
0.4.0 740 11/27/2018
0.3.3 689 11/27/2018

Petabridge.Cmd maintenance release for v0.3.*.
Upgraded to Akka.NET v1.3.5;
Added: [Add a "count" to the end of `cluster show` command](https://github.com/petabridge/petabridge.cmd-issues/issues/24)
Added: Support for `MemberStatus.WeaklyUp` in all Petabridge.Cmd.Cluster commands