Skip to content

Commit

Permalink
Prepare Release SDK-V-0206
Browse files Browse the repository at this point in the history
  • Loading branch information
Albrecht Johannes (DC-AE/ESW1) committed Apr 30, 2024
1 parent 9c6236a commit d8fbc51
Show file tree
Hide file tree
Showing 240 changed files with 18,789 additions and 16,535 deletions.
15 changes: 10 additions & 5 deletions doc/appdevguide.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Before the validation process starts, the partner / app developer must provide t
* a description of a typical standard scenario


The architecture overview should be stored as "**architecture-overview.x**" in the {app-name} folder and should be delivered with each new app version.
The architecture overview should be stored as "**architecture-overview.x**" in the {app-name} folder. Initially, provide the architecture overview, and if there are any changes in the architecture, update and provide the new overview.

This document typically will be provided for an initial meeting with the partner / app developer, the relevant Bosch Rexroth partner manager and the Bosch Rexroth app validation team.
At this point, the partner should also already have uploaded the necessary artifacts to be able to clarify any open points.
Expand Down Expand Up @@ -243,10 +243,10 @@ The basic app information is checked as a prerequisite by Bosch Rexroth, before

#### 4.1.1 Artifacts Folder Template

The ctrlX World Partner Portal provides a file (artifacts.zip), which can be downloaded and extracted locally.
Please find the sample artifacts in the [artifacts.zip](artifacts.zip), which can be downloaded and extracted locally.
This will create the required folder structure for the mandatory artifacts out-of-the-box, with default descriptions and schema files.

!!!! important
!!! important
Please use the given structure, folder names and file names unchanged. This will support an efficient validation process.

![image](images/artifacts.png)
Expand Down Expand Up @@ -481,15 +481,16 @@ For information how to adapt an app to the licensing service please have look on
To make sure that only apps that have successfully passed the validation process are available as a ctrlX app, these Apps need to be signed by Bosch Rexroth.
During the signing process, the app binaries are checked and combined with a signature. This signature guarantees that the app cannot be modified after the validation and signing process.

!!! note
At the moment, only Bosch Rexroth can sign ctrlX apps
Note: Currently only Bosch Rexroth can sign ctrlX apps

## 8 ctrlX Security System (<span style="color:green;">**OPTIONAL**</span>)<a name="security"></a>

### 8.1 ctrlX CORE reverse proxy (<span style="color:green;">**OPTIONAL**</span>)

The proxy URL is the most important setting in the **package-manifest.json** file for the app to be integrated seamlessly into the ctrlX CORE. The reverse proxy will forward requests to the URL that are defined for the app web service.

**Please make sure that your App provides unique URLs for the ctrlX reverse proxy**

An app is to be bound to a Unix socket instead of a local port. This will also prevent potential collisions with other services.

!!! warning
Expand All @@ -516,6 +517,8 @@ If the mechanisms the ctrlX CORE provides are not used, hardcoded accounts/crede
The ctrlX CORE's so called "scopes" are to be used to model app permissions. Scopes allow permissions to be assigned to users & groups via the web interface. If case permissions are used, the permissions must be enforced within the app
(package-manifest.json)

**If your app supports scopes, unique scopes must be provided to the ctrlX permission manager**


## 9 ctrlX User Interface and Project Handling (<span style="color:green;">**OPTIONAL**</span>)<a name="userinterface"></a>

Expand All @@ -535,6 +538,8 @@ The so-called "Solution" is an essential part of any ctrlX CORE device. It provi

- Should be non-binary (in future version control system / GIT will be used). However, if there is no alternative and the files do not change too often, small binaries can be stored in a configuration.

**Apps must use separate, unique repositories in ctrlX configurations.**


#### 9.2.2 Environment Variables (<span style="color:blue;">**CONDITIONAL**</span>)

Expand Down
4 changes: 3 additions & 1 deletion doc/appdevguide_basechecks.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ The content of this document may be subject of change in further versions of the

- **Schema for snapcraft.yaml:** https://github.com/snapcore/snapcraft/blob/master/schema/snapcraft.json
- **Schema for technical app name:** "ctrlx-{company name}-{app name}-{app version}_arm64/amd64.snap"
- **ctrlX Device Portal: App name in Private Repository:** If the App is provided in a Private Repository for the ctrlX Device Portal, the Name in the Artifact Description in the Repository should be identical to the Name in snapcraft.yaml. Please see https://docs.automation.boschrexroth.com/doc/2056862327/ctrlx-device-portal/latest/en/ for additional information about the ctrlX Device Portal and the Private Repository.



Expand All @@ -43,7 +44,8 @@ The content of this document may be subject of change in further versions of the
| **Item** | **Criteria** |
| --- | --- |
| **licenses** | list of all used licenses (`licenses.name, .title, .description .required`) |
| **certificatestores** | snap service to handle keys and certificates (ptional) |
| **certificatestores** | snap service to handle keys and certificates (optional) |
| **menus** | optional: entries for sidebar integration (if use, the entries must be unique)

