Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

There are 2 separate publish steps to take for 1 application :

...

First Step:

Publish your oci, dobby, dac compliant AppContainer image to an oci container registry in the cloud. This is a standard cloud component that allows to upload container images (docker push), store them there persistently and download them (docker pull). This oci-registry is the binary exchange point to share your application binary with RDK-M and various RDK operators. 

...

Second Step:

...

Register your application with appropriate metadata in RDK-M DAC cloud system setup for RDK Video Accelerators either via AppStore Admin Portal or directly via REST APIs. There is microservice called ASMS (AppStore Metadata Service) that offers API that allows Application Maintainers to register their app with appropriate metadata. Once registered this will add you app to the DAC App catalog for RDK-M Video Accelerators (VA) and you will be able to discover your App in the Resident UI of all RDK6.1 Video Accelerators and as user/tester of VA you can then choose to install it on any RDK6.1 VA and once installed you can run it. In the background the RDK-M instance of the DAC cloud system will automatically fetch your oci-AppContainer image, create bundle of it for the specific Video Accelerator Hardware (SoC/OEM), encrypt (optionally) and make it available for Video Accelerator to download and store securely. 

In next sections we provide detailed howto for each step.

...

  • the private RDK OCI container registry setup and maintained by RDK-M DAC cloud team, being "public.ecr.aws/a0v6o9z7".  You can request RDK-M DAC cloud support team (who TBD, ad interim Piotr S or Stefan V or BartC dac-info@consult.red) to upload your oci image there with version tag you specified or you can do it yourselves following the practical Instructions & tools described below. You will need credentials/account for accessing this registry, which you can request via email to piotr.serafin@consultdac-info@consult.red or  or bcatrysse@libertylgobal.com. (When there is time/money this credential creation process should be improved and autosetup as part of registering as New Application maintainer in RDK DAC cloud system or Firebolt Connect system.  
  • any of public accessible OCI container registries on the internet. The requirement is that the container registry supports OCI container format, that the container itself is uploaded & stored in the OCIcontainer image format (so not in docker format) and is public fetchable/accessible (read only, without any user/login) from RDK DAC cloud system. Note that in this approach your application binary is publicly accessible, not all application providers will agree with that and those will need to use the private RDK oci container registry approach explained above.

...

You need to have the following util programs installed:  aws cli tools and skopeo.Assuming your host is linux, configure your aws profile ~/.aws/credentials file as per below 

Code Block
languagebash
//Obviously you need to fill in your credentials below iso xxxxx and yyyyy. If you want to use the private OCI container registry from RDK-M, request piotr.serafin@consult.red for credentials
[s3dacrdk]
aws_access_key_id = xxxxx
aws_secret_access_key = yyyyyy

Assuming your host is linux, configure your aws profile ~/.aws/credentials file as per below 

Login, create new container repository and publish Login, create new container repository and publish the OCI image in there:

Code Block
languagebash
# login into private RDK-M OCI container registry
aws --profile s3dacrdk ecr-public get-login-password --region us-east-1 | skopeo login --username AWS --password-stdin public.ecr.aws/a0v6o9z7

# create repo for your application, in which you can publish different versions, example below creates "cobalt" one for Youtube/cobalt application
aws --profile s3dacrdk --region us-east-1 ecr-public create-repository --repository-name cobalt

# list repos
aws --profile s3dacrdk --region us-east-1 ecr-public describe-repositories

# The actual command that uploads/publishes your local version of a oci image associated with your application to the RDK-M oci-registry 
# within repo named "cobalt" with the version tag "latest" standing for latest version
skopeo copy oci-archive:dac-image-cobalt.tar docker://public.ecr.aws/a0v6o9z7/cobalt:latest

# with following command you can download your oci image from RDK-M registry to your local host
skopeo copy docker://public.ecr.aws/a0v6o9z7/cobalt:latest oci:cobalttest

# command to double check if uploaded container is oci image type
skopeo inspect --raw docker://public.ecr.aws/a0v6o9z7/cobalt:latest
{
  "schemaVersion": 2,
  "config": {
    "mediaType": "application/vnd.oci.image.config.v1+json",
    "size": 548,
    "digest": "sha256:0bc2f756fc781b015769230b207c6b227b788023a5c3d599504407cc1619110e"
  },
[...]
}

...

Publish your DAC app to ASMS

Note

Keep in mind that  DAC Backend is licensed under DAC Warehouse Service End-User Evaluation License Agreement. and by accessing or using the service, user accepts on Terms of Use.


ASMS  ASMS (AppStore Metadata Service) offers API that allows Application Maintainers to register their app with appropriate metadata. There are various ways to publish a new application to ASMS in DAC Cloud:

  1. use the official AppStore Admin Portal (please contact dac-info@consult.red for credentials)
  2. use the official ASMS REST API to publish the app, is openAPI / swagger API format which we describe in next section (please contact dac-info@consult.red for credentials)
  3. using the dactest.py python test tool that in its turn uses the ASMS api
  4. using front-end UI that in its turn uses the ASMS api. The latter one is not available yet to App Developers

...

URLs


All above require credentials please contact dac-info@consult.red for assistance.

Please use following template if possible:

...

Subject: Request for Credentials - DAC AppStore Services Access

Dear DAC AppStore Support Team,

I am writing to request credentials for accessing the following DAC AppStore Services:

  1. AppStore Metadata Service REST API
    URL: https://asms.rdkm.consult-red.net
    Swagger UI: https://asms.rdkm.consult-red.net/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config

  2. AppStore Admin Portal
    URL: https://ui.rdkm.consult-red.net/login

Please find my details below for authentication purposes:

  • Full Name: [Your Full Name]
  • Company: [Your Company Name]
  • Email Address: [Your Email Address]

I would appreciate it if you could provide the necessary credentials at your earliest convenience. If any further information is required, please do not hesitate to contact me.

Thank you for your assistance.

...

 AppStore Admin Portal Overview

The AppStore Admin Portal is a user-friendly, intuitive management interface designed by Consult Red for efficient control and administration of your applications and platform configurations. This portal empowers administrators with robust tools to streamline various processes, ensuring smooth operations and optimal performance.

Key features of the AppStore Admin Portal include:

  1. Application Management (DAC Applications):

    • Onboarding: Seamlessly onboard new DAC applications into the platform.
    • Updates: Efficiently manage and deploy updates to existing DAC applications.
    • Offboarding: Safely remove applications that are no longer needed.
  2. Platform Configuration Management:

    • Onboarding: Easily integrate new platform configurations for enhanced flexibility and control.
    • Updates: Apply updates to existing platform configurations to maintain compatibility and performance.
    • Offboarding: Decommission outdated or unnecessary configurations in a secure and organized manner.
  3. Platform Bundles:

    • List Bundles: View a comprehensive list of available platform bundles.
    • Pre-generate Bundles: Pre-generate platform bundles for faster deployment and management.

The AppStore Admin Portal is designed to simplify complex administrative tasks, enabling users to efficiently manage and optimize their platform and application landscape.

Image Added


Access to the Admin Portal requires credentials (contact dac-info@consult.red) and acceptance of Terms of Use during first login.

Register App using ASMS REST API

Note

Keep in mind that  DAC Backend is licensed under DAC Warehouse Service End-User Evaluation License Agreement. and by accessing or using the service, user accepts on Terms of Use.

You can access the swagger UI with the API documentation here:

...

as per API, to see the apps created by "rdk" maintainer GET /maintainers/rdk/apps which is  httphttps://rdkm-asms-external-1156877020.eu-central-1.elb.amazonaws.com:8080asms.rdkm.consult-red.net/maintainers/rdk/apps

To insert/create new DAC application into ASMS, you need to use POST /maintainers/{maintainerCode}/apps call with specific body

You can use swagger UI with example body for doing this, see httphttps://rdkm-asms-external-1156877020.eu-central-1.elb.amazonaws.com:8080asms.rdkm.consult-red.net/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/Maintainer/createMaintainerApplication

and screenshot below

example POST body with only the minimum required parameters

...

Code Block
languagejs
collapsetrue
{
  "header": {
    "icon": "https://280222515084-default-apps-resources.s3.eu-central-1.amazonaws.com/images/apps/com.rdk.app.chocolate-doom.png",
    "name": "Chocolate Doom",
    "description": "Chocolate Doom aims to accurately reproduce the original DOS version of Doom and other games based on the Doom engine in a form that can be run on modern computers.",
    "type": "application/dac.native",
    "size": 10000000,
    "category": "application",
    "localization": [
      {
        "languageCode": "nld",
        "name": "Geweldige applicatie",
        "description": "Dit is een geweldige applicatie"
      }
    ],
    "id": "com.rdk.app.chocolate-doom",
    "version": "1.0.0",
    "visible": true,
    "encryption": false,
    "preferred": false,
    "ociImageUrl": "docker://public.ecr.aws/a0v6o9z7/chocolate-doom:latest"
  },
  "requirements": {
    "dependencies": [
      {
        "id": "com.libertyglobal.service.voice",
        "version": "1.0.0"
      }
    ],
    "platform": {
      "architecture": "arm",
      "variant": "v7",
      "os": "linux"
    },
    "hardware": {
      "ram": "512M",
      "dmips": "2000",
      "persistent": "60M",
      "cache": "200M"
    },
    "features": [
      {
        "name": "rdk.api.awc",
        "version": "2",
        "required": false
      }
    ]
  },
  "maintainer": {
    "code": "rdk",
    "name": "RDK",
    "address": "RDK Management, LLC",
    "homepage": "https://rdkcentral.com",
    "email": "support@rdkcentral.com"
  },
  "versions": [
    {
      "version": "1.0.0",
      "visible": true,
      "preferred": false,
      "encryption": false
    }
  ]
}

Publish the DAC app using dactest.py tool

Note

Keep in mind that  DAC Backend is licensed under DAC Warehouse Service End-User Evaluation License Agreement. and by accessing or using the service, user accepts on Terms of Use.

Among other things, dactest.py can be used list ASMS apps, add entries and remove entries. 

...