Skip to main content

Camunda external task Robot Framework RCC client

Project description

Camunda external task Robot Framework RCC client

Technology preview.

carrot-rcc is an opinionated Camunda external task client for executing Robot Framework RPA framework tasks. It is based on Robocorp RCC toolchain and Camunda external task client for Node JS.

carrot-rcc executes robots build and wrapped into zip files following to Robocorp documentation. Single carrot-rcc service can subscribe multiple topics, execute tasks concurrently, but only locally on the same computer. carrot-rcc works on Windows, Linux and most probably also on MacOS.

usage: carrot-rcc [<robots>...]
                  [--base-url] [--authorization]
                  [--worker-id] [--max-tasks] [--poll-interval] [--log-level]
                  [--rcc-executable] [--rcc-encoding] [--rcc-telemetry]
                  [-h] [--help]

<robots> could also be passed as a comma separated env RCC_ROBOTS

options:

  --base-url[=<url>]                       [env: CAMUNDA_API_BASE_URL] [default: http://localhost:8080/engine-rest]
  --authorization[=<header>]               [env: CAMUNDA_API_AUTHORIZATION] [example: Basic ZGVtbzpkZW1v]

  --worker-id[=<string>]                   [env: CLIENT_WORKER_ID] [default: carrot-rcc]
  --max-tasks[=<cpus>]                     [env: CLIENT_MAX_TASKS] [default: [cpu count]]
  --poll-interval[=<milliseconds>]         [env: CLIENT_POLL_INTERVAL] [default: 10000]
  --log-level[=<debug|info|warn|error>]    [env: CLIENT_LOG_LEVEL] [default: info]

  --rcc-executable[=<path>]                [env: RCC_EXECUTABLE] [default: rcc]
  --rcc-encoding[=<encoding>]              [env: RCC_ENCODING] [default: utf-8]
  --rcc-telemetry                          [env: RCC_TELEMETRY] (default: do not track)

  -h, --help

carrot-rcc in brief:

  • On startup, every given robot is examined for their task names robot.yaml.
  • Then carrot-rcc subscribes every task name as they were Camunda external task topics.
  • On a new task, its variables (also files) are saved as a robot work item.
  • Next RCC is called to resolve robot's dependencies and execute the robot.
  • Finally, carrot-rcc saves changed and new variables from the robot's saved work item with robot execution logs back to Camunda (onto the task execution context) and either completes of fails the task at Camunda.

Installation

carrot-rcc requires NodeJS 12 or later and RCC should be on its PATH (or passed with --rcc-executable argument).

Yet, it is possible to bootstrap everything with just RCC:

  1. Create a directory for carrot-rcc and download RCC into that directory.

  2. Download an example conda.yaml defining the requirements for carrot-rcc.

  3. Install carrot-rcc into RCC managed environment with

    $ rcc env new conda.yaml
    

    or

    $ rcc.exe env new conda.yaml
    
  4. The hard part. Figure out from the logs where RCC did create the environment. Then copy a few files back and forth to give you access the environment and installed carrot-rcc and give carrot-rcc access to RCC with

    $ cp /home/user/.robocorp/live/850002f365eee60f/rcc_activate.sh .
    $ cp rcc /home/user/.robocorp/live/850002f365eee60f/bin
    

    or

    $ copy C:\Users\User\AppData\Local\robocorp\live\850002f365eee60f\rcc_activate.cmd .
    $ copy C:\Users\User\AppData\Local\robocorp\live\850002f365eee60f\Scripts\carrot-rcc.exe .
    $ copy rcc.exe C:\Users\User\AppData\Local\robocorp\live\850002f365eee60f
    
  5. Finally, activate environment with

    $ source rcc_activate.sh
    

    or

    $ rcc_activate.cmd
    

Done, now carrot-rcc should be ready to be run, for example with:

$ carrot-rcc robot.zip --base-url=http://localhost:8080/engine-rest --log-level=debug

or

$ carrot-rcc.exe robot.zip --base-url=http://192.168.86.156:8080/engine-rest --log-level=debug

The project has an example Camunda process Search XKCD comic with an example robot available.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carrot-rcc-0.3.0.tar.gz (261.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

carrot_rcc-0.3.0-py3-none-any.whl (263.2 kB view details)

Uploaded Python 3

File details

Details for the file carrot-rcc-0.3.0.tar.gz.

File metadata

  • Download URL: carrot-rcc-0.3.0.tar.gz
  • Upload date:
  • Size: 261.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.9 Linux/5.4.112

File hashes

Hashes for carrot-rcc-0.3.0.tar.gz
Algorithm Hash digest
SHA256 1fbff18a74daf0cae2bc1842341f7740dcb1541d26a86bfb69bd3ba3d6821ce7
MD5 b5ae3e6fa7161846da786071c9fced0d
BLAKE2b-256 7f74e856926da5ca061845374baa1c6e4bd6dca2a289c49be28efcb9e850f70f

See more details on using hashes here.

File details

Details for the file carrot_rcc-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: carrot_rcc-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 263.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.9 Linux/5.4.112

File hashes

Hashes for carrot_rcc-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 686ae12094bcc177993b1a9693889afaca44fad4180a996528b2e5d0ac6277d3
MD5 bb7b17eb6b960bc6aafe417103bec20e
BLAKE2b-256 eba0ffe59c4a83dd2df242b1e8a5e34f22de34550772d96ef0b3360dcee794e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page