For each given Proxy Mapping `services.proxyMapping[i]`:
| **Item** | **Criteria** |
Expand Down
70 changes: 70 additions & 0 deletions doc/appdevguide_docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Document Overview

This document is part of the Bosch Rexroth ctrlX OS App Development Guideline, and describes specific topics for Apps which are based on the Docker container technology

Please refer to the App Development Guide for further information about general requirements and checks

The content of this document may be subject of change in future.


# 1. Artifacts / Files

In addition to a native Ubuntu Core App, a Docker App shall provide the files in this list

| Files | Description | Value(s) | Optional / Mandatory |
| --- | --- | --- |--- |
| Docker-compose.yml | The docker-compose.yml file contains the configuration and options to run the services required by the snap | docker-compose.yml | Mandatory
| Docker-compose.env | The docker-compose.env file contains the environment variable(s) set to run the snaps | docker-compose.env |Optional |

# 2. Base Checks

## 2.1 snapcraft yaml / snap.yaml

In addition to the checks for snap.yaml which are described [here](appdevguide_basechecks.md), a Docker App has additional elements:

| Item | Content | Optional / Mandatory |
| --- | --- | --- |
| docker-compose | configuration file | Mandatory |
| docker-volumes | manage app data | Mandatory |

The mandatory entries must be provided like the following:
```yaml
parts:
docker-compose:
plugin: dump
source: ./docker-compose
organize:
'*': docker-compose/${SNAPCRAFT_PROJECT_NAME}/
slots:
docker-compose:
interface: content
content: docker-compose
source:
read:
- $SNAP/docker-compose/${SNAPCRAFT_PROJECT_NAME}
docker-volumes:
interface: content
content: docker-volumes
source:
write:
- $SNAP_DATA/docker-volumes/${SNAPCRAFT_PROJECT_NAME}

```
## 2.2 docker-compose.yml
| Item | Content | Optional / Mandatory |
| --- | --- | --- |
| version | version of the docker-compose | Mandatory |
| services | information about the docker images, like image name, container name, used ports, required volumes etc. | Mandatory |
| volumes | mounted volumes | Optional |
| ports | described ports are not conflicting with standard/blocked ports. and app uses only described ports | Optional |


Note: For example, here you can find information about syntax of a compose file: https://github.com/compose-spec/compose-spec/blob/master/spec.md

## 2.3 docker-compose.env

This file is optional and provides all environment variables which are used in the docker-compose.yml

| Item | Content | Optional / Mandatory |
| --- | --- | --- |
| variables | All variables in docker-compose.yml are provided here | Optional |
2 changes: 1 addition & 1 deletion doc/appdevguide_reserved-interfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ The following ports are blocked and cannot be used by an app.
| Reserved by | Reserved ports |
| --- | --- |
| ctrlX OS | 22, 80, 81, 443, 1338, 1880, 1900, 2069, 2070, 4840, 5355, 5353, 6000, 7878, 8069, 11740, 11741 |
| Other apps | 1884, 2883, 4222, 8000, 8080, 8088, 8142, 8840, 8883, 16620, 16700, 16701, 16800, 16810, 18500, 47808, 48898, 49250-50250, 56090 |
| Other apps | 1884, 2883, 4222, 8000, 8080, 8088, 8142, 8840, 8883, 10123, 16620, 16700, 16701, 16800, 16810, 18500, 47808, 48898, 49250-50250, 56090 |

****
**Copyright**
Expand Down
76 changes: 76 additions & 0 deletions doc/appdevguide_systemreport.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
This document is part of the Bosch Rexroth ctrlX OS App Development Guideline, and describes how a ctrlX OS App can integrate in the ctrlX OS System Report

Please refer to the App Development Guide for further information.

The content of this document may be subject of change in future.


# Introduction
The ctrlX OS system report is provided as zip file. ctrlX OS Apps can participate in this mechanism and provide their own log information and other files.
This document describes, which interfaces are available in ctrlX OS to automatically add App specific information to the system report.

**Note**: This mechanism is available in ctrlX OS 1.20 or higher

# Integration in the ctrlX OS System Report

## Information in snapcraft.yaml

- "**apps**" section: add "package-run" to the slots of your service(s) that will add files to the system report
- "**slots**" section: add the "package-run" sections as described below:

```yaml

apps:
...
my-service:
slots: [..., package-run, ...]

...

slots:
...
package-run:
interface: content
content: package-run
source:
write:
- $SNAP_DATA/package-run/${SNAPCRAFT_PROJECT_NAME}

```

## Files for System Report

The files, which will be part of the System Report, will be provided in this directory:

```yaml
$SNAP_DATA/package-run/$SNAP_INSTANCE_NAME/logs
```
- Access mode for files: 0644
- Access mode for the directory: 0755


