From f72f6788a04112f83a7945ee46be7afc69e84845 Mon Sep 17 00:00:00 2001 From: mmattel Date: Thu, 4 Apr 2024 15:09:54 +0200 Subject: [PATCH] [docs-only] Fixes the app-registry readme and dev docs --- docs/helpers/env_vars.yaml | 216 ++++---- docs/services/app-registry/_index.md | 487 +++++++++++++++++- .../app-registry/README.md | 138 ++--- 3 files changed, 647 insertions(+), 194 deletions(-) mode change 100644 => 100755 docs/services/app-registry/_index.md rename docs/services/app-registry/apps.md => services/app-registry/README.md (69%) diff --git a/docs/helpers/env_vars.yaml b/docs/helpers/env_vars.yaml index d205b018b..87ca3e47b 100644 --- a/docs/helpers/env_vars.yaml +++ b/docs/helpers/env_vars.yaml @@ -2696,7 +2696,10 @@ FRONTEND_ENABLE_RESHARING: deprecationVersion: "5.0" removalVersion: "" deprecationInfo: Resharing will be removed in the future. | Re-sharing will be removed - in the future. | Re-sharing will be removed in the future. + in the future. | Re-sharing will be removed in the future. | Re-sharing will be + removed in the future. | Re-sharing will be removed in the future. | Re-sharing + will be removed in the future. | Re-sharing will be removed in the future. | Re-sharing + will be removed in the future. FRONTEND_EVENTS_AUTH_PASSWORD: name: OCIS_EVENTS_AUTH_PASSWORD;FRONTEND_EVENTS_AUTH_PASSWORD defaultValue: "" @@ -5108,10 +5111,10 @@ IDM_ADMIN_USER_ID: removalVersion: "" deprecationInfo: "" IDM_CREATE_DEMO_USERS: - name: IDM_CREATE_DEMO_USERS + name: SETTINGS_SETUP_DEFAULT_ASSIGNMENTS;IDM_CREATE_DEMO_USERS defaultValue: "false" type: bool - description: Flag to enable or disable the creation of the demo users. + description: The default role assignments the demo users should be setup. introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" @@ -6883,18 +6886,18 @@ OCDAV_WEBDAV_NAMESPACE: removalVersion: "" deprecationInfo: "" OCIS_ADMIN_USER_ID: - name: OCIS_ADMIN_USER_ID;IDM_ADMIN_USER_ID + name: OCIS_ADMIN_USER_ID;STORAGE_USERS_PURGE_TRASH_BIN_USER_ID defaultValue: "" type: string - description: ID of the user that should receive admin privileges. Consider that - the UUID can be encoded in some LDAP deployment configurations like in .ldif files. - These need to be decoded beforehand. + description: ID of the user who collects all necessary information for deletion. + Consider that the UUID can be encoded in some LDAP deployment configurations like + in .ldif files. These need to be decoded beforehand. introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_ASYNC_UPLOADS: - name: OCIS_ASYNC_UPLOADS + name: OCIS_ASYNC_UPLOADS;SEARCH_EVENTS_ASYNC_UPLOADS defaultValue: "true" type: bool description: Enable asynchronous file uploads. @@ -6903,28 +6906,28 @@ OCIS_ASYNC_UPLOADS: removalVersion: "" deprecationInfo: "" OCIS_CACHE_AUTH_PASSWORD: - name: OCIS_CACHE_AUTH_PASSWORD;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD + name: OCIS_CACHE_AUTH_PASSWORD;STORAGE_SYSTEM_CACHE_AUTH_PASSWORD defaultValue: "" type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. + description: Password for the configured store. Only applies when store type 'nats-js-kv' + is configured. introductionVersion: "5.0" deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_CACHE_AUTH_USERNAME: - name: OCIS_CACHE_AUTH_USERNAME;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME + name: OCIS_CACHE_AUTH_USERNAME;STORAGE_SYSTEM_CACHE_AUTH_USERNAME defaultValue: "" type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. + description: Username for the configured store. Only applies when store type 'nats-js-kv' + is configured. introductionVersion: "5.0" deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_CACHE_DATABASE: name: OCIS_CACHE_DATABASE - defaultValue: cache-stat + defaultValue: storage-system type: string description: The database name the configured store should use. introductionVersion: pre5.0 @@ -6932,71 +6935,73 @@ OCIS_CACHE_DATABASE: removalVersion: "" deprecationInfo: "" OCIS_CACHE_DISABLE_PERSISTENCE: - name: OCIS_CACHE_DISABLE_PERSISTENCE;FRONTEND_OCS_STAT_CACHE_DISABLE_PERSISTENCE + name: OCIS_CACHE_DISABLE_PERSISTENCE;STORAGE_SYSTEM_CACHE_DISABLE_PERSISTENCE defaultValue: "false" type: bool - description: Disable persistence of the cache. Only applies when using the 'nats-js-kv' - store type. Defaults to false. + description: Disables persistence of the cache. Only applies when store type 'nats-js-kv' + is configured. Defaults to false. introductionVersion: "5.0" deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_CACHE_SIZE: - name: OCIS_CACHE_SIZE;FRONTEND_OCS_STAT_CACHE_SIZE + name: OCIS_CACHE_SIZE;STORAGE_SYSTEM_CACHE_SIZE defaultValue: "0" type: int - description: Max number of entries to hold in the cache. + description: The maximum quantity of items in the user info cache. Only applies + when store type 'ocmem' is configured. Defaults to 512 which is derived from the + ocmem package though not exclicitely set as default. introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_CACHE_STORE: - name: OCIS_CACHE_STORE;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE - defaultValue: nats-js-kv + name: OCIS_CACHE_STORE;STORAGE_SYSTEM_CACHE_STORE + defaultValue: memory type: string - description: 'The type of the signing key store. Supported values are: ''redis-sentinel'' - and ''nats-js-kv''. See the text description for details.' - introductionVersion: "5.0" + description: 'The type of the cache store. Supported values are: ''memory'', ''redis-sentinel'', + ''nats-js-kv'', ''noop''. See the text description for details.' + introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_CACHE_STORE_NODES: - name: OCIS_CACHE_STORE_NODES;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_NODES + name: OCIS_CACHE_STORE_NODES;STORAGE_SYSTEM_CACHE_STORE_NODES defaultValue: '[127.0.0.1:9233]' type: '[]string' - description: A list of nodes to access the configured store. Note that the behaviour - how nodes are used is dependent on the library of the configured store. See the - Environment Variable Types description for more details. - introductionVersion: "5.0" + description: A list of nodes to access the configured store. This has no effect + when 'memory' or 'ocmem' stores are configured. Note that the behaviour how nodes + are used is dependent on the library of the configured store. See the Environment + Variable Types description for more details. + introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_CACHE_TTL: - name: OCIS_CACHE_TTL;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL - defaultValue: 12h0m0s + name: OCIS_CACHE_TTL;STORAGE_SYSTEM_CACHE_TTL + defaultValue: 24m0s type: Duration - description: Default time to live for signing keys. See the Environment Variable - Types description for more details. - introductionVersion: "5.0" + description: Default time to live for user info in the user info cache. Only applied + when access tokens has no expiration. See the Environment Variable Types description + for more details. + introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_CORS_ALLOW_CREDENTIALS: - name: OCIS_CORS_ALLOW_CREDENTIALS;WEB_CORS_ALLOW_CREDENTIALS - defaultValue: "false" + name: OCIS_CORS_ALLOW_CREDENTIALS;USERLOG_CORS_ALLOW_CREDENTIALS + defaultValue: "true" type: bool - description: 'Allow credentials for CORS. See following chapter for more details: + description: 'Allow credentials for CORS.See following chapter for more details: *Access-Control-Allow-Credentials* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials.' introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_CORS_ALLOW_HEADERS: - name: OCIS_CORS_ALLOW_HEADERS;WEB_CORS_ALLOW_HEADERS - defaultValue: '[Origin Accept Content-Type Depth Authorization Ocs-Apirequest If-None-Match - If-Match Destination Overwrite X-Request-Id X-Requested-With Tus-Resumable Tus-Checksum-Algorithm - Upload-Concat Upload-Length Upload-Metadata Upload-Defer-Length Upload-Expires - Upload-Checksum Upload-Offset X-HTTP-Method-Override]' + name: OCIS_CORS_ALLOW_HEADERS;USERLOG_CORS_ALLOW_HEADERS + defaultValue: '[Authorization Origin Content-Type Accept X-Requested-With X-Request-Id + Ocs-Apirequest]' type: '[]string' description: 'A list of allowed CORS headers. See following chapter for more details: *Access-Control-Request-Headers* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Headers. @@ -7006,9 +7011,8 @@ OCIS_CORS_ALLOW_HEADERS: removalVersion: "" deprecationInfo: "" OCIS_CORS_ALLOW_METHODS: - name: OCIS_CORS_ALLOW_METHODS;WEB_CORS_ALLOW_METHODS - defaultValue: '[OPTIONS HEAD GET PUT PATCH POST DELETE MKCOL PROPFIND PROPPATCH - MOVE COPY REPORT SEARCH]' + name: OCIS_CORS_ALLOW_METHODS;USERLOG_CORS_ALLOW_METHODS + defaultValue: '[GET]' type: '[]string' description: 'A list of allowed CORS methods. See following chapter for more details: *Access-Control-Request-Method* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Method. @@ -7018,8 +7022,8 @@ OCIS_CORS_ALLOW_METHODS: removalVersion: "" deprecationInfo: "" OCIS_CORS_ALLOW_ORIGINS: - name: OCIS_CORS_ALLOW_ORIGINS;WEB_CORS_ALLOW_ORIGINS - defaultValue: '[https://localhost:9200]' + name: OCIS_CORS_ALLOW_ORIGINS;USERLOG_CORS_ALLOW_ORIGINS + defaultValue: '[*]' type: '[]string' description: 'A list of allowed CORS origins. See following chapter for more details: *Access-Control-Allow-Origin* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin. @@ -7053,7 +7057,7 @@ OCIS_CORS_MAX_AGE: removalVersion: "" deprecationInfo: "" OCIS_DECOMPOSEDFS_METADATA_BACKEND: - name: OCIS_DECOMPOSEDFS_METADATA_BACKEND;STORAGE_USERS_OCIS_METADATA_BACKEND + name: OCIS_DECOMPOSEDFS_METADATA_BACKEND;STORAGE_SYSTEM_OCIS_METADATA_BACKEND defaultValue: messagepack type: string description: The backend to use for storing metadata. Supported values are 'messagepack' @@ -7084,13 +7088,12 @@ OCIS_DEFAULT_LANGUAGE: removalVersion: "" deprecationInfo: "" OCIS_DISABLE_PREVIEWS: - name: OCIS_DISABLE_PREVIEWS;WEB_OPTION_DISABLE_PREVIEWS + name: OCIS_DISABLE_PREVIEWS;WEBDAV_DISABLE_PREVIEWS defaultValue: "false" type: bool - description: Set this option to 'true' to disable previews in all the different - web file listing views. This can speed up file listings in folders with many files. - The only list view that is not affected by this setting is the trash bin, as it - does not allow previewing at all. + description: Set this option to 'true' to disable rendering of thumbnails triggered + via webdav access. Note that when disabled, all access to preview related webdav + paths will return a 404. introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" @@ -7116,7 +7119,7 @@ OCIS_DISABLE_SSE,USERLOG_DISABLE_SSE: removalVersion: "" deprecationInfo: "" OCIS_EDITION: - name: OCIS_EDITION;FRONTEND_EDITION + name: OCIS_EDITION;OCDAV_EDITION defaultValue: Community type: string description: Edition of oCIS. Used for branding purposes. @@ -7145,9 +7148,17 @@ OCIS_ENABLE_RESHARING: deprecationInfo: Resharing will be removed in the future. | Re-sharing will be removed in the future. | Resharing will be removed in the future. | Resharing will be removed in the future. | Resharing will be removed in the future. | Resharing - will be removed in the future. | Re-sharing will be removed in the future. + will be removed in the future. | Re-sharing will be removed in the future. | Resharing + will be removed in the future. | Re-sharing will be removed in the future. | Resharing + will be removed in the future. | Resharing will be removed in the future. | Re-sharing + will be removed in the future. | Resharing will be removed in the future. | Resharing + will be removed in the future. | Re-sharing will be removed in the future. | Resharing + will be removed in the future. | Re-sharing will be removed in the future. | Resharing + will be removed in the future. | Resharing will be removed in the future. | Resharing + will be removed in the future. | Resharing will be removed in the future. | Re-sharing + will be removed in the future. OCIS_EVENTS_AUTH_PASSWORD: - name: OCIS_EVENTS_AUTH_PASSWORD;FRONTEND_EVENTS_AUTH_PASSWORD + name: OCIS_EVENTS_AUTH_PASSWORD;USERLOG_EVENTS_AUTH_PASSWORD defaultValue: "" type: string description: The password to authenticate with the events broker. The events broker @@ -7157,7 +7168,7 @@ OCIS_EVENTS_AUTH_PASSWORD: removalVersion: "" deprecationInfo: "" OCIS_EVENTS_AUTH_USERNAME: - name: OCIS_EVENTS_AUTH_USERNAME;FRONTEND_EVENTS_AUTH_USERNAME + name: OCIS_EVENTS_AUTH_USERNAME;USERLOG_EVENTS_AUTH_USERNAME defaultValue: "" type: string description: The username to authenticate with the events broker. The events broker @@ -7167,42 +7178,42 @@ OCIS_EVENTS_AUTH_USERNAME: removalVersion: "" deprecationInfo: "" OCIS_EVENTS_CLUSTER: - name: OCIS_EVENTS_CLUSTER;FRONTEND_EVENTS_CLUSTER + name: OCIS_EVENTS_CLUSTER;USERLOG_EVENTS_CLUSTER defaultValue: ocis-cluster type: string description: The clusterID of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture. Mandatory when using NATS as event system. - introductionVersion: "5.0" + introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_EVENTS_ENABLE_TLS: - name: OCIS_EVENTS_ENABLE_TLS;FRONTEND_EVENTS_ENABLE_TLS + name: OCIS_EVENTS_ENABLE_TLS;USERLOG_EVENTS_ENABLE_TLS defaultValue: "false" type: bool description: Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services. - introductionVersion: "5.0" + introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_EVENTS_ENDPOINT: - name: OCIS_EVENTS_ENDPOINT;FRONTEND_EVENTS_ENDPOINT + name: OCIS_EVENTS_ENDPOINT;USERLOG_EVENTS_ENDPOINT defaultValue: 127.0.0.1:9233 type: string description: The address of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture. - introductionVersion: "5.0" + introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OCIS_EVENTS_TLS_ROOT_CA_CERTIFICATE;ANTIVIRUS_EVENTS_TLS_ROOT_CA_CERTIFICATE + name: OCIS_EVENTS_TLS_ROOT_CA_CERTIFICATE;USERLOG_EVENTS_TLS_ROOT_CA_CERTIFICATE defaultValue: "" type: string description: The root CA certificate used to validate the server's TLS certificate. - If provided ANTIVIRUS_EVENTS_TLS_INSECURE will be seen as false. + If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false. introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" @@ -7271,16 +7282,16 @@ OCIS_HTTP_TLS_KEY: removalVersion: "" deprecationInfo: "" OCIS_INSECURE: - name: OCIS_INSECURE;FRONTEND_EVENTS_TLS_INSECURE + name: OCIS_INSECURE;USERLOG_EVENTS_TLS_INSECURE defaultValue: "false" type: bool description: Whether to verify the server TLS certificates. - introductionVersion: "5.0" + introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_JWT_SECRET: - name: OCIS_JWT_SECRET;WEB_JWT_SECRET + name: OCIS_JWT_SECRET;USERLOG_JWT_SECRET defaultValue: "" type: string description: The secret to mint and validate jwt tokens. @@ -7630,7 +7641,7 @@ OCIS_LDAP_USER_SCOPE: removalVersion: "" deprecationInfo: "" OCIS_LOG_COLOR: - name: OCIS_LOG_COLOR;WEB_LOG_COLOR + name: OCIS_LOG_COLOR;USERLOG_LOG_COLOR defaultValue: "false" type: bool description: Activates colorized log output. @@ -7639,7 +7650,7 @@ OCIS_LOG_COLOR: removalVersion: "" deprecationInfo: "" OCIS_LOG_FILE: - name: OCIS_LOG_FILE;WEB_LOG_FILE + name: OCIS_LOG_FILE;USERLOG_LOG_FILE defaultValue: "" type: string description: The path to the log file. Activates logging to this file if set. @@ -7648,7 +7659,7 @@ OCIS_LOG_FILE: removalVersion: "" deprecationInfo: "" OCIS_LOG_LEVEL: - name: OCIS_LOG_LEVEL;WEB_LOG_LEVEL + name: OCIS_LOG_LEVEL;USERLOG_LOG_LEVEL defaultValue: "" type: string description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', @@ -7658,7 +7669,7 @@ OCIS_LOG_LEVEL: removalVersion: "" deprecationInfo: "" OCIS_LOG_PRETTY: - name: OCIS_LOG_PRETTY;WEB_LOG_PRETTY + name: OCIS_LOG_PRETTY;USERLOG_LOG_PRETTY defaultValue: "false" type: bool description: Activates pretty log output. @@ -7667,11 +7678,11 @@ OCIS_LOG_PRETTY: removalVersion: "" deprecationInfo: "" OCIS_MACHINE_AUTH_API_KEY: - name: OCIS_MACHINE_AUTH_API_KEY;FRONTEND_MACHINE_AUTH_API_KEY + name: OCIS_MACHINE_AUTH_API_KEY;OCDAV_MACHINE_AUTH_API_KEY defaultValue: "" type: string - description: The machine auth API key used to validate internal requests necessary - to access resources from other services. + description: Machine auth API key used to validate internal requests necessary for + the access to resources from other services. introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" @@ -7688,7 +7699,7 @@ OCIS_OIDC_CLIENT_ID: removalVersion: "" deprecationInfo: "" OCIS_OIDC_ISSUER: - name: OCIS_URL;OCIS_OIDC_ISSUER;WEB_OIDC_AUTHORITY + name: OCIS_URL;OCIS_OIDC_ISSUER;PROXY_OIDC_ISSUER defaultValue: https://localhost:9200 type: string description: URL of the OIDC issuer. It defaults to URL of the builtin IDP. @@ -7764,7 +7775,7 @@ OCIS_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS: removalVersion: "" deprecationInfo: "" OCIS_PERSISTENT_STORE: - name: OCIS_PERSISTENT_STORE;POSTPROCESSING_STORE + name: OCIS_PERSISTENT_STORE;USERLOG_STORE defaultValue: memory type: string description: 'The type of the store. Supported values are: ''memory'', ''ocmem'', @@ -7775,7 +7786,7 @@ OCIS_PERSISTENT_STORE: removalVersion: "" deprecationInfo: "" OCIS_PERSISTENT_STORE_AUTH_PASSWORD: - name: OCIS_PERSISTENT_STORE_AUTH_PASSWORD;POSTPROCESSING_STORE_AUTH_PASSWORD + name: OCIS_PERSISTENT_STORE_AUTH_PASSWORD;USERLOG_STORE_AUTH_PASSWORD defaultValue: "" type: string description: The password to authenticate with the store. Only applies when store @@ -7785,7 +7796,7 @@ OCIS_PERSISTENT_STORE_AUTH_PASSWORD: removalVersion: "" deprecationInfo: "" OCIS_PERSISTENT_STORE_AUTH_USERNAME: - name: OCIS_PERSISTENT_STORE_AUTH_USERNAME;POSTPROCESSING_STORE_AUTH_USERNAME + name: OCIS_PERSISTENT_STORE_AUTH_USERNAME;USERLOG_STORE_AUTH_USERNAME defaultValue: "" type: string description: The username to authenticate with the store. Only applies when store @@ -7795,7 +7806,7 @@ OCIS_PERSISTENT_STORE_AUTH_USERNAME: removalVersion: "" deprecationInfo: "" OCIS_PERSISTENT_STORE_NODES: - name: OCIS_PERSISTENT_STORE_NODES;POSTPROCESSING_STORE_NODES + name: OCIS_PERSISTENT_STORE_NODES;USERLOG_STORE_NODES defaultValue: '[]' type: '[]string' description: A list of nodes to access the configured store. This has no effect @@ -7807,7 +7818,7 @@ OCIS_PERSISTENT_STORE_NODES: removalVersion: "" deprecationInfo: "" OCIS_PERSISTENT_STORE_SIZE: - name: OCIS_PERSISTENT_STORE_SIZE;POSTPROCESSING_STORE_SIZE + name: OCIS_PERSISTENT_STORE_SIZE;USERLOG_STORE_SIZE defaultValue: "0" type: int description: The maximum quantity of items in the store. Only applies when store @@ -7818,11 +7829,11 @@ OCIS_PERSISTENT_STORE_SIZE: removalVersion: "" deprecationInfo: "" OCIS_PERSISTENT_STORE_TTL: - name: OCIS_PERSISTENT_STORE_TTL;POSTPROCESSING_STORE_TTL - defaultValue: 0s + name: OCIS_PERSISTENT_STORE_TTL;USERLOG_STORE_TTL + defaultValue: 336h0m0s type: Duration - description: Time to live for events in the store. See the Environment Variable - Types description for more details. + description: Time to live for events in the store. Defaults to '336h' (2 weeks). + See the Environment Variable Types description for more details. introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" @@ -7840,7 +7851,7 @@ OCIS_REVA_GATEWAY: name: OCIS_REVA_GATEWAY defaultValue: com.owncloud.api.gateway type: string - description: The CS3 gateway endpoint. + description: CS3 gateway used to look up user metadata introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" @@ -7868,7 +7879,7 @@ OCIS_REVA_GATEWAY_TLS_MODE: removalVersion: "" deprecationInfo: "" OCIS_SERVICE_ACCOUNT_ID: - name: OCIS_SERVICE_ACCOUNT_ID;OCM_SERVICE_ACCOUNT_ID + name: OCIS_SERVICE_ACCOUNT_ID;USERLOG_SERVICE_ACCOUNT_ID defaultValue: "" type: string description: The ID of the service account the service should use. See the 'auth-service' @@ -7878,7 +7889,7 @@ OCIS_SERVICE_ACCOUNT_ID: removalVersion: "" deprecationInfo: "" OCIS_SERVICE_ACCOUNT_SECRET: - name: OCIS_SERVICE_ACCOUNT_SECRET;OCM_SERVICE_ACCOUNT_SECRET + name: OCIS_SERVICE_ACCOUNT_SECRET;USERLOG_SERVICE_ACCOUNT_SECRET defaultValue: "" type: string description: The service account secret. @@ -7915,17 +7926,18 @@ OCIS_SHOW_USER_EMAIL_IN_RESULTS: removalVersion: "" deprecationInfo: "" OCIS_SPACES_MAX_QUOTA: - name: OCIS_SPACES_MAX_QUOTA;FRONTEND_MAX_QUOTA + name: OCIS_SPACES_MAX_QUOTA;STORAGE_USERS_OCIS_MAX_QUOTA defaultValue: "0" type: uint64 - description: Set the global max quota value in bytes. A value of 0 equals unlimited. - The value is provided via capabilities. + description: Set a global max quota for spaces in bytes. A value of 0 equals unlimited. + If not using the global OCIS_SPACES_MAX_QUOTA, you must define the FRONTEND_MAX_QUOTA + in the frontend service. introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" deprecationInfo: "" OCIS_SYSTEM_USER_API_KEY: - name: OCIS_SYSTEM_USER_API_KEY;SHARING_PUBLIC_CS3_SYSTEM_USER_API_KEY + name: OCIS_SYSTEM_USER_API_KEY defaultValue: "" type: string description: API key for the STORAGE-SYSTEM system user. @@ -7934,10 +7946,10 @@ OCIS_SYSTEM_USER_API_KEY: removalVersion: "" deprecationInfo: "" OCIS_SYSTEM_USER_ID: - name: OCIS_SYSTEM_USER_ID;SHARING_PUBLIC_CS3_SYSTEM_USER_ID + name: OCIS_SYSTEM_USER_ID defaultValue: "" type: string - description: ID of the oCIS STORAGE-SYSTEM system user. Admins need to set the ID + description: ID of the oCIS storage-system system user. Admins need to set the ID for the STORAGE-SYSTEM system user in this config option which is then used to reference the user. Any reasonable long string is possible, preferably this would be an UUIDv4 format. @@ -7955,7 +7967,7 @@ OCIS_SYSTEM_USER_IDP: removalVersion: "" deprecationInfo: "" OCIS_TRACING_COLLECTOR: - name: OCIS_TRACING_COLLECTOR;WEB_TRACING_COLLECTOR + name: OCIS_TRACING_COLLECTOR;USERLOG_TRACING_COLLECTOR defaultValue: "" type: string description: The HTTP endpoint for sending spans directly to a collector, i.e. http://jaeger-collector:14268/api/traces. @@ -7965,7 +7977,7 @@ OCIS_TRACING_COLLECTOR: removalVersion: "" deprecationInfo: "" OCIS_TRACING_ENABLED: - name: OCIS_TRACING_ENABLED;WEB_TRACING_ENABLED + name: OCIS_TRACING_ENABLED;USERLOG_TRACING_ENABLED defaultValue: "false" type: bool description: Activates tracing. @@ -7974,7 +7986,7 @@ OCIS_TRACING_ENABLED: removalVersion: "" deprecationInfo: "" OCIS_TRACING_ENDPOINT: - name: OCIS_TRACING_ENDPOINT;WEB_TRACING_ENDPOINT + name: OCIS_TRACING_ENDPOINT;USERLOG_TRACING_ENDPOINT defaultValue: "" type: string description: The endpoint of the tracing agent. @@ -7983,7 +7995,7 @@ OCIS_TRACING_ENDPOINT: removalVersion: "" deprecationInfo: "" OCIS_TRACING_TYPE: - name: OCIS_TRACING_TYPE;WEB_TRACING_TYPE + name: OCIS_TRACING_TYPE;USERLOG_TRACING_TYPE defaultValue: "" type: string description: The type of tracing. Defaults to '', which is the same as 'jaeger'. @@ -8002,7 +8014,7 @@ OCIS_TRANSFER_SECRET: removalVersion: "" deprecationInfo: "" OCIS_TRANSLATION_PATH: - name: OCIS_TRANSLATION_PATH;NOTIFICATIONS_TRANSLATION_PATH + name: OCIS_TRANSLATION_PATH;USERLOG_TRANSLATION_PATH defaultValue: "" type: string description: (optional) Set this to a path with custom translations to overwrite @@ -8013,10 +8025,10 @@ OCIS_TRANSLATION_PATH: removalVersion: "" deprecationInfo: "" OCIS_URL: - name: OCIS_URL;OCIS_OIDC_ISSUER;WEB_OIDC_AUTHORITY + name: OCIS_URL;OCDAV_PUBLIC_URL defaultValue: https://localhost:9200 type: string - description: URL of the OIDC issuer. It defaults to URL of the builtin IDP. + description: URL where oCIS is reachable for users. introductionVersion: pre5.0 deprecationVersion: "" removalVersion: "" diff --git a/docs/services/app-registry/_index.md b/docs/services/app-registry/_index.md old mode 100644 new mode 100755 index d3670e210..fc1f49bae --- a/docs/services/app-registry/_index.md +++ b/docs/services/app-registry/_index.md @@ -1,16 +1,493 @@ --- -title: App-Registry -date: 2022-03-02T00:00:00+00:00 +title: App Registry +date: 2024-04-04T15:08:13.220767367+02:00 weight: 20 geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/app-registry -geekdocFilePath: _index.md +geekdocEditPath: edit/master/services/app-registry +geekdocFilePath: README.md geekdocCollapseSection: true --- + + ## Abstract +The `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. + + ## Table of Contents -{{< toc-tree >}} +* [MIME Type Configuration / Creation Allow List](#mime-type-configuration-/-creation-allow-list) + * [MIME Type Configuration](#mime-type-configuration) +* [App Drivers](#app-drivers) + * [CS3org WOPI Server App Driver](#cs3org-wopi-server-app-driver) + * [App Provider Configuration](#app-provider-configuration) +* [Endpoint Access](#endpoint-access) + * [Listing available apps and mime types](#listing-available-apps-and-mime-types) + * [Open a File With ownCloud Web](#open-a-file-with-owncloud-web) + * [Open a File With the App Provider](#open-a-file-with-the-app-provider) + * [Creating a File With the App Provider](#creating-a-file-with-the-app-provider) +* [Example Yaml Config](#example-yaml-config) + +## 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](https://github.com/owncloud/ocis/tree/master/deployments/examples). The following is a brief structure and a field description: + +**Structure** + +```yaml +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](https://github.com/cs3org/wopiserver). + +### App Provider Configuration + +The configuration of the actual app provider in a [docker-compose example](https://github.com/owncloud/ocis/tree/master/deployments/examples) can be found in the full `ocis-wopi` example directory especially in the config sections `ocis-appprovider-collabora` and `ocis-appprovider-onlyoffice`. + +## Endpoint Access + +### Listing available apps and mime types + +Clients, for example ownCloud Web, need to offer users the available apps to open files and mime types for new file creation. This information can be obtained from this endpoint. + +**Endpoint**: specified in the capabilities in `apps_url`, currently `/app/list` + +**Method**: HTTP GET + +**Authentication**: None + +**Request example**: + +```bash +curl 'https://ocis.test/app/list' +``` + +**Response example**: + +HTTP status code: 200 + +```json +{ + "mime-types": [ + { + "mime_type": "application/pdf", + "ext": "pdf", + "app_providers": [ + { + "name": "OnlyOffice", + "icon": "https://some-website.test/onlyoffice-pdf-icon.png" + } + ], + "name": "PDF", + "description": "PDF document" + }, + { + "mime_type": "application/vnd.oasis.opendocument.text", + "ext": "odt", + "app_providers": [ + { + "name": "Collabora", + "icon": "https://some-website.test/collabora-odt-icon.png" + }, + { + "name": "OnlyOffice", + "icon": "https://some-website.test/onlyoffice-odt-icon.png" + } + ], + "name": "OpenDocument", + "icon": "https://some-website.test/opendocument-text-icon.png", + "description": "OpenDocument text document", + "allow_creation": true, + "default_application": "Collabora" + }, + { + "mime_type": "text/markdown", + "ext": "md", + "app_providers": [ + { + "name": "CodiMD", + "icon": "https://some-website.test/codimd-md-icon.png" + } + ], + "name": "Markdown file", + "description": "Markdown file", + "allow_creation": true, + "default_application": "CodiMD" + }, + { + "mime_type": "application/vnd.ms-word.document.macroenabled.12", + "app_providers": [ + { + "name": "Collabora", + "icon": "https://some-website.test/collabora-word-icon.png" + }, + { + "name": "OnlyOffice", + "icon": "https://some-website.test/onlyoffice-word-icon.png" + } + ] + }, + { + "mime_type": "application/vnd.ms-powerpoint.template.macroenabled.12", + "app_providers": [ + { + "name": "Collabora", + "icon": "https://some-website.test/collabora-powerpoint-icon.png" + } + ] + } + ] +} +``` + +### Open a File With ownCloud Web + +**Endpoint**: specified in the capabilities in `open_web_url`, currently `/app/open-with-web` + +**Method**: HTTP POST + +**Authentication** (one of them): + +- `Authorization` header with OIDC Bearer token for authenticated users or basic auth credentials (if enabled in oCIS) +- `X-Access-Token` header with a REVA token for authenticated users + +**Query parameters**: + +- `file_id` (mandatory): id of the file to be opened +- `app_name` (optional) + - default (not given): default app for mime type + - possible values depend on the app providers for a mimetype from the `/app/open` endpoint + +**Request examples**: + +```bash +curl -X POST 'https://ocis.test/app/open-with-web?file_id=ZmlsZTppZAo=' + +curl -X POST 'https://ocis.test/app/open-with-web?file_id=ZmlsZTppZAo=&app_name=Collabora' +``` + +**Response examples**: + +The URI from the response JSON is intended to be opened with a GET request in a browser. If the user has not yet a session in the browser, a login flow is handled by ownCloud Web. + +HTTP status code: 200 + +```json +{ + "uri": "https://....." +} +``` + +**Example responses (error case)**: + +See error cases for [Open a file with the app provider](#open-a-file-with-the-app-provider) + +### Open a File With the App Provider + +**Endpoint**: specified in the capabilities in `open_url`, currently `/app/open` + +**Method**: HTTP POST + +**Authentication** (one of them): + +- `Authorization` header with OIDC Bearer token for authenticated users or basic auth credentials (if enabled in oCIS) +- `Public-Token` header with public link token for public links +- `X-Access-Token` header with a REVA token for authenticated users + +**Query parameters**: + +- `file_id` (mandatory): id of the file to be opened +- `app_name` (optional) + - default (not given): default app for mime type + - possible values depend on the app providers for a mimetype from the `/app/open` endpoint +- `view_mode` (optional) + - default (not given): highest possible view mode, depending on the file permissions + - possible values: + - `write`: user can edit and download in the opening app + - `read`: user can view and download from the opening app + - `view`: user can view in the opening app (download is not possible) +- `lang` (optional) + - default (not given): default language of the application (which might maybe use the browser language) + - possible value is any ISO 639-1 language code. Examples: + - de + - en + - es + - ... + +**Request examples**: + +```bash +curl -X POST 'https://ocis.test/app/open?file_id=ZmlsZTppZAo=' + +curl -X POST 'https://ocis.test/app/open?file_id=ZmlsZTppZAo=&lang=de' + +curl -X POST 'https://ocis.test/app/open?file_id=ZmlsZTppZAo=&app_name=Collabora' + +curl -X POST 'https://ocis.test/app/open?file_id=ZmlsZTppZAo=&view_mode=read' + +curl -X POST 'https://ocis.test/app/open?file_id=ZmlsZTppZAo=&app_name=Collabora&view_mode=write' +``` + +**Response examples**: + +All apps are expected to be opened in an iframe and the response will give some parameters for that action. + +There are apps, which need to be opened in the iframe with a form post. The form post must include all form parameters included in the response. For these apps the response will look like this: + +HTTP status code: 200 + +```json +{ + "app_url": "https://.....", + "method": "POST", + "form_parameters": { + "access_token": "eyJ0...", + "access_token_ttl": "1634300912000", + "arbitrary_param": "lorem-ipsum" + } +} +``` + +There are apps, which need to be opened in the iframe with a GET request. The GET request must have set all headers included in the response. For these apps the response will look like this: + +HTTP status code: 200 + +```json +{ + "app_url": "https://...", + "method": "GET", + "headers": { + "access_token": "eyJ0e...", + "access_token_ttl": "1634300912000", + "arbitrary_header": "lorem-ipsum" + } +} +``` + +**Example responses (error case)**: + +- missing `file_id` + + HTTP status code: 400 + + ```json + { + "code": "INVALID_PARAMETER", + "message": "missing file ID" + } + ``` + +- wrong `view_mode` + + HTTP status code: 400 + + ```json + { + "code": "INVALID_PARAMETER", + "message": "invalid view mode" + } + ``` + +- unknown `app_name` + + HTTP status code: 404 + + ```json + { + "code": "RESOURCE_NOT_FOUND", + "message": "error: not found: app 'Collabora' not found" + } + ``` + +- wrong / invalid file id + + HTTP status code: 400 + + ```json + { + "code": "INVALID_PARAMETER", + "message": "invalid file ID" + } + ``` + +- file id does not point to a file + + HTTP status code: 400 + + ```json + { + "code": "INVALID_PARAMETER", + "message": "the given file id does not point to a file" + } + ``` + +- file does not exist / unauthorized to open the file + + HTTP status code: 404 + + ```json + { + "code": "RESOURCE_NOT_FOUND", + "message": "file does not exist" + } + ``` + +- invalid language code + + HTTP status code: 400 + + ```json + { + "code": "INVALID_PARAMETER", + "message": "lang parameter does not contain a valid ISO 639-1 language code" + } + ``` + +### Creating a File With the App Provider + +**Endpoint**: specified in the capabilities in `new_file_url`, currently `/app/new` + +**Method**: HTTP POST + +**Authentication** (one of them): + +- `Authorization` header with OIDC Bearer token for authenticated users or basic auth credentials (if enabled in oCIS) +- `Public-Token` header with public link token for public links +- `X-Access-Token` header with a REVA token for authenticated users + +**Query parameters**: + +- `parent_container_id` (mandatory): ID of the folder in which the file will be created +- `filename` (mandatory): name of the new file +- `template` (optional): not yet implemented + +**Request examples**: + +```bash +curl -X POST 'https://ocis.test/app/new?parent_container_id=c2lkOmNpZAo=&filename=test.odt' +``` + +**Response example**: + +You will receive a file id of the freshly created file, which you can use to open the file in an editor. + +```json +{ + "file_id": "ZmlsZTppZAo=" +} +``` + +**Example responses (error case)**: + +- missing `parent_container_id` + + HTTP status code: 400 + + ```json + { + "code": "INVALID_PARAMETER", + "message": "missing parent container ID" + } + ``` + +- missing `filename` + + HTTP status code: 400 + + ```json + { + "code": "INVALID_PARAMETER", + "message": "missing filename" + } + ``` + +- parent container not found + + HTTP status code: 404 + + ```json + { + "code": "RESOURCE_NOT_FOUND", + "message": "the parent container is not accessible or does not exist" + } + ``` + +- `parent_container_id` does not point to a container + + HTTP status code: 400 + + ```json + { + "code": "INVALID_PARAMETER", + "message": "the parent container id does not point to a container" + } + ``` + +- `filename` is invalid (e.g. includes a path segment) + + HTTP status code: 400 + + ```json + { + "code": "INVALID_PARAMETER", + "message": "the filename must not contain a path segment" + } + ``` + +- file already exists + + HTTP status code: 403 + + ```json + { + "code": "RESOURCE_ALREADY_EXISTS", + "message": "the file already exists" + } + ``` +## Example Yaml Config +{{< include file="services/_includes/app-registry-config-example.yaml" language="yaml" >}} + +{{< include file="services/_includes/app-registry_configvars.md" >}} + diff --git a/docs/services/app-registry/apps.md b/services/app-registry/README.md similarity index 69% rename from docs/services/app-registry/apps.md rename to services/app-registry/README.md index 719ac0a46..03645512b 100644 --- a/docs/services/app-registry/apps.md +++ b/services/app-registry/README.md @@ -1,91 +1,66 @@ ---- -title: "Apps" -date: 2018-05-02T00:00:00+00:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/app-registry -geekdocFilePath: apps.md ---- +# App Registry -oCIS is all about files. But most of the time you want to do something with files that is beyond the basic upload, download and share behavior. Therefore, oCIS has a concept for apps, that can handle specific file types, so-called mime types. +The `app-registry` service is the single point where all apps register themselves and their respective supported mime types. -## App provider capability +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. -The capabilities endpoint (e.g. `https://localhost:9200/ocs/v1.php/cloud/capabilities?format=json`) gives you following capabilities which are relevant for the app provider: +## MIME Type Configuration / Creation Allow List -```json -{ - "ocs": { - "data": { - "capabilities": { - "files": { - "app_providers": [ - { - "enabled": true, - "version": "1.1.0", - "apps_url": "/app/list", - "open_url": "/app/open", - "open_web_url": "/app/open-with-web", - "new_url": "/app/new" - } - ] - } - } - } - } -} +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](https://github.com/owncloud/ocis/tree/master/deployments/examples). The following is a brief structure and a field description: + +**Structure** + +```yaml +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: ... ``` -{{< hint info >}} -Please note that there might be two or more app providers with different versions. This is not be expected to happen on a regular basis. It was designed for a possible migration period for clients when the app provider needs a breaking change. -{{< /hint >}} +**Fields** -## App registry +* `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). -The app registry is the single point where all apps register themselves and their respective supported mime types. +## App Drivers -### Mime type configuration / creation allow list +App drivers represent apps if the app is not able to register itself. Currently there is only the CS3org WOPI server app driver. -The apps will register their supported mime types automatically, so that users can open supported files with them. +### CS3org WOPI Server App Driver -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. +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](https://github.com/cs3org/wopiserver). -In order to modify the mime type config you need to set `STORAGE_APP_REGISTRY_MIMETYPES_JSON=.../mimetypes.json` to a valid JSON file with content like this: +### App Provider Configuration -```json -[ - { - "mime_type": "application/vnd.oasis.opendocument.text", - "extension": "odt", - "name": "OpenDocument", - "description": "OpenDocument text document", - "icon": "https://some-website.test/opendocument-text-icon.png", - "default_app": "Collabora", - "allow_creation": true - }, - { - "mime_type": "application/vnd.oasis.opendocument.spreadsheet", - "extension": "ods", - "name": "OpenSpreadsheet", - "description": "OpenDocument spreadsheet document", - "icon": "", - "default_app": "Collabora", - "allow_creation": false - } -] -``` +The configuration of the actual app provider in a [docker-compose example](https://github.com/owncloud/ocis/tree/master/deployments/examples) can be found in the full `ocis-wopi` example directory especially in the config sections `ocis-appprovider-collabora` and `ocis-appprovider-onlyoffice`. -Fields: +## Endpoint Access -- `mime_type` is the mime type you want to configure -- `extension` is the file extension to be used for new files -- `name` is the name of the file / mime type -- `description` is a human-readable description of the file / mime type -- `icon` URL to an icon which should be used for that mime type -- `default_app` name of the default app which opens this mime type when the user doesn't specify one -- `allow_creation` is whether a user should be able to create new file from that mime type (`true` or `false`) - -### Listing available apps / mime types +### Listing available apps and mime types Clients, for example ownCloud Web, need to offer users the available apps to open files and mime types for new file creation. This information can be obtained from this endpoint. @@ -179,7 +154,7 @@ HTTP status code: 200 } ``` -### Open a file with the ownCloud Web +### Open a File With ownCloud Web **Endpoint**: specified in the capabilities in `open_web_url`, currently `/app/open-with-web` @@ -221,7 +196,7 @@ HTTP status code: 200 See error cases for [Open a file with the app provider](#open-a-file-with-the-app-provider) -### Open a file with the app provider +### Open a File With the App Provider **Endpoint**: specified in the capabilities in `open_url`, currently `/app/open` @@ -382,7 +357,7 @@ HTTP status code: 200 } ``` -### Creating a file with the app provider +### Creating a File With the App Provider **Endpoint**: specified in the capabilities in `new_file_url`, currently `/app/new` @@ -483,14 +458,3 @@ You will receive a file id of the freshly created file, which you can use to ope "message": "the file already exists" } ``` - - -## 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 oCIS by default. It needs at least one WOPI compliant app (e.g. Collabora, OnlyOffice or Microsoft Online Server) or a CS3org WOPI bridge supported app (CodiMD or Etherpad) and the CS3org WOPI server. - -The configuration of the actual app provider in a docker-compose example can be found in the [full example](https://github.com/owncloud/ocis/blob/master/deployments/examples/ocis_wopi/docker-compose.yml) especially [ocis-appprovider-collabora](https://github.com/owncloud/ocis/blob/master/deployments/examples/ocis_wopi/docker-compose.yml#L102-L128) and [ocis-appprovider-onlyoffice](https://github.com/owncloud/ocis/blob/master/deployments/examples/ocis_wopi/docker-compose.yml#L130-L161)