Skip to content

Commit

Permalink
docs: update packaging instructions and base version (#122)
Browse files Browse the repository at this point in the history
  • Loading branch information
eeberhard authored Feb 8, 2024
1 parent f094fb8 commit 4b5f28e
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 18 deletions.
10 changes: 10 additions & 0 deletions docs/docs/getting-started/02-licensing.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,16 @@ To request a license, contact the AICA sales team at [email protected]. A user-s
and sent by email. For the rest of this guide, it will be assumed that a valid license has been saved to a file called
`aica-license.toml` on the host machine.

:::caution

Your license key should be kept secret. Do not share your license key with unauthorized users or enter it on websites
other than the official AICA domain. License abuse may prevent your application from running or lead to your license
being revoked.

If an unauthorized user has gained access to your license key, contact [email protected] to reset your license.

:::

AICA licenses come in two variants: **online** and **offline**.

## Online licenses
Expand Down
79 changes: 63 additions & 16 deletions docs/docs/getting-started/03-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,32 @@ and add your user.

:::

## Logging in to the AICA package registry
## The AICA package registry

AICA software packages are hosted in a private container registry. Use a valid [license file](./02-licensing.md) to
authenticate docker to login and pull images from the registry using the following command:
As seen in [Concepts: Introduction](../concepts/01-intro.md), AICA software comprises a collection of multiple packages
around a unified framework. The base package includes the Dynamic State Engine, a core collection of components and
controllers, the REST API and Developer Interface UI. Add-on packages include additional components or hardware
collections.

AICA software packages are hosted as docker images in a private container registry. Viewing and downloading packages
from the registry requires a valid [license](./02-licensing.md).

### Listing available AICA packages

To list available packages and versions, go to the official AICA registry page
at [https://registry.licensing.aica.tech](https://registry.licensing.aica.tech) and enter your license key.

:::tip

An AICA license includes specific entitlements that determine which add-on packages and versions can be accessed and
used. To discover and access additional components and hardware collections, contact your AICA representative to upgrade
your license.

:::

### Logging in to the AICA package registry

To authenticate docker to login and pull images from the registry, run the following command:

```shell
cat aica-license.toml | docker login registry.licensing.aica.tech -u USERNAME --password-stdin
Expand All @@ -35,11 +57,6 @@ This is because the authentication layer ignores the username and only uses the

## Configuring AICA packages with a manifest file

As seen in [Concepts: Introduction](../concepts/01-intro.md), AICA software comprises a collection of multiple packages
around a unified framework. The base package includes the Dynamic State Engine, a core collection of components and
controllers, the REST API and Developer Interface UI. Add-on packages include additional components or hardware
collections.

A runtime application image is configured using a simple **manifest file** defining the version of the base package
to use and optionally defining additional add-on packages. The manifest file contains a custom docker syntax header
pointing to AICA's app-builder tool, and the `docker build` command is used to bundle all listed packages into a final
Expand All @@ -54,16 +71,22 @@ only the base package. The version of the base package can be changed according
#syntax=ghcr.io/aica-technology/app-builder:v1

[packages]
"@aica/base" = "v2.1.0"
"@aica/base" = "v3.0.0"
```

### Configuring a runtime image with add-on packages

A manifest can include additional components and hardware collections as add-on packages. For any available package
[listed in the AICA registry](#listing-available-aica-packages), specify the package and version with the `@aica/`
prefix. The following example manifest file includes two add-on packages: version 1.0.1 of the
`components/signal-processing` component package and version 3.04 of the `collections/ur-collection` hardware collection
package.

```toml title="aica-package.toml"
#syntax=ghcr.io/aica-technology/app-builder:v1

[packages]
"@aica/base" = "v2.1.0"
"@aica/base" = "v3.0.0"

# add components
"@aica/components/signal-processing" = "v1.0.1"
Expand All @@ -72,16 +95,40 @@ only the base package. The version of the base package can be changed according
"@aica/collections/ur-collection" = "v3.0.4"
```

An AICA license includes specific entitlements that determine which add-on packages and versions can be accessed and
used.
AICA support will provide a package manifest with the latest included add-ons together with the respective license key.
### Including custom packages

The AICA framework allows developers to build their
own [custom components](../reference/custom-components/01-component-package.md). These packages can be included under
a custom name using the `docker-image://` prefix to specify the docker image name or path. For example, a custom
component package that was locally built using `docker build [...] --tag my-custom-component-package` could be included
as `docker-image://my-custom-component-package`. Community and third-party packages may also be available on other
docker registries such as DockerHub or GitHub Container Registry and can be included with the associated docker path.

For a full list of available add-ons for components and hardware collections, along with their latest versions and
release notes, contact your AICA representative.
```toml title="aica-package.toml"
#syntax=ghcr.io/aica-technology/app-builder:v1

[packages]
"@aica/base" = "v3.0.0"

# add a custom package from a local docker image path
"my-local-package" = "docker-image://my-custom-component-package"

# add a package from any docker path such as GitHub Container Registry
"my-ghcr-package" = "docker-image://ghcr.io/user/package:tag"
```

## Building an AICA runtime application image

For a manifest file saved as `aica-package.toml`, use the following command to build the runtime application.
:::note

[Log in to the package registry](#logging-in-to-the-aica-package-registry) before building the image to authorize docker
to access AICA packages.

:::

Once the desired packages have been configured in a manifest file, a `docker build` command can be used to build the
runtime application image. In this example, a manifest file saved as `aica-package.toml` is used to build an image
with the name `aica-runtime`.

```shell
docker build -f aica-package.toml -t aica-runtime .
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/getting-started/05-examples/01-timer-example.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ This example requires only the base image.
#syntax=ghcr.io/aica-technology/app-builder:v1

[packages]
"@aica/base" = "v2.1.0"
"@aica/base" = "v3.0.0"
```

## Setting up the application
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ This example requires the Universal Robots collection which includes example URD
#syntax=ghcr.io/aica-technology/app-builder:v1

[packages]
"@aica/base" = "v2.1.0"
"@aica/base" = "v3.0.0"

"@aica/collections/ur-collection" = "v3.0.4"
```
Expand Down

0 comments on commit 4b5f28e

Please sign in to comment.