# Example
With
```yaml
$SNAP_INSTANCE_NAME: my-snap
$SNAP_DATA: /var/snap/my-snap/current
```
and the directory structure
```yaml
drwxr-xr-x root root /var/snap/my-snap/current
drwxr-xr-x root root /var/snap/my-snap/current/package-run
drwxr-xr-x root root /var/snap/my-snap/current/package-run/my-snap
drwxr-xr-x root root /var/snap/my-snap/current/package-run/my-snap/logs
-rw-r--r-- root root /var/snap/my-snap/current/package-run/my-snap/logs/my-log-file.log
drwxr-xr-x root root /var/snap/my-snap/current/package-run/my-snap/logs/my-dir
-rw-r--r-- root root /var/snap/my-snap/current/package-run/my-snap/logs/my-dir/my-other-file.dat
drwxr-xr-x root root /var/snap/my-snap/current/package-run/my-snap/logs/my-empty-dir
```
the following files and directories are added to the system report:

```yaml
my-log-file.log
my-dir/my-other-file.dat
my-empty-dir
```
Binary file added doc/artifacts.zip
Binary file not shown.
21 changes: 21 additions & 0 deletions doc/certificates/com.ctrlx-automation.os.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDczCCAtSgAwIBAgIUcGBESaWy7jM4BEoWQuOOX6UfnIowCgYIKoZIzj0EAwIw
ga0xCzAJBgNVBAYTAkRFMQswCQYDVQQIDAJCWTEVMBMGA1UEBwwMTG9ociBhbSBN
YWluMRkwFwYDVQQKDBBCb3NjaCBSZXhyb3RoIEFHMQ4wDAYDVQQLDAVEQy1BRTEc
MBoGA1UEAwwTY29tLmJvc2NocmV4cm90aC5hZTEMMAoGA1UEDAwDRUNDMSMwIQYJ
KoZIhvcNAQkBFhRpbmZvQGJvc2NocmV4cm90aC5kZTAgFw0yMzAyMTQwOTE4MDla
GA85OTk5MTIzMTIzNTk1OVowgbExCzAJBgNVBAYTAkRFMQswCQYDVQQIDAJCWTEV
MBMGA1UEBwwMTG9ociBhbSBNYWluMRkwFwYDVQQKDBBCb3NjaCBSZXhyb3RoIEFH
MQ4wDAYDVQQLDAVEQy1BRTEgMB4GA1UEAwwXY29tLmN0cmx4LWF1dG9tYXRpb24u
b3MxDDAKBgNVBAwMA0VDQzEjMCEGCSqGSIb3DQEJARYUaW5mb0Bib3NjaHJleHJv
dGguZGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATcUX/mhoHCJy/Pd9BWouqE
F8QC7r+rGyjbqRYKxcLPvOsgqC+mmR9+UILQQPm3Dd/hMLTFc1+g81y7dGomqLQ4
o4HJMIHGMBIGA1UdEwEB/wQIMAYBAf8CAQMwHQYDVR0OBBYEFDnbCARYt0nRWxeo
0Pquuyi2uaPYMB8GA1UdIwQYMBaAFM/qza12Oav4EoW2tB/abdIDJBs+MA4GA1Ud
DwEB/wQEAwIBBjBgBgNVHR8EWTBXMFWgU6BRhk9odHRwOi8vYmljcy5tY2cuZXNj
cnlwdC5jb20vMTc2L2NybD9pZD1jZmVhY2RhZDc2MzlhYmY4MTI4NWI2YjQxZmRh
NmRkMjAzMjQxYjNlMAoGCCqGSM49BAMCA4GMADCBiAJCARRiylrQsc5YMHgWx+9V
WZORk3DU5qevwJJP5HPJoAhICrBLiZf3OYGxjBRjkqi/N/u7RkQiJiUnXMCdmys7
5PZwAkIBBe/SDUY3U8kayGASML1ndMXKrP3cjK1ic2hDIcFiezKS2P1if4EA12mu
huxkG4mtcCsQ1h6OGDXHSq8/qTJ2tME=
-----END CERTIFICATE-----
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"product": "<PRODUCT_VERSION (e.g. XCR-V-0114)>",
"product": "<PRODUCT_VERSION (e.g. XCR-V-0204)>",
"mainDiagnostics": {
"<MAIN_DIAG_1_NUMBER>": {
"text": "<MAIN_DIAG_1_TEXT_ENGLISH>",
Expand Down Expand Up @@ -30,4 +30,4 @@
"version": <MAIN_DIAG_3_VERSION>
}
}
}
}

This file was deleted.

This file was deleted.

This file was deleted.

13 changes: 0 additions & 13 deletions doc/common.log.diagnosis/diagnosis_templates/TEMPLATE_main_diag.h

This file was deleted.

Loading

0 comments on commit d8fbc51

Please sign in to comment.