Skip to content

Multi Account Installation

This quickstart tutorial showcases how to create a Multi-Account Installation extension project by using the CloudBlue Connect CLI tool.

Requirements

Make sure that the following prerequisites are met:

  • Python (3.8, 3.9 or 3.10) is installed
  • Docker is installed
  • The latest release of Poetry is installed
  • Latest release of Connect CLI is installed
  • A distributor, reseller, or vendor account on CloudBlue Connect is required

Prepare your Connect account

It is required to generate an API token and add your distributor or reseller account via the CLI tool.

Create a new token by using the Connect interface:

  1. Navigate to Integrations -> Tokens.
  2. Click the + Create Token button.
  3. Proivde a name, description and an optional external id for your token.
  4. Next, choose Custom Integration from the extension list.
  5. Select required permissions for your token, at least the DevOps option should be selected.
  6. On the summary screen, click Go To Details to access your token details.
  7. Click the button to copy your token.

Next, open your terminal and run:

$ ccli account add "<your copied token>"

Note that <your copied token> must be replaced with your generated API token.

Create an extension in DevOps

Use the DevOps module on the Connect platform to create a Multi-Account Installation extension:

1) Click on the + Add Extension button to start configuring a new extension object.

DevOps main

2) Provide your extension name, enter your package ID (e.g., connect.test.package) and click Create.

DevOps add extension

3) Click the Open button to access the details page of your created extension.

DevOps extensions

4) Locate the Local Access widget and click on the button to copy your environment ID.

DevOps details

Run the Extension Project Bootstrap wizard

To run the wizard run in your terminal:

$ ccli project extension bootstrap

The welcome screen will be shown:

Wizard welcome

Name your extension

Wizard project name

Your provided extension name will be used for packaging metadata.

Project root folder name

Wizard project root

The root folder with all required files will be created once all operations with the wizard are completed.

Describe your extension

Wizard project description

Your provided description will be used to generate a readme file and for packaging metadata.

Set initial version number

Wizard project version

Your provided version is used for packaging metadata.

Provide the author name

Wizard project author

Your provided author name will be used for packaging metadata and to add a copyright header in each generated file.

Choose python package name

Wizard project package

Select a package name for your extension. It must be a valid python identifier (e.g., connect_ext).

Synchronous or asynchronous programming

In case you are familiar with python asyncio programming, select yes in the following step:

Wizard project asyncio

Github actions

If you plan to host your git repository on github.com and you want to automate the continuous integration of your project, select yes in the following step and an actions workflow file will be created for you:

Wizard project github

Api Hostname

The wizard will propose to use a hostname of the Connect production environment by default:

Wizard project host

Api Key

The wizard will propose to use the same Api Key that is configured for your vendor/distributor/reseller account:

Wizard project ApiKey

Environment ID

Use your copied environment ID value from the Local Access widget of the details screen:

Wizard project environment

Extension type

Select Multi-Account Installation for this scenario:

Wizard extension type

Extension audience

Specify account roles on Connect that can use your extension:

Wizard extension type

Extension features

Choose all the application types for this scenario:

Wizard extension features

Event categories

Select categories of events you want to handle:

Wizard extension events categories

UI embedding support

Choose yes in case you plan to create a user interface for your extension:

Wizard extension UI

Background events

Specify your required background events:

Wizard extension background

Environment variables

In case your extension should use environment variables, choose yes to generate example environment variables:

Wizard extension variables

Summary

As a result, the wizard will provide a summary with your selected options:

Wizard summary

Select Create and press Enter to generate your extension project.

In order to run your extension locally, it is required to build a docker image for your extension.

Go to your generated project folder and run:

$ docker compose build

Thereafter, use the following command to execute your extension:

$ docker compose up <your_extension_slug>_dev

Congratulations

Go to your extension details page via the Connect UI DevOps module and click the button to see your extension up and running!