App-Registry Service Configuration

Introduction

The Infinite Scale App-Registry service is the single point where all apps register themselves and their respective supported mime types.

Administrators can set default applications on a per MIME type basis and also allow the creation of new files for certain MIME types. This per MIME type configuration also features a description, file extension option and an icon.

Default Values

  • App-Registry listens on port 9240 by default.

MIME Type Configuration / Creation Allow List

The apps will register their supported MIME types automatically, so that users can open supported files with them.

Administrators can set default applications for each MIME type and also allow the creation of new files for certain mime types. This, per MIME type configuration, also features a description, file extension option and an icon.

MIME Type Configuration

Modifing the MIME type config can only be achieved via a yaml configuration. Using environment variables is not possible. For an example, see the ocis_wopi/config/ocis/app-registry.yaml at docker-compose example. The following is a brief structure and a field description:

Structure
app_registry:
  mimetypes:
  - mime_type: application/vnd.oasis.opendocument.spreadsheet
    extension: ods
    name: OpenSpreadsheet
    description: OpenDocument spreadsheet document
    icon: https://some-website.test/opendocument-spreadsheet-icon.png
    default_app: Collabora
    allow_creation: true
  - mime_type: ...
Fields
  • mime_type
    The MIME type you want to configure.

  • extension
    The file extension to be used for new files.

  • name
    The name of the file / MIME type.

  • description
    The human-readable description of the file / MIME type.

  • icon
    The URL to an icon which should be used for that MIME type.

  • default_app
    The name of the default app which opens this MIME type if the user doesn’t specify one.

  • allow_creation
    Whether a user should be able to create new files of that MIME type (true or false).

App Drivers

App drivers represent apps if the app is not able to register itself. Currently there is only the CS3org WOPI server app driver.

CS3org WOPI Server App Driver

The CS3org WOPI server app driver is included in Infinite Scale by default. It needs at least one WOPI-compliant app like Collabora, OnlyOffice or the Microsoft Online Server or a CS3org WOPI bridge supported app like CodiMD or Etherpad and the CS3org WOPI server.

App Provider Configuration

The configuration of the actual app provider in a docker-compose example can be found in the full ocis-wopi example directory especially in the config sections ocis-appprovider-collabora and ocis-appprovider-onlyoffice.

Configuration

Environment Variables

The app-registry service is configured via the following environment variables. Read the Environment Variable Types documentation for important details.

  • 4.0.5

Environment variables for the app-registry service
Name Type Default Value Description

OCIS_TRACING_ENABLED
APP_REGISTRY_TRACING_ENABLED

bool

false

Activates tracing.

OCIS_TRACING_TYPE
APP_REGISTRY_TRACING_TYPE

string

The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now.

OCIS_TRACING_ENDPOINT
APP_REGISTRY_TRACING_ENDPOINT

string

The endpoint of the tracing agent.

OCIS_TRACING_COLLECTOR
APP_REGISTRY_TRACING_COLLECTOR

string

The HTTP endpoint for sending spans directly to a collector, i.e. http://jaeger-collector:14268/api/traces. Only used if the tracing endpoint is unset.

OCIS_LOG_LEVEL
APP_REGISTRY_LOG_LEVEL

string

The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'.

OCIS_LOG_PRETTY
APP_REGISTRY_LOG_PRETTY

bool

false

Activates pretty log output.

OCIS_LOG_COLOR
APP_REGISTRY_LOG_COLOR

bool

false

Activates colorized log output.

OCIS_LOG_FILE
APP_REGISTRY_LOG_FILE

string

The path to the log file. Activates logging to this file if set.

APP_REGISTRY_DEBUG_ADDR

string

127.0.0.1:9243

Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed.

APP_REGISTRY_DEBUG_TOKEN

string

Token to secure the metrics endpoint.

APP_REGISTRY_DEBUG_PPROF

bool

false

Enables pprof, which can be used for profiling.

APP_REGISTRY_DEBUG_ZPAGES

bool

false

Enables zpages, which can be used for collecting and viewing in-memory traces.

APP_REGISTRY_GRPC_ADDR

string

127.0.0.1:9242

The bind address of the GRPC service.

APP_REGISTRY_GRPC_PROTOCOL

string

tcp

The transport protocol of the GRPC service.

OCIS_JWT_SECRET
APP_REGISTRY_JWT_SECRET

string

The secret to mint and validate jwt tokens.

OCIS_REVA_GATEWAY

string

com.owncloud.api.gateway

The CS3 gateway endpoint.

OCIS_GRPC_CLIENT_TLS_MODE

string

TLS mode for grpc connection to the go-micro based grpc services. Possible values are 'off', 'insecure' and 'on'. 'off': disables transport security for the clients. 'insecure' allows using transport security, but disables certificate verification (to be used with the autogenerated self-signed certificates). 'on' enables transport security, including server certificate verification.

OCIS_GRPC_CLIENT_TLS_CACERT

string

Path/File name for the root CA certificate (in PEM format) used to validate TLS server certificates of the go-micro based grpc services.

YAML Example

Note that the filename shown below has been chosen on purpose.
See the Configuration File Naming for details when setting up your own configuration.

  • 4.0.5

# Autogenerated
# Filename: app-registry-config-example.yaml

tracing:
  enabled: false
  type: ""
  endpoint: ""
  collector: ""
log:
  level: ""
  pretty: false
  color: false
  file: ""
debug:
  addr: 127.0.0.1:9243
  token: ""
  pprof: false
  zpages: false
grpc:
  addr: 127.0.0.1:9242
  tls: null
  protocol: tcp
token_manager:
  jwt_secret: ""
reva:
  address: com.owncloud.api.gateway
  tls:
    mode: ""
    cacert: ""
app_registry:
  mimetypes:
  - mime_type: application/pdf
    extension: pdf
    name: PDF
    description: PDF document
    icon: ""
    default_app: ""
    allow_creation: false
  - mime_type: application/vnd.oasis.opendocument.text
    extension: odt
    name: OpenDocument
    description: OpenDocument text document
    icon: ""
    default_app: ""
    allow_creation: true
  - mime_type: application/vnd.oasis.opendocument.spreadsheet
    extension: ods
    name: OpenSpreadsheet
    description: OpenDocument spreadsheet document
    icon: ""
    default_app: ""
    allow_creation: true
  - mime_type: application/vnd.oasis.opendocument.presentation
    extension: odp
    name: OpenPresentation
    description: OpenDocument presentation document
    icon: ""
    default_app: ""
    allow_creation: true
  - mime_type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
    extension: docx
    name: Microsoft Word
    description: Microsoft Word document
    icon: ""
    default_app: ""
    allow_creation: true
  - mime_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    extension: xlsx
    name: Microsoft Excel
    description: Microsoft Excel document
    icon: ""
    default_app: ""
    allow_creation: true
  - mime_type: application/vnd.openxmlformats-officedocument.presentationml.presentation
    extension: pptx
    name: Microsoft PowerPoint
    description: Microsoft PowerPoint document
    icon: ""
    default_app: ""
    allow_creation: true
  - mime_type: application/vnd.jupyter
    extension: ipynb
    name: Jupyter Notebook
    description: Jupyter Notebook
    icon: ""
    default_app: ""
    allow_creation: false
  - mime_type: text/markdown
    extension: md
    name: Markdown file
    description: Markdown file
    icon: ""
    default_app: ""
    allow_creation: true
  - mime_type: application/compressed-markdown
    extension: zmd
    name: Compressed markdown file
    description: Compressed markdown file
    icon: ""
    default_app: ""
    allow_creation: false