# ProcessCube.Engine.Client.rs
A library and CLI tool written in Rust, to send requests to the 5Minds ProcessCube® Engine API.
This project was designed to work with the ProcessCube® Engine API provided in the Docker Image
[`5minds/processcube_engine:16.0.0`](https://hub.docker.com/r/5minds/processcube_engine/tags).
Older or newer versions _might_ work, but support is not guaranteed.
## Current coverage
Coverage of the available endpoints is currently rather limited.
| AnonymousSessions | ❌ | ❌ |
| ApplicationInfo | ✅ | ✅ |
| Correlations | ❌ | ❌ |
| Cronjobs | ❌ | ❌ |
| DataObjectInstances | ❌ | ❌ |
| EmptyActivities | ❌ | ❌ |
| Events | ✅ | ❌ |
| ExternalTasks | ❌ | ❌ |
| FlowNodeInstances | ✅ | ❌ |
| ManualTasks | ❌ | ❌ |
| Notifications | ❌ | ❌ |
| ProcessDefinitions | ✅ | ✅ |
| ProcessInstances | ❌ | ❌ |
| ProcessModels | ✅ | ❌ |
| UserMetadata | ❌ | ❌ |
| UserTasks | ❌ | ❌ |
✅ Full Support -
❌ No Support -
GET/POST/... Partial Support
## How to Use
### CLI
If you just want to use the `processcube_engine_client` CLI tool, you can use
```shell
cargo install processcube_engine_client
```
to install it. You should then be able to use it, e.g. `processcube_engine_client application-info authority`
### Library
When developing an application, you can use the library by adding this package to your project, i.e.
```shell
cargo add processcube_engine_client
```
A short usage example:
```rust
use processcube_engine_client::clients::{client_factory::ClientFactory, error::EngineError};
// Be sure to have a running ProcessCube® Engine at the given URL
const ENGINE_URL: &str = "http://localhost:10560";
const DUMMY_TOKEN: &str = "Bearer ZHVtbXlfdG9rZW4=";
#[tokio::main]
async fn main() -> Result<(), EngineError> {
let client_factory = ClientFactory::new(ENGINE_URL, DUMMY_TOKEN);
let client = client_factory.create_application_info_client();
let info = client.get_application_info().await?;
println!("{:#?}", info);
Ok(())
}
```
## Development
### Prerequisites
- [Rust](https://www.rust-lang.org/tools/install)
- [Docker](https://docs.docker.com/get-docker/)
### Setup
1. Clone this repository
2. Run `docker run -p 10560:80 5minds/processcube_engine:16.0.0` to start the 5Minds ProcessCube® Engine
3. Ready to go!
You can now run `cargo test` to run the tests, or `cargo run --bin processcube_engine_client` to run the CLI tool.
Swagger documentation for the API can be found at [`http://localhost:10560/`](http://localhost:10560/).