From 5c57982db0d50112254bfe06de2c9d31472834d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Mon, 20 Jan 2025 15:04:42 +0100 Subject: [PATCH] Remove the docs folder for now We'll bring back documentation once we decided on how to do it. --- docs/.gitignore | 5 - docs/Makefile | 55 - docs/README.md | 5 - docs/_index.md | 46 - docs/apis/_index.md | 53 - docs/apis/grpc_apis/_index.md | 63 - docs/apis/http/_index.md | 11 - docs/apis/http/authorization.md | 142 - docs/apis/http/graph/_index.md | 72 - docs/apis/http/graph/groups.md | 275 - docs/apis/http/graph/permissions.md | 184 - docs/apis/http/graph/role.md | 38 - docs/apis/http/graph/spaces.md | 494 - docs/apis/http/graph/users.md | 270 - docs/apis/http/tus_upload.md | 249 - docs/apis/http/webdav/_index.md | 547 - docs/architecture/_index.md | 13 - docs/architecture/collaborative-storage.md | 111 - docs/architecture/efficient-stat-polling.md | 202 - docs/architecture/posixfs-storage-driver.md | 207 - docs/architecture/protocol-changes.md | 200 - docs/architecture/services-communication.md | 10 - docs/architecture/upload-processing.md | 121 - docs/clients/_index.md | 9 - docs/clients/rclone/_index.md | 25 - docs/clients/rclone/webdav-sync-basic-auth.md | 46 - docs/clients/rclone/webdav-sync-oidc.md | 77 - docs/helpers/README.md | 230 - docs/helpers/changed_envvars.py | 221 - docs/helpers/configenvextractor.go | 79 - docs/helpers/env-var-delta.go | 122 - docs/helpers/env_vars.yaml | 16614 ---------------- docs/helpers/extendedEnv.go | 178 - docs/helpers/extended_vars.yaml | 170 - docs/helpers/main.go | 45 - docs/helpers/markdowncreation.go | 76 - docs/helpers/templates/adoc-generator.go.tmpl | 272 - docs/helpers/templates/env-vars-added.md.tmpl | 7 - .../templates/env-vars-deprecated.md.tmpl | 7 - .../templates/env-vars-removed.md.tmpl | 7 - .../templates/envar-delta-table.go.tmpl | 154 - ...nvironment-variable-docs-generator.go.tmpl | 97 - .../example-config-generator.go.tmpl | 50 - docs/helpers/templates/index.tmpl | 19 - docs/mutagen.yml | 14 - docs/ocis/.gitignore | 1 - docs/ocis/_index.md | 67 - .../adr/0001-introduce-accounts-service.md | 50 - ...0002-persist-accounts-using-cs3-storage.md | 36 - .../ocis/adr/0003-external-user-management.md | 115 - docs/ocis/adr/0004-support-hot-migration.md | 80 - .../adr/0005-cs3-api-account-management.md | 210 - docs/ocis/adr/0006-service-discovery.md | 58 - docs/ocis/adr/0007-api-for-spaces.md | 156 - docs/ocis/adr/0008-configuration.md | 194 - docs/ocis/adr/0009-extension-template.md | 71 - docs/ocis/adr/0010-policy-enforcement.md | 85 - docs/ocis/adr/0011-global-url-format.md | 320 - docs/ocis/adr/0012-tracing.md | 49 - docs/ocis/adr/0013-locking.md | 96 - docs/ocis/adr/0014-microservices-runtime.md | 63 - docs/ocis/adr/0015-events.md | 100 - docs/ocis/adr/0016-files-metadata.md | 90 - ...llow-read-only-external-user-management.md | 111 - docs/ocis/adr/0018-file-search-api.md | 61 - docs/ocis/adr/0019-file-search-index.md | 80 - .../adr/0020-file-search-query-language.md | 110 - docs/ocis/adr/0021-service-accounts.md | 95 - .../0022-sharing-and-space-management-api.md | 87 - .../ocis/adr/0023-index-and-store-metadata.md | 79 - docs/ocis/adr/0024-msgpack-metadata.md | 83 - .../ocis/adr/0025-distributed-search-index.md | 76 - .../0026-application-based-user-settings.md | 93 - docs/ocis/adr/0027-new-share-jail.md | 94 - docs/ocis/adr/0028-activities-service.md | 106 - docs/ocis/adr/_index.md | 15 - docs/ocis/backup.md | 229 - docs/ocis/config.md | 170 - docs/ocis/deployment/_index.md | 31 - docs/ocis/deployment/basic-remote-setup.md | 54 - docs/ocis/deployment/bridge.md | 318 - docs/ocis/deployment/continuous_deployment.md | 113 - docs/ocis/deployment/kubernetes.md | 73 - docs/ocis/deployment/monitoring-tracing.md | 42 - docs/ocis/deployment/oc10_ocis_parallel.md | 168 - docs/ocis/deployment/ocis_and_wopi_drawio.svg | 4 - docs/ocis/deployment/ocis_full.md | 415 - docs/ocis/deployment/ocis_hello.md | 121 - docs/ocis/deployment/ocis_keycloak.md | 136 - docs/ocis/deployment/ocis_ldap.md | 134 - docs/ocis/deployment/preparing_server.md | 67 - docs/ocis/deployment/systemd.md | 72 - docs/ocis/deployment/ubernauten.md | 144 - .../001-OCIS-in-50-seconds-2023-10-17.mkv | Bin 2613167 -> 0 bytes .../deployment/ubernauten_media/login.png | Bin 214000 -> 0 bytes docs/ocis/development/_index.md | 9 - docs/ocis/development/beta-testplan.md | 316 - docs/ocis/development/build-docs.md | 26 - docs/ocis/development/build.md | 57 - .../development/continuous-integration.md | 56 - docs/ocis/development/debugging.md | 272 - docs/ocis/development/envvars.md | 13 - docs/ocis/development/extensions.md | 65 - docs/ocis/development/getting-started.md | 55 - docs/ocis/development/profiling.md | 140 - docs/ocis/development/tracing.md | 50 - docs/ocis/development/unit-testing/_index.md | 87 - .../unit-testing/testing-ginkgo.md | 395 - .../development/unit-testing/testing-pkg.md | 113 - docs/ocis/flow-docs/_index.md | 9 - docs/ocis/flow-docs/login-flow.md | 60 - docs/ocis/flow-docs/public-upload-flow.md | 15 - docs/ocis/flow-docs/request-flow.md | 96 - docs/ocis/getting-started/_index.md | 132 - docs/ocis/getting-started/demo-users.md | 28 - docs/ocis/guides/_index.md | 22 - docs/ocis/guides/migrate-data-rclone.md | 103 - docs/ocis/guides/ocis-and-containers.md | 44 - docs/ocis/guides/ocis-local-docker.md | 319 - docs/ocis/identity-provider/_index.md | 13 - .../ldap-active-directory.md | 42 - docs/ocis/identity-provider/oidc.md | 106 - docs/ocis/license.md | 14 - docs/ocis/metrics.md | 109 - docs/ocis/migration.md | 768 - docs/ocis/release_notes.md | 10 - docs/ocis/release_roadmap.md | 152 - .../static/architecture-overview.drawio.svg | 4 - docs/ocis/static/cs3org.png | Bin 10081 -> 0 bytes docs/ocis/static/grpc-logo.png | Bin 161836 -> 0 bytes docs/ocis/static/http-logo.png | Bin 46701 -> 0 bytes docs/ocis/static/idea.drawio.svg | 489 - .../monitoring_tracing_overview.drawio.svg | 280 - docs/ocis/static/ocis-apis.drawio.svg | 286 - .../static/ocis-config-redesign.drawio.svg | 4 - .../ocis-services-communication.drawio.svg | 4 - docs/ocis/static/runtime.drawio.svg | 4 - docs/ocis/static/src/tus-public-upload.drawio | 1 - docs/ocis/static/tus-public-upload.svg | 3 - docs/ocis/storage-backends/_index.md | 9 - docs/ocis/storage-backends/cephfs.md | 77 - docs/ocis/storage-backends/dcfsnfs.md | 63 - docs/ocis/storage-backends/eos.md | 245 - docs/ocis/storage/.gitignore | 1 - docs/ocis/storage/_index.md | 34 - docs/ocis/storage/namespaces.md | 97 - docs/ocis/storage/proposedchanges.md | 177 - docs/ocis/storage/spaces.md | 208 - docs/ocis/storage/spacesprovider.md | 112 - docs/ocis/storage/spacesregistry.md | 20 - docs/ocis/storage/static/frontend.drawio.svg | 303 - .../ocis/storage/static/namespaces.drawio.svg | 341 - docs/ocis/storage/static/overview.drawio.svg | 685 - docs/ocis/storage/static/semver-schema.png | Bin 226115 -> 0 bytes .../storage/static/spacesprovider.drawio.svg | 352 - .../storage/static/spacesregistry.drawio.svg | 405 - docs/ocis/storage/static/storage.drawio.svg | 434 - .../static/storageprovider-spaces.drawio.svg | 471 - .../storage/static/storageprovider.drawio.svg | 352 - .../storage/static/storageregistry.drawio.svg | 233 - .../storage/static/storagespace.drawio.svg | 163 - docs/ocis/storage/storagedrivers.md | 186 - docs/ocis/storage/terminology.md | 100 - docs/ocis/storage/users.md | 64 - docs/ocis/storage_registry_discovery.md | 107 - docs/services/_includes/.gitignore | 4 - docs/services/_includes/_index.md | 3 - docs/services/_includes/adoc/.gitkeep | 0 .../_includes/adoc/env-var-deltas/.gitkeep | 0 docs/services/_index.md | 15 - docs/services/antivirus/configuration.md | 15 - docs/services/app-provider/_index.md | 16 - docs/services/app-provider/configuration.md | 15 - docs/services/app-registry/configuration.md | 15 - docs/services/audit/configuration.md | 16 - docs/services/auth-basic/configuration.md | 15 - docs/services/auth-bearer/configuration.md | 15 - docs/services/auth-machine/configuration.md | 15 - docs/services/eventhistory/configuration.md | 15 - docs/services/frontend/configuration.md | 15 - docs/services/gateway/configuration.md | 15 - docs/services/general-info/_index.md | 13 - .../services/general-info/add-translations.md | 113 - docs/services/general-info/added-services.md | 64 - .../services/general-info/added-services.xlsx | Bin 11051 -> 0 bytes .../general-info/additional-information.md | 19 - .../general-info/deprecating-variables.md | 54 - .../general-info/document-cli-commands.md | 35 - .../env-var-deltas/4.0.0-5.0.0-added.adoc | 1021 - .../env-var-deltas/4.0.0-5.0.0-added.md | 263 - .../env-var-deltas/4.0.0-5.0.0-removed.adoc | 55 - .../env-var-deltas/4.0.0-5.0.0-removed.md | 13 - .../env-var-deltas/5.0.0-7.0.0-added.adoc | 637 - .../5.0.0-7.0.0-deprecated.adoc | 102 - .../env-var-deltas/5.0.0-7.0.0-removed.adoc | 257 - .../env-var-deltas/7.0.0-7.1.0-added.adoc | 57 - .../7.0.0-7.1.0-deprecated.adoc | 105 - .../env-var-deltas/7.0.0-7.1.0-removed.adoc | 12 - .../env-var-deltas/make-adoc-and-md-files.txt | 1 - docs/services/general-info/envvar-scopes.md | 71 - .../general-info/new-service-checklist.md | 54 - docs/services/general-info/port-ranges.md | 213 - docs/services/general-info/registry.md | 46 - docs/services/graph/.gitignore | 0 docs/services/graph/configuration.md | 14 - docs/services/groups/_index.md | 16 - docs/services/groups/configuration.md | 15 - docs/services/idm/admin_password_reset.md | 24 - docs/services/idm/configuration.md | 15 - docs/services/idm/configuration_hints.md | 49 - docs/services/idp/.gitignore | 1 - docs/services/idp/configuration.md | 15 - docs/services/idp/theming.md | 50 - docs/services/invitations/configuration.md | 15 - docs/services/nats/configuration.md | 15 - docs/services/notifications/configuration.md | 15 - docs/services/ocdav/configuration.md | 15 - docs/services/ocm/configuration.md | 15 - docs/services/ocm/create_share_flow.md | 65 - docs/services/ocm/invitation_flow.md | 55 - docs/services/ocs/.gitignore | 1 - docs/services/ocs/configuration.md | 15 - docs/services/policies/configuration.md | 15 - docs/services/postprocessing/configuration.md | 15 - docs/services/proxy/.gitignore | 1 - docs/services/proxy/configuration.md | 15 - docs/services/search/configuration.md | 15 - docs/services/settings/.gitignore | 1 - docs/services/settings/bundles.md | 75 - docs/services/settings/configuration.md | 15 - docs/services/settings/glossary.md | 40 - docs/services/settings/values.md | 73 - docs/services/sharing/_index.md | 16 - docs/services/sharing/configuration.md | 15 - docs/services/sse/configuration.md | 15 - docs/services/storage-publiclink/_index.md | 16 - .../storage-publiclink/configuration.md | 15 - docs/services/storage-shares/_index.md | 16 - docs/services/storage-shares/configuration.md | 15 - docs/services/storage-system/configuration.md | 15 - docs/services/storage-users/configuration.md | 15 - docs/services/thumbnails/.gitignore | 1 - docs/services/thumbnails/configuration.md | 15 - docs/services/userlog/configuration.md | 15 - docs/services/users/_index.md | 16 - docs/services/users/configuration.md | 15 - docs/services/web/.gitignore | 1 - docs/services/web/configuration.md | 15 - docs/services/web/releasing.md | 37 - docs/services/webdav/.gitignore | 1 - docs/services/webdav/configuration.md | 15 - docs/services/webfinger/configuration.md | 15 - docs/templates/ADOC.tmpl | 60 - docs/templates/ADOC_deprecation.tmpl | 2 - docs/templates/ADOC_extended.tmpl | 26 - docs/templates/ADOC_global.tmpl | 35 - docs/templates/CONFIGURATION.tmpl | 7 - .../development/testing.md => tests/README.md | 50 +- 258 files changed, 13 insertions(+), 41644 deletions(-) delete mode 100644 docs/.gitignore delete mode 100644 docs/Makefile delete mode 100644 docs/README.md delete mode 100644 docs/_index.md delete mode 100644 docs/apis/_index.md delete mode 100644 docs/apis/grpc_apis/_index.md delete mode 100644 docs/apis/http/_index.md delete mode 100644 docs/apis/http/authorization.md delete mode 100644 docs/apis/http/graph/_index.md delete mode 100644 docs/apis/http/graph/groups.md delete mode 100644 docs/apis/http/graph/permissions.md delete mode 100644 docs/apis/http/graph/role.md delete mode 100644 docs/apis/http/graph/spaces.md delete mode 100644 docs/apis/http/graph/users.md delete mode 100644 docs/apis/http/tus_upload.md delete mode 100644 docs/apis/http/webdav/_index.md delete mode 100644 docs/architecture/_index.md delete mode 100644 docs/architecture/collaborative-storage.md delete mode 100644 docs/architecture/efficient-stat-polling.md delete mode 100644 docs/architecture/posixfs-storage-driver.md delete mode 100644 docs/architecture/protocol-changes.md delete mode 100644 docs/architecture/services-communication.md delete mode 100644 docs/architecture/upload-processing.md delete mode 100644 docs/clients/_index.md delete mode 100644 docs/clients/rclone/_index.md delete mode 100644 docs/clients/rclone/webdav-sync-basic-auth.md delete mode 100644 docs/clients/rclone/webdav-sync-oidc.md delete mode 100644 docs/helpers/README.md delete mode 100644 docs/helpers/changed_envvars.py delete mode 100644 docs/helpers/configenvextractor.go delete mode 100644 docs/helpers/env-var-delta.go delete mode 100644 docs/helpers/env_vars.yaml delete mode 100644 docs/helpers/extendedEnv.go delete mode 100644 docs/helpers/extended_vars.yaml delete mode 100644 docs/helpers/main.go delete mode 100644 docs/helpers/markdowncreation.go delete mode 100644 docs/helpers/templates/adoc-generator.go.tmpl delete mode 100644 docs/helpers/templates/env-vars-added.md.tmpl delete mode 100644 docs/helpers/templates/env-vars-deprecated.md.tmpl delete mode 100644 docs/helpers/templates/env-vars-removed.md.tmpl delete mode 100644 docs/helpers/templates/envar-delta-table.go.tmpl delete mode 100644 docs/helpers/templates/environment-variable-docs-generator.go.tmpl delete mode 100644 docs/helpers/templates/example-config-generator.go.tmpl delete mode 100644 docs/helpers/templates/index.tmpl delete mode 100644 docs/mutagen.yml delete mode 100644 docs/ocis/.gitignore delete mode 100644 docs/ocis/_index.md delete mode 100644 docs/ocis/adr/0001-introduce-accounts-service.md delete mode 100644 docs/ocis/adr/0002-persist-accounts-using-cs3-storage.md delete mode 100644 docs/ocis/adr/0003-external-user-management.md delete mode 100644 docs/ocis/adr/0004-support-hot-migration.md delete mode 100644 docs/ocis/adr/0005-cs3-api-account-management.md delete mode 100644 docs/ocis/adr/0006-service-discovery.md delete mode 100644 docs/ocis/adr/0007-api-for-spaces.md delete mode 100644 docs/ocis/adr/0008-configuration.md delete mode 100644 docs/ocis/adr/0009-extension-template.md delete mode 100644 docs/ocis/adr/0010-policy-enforcement.md delete mode 100644 docs/ocis/adr/0011-global-url-format.md delete mode 100644 docs/ocis/adr/0012-tracing.md delete mode 100644 docs/ocis/adr/0013-locking.md delete mode 100644 docs/ocis/adr/0014-microservices-runtime.md delete mode 100644 docs/ocis/adr/0015-events.md delete mode 100644 docs/ocis/adr/0016-files-metadata.md delete mode 100644 docs/ocis/adr/0017-allow-read-only-external-user-management.md delete mode 100644 docs/ocis/adr/0018-file-search-api.md delete mode 100644 docs/ocis/adr/0019-file-search-index.md delete mode 100644 docs/ocis/adr/0020-file-search-query-language.md delete mode 100644 docs/ocis/adr/0021-service-accounts.md delete mode 100644 docs/ocis/adr/0022-sharing-and-space-management-api.md delete mode 100644 docs/ocis/adr/0023-index-and-store-metadata.md delete mode 100644 docs/ocis/adr/0024-msgpack-metadata.md delete mode 100644 docs/ocis/adr/0025-distributed-search-index.md delete mode 100644 docs/ocis/adr/0026-application-based-user-settings.md delete mode 100644 docs/ocis/adr/0027-new-share-jail.md delete mode 100644 docs/ocis/adr/0028-activities-service.md delete mode 100644 docs/ocis/adr/_index.md delete mode 100644 docs/ocis/backup.md delete mode 100644 docs/ocis/config.md delete mode 100644 docs/ocis/deployment/_index.md delete mode 100644 docs/ocis/deployment/basic-remote-setup.md delete mode 100644 docs/ocis/deployment/bridge.md delete mode 100644 docs/ocis/deployment/continuous_deployment.md delete mode 100644 docs/ocis/deployment/kubernetes.md delete mode 100644 docs/ocis/deployment/monitoring-tracing.md delete mode 100644 docs/ocis/deployment/oc10_ocis_parallel.md delete mode 100644 docs/ocis/deployment/ocis_and_wopi_drawio.svg delete mode 100644 docs/ocis/deployment/ocis_full.md delete mode 100644 docs/ocis/deployment/ocis_hello.md delete mode 100644 docs/ocis/deployment/ocis_keycloak.md delete mode 100644 docs/ocis/deployment/ocis_ldap.md delete mode 100644 docs/ocis/deployment/preparing_server.md delete mode 100644 docs/ocis/deployment/systemd.md delete mode 100644 docs/ocis/deployment/ubernauten.md delete mode 100644 docs/ocis/deployment/ubernauten_media/001-OCIS-in-50-seconds-2023-10-17.mkv delete mode 100644 docs/ocis/deployment/ubernauten_media/login.png delete mode 100644 docs/ocis/development/_index.md delete mode 100644 docs/ocis/development/beta-testplan.md delete mode 100644 docs/ocis/development/build-docs.md delete mode 100644 docs/ocis/development/build.md delete mode 100644 docs/ocis/development/continuous-integration.md delete mode 100644 docs/ocis/development/debugging.md delete mode 100644 docs/ocis/development/envvars.md delete mode 100644 docs/ocis/development/extensions.md delete mode 100644 docs/ocis/development/getting-started.md delete mode 100644 docs/ocis/development/profiling.md delete mode 100644 docs/ocis/development/tracing.md delete mode 100644 docs/ocis/development/unit-testing/_index.md delete mode 100644 docs/ocis/development/unit-testing/testing-ginkgo.md delete mode 100644 docs/ocis/development/unit-testing/testing-pkg.md delete mode 100644 docs/ocis/flow-docs/_index.md delete mode 100644 docs/ocis/flow-docs/login-flow.md delete mode 100644 docs/ocis/flow-docs/public-upload-flow.md delete mode 100644 docs/ocis/flow-docs/request-flow.md delete mode 100644 docs/ocis/getting-started/_index.md delete mode 100644 docs/ocis/getting-started/demo-users.md delete mode 100644 docs/ocis/guides/_index.md delete mode 100644 docs/ocis/guides/migrate-data-rclone.md delete mode 100644 docs/ocis/guides/ocis-and-containers.md delete mode 100644 docs/ocis/guides/ocis-local-docker.md delete mode 100644 docs/ocis/identity-provider/_index.md delete mode 100644 docs/ocis/identity-provider/ldap-active-directory.md delete mode 100644 docs/ocis/identity-provider/oidc.md delete mode 100644 docs/ocis/license.md delete mode 100644 docs/ocis/metrics.md delete mode 100644 docs/ocis/migration.md delete mode 100644 docs/ocis/release_notes.md delete mode 100644 docs/ocis/release_roadmap.md delete mode 100644 docs/ocis/static/architecture-overview.drawio.svg delete mode 100644 docs/ocis/static/cs3org.png delete mode 100644 docs/ocis/static/grpc-logo.png delete mode 100644 docs/ocis/static/http-logo.png delete mode 100644 docs/ocis/static/idea.drawio.svg delete mode 100644 docs/ocis/static/monitoring_tracing_overview.drawio.svg delete mode 100644 docs/ocis/static/ocis-apis.drawio.svg delete mode 100644 docs/ocis/static/ocis-config-redesign.drawio.svg delete mode 100644 docs/ocis/static/ocis-services-communication.drawio.svg delete mode 100644 docs/ocis/static/runtime.drawio.svg delete mode 100644 docs/ocis/static/src/tus-public-upload.drawio delete mode 100644 docs/ocis/static/tus-public-upload.svg delete mode 100644 docs/ocis/storage-backends/_index.md delete mode 100644 docs/ocis/storage-backends/cephfs.md delete mode 100644 docs/ocis/storage-backends/dcfsnfs.md delete mode 100644 docs/ocis/storage-backends/eos.md delete mode 100644 docs/ocis/storage/.gitignore delete mode 100644 docs/ocis/storage/_index.md delete mode 100644 docs/ocis/storage/namespaces.md delete mode 100644 docs/ocis/storage/proposedchanges.md delete mode 100644 docs/ocis/storage/spaces.md delete mode 100644 docs/ocis/storage/spacesprovider.md delete mode 100644 docs/ocis/storage/spacesregistry.md delete mode 100644 docs/ocis/storage/static/frontend.drawio.svg delete mode 100644 docs/ocis/storage/static/namespaces.drawio.svg delete mode 100644 docs/ocis/storage/static/overview.drawio.svg delete mode 100644 docs/ocis/storage/static/semver-schema.png delete mode 100644 docs/ocis/storage/static/spacesprovider.drawio.svg delete mode 100644 docs/ocis/storage/static/spacesregistry.drawio.svg delete mode 100644 docs/ocis/storage/static/storage.drawio.svg delete mode 100644 docs/ocis/storage/static/storageprovider-spaces.drawio.svg delete mode 100644 docs/ocis/storage/static/storageprovider.drawio.svg delete mode 100644 docs/ocis/storage/static/storageregistry.drawio.svg delete mode 100644 docs/ocis/storage/static/storagespace.drawio.svg delete mode 100644 docs/ocis/storage/storagedrivers.md delete mode 100644 docs/ocis/storage/terminology.md delete mode 100644 docs/ocis/storage/users.md delete mode 100644 docs/ocis/storage_registry_discovery.md delete mode 100644 docs/services/_includes/.gitignore delete mode 100644 docs/services/_includes/_index.md delete mode 100644 docs/services/_includes/adoc/.gitkeep delete mode 100644 docs/services/_includes/adoc/env-var-deltas/.gitkeep delete mode 100644 docs/services/_index.md delete mode 100644 docs/services/antivirus/configuration.md delete mode 100644 docs/services/app-provider/_index.md delete mode 100644 docs/services/app-provider/configuration.md delete mode 100644 docs/services/app-registry/configuration.md delete mode 100644 docs/services/audit/configuration.md delete mode 100644 docs/services/auth-basic/configuration.md delete mode 100644 docs/services/auth-bearer/configuration.md delete mode 100644 docs/services/auth-machine/configuration.md delete mode 100644 docs/services/eventhistory/configuration.md delete mode 100644 docs/services/frontend/configuration.md delete mode 100644 docs/services/gateway/configuration.md delete mode 100644 docs/services/general-info/_index.md delete mode 100644 docs/services/general-info/add-translations.md delete mode 100644 docs/services/general-info/added-services.md delete mode 100644 docs/services/general-info/added-services.xlsx delete mode 100644 docs/services/general-info/additional-information.md delete mode 100644 docs/services/general-info/deprecating-variables.md delete mode 100644 docs/services/general-info/document-cli-commands.md delete mode 100644 docs/services/general-info/env-var-deltas/4.0.0-5.0.0-added.adoc delete mode 100644 docs/services/general-info/env-var-deltas/4.0.0-5.0.0-added.md delete mode 100644 docs/services/general-info/env-var-deltas/4.0.0-5.0.0-removed.adoc delete mode 100644 docs/services/general-info/env-var-deltas/4.0.0-5.0.0-removed.md delete mode 100644 docs/services/general-info/env-var-deltas/5.0.0-7.0.0-added.adoc delete mode 100644 docs/services/general-info/env-var-deltas/5.0.0-7.0.0-deprecated.adoc delete mode 100644 docs/services/general-info/env-var-deltas/5.0.0-7.0.0-removed.adoc delete mode 100644 docs/services/general-info/env-var-deltas/7.0.0-7.1.0-added.adoc delete mode 100644 docs/services/general-info/env-var-deltas/7.0.0-7.1.0-deprecated.adoc delete mode 100644 docs/services/general-info/env-var-deltas/7.0.0-7.1.0-removed.adoc delete mode 100644 docs/services/general-info/env-var-deltas/make-adoc-and-md-files.txt delete mode 100644 docs/services/general-info/envvar-scopes.md delete mode 100644 docs/services/general-info/new-service-checklist.md delete mode 100644 docs/services/general-info/port-ranges.md delete mode 100644 docs/services/general-info/registry.md delete mode 100644 docs/services/graph/.gitignore delete mode 100644 docs/services/graph/configuration.md delete mode 100644 docs/services/groups/_index.md delete mode 100644 docs/services/groups/configuration.md delete mode 100644 docs/services/idm/admin_password_reset.md delete mode 100644 docs/services/idm/configuration.md delete mode 100644 docs/services/idm/configuration_hints.md delete mode 100644 docs/services/idp/.gitignore delete mode 100644 docs/services/idp/configuration.md delete mode 100644 docs/services/idp/theming.md delete mode 100644 docs/services/invitations/configuration.md delete mode 100644 docs/services/nats/configuration.md delete mode 100644 docs/services/notifications/configuration.md delete mode 100644 docs/services/ocdav/configuration.md delete mode 100644 docs/services/ocm/configuration.md delete mode 100644 docs/services/ocm/create_share_flow.md delete mode 100644 docs/services/ocm/invitation_flow.md delete mode 100644 docs/services/ocs/.gitignore delete mode 100644 docs/services/ocs/configuration.md delete mode 100644 docs/services/policies/configuration.md delete mode 100644 docs/services/postprocessing/configuration.md delete mode 100644 docs/services/proxy/.gitignore delete mode 100644 docs/services/proxy/configuration.md delete mode 100644 docs/services/search/configuration.md delete mode 100644 docs/services/settings/.gitignore delete mode 100644 docs/services/settings/bundles.md delete mode 100644 docs/services/settings/configuration.md delete mode 100644 docs/services/settings/glossary.md delete mode 100644 docs/services/settings/values.md delete mode 100644 docs/services/sharing/_index.md delete mode 100644 docs/services/sharing/configuration.md delete mode 100644 docs/services/sse/configuration.md delete mode 100644 docs/services/storage-publiclink/_index.md delete mode 100644 docs/services/storage-publiclink/configuration.md delete mode 100644 docs/services/storage-shares/_index.md delete mode 100644 docs/services/storage-shares/configuration.md delete mode 100644 docs/services/storage-system/configuration.md delete mode 100644 docs/services/storage-users/configuration.md delete mode 100644 docs/services/thumbnails/.gitignore delete mode 100644 docs/services/thumbnails/configuration.md delete mode 100644 docs/services/userlog/configuration.md delete mode 100644 docs/services/users/_index.md delete mode 100644 docs/services/users/configuration.md delete mode 100644 docs/services/web/.gitignore delete mode 100644 docs/services/web/configuration.md delete mode 100644 docs/services/web/releasing.md delete mode 100644 docs/services/webdav/.gitignore delete mode 100644 docs/services/webdav/configuration.md delete mode 100644 docs/services/webfinger/configuration.md delete mode 100644 docs/templates/ADOC.tmpl delete mode 100644 docs/templates/ADOC_deprecation.tmpl delete mode 100644 docs/templates/ADOC_extended.tmpl delete mode 100644 docs/templates/ADOC_global.tmpl delete mode 100644 docs/templates/CONFIGURATION.tmpl rename docs/ocis/development/testing.md => tests/README.md (96%) diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index d584946e13..0000000000 --- a/docs/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -hugo/ -grpc_apis/ -mutagen.yml.lock -helpers/output/* -services/**/_index.md diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index fdb2c1ccce..0000000000 --- a/docs/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -SHELL := bash - -include ../.bingo/Variables.mk - -.PHONY: help -help: - @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk -F'[:;##]' '{printf "\033[36m%-30s\033[0m %s\n", $$2, $$NF}' - -.PHONY: docs-generate -docs-generate: ## run docs-generate for all oCIS services - @pushd helpers && go run .; popd - -.PHONY: docs-init -docs-init: - @mkdir -p hugo/content/ - @mkdir -p hugo/public/ - @touch hugo/public/.nojekyll - @cd hugo && git init - @cd hugo && git config advice.detachedHead false - @cd hugo && git remote rm origin || true - @cd hugo && git remote add origin https://github.com/owncloud/owncloud.github.io - @cd hugo && git fetch --depth=1 - @cd hugo && git checkout origin/main -f - @$(MAKE) -C hugo theme - -.PHONY: docs-serve -docs-serve: docs-init docs-generate docs-copy ## serve docs with hugo - @bash -c "trap 'trap - SIGINT SIGTERM ERR; $(MAKE) --no-print-directory docs-sync-stop; exit 0' SIGINT SIGTERM ERR; $(MAKE) --no-print-directory docs-sync-start && $(MAKE) --no-print-directory hugo-serve" - -.PHONY: test -test: $(HUGO) - @cd hugo && $(HUGO) - -.PHONY: hugo-serve -hugo-serve: $(HUGO) - @cd hugo && $(HUGO) server - -.PHONY: docs-copy -docs-copy: docs-init docs-sync-start docs-sync-stop - -.PHONY: docs-sync-start -docs-sync-start: $(MUTAGEN) - @$(MUTAGEN) project terminate || true - @$(MUTAGEN) daemon stop || true - @$(MUTAGEN) project start - @$(MUTAGEN) project flush - -.PHONY: docs-sync-stop -docs-sync-stop: $(MUTAGEN) - @$(MUTAGEN) project terminate - @$(MUTAGEN) daemon stop - -.PHONY: clean -clean: ## clean up docs build artifacts - @rm -rf hugo diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 05a5f41b0c..0000000000 --- a/docs/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Documentation - -To contribute to documentation please see also: [Documentation](http://owncloud.dev/ocis/development/build-docs/) - -Note that when running a helper like `make -C docs docs-generate` locally, you will see the generated output in e.g. docs/services/. When merging a PR, the pipeline will generate the output in the master branch but finally moves it into the `docs` branch. You will therefore _not_ see changes in the docs folder of the master branch! diff --git a/docs/_index.md b/docs/_index.md deleted file mode 100644 index bfdbe806ad..0000000000 --- a/docs/_index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: ownCloud ---- - -{{< toc >}} - -## Admin Documentation - -Before you start reading, if you are interested in: - -- learning ocis from an admin perspective, -- different deployment scenarios, -- deployment examples, -- detailed settings and more - -we would recommend to continue with the [ownCloud Admin Documentation for Infinite Scale](https://doc.owncloud.com/ocis/next/). - -## Developer Documentation - -Welcome to our developer documentation. Here you find documentation with focus for *developers*: - -- [oCIS]({{< ref "./ocis" >}}) server -- oCIS Services -- Clients like: - - [ownCloud Web](https://github.com/owncloud/web) - the new web frontend for oCIS and ownCloud - - [ownCloud Android app](https://github.com/owncloud/android) - - [ownCloud iOS app](https://github.com/owncloud/ios-app) - - [ownCloud Desktop Syncing Client](https://github.com/owncloud/client) -- Integrations - -## We love open source - -The oCIS server is Apache v2 licensed. -The lower storage layer of oCIS is defined by the CS3 APIs and implemented in the REVA project. Our goal is to develop the CS3 APIs to an open standard and collaborate on the open source REVA reference implementation for CS3 APIs. - -You can also find all client sources on [GitHub](https://github.com/owncloud/). - -## Join the oCIS Community - -The [server repository](https://github.com/owncloud/ocis) on [GitHub](https://www.github.com) is a good entry point to the oCIS project. In addition to that there are also ownCloud projects for clients for [iOS](https://github.com/owncloud/ios-app), [Android](https://github.com/owncloud/android), the major [Desktop](https://github.com/owncloud/desktop) platforms and [ownCloud Web](https://github.com/owncloud/web). - -To chat about development, [join our public chat](https://talk.owncloud.com/channel/ocis) - -If you want to help and improve ownCloud or oCIS, start coding or open issues on GitHub in the related repository. - -We are very happy to hear your feedback and ideas! diff --git a/docs/apis/_index.md b/docs/apis/_index.md deleted file mode 100644 index f30eff878c..0000000000 --- a/docs/apis/_index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: APIs -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/ -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -{{< toc-tree >}} - -Infinite Scale provides a large set of different **application programming interfaces (APIs)**. Infinite Scale is built by microservices. That means many calls to "functions" in the code are remote calls. - -Basically we have two different API "universes": [HTTP](http) and [gRPC](grpc_apis). - -{{< columns >}} - -{{< figure src="/ocis/static/http-logo.png" width="70%" alt="Image sourced from https://commons.wikimedia.org/ free of licenses" >}} -<---> - -{{< figure src="/ocis/static/grpc-logo.png" width="70%" alt="Image sourced from https://grpc.io/ under CC 4.0 BY license" >}} - -{{< /columns >}} - - -For inter-service-communication we are using mostly gRPC calls because it has some advantages. In the future, clients may decide to use gRPC directly to make use of these advantages. - -{{< figure src="/ocis/static/ocis-apis.drawio.svg" class="page-image">}} - -## [HTTP](http) - -HTTP APIs are mostly used for client <-> server communication. Modern applications are embracing a [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) software architecture style. REST APIs are using the HTTP protocol to transfer data between clients and servers. All our clients talk to the Server using HTTP APIs. This has legacy reasons and is well-supported across many platforms and technologies. Infinite Scale uses an [HTTP API gateway](../services/proxy) to route client requests to the correct service. - -### OpenAPI - -It is best practise to define APIs and their behavior by a spec. We are using the OpenAPI standard for all new APIs. The [OpenAPI Specification](https://swagger.io/specification/), previously known as the Swagger Specification, is a specification for a machine-readable interface definition language for describing, producing, consuming and visualizing RESTful web services. Previously part of the Swagger framework, it became a separate project in 2016, overseen by the OpenAPI Initiative, an open-source collaboration project of the Linux Foundation. Swagger and some other tools can generate code, documentation and test cases from interface files. - -### RFC - -Some APIs have become a de facto standard and are additionally covered by an [RFC](https://en.wikipedia.org/wiki/Request_for_Comments). - -## [gRPC](grpc_apis) - -In gRPC, a client application can directly call methods on a server application on a different machine as if it was a local object. This makes it easier to create distributed applications based on microservices. In gRPC we can define a service and specify the methods that can be called remotely. A gRPC client has a stub that provides the same methods and types as the server. -Infinite Scale uses a [gRPC API Gateway](../services/gateway) to route the requests to the correct service. - -### Protobuf - -gRPC APIs are typically defined by [Protocol buffers](https://developers.google.com/protocol-buffers/docs/overview). The different client and server stubs are created from ``*.proto`` files by code generation tools. - -## Versioning - -There are different standards for API versioning: Through URL, through request parameter, through custom header and through content negotiation. Ocis uses the versioning by URL concept although this creates a big code footprint. The versioning follows [SemVer](https://semver.org). We update the major version number when breaking changes are needed. Clients can decide which major version they use through the request URL. The specific implementation is documented on each API. - diff --git a/docs/apis/grpc_apis/_index.md b/docs/apis/grpc_apis/_index.md deleted file mode 100644 index 78ea417719..0000000000 --- a/docs/apis/grpc_apis/_index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: gRPC -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/grpc_apis/ -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -{{< toc-tree >}} - -## **R**emote   **P**rocedure   **C**alls - -[gRPC](https://grpc.io) is a modern open source high performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services. - -## Advantages of gRPC - -{{< columns >}} -### {{< icon "gauge-high" >}}   Performance - -gRPC uses http/2 by default and is faster than REST. When using protocol buffers for encoding, the information comes on and off the wire much faster than JSON. Latency is an important factor in distributed systems. JSON encoding creates a noticeable factor of latency. For distributed systems and high data loads, gRPC can actually make an important difference. Other than that, gRPC supports multiple calls via the same channel and the connections are bidirectional. A single connection can transmit requests and responses at the same time. gRPC keeps connections open to reuse the same connection again which prevents latency and saves bandwidth. - -<---> -### {{< icon "helmet-safety" >}}   Robustness - -gRPC empowers better relationships between clients and servers. The rules of communication are strictly enforced. That is not the case in REST calls, where the client and the server can send and receive anything they like and hopefully the other end understands what to do with it. In gRPC, to make changes to the communication, both client and server need to change accordingly. This prevents mistakes specially in microservice architectures. -{{< /columns >}} -{{< columns >}} - -### {{< icon "magnifying-glass-plus" >}}   Debuggability - -gRPC requests are re-using the same context and can be tracked or traced across multiple service boundaries. -This helps to identify slow calls and see what is causing delays. It is possible to cancel requests which cancels -them on all involved services. - -<---> -### {{< icon "boxes-stacked" >}}   Microservices - -gRPC has been evolving and has become the best option for communication between microservices because of its unmatched -performance and its polyglot nature. One of the biggest strengths of microservices is the freedom of programming -languages and technologies. By using gRPC we can leverage all the advantages of strictly enforced communication -standards combined with freedom of choice between different programming languages - whichever would fit best. - -{{< /columns >}} - -{{< hint type=info title="gRPC Advantages" >}} - -- http/2 -- protocol buffers -- reusable connections -- multi language support -{{< /hint >}} - -## CS3 APIs - -{{< figure src="/ocis/static/cs3org.png" >}} - -The [CS3 APIs](https://github.com/cs3org/cs3apis) connect storages and application providers. - -The CS3 APIs follow Google and Uber API design guidelines, specially on error handling and naming convention. You can read more about these -guidelines at https://cloud.google.com/apis/design/ and https://github.com/uber/prototool/blob/dev/style/README.md. - -The CS3 APIs use [Protocol Buffers version 3 (proto3)](https://github.com/protocolbuffers/protobuf) as their -Interface Definition Language (IDL) to define the API interface and the structure of the payload messages. diff --git a/docs/apis/http/_index.md b/docs/apis/http/_index.md deleted file mode 100644 index c64ba1e4a0..0000000000 --- a/docs/apis/http/_index.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Http -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http/ -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -The [Hypertext Transfer Protocol (HTTP)](https://www.rfc-editor.org/rfc/rfc2616) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen in a web browser. - -Development of HTTP was initiated by Tim Berners-Lee at CERN in 1989 and summarized in a simple document describing the behavior of a client and a server using the first HTTP protocol version that was named 0.9. That first version of HTTP protocol soon evolved into a more elaborated version that was the first draft toward a far future version 1.0 diff --git a/docs/apis/http/authorization.md b/docs/apis/http/authorization.md deleted file mode 100644 index 476d0b283e..0000000000 --- a/docs/apis/http/authorization.md +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: Authorization -weight: 40 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http/ -geekdocFilePath: authorization.md ---- - -In its default configuration, Infinite Scale supports three authentication methods as outlined on the [OIDC official site](https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3): -1. Authorization Code Flow -2. Implicit Flow -3. Hybrid Flow - -For detailed information on Infinite Scale's support for OpenID Connect (OIDC), please consult the [OIDC section](https://owncloud.dev/ocis/identity-provider/oidc). -To authenticate a client app using OIDC, both `client_id` and `client_secret` are essential. Infinite Scale does not offer dynamic registration. The required data for the default [ownCloud clients](https://doc.owncloud.com/server/next/admin_manual/configuration/user/oidc/oidc.html#client-ids-secrets-and-redirect-uris) can be found in the link and are availble for the following apps: -- Desktop -- Android -- iOS - -While selecting an ownCloud client for authentication, take note of specific limitations such as the `Redirect URI`: - -| Source | Redirect URI | -|------|--------| -|Android|oc://android.owncloud.com| -|iOS|oc://ios.owncloud.com| -|Desktop|http://127.0.0.1
http://localhost | - -In this example, the desktop app's `client_id` and `client_secret` are being used. - -```bash -client_id=xdXOt13JKxym1B1QcEncf2XDkLAexMBFwiT9j6EfhhHFJhs2KM9jbjTmf8JBXE69 -client_secret=UBntmLjC2yYCeHwsyj73Uwo9TAaecAetRwMw0xYcvNL9yRdLSUi0hUAHfvCHFeFh -``` - -## Authorization Code Flow - -1. Requesting authorization - - To initiate the OIDC Code Flow, you can use tools like curl and a web browser. - The user should be directed to a URL to authenticate and give their consent (bypassing consent is against the standard): - - ```plaintext - https://ocis.test/signin/v1/identifier/_/authorize?client_id=client_id&scope=openid+profile+email+offline_access&response_type=code&redirect_uri=http://path-to-redirect-uri - ``` - - After a successful authentication, the browser will redirect to a URL that looks like this: - - ```plaintext - http://path-to-redirect-uri?code=mfWsjEL0mc8gx0ftF9LFkGb__uFykaBw&scope=openid%20profile%20email%20offline_access&session_state=32b08dd...&state= - ``` - - For the next step extract the code from the URL. - - In the above example, - the code is `mfWsjEL0mc8gx0ftF9LFkGb__uFykaBw` - -2. Requesting an access token - - The next step in the OIDC Code Flow involves an HTTP POST request - to the token endpoint of the **Infinite Scale Identity Server**. - - ```bash - curl -vk -X POST https://ocis.test/konnect/v1/token \ - -d "grant_type=authorization_code" \ - -d "code=3a3PTcO-WWXfN3l1mDN4u7G5PzWFxatU" \ - -d "redirect_uri=http:path-to-redirect-uri" \ - -d "client_id=client_id" \ - -d "client_secret=client_secret" - ``` - - Response looks like this: - ```json - { - "access_token": "eyJhbGciOid...", - "token_type": "Bearer", - "id_token": "eyJhbGciOi...", - "refresh_token": "eyJhbGciOiJ...", - "expires_in": 300 - } - ``` - -3. Refreshing an access token - - If the access token has expired, you can get a new one using the refresh token. - ```bash - curl -vk -X POST https://ocis.test/konnect/v1/token \ - -d "grant_type=refresh_token" \ - -d "refresh_token=eyJhbGciOiJ..." \ - -d "redirect_uri=http://path-to-redirect-uri" \ - -d "client_id=client_id" \ - -d "client_secret=client_secret" - ``` - - Response looks like this: - ```json - { - "access_token": "eyJhbGciOi...", - "token_type": "Bearer", - "expires_in": 300 - } - ``` - -## Implicit Code Flow - -When using the implicit flow, tokens are provided in a URI fragment of the redirect URL. -Valid values for the `response_type` request parameter are: - -- token -- id_token token - -{{< hint type=warning title="Important Warning" >}} -If you are using the implicit flow, `nonce` parameter is required in the initial `/authorize` request. -`nonce=pL3UkpAQPZ8bTMGYOmxHY/dQABin8yrqipZ7iN0PY18=` - -bash command to generate cryptographically random value -```bash -openssl rand -base64 32 -``` -{{< /hint >}} - -The user should be directed to a URL to authenticate and give their consent (bypassing consent is against the standard): -```bash -https://ocis.test/signin/v1/identifier/_/authorize?client_id=client_id&scope=openid+profile+email+offline_access&response_type=id_token+token&redirect_uri=http://path-to-redirect-uri&nonce=pL3UkpAQPZ8bTMGYOmxHY/dQABin8yrqipZ7iN0PY18= - ``` - -After a successful authentication, the browser will redirect to a URL that looks like this: -```bash -http://path-to-redirect-uri#access_token=eyJhbGciOiJQUzI...&expires_in=300&id_token=eyJhbGciOiJ...&scope=email%20openid%20profile&session_state=c8a1019f5e054d...&state=&token_type=Bearer -``` - -For the next step, extract the access_token from the URL. -```bash -access_token = 'eyJhbGciOiJQ...' - ``` - -## Hybrid Flow -The Hybrid Flow in OpenID Connect melds features from both the Implicit and Authorization Code flows. It allows clients to directly retrieve certain tokens from the Authorization Endpoint, yet also offers the option to acquire additional tokens from the Token Endpoint. - -The Authorization Server redirects back to the client with appropriate parameters in the response, based on the value of the response_type request parameter: -- code token -- code id_token -- code id_token token diff --git a/docs/apis/http/graph/_index.md b/docs/apis/http/graph/_index.md deleted file mode 100644 index cde6f929dc..0000000000 --- a/docs/apis/http/graph/_index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "LibreGraph" -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http/graph -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -The LibreGraph API is a REST Api which is inspired by the [Microsoft Graph API](https://developer.microsoft.com/en-us/graph). It tries to stay compliant with the Microsoft Graph API and aims to be the Next Generation Api in Infinite Scale where we want to support most of the features of the platform. -The [API specification](https://github.com/owncloud/libre-graph-api) is available in the OpenApi 3 standard and there are generated client and server [SDKs](https://github.com/owncloud/libre-graph-api#clients) available. You can browse the API with the [Swagger UI](https://owncloud.dev/libre-graph-api/). - -## Calling the LibreGraph API - -```sh -{HTTP method} https://ocis.url/graph/{version}/{resource}?{query-parameters} -``` - -The request component consists of: - -| Component | Description | -|--------------------|-------------------------------------------------------------------------| -| {HTTP method} | The HTTP method which is used in the request. | -| {version} | The version of the LibreGraph API used by the client. | -| {resource} | The LibreGraph Resource which the client is referencing in the request. | -| {query-parameters} | Optional parameters for the request to customize the response. | - -### HTTP methods - -| Method | Description | -|--------|-------------------------------| -| GET | Read data from a resource. | -| POST | Create a new resource. | -| PATCH | Update an existing resource. | -| PUT | Replace an existing resource. | -| DELETE | Delete an existing resource. | - -The methods `GET` and `DELETE` need no request body. The methods `POST`, `PATCH` and `PUT` require a request body, normally in JSON format to provide the needed values. - -### Version - -Infinite Scale currently provides the version `v1.0`. - -### Resource - -A resource could be an entity or a complex type and is usually defined by properties. Entities are always recognizable by an `Id` property. The URL contains the resource which you are interacting with e.g. `/me/drives` or `/groups/{group-id}`. - -Each resource could possibly require different permissions. Usually you need permissions on a higher level for creating or updating an existing resource than for reading. - -### Query parameters - -Query parameters can be OData system query options, or other strings that a method accepts to customize its response. - -You can use optional OData system query options to include more or fewer properties than the default response, filter the response for items that match a custom query, or provide additional parameters for a method. - -For example, adding the following filter parameter restricts the drives returned to only those with the driveType property of `project`. - -```shell -GET https://ocis.url/graph/v1.0/drives?$filter=driveType eq 'project' -``` -For more information about OData query options please check the [API specification](https://github.com/owncloud/libre-graph-api) and the provided examples. - -### Authorization - -For development purposes the examples in the developer documentation use Basic Auth. It is disabled by default and should only be enabled by setting `PROXY_ENABLE_BASIC_AUTH` in [the proxy](../../../services/proxy/configuration/#environment-variables) for development or test instances. - -To authenticate with a Bearer token or OpenID Connect access token replace the `-u user:password` Basic Auth option of curl with a `-H 'Authorization: Bearer '` header. A `` can be obtained by copying it from a request in the browser, although it will time out within minutes. To automatically refresh the OpenID Connect access token an ssh-agent like solution like [oidc-agent](https://github.com/indigo-dc/oidc-agent) should be used. The graph endpoints that support a preconfigured token can be found in the [API specification](https://github.com/owncloud/libre-graph-api) - -## Resources - -{{< toc-tree >}} diff --git a/docs/apis/http/graph/groups.md b/docs/apis/http/graph/groups.md deleted file mode 100644 index ca2daf45a5..0000000000 --- a/docs/apis/http/graph/groups.md +++ /dev/null @@ -1,275 +0,0 @@ ---- -title: Groups -weight: 40 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http/graph -geekdocFilePath: groups.md ---- - -{{< toc >}} - -## Groups API - -The Groups API is implementing a subset of the functionality of the -[MS Graph Group resource](https://docs.microsoft.com/en-us/graph/api/resources/group?view=graph-rest-1.0) -The JSON representation of a Group as handled by the Groups API looks like this: - -``` -{ - "displayName": "group", - "id": "f0d97060-da16-4b0d-9fa4-d1ec43afc5f1" -} -``` - -Our implementation currently supports two Attributes for a Group: - -| Attribute | Description | -|---------------|-----------------------------------------------------------------------------------------------------------------------------| -| displayName | The groups name | -| id | An unique, stable readonly identifier for the group that stays the same for the whole lifetime of the Group, usually a UUID | - - -### Reading groups - -#### `GET /groups` - -Returns a list of all groups - -Example: - -``` -curl -k 'https://localhost:9200/graph/v1.0/groups' -u user:password - -``` - -Response: - -``` -{ - "value": [ - { - "displayName": "group", - "id": "38580a2e-7018-42ed-aff6-b2af0b4e9790" - }, - { - "displayName": "Example Users", - "id": "7a20f238-8a22-4458-902d-47674c317e5f" - } - ] -} -``` - - -#### `GET /groups?$expand=members` - -Returns a list of all groups including its members - -Example: - -``` -curl -k 'https://localhost:9200/graph/v1.0/groups?$expand=members' -u user:password - -``` - -Response: - -``` -{ - "value": [ - { - "displayName": "group", - "id": "38580a2e-7018-42ed-aff6-b2af0b4e9790", - "members": [ - { - "displayName": "user1", - "id": "2e7b7e23-6c42-4d34-81b0-2bed34e51983", - "mail": "user1@example.org", - "onPremisesSamAccountName": "user1" - }, - { - "displayName": "user2", - "id": "b45c9e35-0d95-4165-96bc-68bff4a316ed", - "mail": "user2@example.org", - "onPremisesSamAccountName": "user2" - } - ] - }, - { - "displayName": "Example Users", - "id": "7a20f238-8a22-4458-902d-47674c317e5f", - "members": [ - { - "displayName": "user3", - "id": "026fbfef-79ef-4f5d-887b-9eaf42777239", - "mail": "user3@example.org", - "onPremisesSamAccountName": "user3" - } - ] - } - ] -} -``` - -#### `GET /groups/{groupid}` - -Example: - -``` -curl -k 'https://localhost:9200/graph/v1.0/groups/7a20f238-8a22-4458-902d-47674c317e5f' -u user:password -``` - -Response: - -``` -{ - "displayName": "Example Users", - "id": "7a20f238-8a22-4458-902d-47674c317e5f" -} -``` - -#### `GET /groups/{groupid}?$expand=members` - -Example: - -``` -curl -k 'https://localhost:9200/graph/v1.0/groups/7a20f238-8a22-4458-902d-47674c317e5f?$expand=members' -u user:password -``` - -Response: - -``` -{ - "displayName": "Example Users", - "id": "7a20f238-8a22-4458-902d-47674c317e5f", - "members": [ - { - "displayName": "user3", - "id": "026fbfef-79ef-4f5d-887b-9eaf42777239", - "mail": "user3@example.org", - "onPremisesSamAccountName": "user3" - } - ] -} -``` -### Getting Group Members - -#### `GET /groups/{groupid}/members` - -Returns a list of User objects that are members of a group. - -Example: - -``` -curl -k 'https://localhost:9200/graph/v1.0/groups/7a20f238-8a22-4458-902d-47674c317e5f/members' -u user:password - -``` - -Response: - -``` -[ - { - "displayName": "Test User", - "id": "c54b0588-7157-4521-bb52-c1c8ca84ea71", - "mail": "example@example.org", - "onPremisesSamAccountName": "example" - }, - { - "displayName": "Albert Einstein", - "id": "4c510ada-c86b-4815-8820-42cdf82c3d51", - "mail": "einstein@example.org", - "onPremisesSamAccountName": "einstein" - } -] -``` - -### Creating / Updating Groups - -#### `POST /groups` - -Use this to create a new group. -h -##### Request Body - -Note the missing `"id"` Attribute. It will be generated by the server: - -``` -{ - "displayName": "Example Users" -} -``` - -##### Response - -When successful, the response will return the new group including the newly allocated `"id"`: - -``` -{ - "displayName": "Example Users", - "id": "7a20f238-8a22-4458-902d-47674c317e5f" -} -``` - -#### `DELETE /groups/{id}` - -Example: - -``` -curl -k --request DELETE 'https://localhost:9200/graph/v1.0/groups/7a20f238-8a22-4458-902d-47674c317e5f' -u user:password -``` - -When successful the API returns no response body and the HTTP status code 204 (No Content) - -#### `PATCH /groups/{id}` - -Updating attributes of a single group is supposed to be done with a patch request. This is however currently not fully -implemented for our write-enabled backends. The PATCH request can however be used to add multiple members to a group at once. -See below. - -### Adding a single member to a group - -#### `POST /groups/{id}/members/$ref` - -The request body contains a single attribute "`@odata.id`" referencing the new member of the group by URI. Example: - -``` -curl -k --header "Content-Type: application/json" \ - --request POST --data \ - '{ "@odata.id": "https://localhost:9200/graph/v1.0/users/4c510ada-c86b-4815-8820-42cdf82c3d51" }' \ - 'https://localhost:9200/graph/v1.0/groups/7a20f238-8a22-4458-902d-47674c317e5f/members/$ref' -u user:password - -``` - -When successful the API returns no response body and the HTTP status code 204 (No Content) - -### Adding multiple members in a single request - -#### `PATCH /groups/{id}` - -The request body contains the attribute `members@odata.bind` holding a list of URI references for the new members. -Example: - -``` -{ - "members@odata.bind": [ - "https://localhost:9200/graph/v1.0/users/4c510ada-c86b-4815-8820-42cdf82c3d51", - "https://localhost:9200/graph/v1.0/users/c54b0588-7157-4521-bb52-c1c8ca84ea71" - ] -} -``` - -When successful the API returns no response body and the HTTP status code 204 (No Content) - -### Removing a member - -#### `DELETE /groups/{groupid}/members/{id}/$ref` - -Example - -``` -curl -k --request DELETE \ - 'https://localhost:9200/graph/v1.0/groups/7a20f238-8a22-4458-902d-47674c317e5f/members/4c510ada-c86b-4815-8820-42cdf82c3d51/$ref' \ - -u user:password -``` - -When successful the API returns no response body and the HTTP status code 204 (No Content) diff --git a/docs/apis/http/graph/permissions.md b/docs/apis/http/graph/permissions.md deleted file mode 100644 index d6c957f107..0000000000 --- a/docs/apis/http/graph/permissions.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: Permissions -weight: 50 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http/graph -geekdocFilePath: permissions.md ---- - -{{< toc >}} - -## Permissions API - -The Permissions API is implementing a subset of the functionality of the -[MS Graph Permission resource](https://learn.microsoft.com/en-us/graph/api/resources/permission?view=graph-rest-1.0). - -### Example Permissions - -The JSON representation of a Drive, as handled by the Spaces API, looks like this: -````json -{ - "@libre.graph.permissions.roles.allowedValues": [ - { - "id": "b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5", - "description": "Allows reading the shared file or folder", - "displayName": "Viewer", - "@libre.graph.weight": 1 - }, - { - "id": "fb6c3e19-e378-47e5-b277-9732f9de6e21", - "description": "Allows reading and writing the shared file or folder", - "displayName": "Editor", - "@libre.graph.weight": 2 - }, - { - "id": "312c0871-5ef7-4b3a-85b6-0e4074c64049", - "description": "Allows managing a space", - "displayName": "Manager", - "@libre.graph.weight": 3 - }, - { - "id": "4916f47e-66d5-49bb-9ac9-748ad00334b", - "description": "Allows creating new files", - "displayName": "File Drop", - "@libre.graph.weight": 4 - } - ], - "@libre.graph.permissions.actions.allowedValues": [ - "libre.graph/driveItem/basic/read", - "libre.graph/driveItem/permissions/read", - "libre.graph/driveItem/upload/create", - "libre.graph/driveItem/standard/allTasks", - "libre.graph/driveItem/upload/create" - ], - "value": [ - { - "id": "67445fde-a647-4dd4-b015-fc5dafd2821d", - "link": { - "type": "view", - "webUrl": "https://cloud.example.org/s/fhGBMIkKFEHWysj" - } - }, - { - "id": "34646ab6-be32-43c9-89e6-987e0c237e9b", - "roles": [ - "b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5" - ], - "grantedToV2": [ - { - "user": { - "id": "4c510ada-c86b-4815-8820-42cdf82c3d51", - "displayName": "Albert Einstein" - } - } - ] - }, - { - "id": "81d5bad3-3eff-410a-a2ea-eda2d14d4474", - "roles": [ - "b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5" - ], - "grantedToV2": [ - { - "user": { - "id": "4c510ada-c86b-4815-8820-42cdf82c3d51", - "displayName": "Albert Einstein" - } - } - ] - }, - { - "id": "b470677e-a7f5-4304-8ef5-f5056a21fff1", - "roles": [ - "b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5" - ], - "grantedToV2": [ - { - "user": { - "id": "f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c", - "displayName": "Marie Skłodowska Curie" - } - } - ] - }, - { - "id": "453b02be-4ec2-4e7d-b576-09fc153de812", - "roles": [ - "fb6c3e19-e378-47e5-b277-9732f9de6e21" - ], - "grantedToV2": [ - { - "user": { - "id": "4c510ada-c86b-4815-8820-42cdf82c3d51", - "displayName": "Albert Einstein" - } - } - ], - "expirationDateTime": "2018-07-15T14:00:00.000Z" - }, - { - "id": "86765c0d-3905-444a-9b07-76201f8cf7df", - "roles": [ - "312c0871-5ef7-4b3a-85b6-0e4074c64049" - ], - "grantedToV2": [ - { - "group": { - "id": "167cbee2-0518-455a-bfb2-031fe0621e5d", - "displayName": "Philosophy Haters" - } - } - ] - }, - { - "id": "c42b5cbd-2d65-42cf-b0b6-fb6d2b762256", - "grantedToV2": [ - { - "user": { - "id": "4c510ada-c86b-4815-8820-42cdf82c3d51", - "displayName": "Albert Einstein" - } - } - ], - "@libre.graph.permissions.actions": [ - "libre.graph/driveItem/basic/read", - "libre.graph/driveItem/path/update" - ] - } - ] -} -```` - -## Creating Share Invitation / Link - -### Create a link share `POST /drives/{drive-id}/items/{item-id}/createLink` - -https://owncloud.dev/libre-graph-api/#/drives.permissions/CreateLink - -### Create a user/group share `POST /drives/{drive-id}/items/{item-id}/invite` - -https://owncloud.dev/libre-graph-api/#/drives.permissions/Invite - -## Reading Permissions - -### List the effective sharing permissions on a driveitem `GET /drives/{drive-id}/items/{item-id}/permissions` - -https://owncloud.dev/libre-graph-api/#/drives.permissions/ListPermissions - -### List Get sharing permission for a file or folder `GET /drives/{drive-id}/items/{item-id}/permissions/{perm-id}` - -https://owncloud.dev/libre-graph-api/#/drives.permissions/GetPermission - -## Updating Permissions - -### Updating sharing permission `POST /drives/{drive-id}/items/{item-id}/permissions/{perm-id}` - -https://owncloud.dev/libre-graph-api/#/drives.permissions/UpdatePermission - -### Set password of permission `POST /drives/{drive-id}/items/{item-id}/permissions/{perm-id}/setPassword` - -https://owncloud.dev/libre-graph-api/#/drives.permissions/SetPermissionPassword - -### Deleting permission `DELETE /drives/{drive-id}/items/{item-id}/permissions/{perm-id}` - -https://owncloud.dev/libre-graph-api/#/drives.permissions/DeletePermission \ No newline at end of file diff --git a/docs/apis/http/graph/role.md b/docs/apis/http/graph/role.md deleted file mode 100644 index 7355da872a..0000000000 --- a/docs/apis/http/graph/role.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Role -weight: 60 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http/graph -geekdocFilePath: permissions.md ---- - -{{< toc >}} - -## Role API - -The Roles API is implementing a subset of the functionality of the -[MS Graph Role Management](https://learn.microsoft.com/en-us/graph/api/resources/rolemanagement?view=graph-rest-1.0). - -## Role Management - -### List roleDefinitions `GET /v1beta1/roleManagement/permissions/roleDefinitions` - -https://owncloud.dev/libre-graph-api/#/roleManagement/ListPermissionRoleDefinitions - -### Get unifiedRoleDefinition `GET /drives/{drive-id}/items/{item-id}/permissions/{perm-id}` - -https://owncloud.dev/libre-graph-api/#/roleManagement/GetPermissionRoleDefinition - -## Role Assignment - -### Get appRoleAssignments of a user `GET /v1.0/users/{user-id}/appRoleAssignments` - -https://owncloud.dev/libre-graph-api/#/user.appRoleAssignment/user.ListAppRoleAssignments - -### Grant an appRoleAssignment to a user `POST /v1.0/users/{user-id}/appRoleAssignments` - -https://owncloud.dev/libre-graph-api/#/user.appRoleAssignment/user.CreateAppRoleAssignments - -### Delete the appRoleAssignment from a user `DELETE /v1.0/users/{user-id}/appRoleAssignments/{appRoleAssignment-id}` - -https://owncloud.dev/libre-graph-api/#/user.appRoleAssignment/user.DeleteAppRoleAssignments \ No newline at end of file diff --git a/docs/apis/http/graph/spaces.md b/docs/apis/http/graph/spaces.md deleted file mode 100644 index bba134e4b7..0000000000 --- a/docs/apis/http/graph/spaces.md +++ /dev/null @@ -1,494 +0,0 @@ ---- -title: Spaces -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http/graph -geekdocFilePath: spaces.md ---- - -{{< toc >}} - -## Spaces API - -The Spaces API is implementing a subset of the functionality of the -[MS Graph Drives resource](https://learn.microsoft.com/en-us/graph/api/resources/drive?view=graph-rest-1.0). - -### Example Space - -The JSON representation of a Drive, as handled by the Spaces API, looks like this: -````json -{ - "driveAlias": "project/mars", - "driveType": "project", - "id": "storage-users-1$89ad5ad2-5fdb-4877-b8c9-601a9670b925", - "lastModifiedDateTime": "2023-01-24T21:19:26.417055+01:00", - "name": "Mars", - "owner": { - "user": { - "displayName": "", - "id": "89ad5ad2-5fdb-4877-b8c9-601a9670b925" - } - }, - "quota": { - "remaining": 999853685, - "state": "normal", - "total": 1000000000, - "used": 146315 - }, - "root": { - "eTag": "\"910af0061161c42d8d1224df6c4a2527\"", - "id": "storage-users-1$89ad5ad2-5fdb-4877-b8c9-601a9670b925", - "permissions": [ - { - "grantedToIdentities": [ - { - "user": { - "displayName": "Admin", - "id": "some-admin-user-id-0000-000000000000" - } - } - ], - "roles": [ - "manager" - ] - } - ], - "webDavUrl": "https://localhost:9200/dav/spaces/storage-users-1$89ad5ad2-5fdb-4877-b8c9-601a9670b925" - }, - "special": [ - { - "eTag": "\"f97829324f63ce778095334cfeb0097b\"", - "file": { - "mimeType": "image/jpeg" - }, - "id": "storage-users-1$89ad5ad2-5fdb-4877-b8c9-601a9670b925!40171bea-3263-47a8-80ef-0ca20c37f45a", - "lastModifiedDateTime": "2022-02-15T17:11:50.000000496+01:00", - "name": "Mars_iStock-MR1805_20161221.jpeg", - "size": 146250, - "specialFolder": { - "name": "image" - }, - "webDavUrl": "https://localhost:9200/dav/spaces/storage-users-1$89ad5ad2-5fdb-4877-b8c9-601a9670b925%2189ad5ad2-5fdb-4877-b8c9-601a9670b925/.space/Mars_iStock-MR1805_20161221.jpeg" - }, - { - "eTag": "\"ff38b31d8f109a4fbb98ab34499a3379\"", - "file": { - "mimeType": "text/markdown" - }, - "id": "storage-users-1$89ad5ad2-5fdb-4877-b8c9-601a9670b925!e2167612-7578-46e2-8ed7-971481037bc1", - "lastModifiedDateTime": "2023-01-24T21:10:23.661841+01:00", - "name": "readme.md", - "size": 65, - "specialFolder": { - "name": "readme" - }, - "webDavUrl": "https://localhost:9200/dav/spaces/storage-users-1$89ad5ad2-5fdb-4877-b8c9-601a9670b925%2189ad5ad2-5fdb-4877-b8c9-601a9670b925/.space/readme.md" - } - ], - "webUrl": "https://localhost:9200/f/storage-users-1$89ad5ad2-5fdb-4877-b8c9-601a9670b925" -} -```` - -## Creating Spaces - -### Create a single space `POST /drives` - -https://owncloud.dev/libre-graph-api/#/drives/CreateDrive - -### Create a space item (Enable sync) `POST /drives/{drive-id}/root/children` - -https://owncloud.dev/libre-graph-api/#/drives.root/CreateDriveItem - -## Reading Spaces - -```shell -GET https://ocis.url/graph/{version}/{me/}drives/?{query-parameters} -``` - -| Component | Description | -|--------------------|------------------------------------------------------------------------------------------------------------------------| -| {version} | The version of the LibreGraph API used by the client. | -| {/me} | The `me` component of the part is optional. If used, you only see spaces where the acting user is a regular member of. | -| {query-parameters} | Optional parameters for the request to customize the response. | - -### List all spaces `GET /drives` - -Returns a list of all available spaces, even ones where the acting user is not a regular member of. You need elevated permissions to do list all spaces. If you don't have the elevated permissions, the result is the same like `GET /me/drives`. - - -{{< hint type=info title="Multiple Administration Personas" >}} - -The ownCloud spaces concept draws a strict line between users which can work with the content of a space and others who have the permission to manage the space. A user which is able to manage quota and space metadata does not necessarily need to be able to access the content of a space. - -**Space Admin**\ -There is a global user role "Space Admin" which grants users some global permissions to manage space quota and some space metadata. This Role enables the user also to disable, restore and delete spaces. He cannot manage space members. - -**Space Manager**\ -The "Space Manager" is a user which is a regular member of a space because he has been invited. In addition to being part of a space the user can also manage the memberships of the space. - -{{< /hint >}} - -### List My Spaces `GET /me/drives` - -https://owncloud.dev/libre-graph-api/#/me.drives/ListMyDrives - -## Modifying Spaces - -Modify the properties of a space. You need elevated permissions to execute this request. - -### Set the space quota to 5GB `PATCH /drives/{drive-id}` - -To limit the quota of a space you need to set the `quota.total` value. The API response will give back all actual quota properties. - -````json -{ - "quota": { - "remaining": 5368709120, - "state": "normal", - "total": 5368709120, - "used": 0 - } -} -```` - -| Attribute | Description | -|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| remaining | The remaining disk space in `bytes`. If the quota is not limited, this will show the total available disk space. | -| state | The state of the space in regards to quota usage. This can be used for visual indicators. It can be `normal`(<75%), `nearing`(between 75% and 89%), `critical`(between 90% and 99%) and `exceeded`(100%). | -| total | The space id. The value needs to be a space ID. | -| used | The used disk space in bytes. | - -{{< tabs "set-space-quota" >}} -{{< tab "Request" >}} -```shell -curl -L -k -X PATCH 'https://localhost:9200/graph/v1.0/drives/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff' \ --H 'Content-Type: application/json' \ ---data-raw '{ - "quota": { - "total": 5368709120 - } -}' -``` -{{< /tab >}} -{{< tab "Response - 200 OK" >}} -````json {hl_lines=[17]} -{ - "description": "Marketing team resources", - "driveAlias": "project/marketing", - "driveType": "project", - "id": "storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff", - "lastModifiedDateTime": "2023-01-18T17:13:48.385204589+01:00", - "name": "Marketing", - "owner": { - "user": { - "displayName": "", - "id": "535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" - } - }, - "quota": { - "remaining": 5368709120, - "state": "normal", - "total": 5368709120, - "used": 0 - }, - "root": { - "eTag": "\"f91e56554fd9305db81a93778c0fae96\"", - "id": "storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff", - "permissions": [ - { - "grantedToIdentities": [ - { - "user": { - "displayName": "Admin", - "id": "some-admin-user-id-0000-000000000000" - } - } - ], - "roles": [ - "manager" - ] - } - ], - "webDavUrl": "https://localhost:9200/dav/spaces/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" - }, - "webUrl": "https://localhost:9200/f/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" -} -```` -{{< /tab >}} -{{< /tabs >}} - -### Change the space name, subtitle and alias `PATCH /drives/{drive-id}` - -You can change multiple space properties in one request as long as you submit a valid JSON body. Please be aware that some properties need different permissions. - -{{< tabs "change-space-props" >}} -{{< tab "Request" >}} -```shell -curl -L -k -X PATCH 'https://localhost:9200/graph/v1.0/drives/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff' \ --H 'Content-Type: application/json' \ ---data-raw '{ - "name": "Mars", - "description": "Mission to mars", - "driveAlias": "project/mission-to-mars" -}' -``` -{{< /tab >}} - -{{< tab "Response - 200 OK" >}} -````json {hl_lines=[2,3,7]} -{ - "description": "Mission to mars", - "driveAlias": "project/mission-to-mars", - "driveType": "project", - "id": "storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff", - "lastModifiedDateTime": "2023-01-19T14:17:36.094283+01:00", - "name": "Mars", - "owner": { - "user": { - "displayName": "", - "id": "535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" - } - }, - "quota": { - "remaining": 15, - "state": "normal", - "total": 15, - "used": 0 - }, - "root": { - "eTag": "\"f5fee4fdfeedd6f98956500779eee15e\"", - "id": "storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff", - "permissions": [ - { - "grantedToIdentities": [ - { - "user": { - "displayName": "Admin", - "id": "some-admin-user-id-0000-000000000000" - } - } - ], - "roles": [ - "manager" - ] - } - ], - "webDavUrl": "https://localhost:9200/dav/spaces/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" - }, - "webUrl": "https://localhost:9200/f/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" -} -```` -{{< /tab >}} -{{< /tabs >}} - -## Disabling / Deleting Spaces - -### Disable a space `DELETE /drives/{drive-id}` - -This operation will make the space content unavailable for all space members. No data will be deleted. - -{{< tabs "disable-space" >}} -{{< tab "Request" >}} -```shell -curl -L -k -X DELETE 'https://localhost:9200/graph/v1.0/drives/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff/' -``` -{{< /tab >}} - -{{< tab "Response - 204 No Content" >}} - -This response has no body value. - -A disabled space will appear in listings with a `root.deleted.state=trashed` property. The space description and the space image will not be readable anymore. - -```json {hl_lines=[18,19,20]} -{ - "description": "Marketing team resources", - "driveAlias": "project/marketing", - "driveType": "project", - "id": "storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff", - "lastModifiedDateTime": "2023-01-19T14:17:36.094283+01:00", - "name": "Marketing", - "owner": { - "user": { - "displayName": "", - "id": "535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" - } - }, - "quota": { - "total": 15 - }, - "root": { - "deleted": { - "state": "trashed" - }, - "eTag": "\"f5fee4fdfeedd6f98956500779eee15e\"", - "id": "storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff", - "permissions": [ - { - "grantedToIdentities": [ - { - "user": { - "displayName": "Admin", - "id": "some-admin-user-id-0000-000000000000" - } - } - ], - "roles": [ - "manager" - ] - } - ], - "webDavUrl": "https://localhost:9200/dav/spaces/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" - }, - "webUrl": "https://localhost:9200/f/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" -} -``` - -{{< /tab >}} -{{< /tabs >}} - -### Restore a space `PATCH /drives/{drive-id}` - -This operation will make the space content available again to all members. No content will be changed. - -To restore a space, the Header `Restore: T` needs to be set. -{{< tabs "restore-space" >}} -{{< tab "Request" >}} - -```shell -curl -L -X PATCH 'https://localhost:9200/graph/v1.0/drives/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff/' \ --H 'Restore: T' \ --H 'Content-Type: text/plain' \ ---data-raw '{}' -``` - -{{< hint type=info title="Body value" >}} - -This request needs an empty body (--data-raw '{}') to fulfil the standard libregraph specification even when the body is not needed. - -{{< /hint >}} -{{< /tab >}} - -{{< tab "Response - 200 OK" >}} - -```json -{ - "description": "Marketing team resources", - "driveAlias": "project/marketing", - "driveType": "project", - "id": "storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff", - "lastModifiedDateTime": "2023-01-19T14:17:36.094283+01:00", - "name": "Marketing", - "owner": { - "user": { - "displayName": "", - "id": "535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" - } - }, - "quota": { - "remaining": 15, - "state": "normal", - "total": 15, - "used": 0 - }, - "root": { - "eTag": "\"f5fee4fdfeedd6f98956500779eee15e\"", - "id": "storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff", - "permissions": [ - { - "grantedToIdentities": [ - { - "user": { - "displayName": "Admin", - "id": "some-admin-user-id-0000-000000000000" - } - } - ], - "roles": [ - "manager" - ] - } - ], - "webDavUrl": "https://localhost:9200/dav/spaces/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" - }, - "webUrl": "https://localhost:9200/f/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff" -} -``` - -{{< /tab >}} -{{< /tabs >}} - -### Permanently delete a space `DELETE /drives/{drive-id}` - -This operation will delete a space and all its data permanently. This is restricted to spaces which are already disabled. - -To delete a space, the Header `Purge: T` needs to be set. - -{{< tabs "delete-space" >}} -{{< tab "Request" >}} - -```shell {hl_lines=[2]} -curl -L -X DELETE 'https://localhost:9200/graph/v1.0/drives/storage-users-1$535aa42d-a3c7-4329-9eba-5ef48fcaa3ff' \ --H 'Purge: T' -``` - -{{< hint type=warning title="Data will be deleted" >}} - -This request will delete a space and all its content permanently. This operation cannot be reverted. - -{{< /hint >}} - -{{< /tab >}} -{{< tab "Response - 204 No Content" >}} - -This response has no body value. - -{{< /tab >}} -{{< tab "Response - 400 Bad Request" >}} - -The space to be deleted was not disabled before. - -```json -{ - "error": { - "code": "invalidRequest", - "innererror": { - "date": "2023-01-24T19:57:19Z", - "request-id": "f62af40f-bc18-475e-acd7-e9008d6bd326" - }, - "message": "error: bad request: can't purge enabled space" - } -} -``` -{{< /tab >}} -{{< /tabs >}} - -## Sharing Space - -### Add member to space `POST /drives/{drive-id}/root/invite` - -https://owncloud.dev/libre-graph-api/#/drives.permissions/Invite - -### Sharing space as a link `POST /drives/{drive-id}/root/createLink` - -https://owncloud.dev/libre-graph-api/#/drives.root/CreateLinkSpaceRoot - -## Reading Space Permissions - -### Listing permissions of a space `GET /drives/{drive-id}/root/permissions` - -https://owncloud.dev/libre-graph-api/#/drives.root/ListPermissionsSpaceRoot - -## Modifying / Deleting Space Permissions - -### Update permissions of a drive `PATCH /drives/{drive-id}/root/permissions/{perm-id}` - -https://owncloud.dev/libre-graph-api/#/drives.root/UpdatePermissionSpaceRoot - -### Set password of a link share `POST /drives/{drive-id}/root/permissions/{perm-id}/setPassword` - -https://owncloud.dev/libre-graph-api/#/drives.root/SetPermissionPasswordSpaceRoot - -### Removing acess to a space `DELETE /drives/{drive-id}/root/permissions/{perm-id}` - -https://owncloud.dev/libre-graph-api/#/drives.root/DeletePermissionSpaceRoot diff --git a/docs/apis/http/graph/users.md b/docs/apis/http/graph/users.md deleted file mode 100644 index 84cb5d0eb5..0000000000 --- a/docs/apis/http/graph/users.md +++ /dev/null @@ -1,270 +0,0 @@ ---- -title: Users -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http/graph -geekdocFilePath: users.md ---- - -{{< toc >}} - -## Users API - -The Users API is implementing a subset of the functionality of the -[MS Graph User resource](https://docs.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0) -The JSON representation of a User handled by the Users API looks like this: - -``` -{ - "displayName": "Albert Einstein", - "id": "4c510ada-c86b-4815-8820-42cdf82c3d51", - "mail": "einstein@example.org", - "onPremisesSamAccountName": "einstein" -} -``` - -Our implementation currently supports only a limited set of Attributes of Users: - -| Attribute | Description | -|---------------|---------------------------------------------------------------------------------------------------------------------------| -| displayName | The full name of the user, usually a combination of given name and last name | -| mail | The user's email address | -| onPremisesSamAccountName | The loginname/account name of the user | -| id | An unique, stable readonly identifier for the user that stays the same for the whole lifetime of the User, usually a UUID | -| passwordProfile | Contains the password of the users. This is only present when updating or creating users. It is never returned by the API | - - -### Reading users - -#### `GET /me` - -Returns the user object of the currently signed-in user - -Example: -``` -curl -k 'https://localhost:9200/graph/v1.0/me' -u user:password -``` - -Response: -``` -{ - "displayName": "Albert Einstein", - "id": "4c510ada-c86b-4815-8820-42cdf82c3d51", - "mail": "einstein@example.org", - "onPremisesSamAccountName": "einstein" -} -``` - -#### `GET /users` - -Returns a list of all users - -Example: - -``` -curl -k 'https://localhost:9200/graph/v1.0/users' -u user:password - -``` - -Response: - -``` -{ - "value": [ - { - "displayName": "Albert Einstein", - "id": "4c510ada-c86b-4815-8820-42cdf82c3d51", - "mail": "einstein@example.org", - "onPremisesSamAccountName": "einstein" - }, - { - "displayName": "Maurice Moss", - "id": "058bff95-6708-4fe5-91e4-9ea3d377588b", - "mail": "moss@example.org", - "onPremisesSamAccountName": "moss" - } - ] -} -``` - -#### `GET /users?$expand=memberOf` - -Returns a list of all users - -Example: - -``` -curl -k 'https://localhost:9200/graph/v1.0/users?$expand=memberOf' -u user:password - -``` - -Response: - -``` -{ - "value": [ - { - "displayName": "Albert Einstein", - "id": "4c510ada-c86b-4815-8820-42cdf82c3d51", - "mail": "einstein@example.org", - "onPremisesSamAccountName": "einstein", - "memberOf": [ - { - "displayName": "users", - "id": "509a9dcd-bb37-4f4f-a01a-19dca27d9cfa" - }, - { - "displayName": "sailing-lovers", - "id": "6040aa17-9c64-4fef-9bd0-77234d71bad0" - }, - { - "displayName": "violin-haters", - "id": "dd58e5ec-842e-498b-8800-61f2ec6f911f" - }, - { - "displayName": "physics-lovers", - "id": "262982c1-2362-4afa-bfdf-8cbfef64a06e" - } - ], - }, - { - "displayName": "Maurice Moss", - "id": "058bff95-6708-4fe5-91e4-9ea3d377588b", - "mail": "moss@example.org", - "onPremisesSamAccountName": "moss", - "memberOf": [ - { - "displayName": "users", - "id": "509a9dcd-bb37-4f4f-a01a-19dca27d9cfa" - } - ], - } - ] -} -``` - -#### `GET /users/{userid or accountname}` - -Example: - -``` -curl -k 'https://localhost:9200/graph/v1.0/users/058bff95-6708-4fe5-91e4-9ea3d377588b' -u user:password -``` - -Response: - -``` -{ - "displayName": "Maurice Moss", - "id": "058bff95-6708-4fe5-91e4-9ea3d377588b", - "mail": "moss@example.org", - "onPremisesSamAccountName": "moss" -} -``` - -#### `GET /users/{userid or accountname}?$expand=memberOf` - -Example: - -``` -curl -k 'https://localhost:9200/graph/v1.0/users/058bff95-6708-4fe5-91e4-9ea3d377588b?$expand=memberOf' -u user:password -``` - -Response: - -``` -{ - "displayName": "Maurice Moss", - "id": "058bff95-6708-4fe5-91e4-9ea3d377588b", - "mail": "moss@example.org", - "onPremisesSamAccountName": "moss", - "memberOf": [ - { - "displayName": "users", - "id": "509a9dcd-bb37-4f4f-a01a-19dca27d9cfa" - } - ], -} -``` - -### Creating / Updating Users - -#### `POST /users` - -Use this to create a new user. - -##### Request Body - -Note the missing `"id"` Attribute. It will be generated by the server: - -``` -{ - "displayName": "Example User", - "mail": "example@example.org", - "onPremisesSamAccountName": "example", - "passwordProfile": { - "password": "ThePassword" - } -} -``` - -##### Response - -When successful, the response will return the new user, without the password, but including the newly allocated `"id"`: - -``` -{ - "displayName":"Example User", - "id":"c067b139-c91c-4e47-8be6-669156a0587b", - "mail":"example@example.org", - "onPremisesSamAccountName":"example" -} -``` - -#### `DELETE /users/{id}` - -Example: - -``` -curl -k --request DELETE 'https://localhost:9200/graph/v1.0/users/c067b139-c91c-4e47-8be6-669156a0587b' -u user:password -``` - -When successful the API returns no response body and the HTTP status code 204 (No Content) - - -#### `PATCH /users/{id}` - -Updating attributes of a single user can be done with a patch request. The Request Body contains the new values of the attributes -to be updated. E.g. to update the `displayName` Attribute: - -``` - curl -k --header "Content-Type: application/json" \ - --request PATCH --data '{"displayName": "Test User" }' \ - 'https://localhost:9200/graph/v1.0/users/c54b0588-7157-4521-bb52-c1c8ca84ea71' -u user:password -``` - -Similar to creating a user via `POST`, the `PATCH` request will return the user object containing the new attribute values. - -### Change password - -#### `POST /me/changePassword` - -Users can change their own password by sending a POST request to `/me/changePassword` - -##### Request Body - -``` -{ - "currentPassword": "current", - "newPassword": "new" -} - -``` - -When successful the API returns no response body and the HTTP status code 204 (No Content) - -``` - curl -i -k --header "Content-Type: application/json" \ - --request POST --data '{"currentPassword": "current", "newPassword": "new" }' \ - 'https://localhost:9200/graph/v1.0/me/changePassword' -u user:current -``` diff --git a/docs/apis/http/tus_upload.md b/docs/apis/http/tus_upload.md deleted file mode 100644 index c15f3e5bc7..0000000000 --- a/docs/apis/http/tus_upload.md +++ /dev/null @@ -1,249 +0,0 @@ ---- -title: "Resumable Upload" -date: 2023-10-10T00:00:00+00:00 -weight: 21 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http -geekdocFilePath: tus_upload.md -geekdocCollapseSection: true ---- - -Infinite Scale supports the tus resumable-upload protocol, which is a robust, modular, and open protocol designed to resume large file uploads reliably over HTTP. -In situations where file uploads might be interrupted due to network issues, browser crashes, or other unforeseen interruptions, -tus ensures that uploads can be resumed from the point of failure without losing data. -This documentation shows some basic examples, refer [tus official site](https://tus.io/protocols/resumable-upload) for more details. - -## Supported tus Features - -The backend announces certain tus features to clients. WebDAV responses come with tus HTTP headers for the offical tus features, and additional, ownCloud specific features are announced via the capabilities endpoint (e.g. `https://localhost:9200/ocs/v1.php/cloud/capabilities?format=json`). - -The following snippet shows the relevant part of the server capabilities of Infinite Scale that concerns the tus upload: -```json -{ - "ocs": { - "data": { - "capabilities": { - "files": { - "tus_support": { - "version": "1.0.0", - "resumable": "1.0.0", - "extension": "creation,creation-with-upload", - "max_chunk_size": 10000000, - "http_method_override": "" - } - } - } - } - } - } -} -``` - -| Parameter | Environment Variable | Default Value | Description | -| -------------- | ------------------------------ | ------------- | ------------------------------------------------------------------- | -| max_chunk_size | FRONTEND_UPLOAD_MAX_CHUNK_SIZE | 10000000 | Announces the max chunk sizes in bytes for uploads via the clients. | - -## Upload in Chunks - -### Create an Upload URL - -The client must send a POST request against a known upload creation URL to request a new upload resource. -The filename has to be provided in base64-encoded format. - -Example: -```shell -# base64 encoded filename 'tustest.txt' is 'dHVzdGVzdC50eHQ=' -echo -n 'tustest.txt' | base64 -``` - -{{< tabs "create-upload-url" >}} -{{< tab "Request" >}} -```shell -curl -ks -XPOST https://ocis.test/remote.php/dav/spaces/8d72036d-14a5-490f-889e-414064156402$196ac304-7b88-44ce-a4db-c4becef0d2e0 \ --H "Authorization: Bearer eyJhbGciOiJQUzI..."\ --H "Tus-Resumable: 1.0.0" \ --H "Upload-Length: 10" \ --H "Upload-Metadata: filename dHVzdGVzdC50eHQ=" -``` -{{< /tab >}} - -{{< tab "Response - 201 Created" >}} -``` -< HTTP/1.1 201 Created -< Access-Control-Allow-Headers: Tus-Resumable, Upload-Length, Upload-Metadata, If-Match -< Access-Control-Allow-Origin: * -< Access-Control-Expose-Headers: Tus-Resumable, Upload-Offset, Location -< Content-Length: 0 -< Content-Security-Policy: default-src 'none'; -< Date: Mon, 16 Oct 2023 08:49:39 GMT -< Location: https://ocis.test/data/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJyZXZhIiwiZXhwIjoxNjk3NTMyNTc5LCJpYXQiOjE2OTc0NDYxNzksInRhcmdldCI6Imh0dHA6Ly9sb2NhbGhvc3Q6OTE1OC9kYXRhL3R1cy8zYTU3ZWZlMS04MzE0LTQ4MGEtOWY5Ny04N2Q1YzBjYTJhMTgifQ.FbrlY7mdOfsbFgMrP8OtcHlCEq72a2ZVnPD2iBo9MfM -< Tus-Extension: creation,creation-with-upload,checksum,expiration -< Tus-Resumable: 1.0.0 -< Vary: Origin -< X-Content-Type-Options: nosniff -< X-Download-Options: noopen -< X-Frame-Options: SAMEORIGIN -< X-Permitted-Cross-Domain-Policies: none -< X-Request-Id: xxxxxxxxxxxxxxxxxxxxxx -< X-Robots-Tag: none -< X-Xss-Protection: 1; mode=block -< -* Connection #0 to host localhost left intact -``` -{{< /tab >}} -{{< /tabs >}} - -The server will return a temporary upload URL in the location header of the response: -``` -< Location: https://ocis.test/data/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJyZXZhIiwiZXhwIjoxNjk3NTMyNTc5LCJpYXQiOjE2OTc0NDYxNzksInRhcmdldCI6Imh0dHA6Ly9sb2NhbGhvc3Q6OTE1OC9kYXRhL3R1cy8zYTU3ZWZlMS04MzE0LTQ4MGEtOWY5Ny04N2Q1YzBjYTJhMTgifQ.FbrlY7mdOfsbFgMrP8OtcHlCEq72a2ZVnPD2iBo9MfM -``` - -### Upload the First Chunk - -Once a temporary upload URL has been created, a client can send a PATCH request to upload a file. The file content should be sent in the body of the request: -{{< tabs "upload-the-first-chunk" >}} -{{< tab "Request" >}} -```shell -curl -ks -XPATCH https://temporary-upload-url \ --H "Authorization: Bearer eyJhbGciOiJQUzI..." \ --H "Tus-Resumable: 1.0.0" \ --H "Upload-Offset: 0" \ --H "Content-Type: application/offset+octet-stream" -d "01234" -``` -{{< /tab >}} - -{{< tab "Response - 204 No Content" >}} -``` -< HTTP/1.1 204 No Content -< Date: Tue, 17 Oct 2023 04:10:52 GMT -< Oc-Fileid: 8d72036d-14a5-490f-889e-414064156402$73bb5450-816b-4cae-90aa-1f96adc95bd4!84e319e4-de1d-4dd8-bbd0-e51d933cdbcd -< Tus-Resumable: 1.0.0 -< Upload-Expires: 1697602157 -< Upload-Offset: 5 -< Vary: Origin -< X-Content-Type-Options: nosniff -< X-Request-Id: xxxxxxxxxxxxxxxxxxxxxx -< -* Connection #0 to host localhost left intact -``` -{{< /tab >}} -{{< /tabs >}} - -### Upload Further Chunks - -After the first chunk is uploaded, the second chunk can be uploaded by pointing `Upload-Offset` to exact position that was returned in the first response. -Upload process will not be marked as complete until the total uploaded content size matches the `Upload-Length` specified during the creation of the temporary URL. - -{{< tabs "upload-the-second-chunk" >}} -{{< tab "Request" >}} -```shell -curl -ks -XPATCH https://temporary-upload-url \ --H "Authorization: Bearer eyJhbGciOiJQUzI..." \ --H "Tus-Resumable: 1.0.0" \ --H "Upload-Offset: 5" \ --H "Content-Type: application/offset+octet-stream" -d "56789" -``` -{{< /tab >}} - -{{< tab "Response - 204 No Content" >}} -``` -< HTTP/1.1 204 No Content -< Date: Tue, 17 Oct 2023 04:11:00 GMT -< Oc-Fileid: 8d72036d-14a5-490f-889e-414064156402$73bb5450-816b-4cae-90aa-1f96adc95bd4!84e319e4-de1d-4dd8-bbd0-e51d933cdbcd -< Tus-Resumable: 1.0.0 -< Upload-Expires: 1697602157 -< Upload-Offset: 10 -< Vary: Origin -< X-Content-Type-Options: nosniff -< X-Request-Id: xxxxxxxxxxxxxxxxxxxxxx -< -* Connection #0 to host localhost left intact -``` -{{< /tab >}} -{{< /tabs >}} -{{< hint type=warning title="Important Warning" >}} -`Upload-Offset` header indicates the byte position in the target file where the server should start writing the upload content. -It ensures data integrity and order during the upload process. -{{< /hint >}} - -## Creation with Upload - -{{< tabs "creation-with-upload" >}} -{{< tab "Request" >}} -```shell -curl -ks -XPOST https://ocis.test/remote.php/dav/spaces/{space-id} \ --H "Authorization: Bearer eyJhbGciOiJQUzI..." \ --H "Tus-Resumable: 1.0.0" \ --H "Upload-Length: 14" \ --H "Content-Type: application/offset+octet-stream" \ --H "Upload-Metadata: filename dGVzdC50eHQ=" \ --H "Tus-Extension: creation-with-upload" \ --d "upload content" -``` -{{< /tab >}} - -{{< tab "Response - 201 Created" >}} -```shell -< HTTP/1.1 201 Created -< Access-Control-Allow-Headers: Tus-Resumable, Upload-Length, Upload-Metadata, If-Match -< Access-Control-Allow-Origin: * -< Access-Control-Expose-Headers: Tus-Resumable, Upload-Offset, Location -< Content-Length: 0 -< Content-Security-Policy: default-src 'none'; -< Content-Type: text/plain -< Date: Mon, 16 Oct 2023 04:18:25 GMT -< Etag: "372c96743f68bc40e789124d30567371" -< Last-Modified: Mon, 16 Oct 2023 04:18:25 +0000 -< Location: https://ocis.test/data/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJyZXZhIiwiZXhwIjoxNjk3NTE2MzA1LCJpYXQiOjE2OTc0Mjk5MDUsInRhcmdldCI6Imh0dHA6Ly9sb2NhbGhvc3Q6OTE1OC9kYXRhL3R1cy82NjlhODBlZi1hN2VjLTQwYTAtOGNmOS05MTgwNTVhYzlkZjAifQ.yq-ofJYnJ9FLML7Z_jki1FJQ7Ulbt9O_cmLe6V411A4 -< Oc-Etag: "372c96743f68bc40e789124d30567371" -< Oc-Fileid: 44d3e1e0-6c01-4b94-9145-9d0068239fcd$446bdad4-4b27-41f1-afce-0881f202a214!d7c292a6-c395-4e92-bf07-2c1663aec8dd -< Oc-Perm: RDNVWZP -< Tus-Extension: creation,creation-with-upload,checksum,expiration -< Tus-Resumable: 1.0.0 -< Upload-Expires: 1697516305 -< Upload-Offset: 14 -< Vary: Origin -< X-Content-Type-Options: nosniff -< X-Download-Options: noopen -< X-Frame-Options: SAMEORIGIN -* TLSv1.2 (IN), TLS header, Supplemental data (23): -{ [5 bytes data] -< X-Permitted-Cross-Domain-Policies: none -< X-Request-Id: xxxxxxxxxxxxxxxxxxxxxx -< X-Robots-Tag: none -< X-Xss-Protection: 1; mode=block -< -* Connection #0 to host localhost left intact -``` -{{< /tab >}} -{{< /tabs >}} - -{{< hint type=warning title="Important Warning" >}} -The `Upload-Length` header of the request has to contain the exact size of the upload content in byte. -{{< /hint >}} - -## Supported Upload-Metadata - -Upload-metadata key-value pairs aren't specified in the general tus docs. The following ones are supported in the ownCloud ecosystem: - -| Parameter (key) | Example (value, MUST be Base64 encoded) | Description | -| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -| `name` OR `filename` (mandatory) | example.pdf | Filename | -| `mtime` (recommended) | 1701708712 | Modification time (Unix time format) | -| `checksum` (recommended) | SHA1 a330de5886e5a92d78fb3f8d59fe469857759e72 | Checksum, computed from the client | -| `type` OR `filetype` | application/pdf | MIME Type, sent by the web UI | -| `relativePath` | undefined | File path relative to the folder that is being uploaded, including the filename. Sent by the web UI | -| `spaceId` | 8748cddf-66b7-4b85-91a7-e6d08d8e1639$a9778d63-21e7-4d92-9b47-1b81144b9993 | Sent by the web UI | -| `spaceName` | Personal | Sent by the web UI | -| `driveAlias` | personal/admin | Sent by the web UI | -| `driveType` | personal | Sent by the web UI | -| `currentFolder` | / | Sent by the web UI | -| `currentFolderId` | 8748cddf-66b7-4b85-91a7-e6d08d8e1639$a9778d63-21e7-4d92-9b47-1b81144b9993!a9778d63-21e7-4d92-9b47-1b81144b9993 | Sent by the web UI | -| `uppyId` | uppy-example/pdf-1e-application/pdf-238300 | Sent by the web UI | -| `relativeFolder` | | File path relative to the folder that is being uploaded, without filename. Sent by the web UI. | -| `tusEndpoint` | https://ocis.ocis-traefik.latest.owncloud.works/remote.php/dav/spaces/8748cddf-66b7-4b85-91a7-e6d08d8e1639$a9778d63-21e7-4d92-9b47-1b81144b9993 | Sent by the web UI | -| `uploadId` | 71d5f878-a96c-4d7b-9627-658d782c93d7 | Sent by the web UI | -| `topLevelFolderId` | undefined | Sent by the web UI | -| `routeName` | files-spaces-generic | Sent by the web UI | -| `routeDriveAliasAndItem` | cGVyc29uYWwvYWRtaW4= | Sent by the web UI | -| `routeShareId` | | Share ID when uploading into a received folder share. Sent by the web UI | diff --git a/docs/apis/http/webdav/_index.md b/docs/apis/http/webdav/_index.md deleted file mode 100644 index 07be35b44a..0000000000 --- a/docs/apis/http/webdav/_index.md +++ /dev/null @@ -1,547 +0,0 @@ ---- -title: "WebDAV" -date: 2023-07-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/apis/http/webdav -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -{{< toc >}} - -**Web** **D**istributed **A**uthoring and **V**ersioning (WebDAV) consists of a set of methods, headers, and content-types extending HTTP/1.1 for the management of resources and -properties, creation and management of resource collections, URL namespace manipulation, and resource locking (collision avoidance). WebDAV is one of the central APIs that ownCloud uses for handling file resources, metadata and locks. - - -{{< hint type=info title="RFC" >}} -**WebDAV RFCs** - -RFC 2518 was published in February 1999. [RFC 4918](https://datatracker.ietf.org/doc/html/rfc4918), published in June 2008 obsoletes RFC 2518 with minor revisions mostly due to interoperability experience. - -{{< /hint >}} -## Calling the WebDAV API - -### Request URI - -```sh -{HTTP method} https://ocis.url/{webdav-base}/{resourceID}/{path} -``` - -The request URI consists of: - -| Component | Description | -|---------------|--------------------------------------------------------------------------------------------------------| -| {HTTP method} | The HTTP method which is used in the request. | -| {webdav-base} | The WebDAV base path component. Possible options are | -| | `dav/spaces/` This is the default and optimized endpoint for all WebDAV requests. | -| | `remote.php/dav/spaces/`* | -| | `remote.php/webdav/`* | -| | `webdav/`* | -| | `dav/`* | -| {resourceID} | This resourceID is used as the WebDAV root element. All children are accessed by their relative paths. | -| {path} | The relative path to the WebDAV root. In most of the casese, this is the space root. | - -\* these dav endpoints are implemented for legacy reasons and should not be used. Note: The legacy endpoints **do not take the resourceID as an argument.** - -### HTTP methods - -| Method | Description | -|-----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| PROPFIND | Retrieve properties as XML from a web resource. It is also overloaded to retrieve the collection structure (a.k.a. directory hierarchy) of a remote system. | -| PROPPATCH | Process instructions specified in the request body to set and/or remove properties defined on the resource identified by the request uri. | -| MKCOL | Create a WebDAV collection (folder) at the location specified by the request uri. | -| GET | Retrieve a WebDAV resource. | -| HEAD | Retrieve a WebDAV resource without reading the body. | -| PUT | A PUT performed on an existing resource replaces the GET response entity of the resource. | -| POST | Not part of the WebDAV rfc and has no effect on a WebDAV resource. However, this method is used in the TUS protocol for uploading resources. | -| PATCH | Not part of the WebDAV rfc and has no effect on a WebDAV resource. However, this method is used in the TUS protocol for uploading resources. | -| COPY | Creates a duplicate of the source resource identified by the Request-URI, in the destination resource identified by the URI in the Destination header. | -| MOVE | The MOVE operation on a non-collection resource is the logical equivalent of a copy (COPY), followed by consistency maintenance processing, followed by a delete of the source, where all three actions are performed in a single operation. | | -| DELETE | Delete the resource identified by the Request-URI. | -| LOCK | A LOCK request to an existing resource will create a lock on the resource identified by the Request-URI, provided the resource is not already locked with a conflicting lock. | -| UNLOCK | The UNLOCK method removes the lock identified by the lock token in the Lock-Token request header. The Request-URI must identify a resource within the scope of the lock. | - -The methods `MKCOL`, `GET`, `HEAD`, `LOCK`, `COPY`, `MOVE`, `UNLOCK` and `DELETE` need no request body. - -The methods `PROPFIND`, `PROPPATCH`, `PUT` require a request body, normally in XML format to provide the needed values. - -{{< hint type=tip title="Tooling" >}} -**WebDAV is not REST** - -The WebDAV protocol was created before the REST paradigm has become the de-facto standard for API design. WebDAV uses http methods which are not part of REST. Therefore all the tooling around API design and documentation is not usable (like OpenApi 3.0 / Swagger or others). -{{< /hint >}} - -### Authentication - -For development purposes the examples in the developer documentation use Basic Auth. It is disabled by default and should only be enabled by setting `PROXY_ENABLE_BASIC_AUTH` in [the proxy](../../../services/proxy/configuration/#environment-variables) for development or test instances. - -To authenticate with a Bearer token or OpenID Connect access token replace the `-u user:password` Basic Auth option of curl with a `-H 'Authorization: Bearer '` header. A `` can be obtained by copying it from a request in the browser, although it will time out within minutes. To automatically refresh the OpenID Connect access token an ssh-agent like solution like [oidc-agent](https://github.com/indigo-dc/oidc-agent) should be used. - -## Listing Properties - -This method is used to list the properties of a resource in xml. This method can also be used to retrieve the listing of a WebDAV collection which means the content of a remote directory. - -{{< tabs "list-properties" >}} -{{< tab "Curl" >}} -```shell -curl -L -X PROPFIND 'https://localhost:9200/dav/spaces/storage-users-1%24some-admin-user-id-0000-000000000000/' \ --H 'Depth: 1' \ --d ' - - - - - - - - - - - - - - - - - -' -``` -{{< /tab >}} -{{< tab "HTTP" >}} -```shell -PROPFIND /dav/spaces/storage-users-1%24some-admin-user-id-0000-000000000000/ HTTP/1.1 -Host: localhost:9200 -Origin: https://localhost -Access-Control-Request-Method: PROPFIND -Depth: 1 -Content-Type: application/xml -Authorization: Basic YWRtaW46YWRtaW4= -Content-Length: 436 - - - - - - - - - - - - - - - - - - - - -``` -{{< /tab >}} -{{< /tabs >}} - -The request consists of a request body and an optional `Depth` Header. - -{{< hint type=tip title="PROPFIND usage" >}} -**Metadata and Directory listings** - -Clients can use the `PROPFIND` method to retrieve properties of resources (metadata) and to list the content of a directories. -{{< /hint >}} -### Response - -{{< tabs "response list properties" >}} -{{< tab "207 - Multistatus" >}} - -#### Multi Status Response - -A Multi-Status response conveys information about multiple resources -in situations where multiple status codes might be appropriate. The -default Multi-Status response body is an application/xml -HTTP entity with a `multistatus` root element. Further elements -contain `200`, `300`, `400`, and `500` series status codes generated during -the method invocation. - -Although `207` is used as the overall response status code, the -recipient needs to consult the contents of the multistatus response -body for further information about the success or failure of the -method execution. The response MAY be used in success, partial -success and also in failure situations. - -The `multistatus` root element holds zero or more `response` elements -in any order, each with information about an individual resource. - -#### Body - -```xml - - - /dav/spaces/storage-users-1$some-admin-user-id-0000-000000000000/ - - - RDNVCKZP - 0 - storage-users-1$some-admin-user-id-0000-000000000000!some-admin-user-id-0000-000000000000 - storage-users-1$some-admin-user-id-0000-000000000000!some-admin-user-id-0000-000000000000 - admin - Admin - https://localhost:9200/f/storage-users-1$some-admin-user-id-0000-000000000000%21some-admin-user-id-0000-000000000000 - 10364682 - Mon, 04 Sep 2023 20:10:09 GMT - "c4d3610dfe4fac9b44e1175cfc44b12b" - - - - - HTTP/1.1 200 OK - - - - - - - - - HTTP/1.1 404 Not Found - - - - /dav/spaces/storage-users-1$some-admin-user-id-0000-000000000000/New%20file.txt - - - RDNVWZP - - SHA1:1c68ea370b40c06fcaf7f26c8b1dba9d9caf5dea MD5:2205e48de5f93c784733ffcca841d2b5 ADLER32:058801ab - - 0 - storage-users-1$some-admin-user-id-0000-000000000000!90cc3e73-0c6c-4346-9c4d-f529976d4990 - storage-users-1$some-admin-user-id-0000-000000000000!90cc3e73-0c6c-4346-9c4d-f529976d4990 - admin - Admin - - 0 - 1 - 3 - - https://localhost:9200/f/storage-users-1$some-admin-user-id-0000-000000000000%2190cc3e73-0c6c-4346-9c4d-f529976d4990 - 5 - 5 - Mon, 28 Aug 2023 20:45:03 GMT - "75115347c74701a3be9c635ddebbf5c4" - text/plain - - - HTTP/1.1 200 OK - - - - /dav/spaces/storage-users-1$some-admin-user-id-0000-000000000000/NewFolder/ - - - RDNVCKZP - 0 - storage-users-1$some-admin-user-id-0000-000000000000!5c73ecd9-d9f4-44f4-b685-ca4cb40aa6b7 - storage-users-1$some-admin-user-id-0000-000000000000!5c73ecd9-d9f4-44f4-b685-ca4cb40aa6b7 - admin - Admin - https://localhost:9200/f/storage-users-1$some-admin-user-id-0000-000000000000%215c73ecd9-d9f4-44f4-b685-ca4cb40aa6b7 - 0 - Mon, 28 Aug 2023 20:45:10 GMT - "e83367534cc595a45d706857fa5f03d8" - - - - - HTTP/1.1 200 OK - - - - - - - - - HTTP/1.1 404 Not Found - - - -``` -{{< /tab >}} -{{< tab "400 - Bad Request" >}} - -#### Body - -```xml - - - Sabre\DAV\Exception\BadRequest - Invalid Depth header value: 3 - -``` - -This can occur if the request is malformed e.g. due to an invalid xml request body or an invalid depth header value. -{{< /tab >}} -{{< tab "404 - Not Found" >}} - -#### Body - -```xml - - - Sabre\DAV\Exception\NotFound - Resource not found - -``` -{{< /tab >}} -{{< /tabs >}} - -### Request Body - -The `PROPFIND` Request can include an XML request body containing a list of namespaced property names. - -### Namespaces - -When building the body of your DAV request, you will request properties that are available under a specific namespace URI. It is usual to declare prefixes for those namespace in the `d:propfind` element of the body. - -Available namespaces: - -| URI | Prefix | -|-------------------------------------------|--------| -| DAV: | d | -| http://sabredav.org/ns | s | -| http://owncloud.org/ns | oc | -| http://open-collaboration-services.org/ns | ocs | -| http://open-cloud-mesh.org/ns | ocm | - -### Request Example with declared namespaces - -```xml - - - -``` - -### Supported WebDAV Properties - -| Property | Desription | Example | -| ----------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| `` | The latest modification time. | `Fri, 30 Dec 2022 14:22:43 GMT` | -| `` | The file's etag. | `"c3a1ee4a0c28edc15b9635c3bf798013"` | -| `` | The mime type of the file. | `image/jpeg` | -| `` | Specifies the nature of the resource. | `` for a folder | -| `` | The size if it is a file in bytes. | `5` bytes | -| `` | Describes the active locks on a resource. | Detailed Example in [Locking]() | -| `` | The globally unique ID of the resource. | `storage-1$27475553-7fb7-4689-b4cf-bbb635daff79!27475553-7fb7-4689-b4cf-bbb635daff79` | -| `` | The globally unique ID of the resource. | `storage-1$27475553-7fb7-4689-b4cf-bbb635daff79!27475553-7fb7-4689-b4cf-bbb635daff79` | -| `` | Direct URL to download a file from. | Not implemented. | -| `` | Determines the actions a user can take on the resource. | The value is a string containing letters that clients can use to determine available actions. | -| | | `S`: Shared | -| | | `M`: Mounted | -| | | `D`: Deletable | -| | | `NV`: Updateable, Renameable, Moveable | -| | | `W`: Updateable (file) | -| | | `CK`: Creatable (folders only) | -| | | `Z`: Deniable | -| | | `P`: Trashbin Purgable | -| | | `X`: Securely Viewable | -| | | In the early stages this was indeed a list of permissions. Over time, more flags were added and the term permissions no longer really fits well. | -| `` | List of user specified tags. | `test` | -| ` ` | The favorite state. | `0` for not favourited, `1` for favourited | -| `` | The user id of the owner of a resource. Project spaces have no owner. | `einstein` | -| `` | The display name of the owner of a resource. Project spaces have no owner. | `Albert Einstein` | -| `` | List of share types. | `0` = User Share | -| | | `1` = Group Share | -| | | `2` = Public Link | -| `` | | ``
`SHA1:1c68ea370b40c06fcaf7f26c8b1dba9d9caf5dea MD5:2205e48de5f93c784733ffcca841d2b5 ADLER32:058801ab`
`
` | -| | | Due to a bug in the very early development of ownCloud, this value is not an array, but a string separated by whitespaces. | -| `` | Similar to `getcontentlength` but it also works for folders. | `10` bytes | -| `` | The ID of the share if the resource is part of such. | `storage-1$27475553-7fb7-4689-b4cf-bbb635daff79!27475553-7fb7-4689-b4cf-bbb635daff79` | -| `` | The root path of the shared resource if the resource is part of such. | `/shared-folder` | -| `` | The ID of the shared resource if the resource is part of such. | `storage-1$27475553-7fb7-4689-b4cf-bbb635daff79!27475553-7fb7-4689-b4cf-bbb635daff79` | -| `` | The type of the resource if it's a public link. | `folder` | -| `` | The share permissions of the resource if it's a public link. | `1` | -| `` | The expiration date of the public link. | `Tue, 14 May 2024 12:44:29 GMT` | -| `` | The date the public link was created. | `Tue, 14 May 2024 12:44:29 GMT` | -| `` | The username of the user who created the public link. | `admin` | -| `` | The original name of the resource before it was deleted. | `some-file.txt` | -| `` | The original location of the resource before it was deleted. | `some-file.txt` | -| `` | The date the resource was deleted. | `Tue, 14 May 2024 12:44:29 GMT` | -| `` | Audio meta data if the resource contains such. | `MetallicaMetallicaEnter Sandman` | -| `` | Location meta data if the resource contains such. | `51.504106-0.074575` | - -### Request Headers - -A client executing a `PROPFIND` request MUST submit a Depth Header value. In practice, support for infinite-depth requests MAY be disabled, due to the performance and security concerns associated with this behavior. Servers SHOULD treat a -request without a Depth header as if a `Depth: infinity` header was included. Infinite depth requests are disabled by default in ocis. - -| Name | Value | -|-------------------------------------------|---------------------------------------------------------------------------------------| -| Depth | `0` = Only return the desired resource. | -| | `1` = Return the desired resource and all resources one level below in the hierarchy. | -| | `infinity` = Return all resources below the root. | - -{{< hint type=caution title="Use the Depth header with caution" >}} -**Depth: infinity** - -Using the `Depth: infinity` header value can cause heavy load on the server, depending on the size of the file tree. - -The request can run into a timeout and the server performance could be affected for other users. - -{{< /hint >}} - -## Create a Directory - -Clients create directories (WebDAV collections) by executing a `MKCOL` request at the location specified by the request url. - -{{< tabs "create-folder" >}} -{{< tab "Curl" >}} -```shell -curl -L -X MKCOL 'https://localhost:9200/dav/spaces/storage-users-1%24some-admin-user-id-0000-000000000000/NewFolder/' \ --H 'Authorization: Basic YWRtaW46YWRtaW4=' -``` -{{< /tab >}} -{{< tab "HTTP" >}} -```shell -MKCOL /dav/spaces/storage-users-1%24some-admin-user-id-0000-000000000000/NewFolder/ HTTP/1.1 -Host: localhost:9200 -Authorization: Basic YWRtaW46YWRtaW4= -``` -{{< /tab >}} -{{< /tabs >}} -### Response - -{{< tabs "response create folder" >}} -{{< tab "201 - Created" >}} -This indicates that the Resource has been created successfully. - -#### Body - -The response has no body. -{{< /tab >}} -{{< tab "403 - Forbidden" >}} - -#### Body - -```xml - - - Sabre\DAV\Exception\Forbidden - - -``` -{{< /tab >}} -{{< tab "405 - Method not allowed" >}} - -#### Body - -```xml - - - Sabre\DAV\Exception\MethodNotAllowed - The resource you tried to create already exists - -``` -{{< /tab >}} -{{< /tabs >}} - -## Upload File - -To upload files to the remote server, clients can use the `PUT` method to create or fully replace the content of the remote file. - -### Request Headers - -| Name | Usage | -|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `X-OC-Mtime` | Send the last modified
time of the file to the server in unixtime format. The server applies this mtime to the resource rather than the actual time. | -| `OC-Checksum` | Provide the checksum of the
file content to the server.
This is used to prevent corrupted data transfers. | -| `If-Match` | The If-Match request-header field is used with a method to make it
conditional. A client that has one or more entities previously
obtained from the resource can verify that one of those entities is
current by including a list of their associated entity tags in the
If-Match header field. | - -{{< tabs "upload-file" >}} -{{< tab "Curl" >}} -```shell -curl -L -X PUT 'https://localhost:9200/dav/spaces/storage-users-1%24some-admin-user-id-0000-000000000000/test.txt' \ --H 'X-OC-Mtime: 1692369418' \ --H 'OC-Checksum: SHA1:40bd001563085fc35165329ea1ff5c5ecbdbbeef' \ --H 'If-Match: "4436aef907f41f1ac7dfd1ac3d0d455f"' \ --H 'Content-Type: text/plain' \ --H 'Authorization: Basic YWRtaW46YWRtaW4=' \ --d '123' -``` -{{< /tab >}} -{{< tab "HTTP" >}} -```shell -PUT /dav/spaces/storage-users-1%24some-admin-user-id-0000-000000000000/test.txt HTTP/1.1 -Host: localhost:9200 -X-OC-Mtime: 1692369418 -OC-Checksum: SHA1:40bd001563085fc35165329ea1ff5c5ecbdbbeef -If-Match: "4436aef907f41f1ac7dfd1ac3d0d455f" -Content-Type: text/plain -Authorization: Basic YWRtaW46YWRtaW4= -Content-Length: 3 - -123 -``` -{{< /tab >}} -{{< /tabs >}} - -### Response - -{{< tabs "response upload file" >}} -{{< tab "201 - Created" >}} -This indicates that the Resource has been created successfully. - -#### Body - -The response has no body. - -#### Headers - -```yaml -Oc-Etag: "4436aef907f41f1ac7dfd1ac3d0d455f" -Oc-Fileid: storage-users-1$some-admin-user-id-0000-000000000000!07452b22-0ba9-4539-96e1-3511aff7fd2f -Last-Modified: Fri, 18 Aug 2023 14:36:58 +0000 -X-Oc-Mtime: accepted -``` -{{< /tab >}} -{{< tab "204 - No Content" >}} -This indicates that the Resource has been updated successfully. - -#### Body - -The response has no body. - -#### Headers - -```yaml -Oc-Etag: "4436aef907f41f1ac7dfd1ac3d0d455f" -Oc-Fileid: storage-users-1$some-admin-user-id-0000-000000000000!07452b22-0ba9-4539-96e1-3511aff7fd2f -Last-Modified: Fri, 18 Aug 2023 14:36:58 +0000 -X-Oc-Mtime: accepted -``` -{{< /tab >}} -{{< tab "400 - Bad Request" >}} -This indicates that the checksum, which was sent by the client, does not match the computed one after all bytes have been received by the server. - -#### Body - -```xml - - - Sabre\DAV\Exception\BadRequest - The computed checksum does not match the one received from the client. - -``` -{{< /tab >}} -{{< tab "403 - Forbidden" >}} - -The user cannot create files in that remote location. -{{< /tab >}} -{{< tab "404 - Not Found" >}} - -The remote target space cannot be found. -{{< /tab >}} -{{< tab "409 - Conflict" >}} - -This error can occur when the request cannot be executed due to a missing precondition. One example is a PUT into a non-existing remote folder. It can also happen when the client sends the wrong etag in the `If-Match` header. -{{< /tab >}} -{{< /tabs >}} diff --git a/docs/architecture/_index.md b/docs/architecture/_index.md deleted file mode 100644 index e4ed804974..0000000000 --- a/docs/architecture/_index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Architecture -date: 2023-12-06T13:00:00+01:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/architecture -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -In the architecture part of the documentation we collect useful developer documentation on different aspects of the architecture. We are using mermaid.js to collaborate on the necessary diagrams. - -*Pictures tell more than a thousand words.* diff --git a/docs/architecture/collaborative-storage.md b/docs/architecture/collaborative-storage.md deleted file mode 100644 index 62768146e5..0000000000 --- a/docs/architecture/collaborative-storage.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: "Collaborative Storage" -date: 2023-11-09T12:35:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage-backends/ -geekdocFilePath: collaborative-storage.md ---- - -{{< toc >}} - -One of the envisioned design goals of Infinite Scale is to work with so called _collaborative storage_, which means that the file system it is running on is not exclusive for Infinite Scale, but can be manipulated in parallel through third party tools. Infinite Scale is expected to monitor the changes that happen independently and react in a consistent and user friendly way. - -A real world example of that would be a third party "data producer" that submits data directly into a file system path, not going through Infinite Scale APIs. - -This document outlines a few challenges and design concepts for collaborative storage. It is also the base "checklist" for custom storage provider implementations for certain storages, ie. for Ceph- or IBM Storage Scale which provide features that allow more sophisticated and efficient implementations of this goal. - - -# Storage Driver Components - -This discusses a few components and sub functions of the storage driver that have relevance for the collaborative storage. - -## Path Locations - -What is called "the oCIS file system" is defined as the entire filetree underneath a special path in the local POSIX file system, which might either be a real local file system or a mounted net filesystem. It is expected that oCIS is the only consumer of that file tree, except what is expected behaviour with a collaborative file system, that adds and edits files in that tree. - -Underneath the oCIS file system root, there is an collection of different folders containing oCIS specific data. Specific storage driver data is in the directory `storage/users`, organized by spaces. -(TODO: Check again how different storage drivers work together without overwriting data of each other) - -## Spaces - -Infinite Scale provides spaces as an additional organization organizational unit for data. Each space is a separate entity with its own attributes such as access patterns and quota. - -A storage driver has to model the separation of spaces and provide a list of spaces in general and also a list of spaces a user can access. Furthermore, it needs to be able to create different types of spaces (Home- or Project space). - -On POSIX, each space could for example be mapped to it's own directory in a special spaces folder under the oCIS root folder. - -## ID to Path Lookup - -Infinite Scale uses file IDs to efficiently identify files within a file tree. The lookup from a given ID to a path within the oCIS file tree is a very basic function that more or less defines the Infinite Scale performance. The functionality to for example query the file path for a given Inode number (which is the nearest equivalent for the Infinite Scale file ID) can not be done with standard POSIX system calls. - -The interface defining the collaborative storage needs an abstraction for this particular function, returning the file id for a given path, and returning the path for given id. - -## Change Notification - -When a file is changed by a process outside of oCIS, this needs to be monitored by oCIS to quickly maintain internal caches and data structures as required. - -The collaborative storage driver needs a way to achieve that. The easiest way for an POSIX based collaborative storage is inotify, that needs to be set up recursively on a file tree to record changes. Additional it is a challenge to destinguish between changes that were done from external activity and the ones that oCIS creates by its own file operations. - -For GPFS, there is a subsystem called delivering that: - -https://www.ibm.com/docs/en/storage-scale/5.1.9?topic=reference-clustered-watch-folder] - -## ETag Propagation - -ownCloud requires that changes which happen "down" in a tree, can be detected in the root element of the tree. That happens through the change of the ETag metadata of each file and/or directory. An ETag is a random, text based tag, that only has one requirement: It has to change its content if a resource further down in the file tree has changed either its content or its metadata. (See [this issue](https://github.com/owncloud/ocis/issues/3782) for further discussion about the ETag/CTag). - -POSIX file systems do not maintain a change flag like the ETag by default. The file time stamps (atime, ctime, mtime) in general are not fine granular enough (only seconds for some file systems) and depend on the server time, which renders them useless in a distributed environment. - -Infinite Scale needs to implement ETag propagation "up". For the collaborative storage, that needs to be combined with the change notification described above. - -Certain file systems implement this functionality either independently from Infinite Scale (EOS) or at least support proper change notifications (Ceph, GPFS?). - -## Metadata Management - -Metadata are data "snippets" that are as tightly attached to files as ever possible. In best case, a rename of a file silently keeps the metadata as well. In POSIX, this can be achieved by extended file attributes with certain limitations. - -## Quota - -Each space has it's own quota, thus a storage driver implementation needs to consider that. - -For GPFS for example, there is support for quota handling in the file system. - -https://www.ibm.com/docs/en/gpfs/4.1.0.4?topic=interfaces-gpfs-quotactl-subroutine - -Other systems store quota data in the metadata storage and implement propagation of used quota similar to the ETag propagation. - -## User Management - -With user management it is meant how to handle the users and groups within oCIS and how that reflects to the file system where data is stored. - -### Exclusive Environment - -In exclusive environments (aka. decomposedFS) all files of oCIS (ie. the entire oCIS filetree) belongs to a system user with the name `ocis` typically. - -### Collaborative Storage - -For collaborative storages, the approach described above does not longer work because users are supposed to be able to manipulate data in "their" file tree parts, and that is identified by ACLs and the owner of the files. - -That requires a few prerequisites that have to be fulfilled: - -1. oCIS as one "client" changing data and the system that allows to access the file tree directly have to use the same user provider, to ensure that each user that is available on a shell is also available in oCIS. That ensures that changes are authenticated through system ACLs and users. LDAP based authentication on the system via PAM and the same LDAP as source for the oCIS IDP should be a sufficient setup. -2. oCIS must be able to write as a "different" user than the ocis system user. That means that we somehow have to impersonate file changing ooperations and run these as the user that is authenticated in oCIS. - -Example: There is a user ben. It has to have an entry in the LDAP that is used by IDP which oCIS is running "behind". With that, ben is able to authenticate through the IDP and work in the oCIS web app. The oCIS linux process will do writes and other changes impersonated as user ben. - -For the access of data on the commandline, the logins to the linux system must be authenticated against the same LDAP - so that ben can authenticate on a terminal using username and password. With that, the user can interactively change data that belongs to user ben (simplified said). - -To give permissions to groups, the linux group management must work accordingly. The same is true for file permissions. - -## Trashbin - -When a user deletes a file in oCIS it is moved to a so called trashbin that allows to restore the file if the deletion was accidentailly. - -## Versions - -When an existing file is changed, the former file state is to be preserved with data and metadata by oCIS. Some file system types provide this functionality via snapshots on partition or even file level. Other do not and have to implement that via a hidden directory keeping old file versions. - - - - diff --git a/docs/architecture/efficient-stat-polling.md b/docs/architecture/efficient-stat-polling.md deleted file mode 100644 index 13ad65b366..0000000000 --- a/docs/architecture/efficient-stat-polling.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -title: "Efficient Stat Polling" -date: 2020-03-03T10:31:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/architecture -geekdocFilePath: efficient-stat-polling.md ---- - -The fallback sync mechanism uses the ETag to determine which part of a sync tree needs to be checked by recursively descending into folders whose ETag has changed. The ETag can be calculated using a `stat()` call in the filesystem and we are going to explore how many `stat()` calls are necessary and how the number might be reduced. - -## ETag propagation - -What does ETag propagation mean? Whenever a file changes its content or metadata the ETag or "entity tag" changes. In the early days of ownCloud it was decided to extend this behavior to folders as well, which is outside of any WebDAV RFC specification. Nevertheless, here we are, using the ETag to reflect changes, not only on WebDAV resources but also WebDAV collections. The server will propagate the ETag change up to the root of the tree. - -{{}} -graph TD - linkStyle default interpolate basis - - subgraph final ETag propagation - ert3(( etag:N )) --- el3(( etag:O )) & er3(( etag:N )) - er3 --- erl3(( etag:O )) & err3(( etag:N )) - end - - subgraph first ETag propagation - ert2(( etag:O )) --- el2(( etag:O )) & er2(( etag:N )) - er2 --- erl2(( etag:O )) & err2(( etag:N )) - end - - subgraph initial file change - ert(( etag:O )) --- el(( etag:O )) & er(( etag:O )) - er --- erl(( etag:O )) & err(( etag:N )) - end -{{}} - -The old `etag:O` is replaced by propagating the new `etag:N` up to the root, where the client will pick it up and explore the tree by comparing the old ETags known to him with the state of the current ETags on the server. This form of sync is called *state based sync*. - -## Single user sync -To let the client detect changes in the drive (a tree of files and folders) of a user, we rely on the ETag of every node in the tree. The discovery phase starts at the root of the tree and checks if the ETag has changed since the last discovery: -- if it is still the same nothing has changed inside the tree -- if it changed the client will compare the ETag of all immediate children and recursively descend into every node that changed - -This works, because the server side will propagate ETag changes in the tree up to the root. - -{{}} -graph TD - linkStyle default interpolate basis - - ec( client ) -->|"stat()"|ert - - subgraph - ert(( )) --- el(( )) & er(( )) - er --- erl(( )) & err(( )) - end -{{}} - -## Multiple users -On an ocis server there is not one user but many. Each of them may have one or more clients running. In the worst case all of them polling the ETag of his home root node every 30 seconds. - -Keep in mind that etags are only propagated inside each distinct tree. No sharing is considered yet. - -{{}} -graph TD - linkStyle default interpolate basis - - ec( client ) -->|"stat()"|ert - - subgraph - ert(( )) --- el(( )) & er(( )) - er --- erl(( )) & err(( )) - end - - mc( client ) -->|"stat()"|mrt - - subgraph - mrt(( )) --- ml(( )) & mr(( )) - mr --- mrl(( )) & mrr(( )) - end - - fc( client ) -->|"stat()"|frt - - subgraph - frt(( )) --- fl(( )) & fr(( )) - fr --- frl(( )) & frr(( )) - end -{{}} - -## Sharing -*Storage providers* are responsible for persisting shares as close to the storage as possible. - -One implementation may persist shares using ACLs, another might use custom extended attributes. The chosen implementation is storage specific and always a tradeoff between various requirements. Yet, the goal is to treat the storage provider as the single source of truth for all metadata. - -If users can bypass the storage provider using e.g. `ssh` additional mechanisms needs to make sure no inconsistencies arise: -- the ETag must still be propagated in a tree, eg using inotify, a policy engine or workflows triggered by other means -- deleted files should land in the trash (e.g. `rm` could be wrapped to move files to trash) -- overwriting files should create a new version ... other than a fuse fs I see no way of providing this for normal posix filesystems. Other storage backends that use the s3 protocol might provide versions natively. - -The storage provider is also responsible for keeps track of references e.g. using a shadow tree that users normally cannot see or representing them as symbolic links in the filesystem (Beware of symbolic link cycles. The clients are currently unaware of them and would flood the filesystem). - -To prevent write amplification ETags must not propagate across references. When a file that was shared by einstein changes the ETag must not be propagated into any share recipients tree. - -{{}} -graph TD - linkStyle default interpolate basis - - - ec( einsteins client ) -->|"stat()"|ert - - subgraph - ml --- mlr(( )) - mrt(( )) --- ml(( )) & mr(( )) - mr --- mrl(( )) & mrr(( )) - end - - mlr -. reference .-> er - - subgraph - ert(( )) --- el(( )) & er(( )) - er --- erl(( )) & err(( )) - end - - mc( maries client ) -->|"stat()"|mrt - -{{}} - -But how can Marie's client detect the change? - -We are trading writes for reads: the client needs to stat the own tree & all shares or entry points into other storage trees. - -It would require client changes that depend on the server side actually having an endpoint that can efficiently list all entry points into storages a user has access to including their current etag. - -But having to list n storages might become a bottleneck anyway, so we are going to have the gateway calculate a virtual root ETag for all entry points a user has access to and cache that. - -## Server Side Stat Polling -Every client polls the virtual root ETag (every 30 sec). The gateway will cache the virtual root ETag of every storage for 30 sec as well. That way every storage provider is only stated once every 30 sec (can be throttled dynamically to adapt to storage io load). - - -{{}} -graph TD - linkStyle default interpolate basis - - ec( client ) -->|"stat()"|evr - - subgraph gateway caching virtual etags - evr(( )) - mvr(( )) - fvr(( )) - end - - evr --- ert - mvr --- mrt - fvr --- frt - - subgraph - ert(( )) --- el(( )) & er(( )) - er --- erl(( )) & err(( )) - end - - mc( client ) -->|"stat()"|mvr - - subgraph - mrt(( )) --- ml(( )) & mr(( )) - ml --- mlm(( )) - mr --- mrl(( )) & mrr(( )) - end - - mlm -.- er - mvr -.- er - - fc( client ) -->|"stat()"|fvr - - subgraph - frt(( )) --- fl(( )) & fr(( )) - fr --- frl(( )) & frr(( )) - end - -{{}} - -Since the active clients will poll the etag for all active users the gateway will have their ETag cached. This is where sharing comes into play: The gateway also needs to stat the ETag of all other entry points ... or mount points. That may increase the number of stat like requests to storage providers by an order of magnitude. - -### Ram considerations - -For a single machine using a local posix storage the linux kernel already caches the inodes that contain the metadata that is necessary to calculate the ETag (even extended attributes are supported). With 4k inodes 256 nodes take 1Mb of RAM, 1k inodes take 4Mb and 1M inodes take 4Gb to completely cache the file metadata. For distributed filesystems a dedicated cache might make sense to prevent hammering it with stat like requests to calculate ETags. - -### Bandwidth considerations - -The bandwidth for a single machine might be another bottleneck. Consider a propfind request with roughly 500 bytes and a response with roughly 800 bytes in size: -- At 100Mbit (~10Mb/s) you can receive 20 000 PROPFIND requests -- At 1000Mbit (~100Mb/s) you can receive 200 000 PROPFIND requests -- At 10Gbit (~1Gb/s) you can receive 2 000 000 PROPFIND requests - -This can be scaled by adding more gateways and sharding users because these components are stateless. - -## Share mount point polling cache -What can we do to reduce the number of stat calls to storage providers. Well, the gateway queries the share manager for all mounted shares of a user (or all entry points, not only the users own root/home). The share references contain the storage provider that contains the share. If every user has its own storage provider id the gateway could check in its own cache if the storage root etag has changed. It will be up-to-date because another client likely already polled for its etag. -This would reduce the number of necessary stat requests to active storages. - -### Active share node cache invalidation -We can extend the lifetime of share ETag cache entries and only invalidate them when the root of the storage that contains them changes its ETag. That would reduce the number of stat requests to the number of active users. - -### Push notifications -We can further enhance this by sending push notifications when the root of a storage changes. Which is becoming increasingly necessary for mobile devices anyway. diff --git a/docs/architecture/posixfs-storage-driver.md b/docs/architecture/posixfs-storage-driver.md deleted file mode 100644 index ea96490063..0000000000 --- a/docs/architecture/posixfs-storage-driver.md +++ /dev/null @@ -1,207 +0,0 @@ ---- -title: "PosixFS Storage Driver" -date: 2024-05-27T14:31:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/architecture -geekdocFilePath: posixfs-storage-driver.md ---- - -{{< toc >}} - -The Posix FS Storage Driver is a new storage driver for Infinite Scale. - -The scope of this document is to give a high level overview to the technical aspects of the Posix FS Storage Driver and guide the setup. - -## Introduction - -The Posix FS Storage Driver is a backend component that manages files on the server utilizing a "real" file tree that represents the data with folders and files in the file system as users are used to it. That is the big difference compared to Decomposed FS which is the default storage driver in Infinite Scale. - -This does not mean that Infinite Scale is trading any of its benefits to this new feature: It still implements simplicity by running without a database, it continues to store metadata in the file system and adds them transparently to caches and search indexes, and it also features the full spaces concept as before, just to name a few examples. - -The architecture of Infinite Scale allows configuring different storage drivers for specific storage types and purposes on a space granularity. The Posix FS Storage Driver is an alternative to the default driver called Decomposed FS. - -However, the clarity of the file structure in the underlying file system is not the only benefit of the Posix FS Storage Driver. This new technology allows users to manipulate the data directly in the file system, and any changes made to files outside of Infinite Scale are monitored and directly reflected in Infinite Scale. For example, a scanner could store its output directly to the Infinite Scale file system, which immediately gets picked up in Infinite Scale. - -For the first time ever with feature rich open source file sync & share systems, users can either choose to work with their data through the clients of the system, its APIs or even directly in the underlying file system on the server. - -That is another powerful vector for integration and enables a new spectrum of use cases across all domains. - -## Technical Aspects - -The Posix FS Storage Driver uses a few features of the underlying file system, which are mandatory and directly contributing to the performance of the system. - -While the simplest form of Posix FS Storage Driver runs with default file systems of every modern Linux system which are directly mounted and thus support inotify, the full power of this unfolds with more capable file systems such as IBM Storage Scale or Ceph. These are recommended as reliable foundations for big installations of Infinite Scale. - -This chapter describes some technical aspects of this storage driver. - -### Path Locations - -The file tree that is used as storage path for both data and metadata is located under the local path on the machine that is running Infinite Scale. That might either be a real local file system or a mounted net filesystem. It is expected that oCIS is the only consumer of that file tree, except what is expected behaviour with a collaborative file system, that works with files in that tree. - -Underneath the Infinite Scale file system root, there is a collection of different folders containing Infinite Scale specific data storing personal spaces, project spaces and indexes. - -### Metadata - -Infinite Scale is highly dependent on the efficient usage of meta data which are attached to file resources, but also logical elements such as spaces. - -Metadata is stored in extended attributes (as also supported by decompsed FS) which poses the benefit that metadata is always directly attached to the actual resources. As a result, care has to be taken that extended attributes are considered when working with the file tree however, e.g. when creating or restoring backups. - -Note: The maximum number and size of extended attributes are limited depending on the filesystem and block size. See [GPFS Specifics](#gpfs-specifics) for more details on GPFS file systems. - -All indexing and caching of metadata is implemented in higher system levels than the storage driver, and thus are not different to the components used with other storage drivers like the decomposed FS. - -### Monitoring - -To get information about changes such as new files added, files edited or removed, Infinite Scale uses a monitoring system to directly watch the file system. This starts with the Linux inotify system and ranges to much more sophisticated services as for example in Spectrum Scale (see [GPFS Specifics](#gpfs-specifics) for more details on GPFS file systems). - -Based on the information transmitted by the watching service, Infinite Scale is able to "register" new or changed files into its own caches and internal management structures. This enables Infinite Scale to deliver resource changes through the "traditional" channels such as APIs and clients. - -Since the most important metadata is the file tree structure itself, it is impossible for the "split brain" situation between data and metadata to cause trouble. - -### Automatic ETag Propagation - -The ETag of a resource can be understood as a content fingerprint of any file- or folder resource in Infinite Scale. It is mainly used by clients to detect changes of resources. The rule is, that if the content of a file changed the ETag has to change as well, as well as the ETag of all parent folders up to the root of the space. - -Infinite Scale uses a built in mechanism to maintain the ETag for each resource in the file meta data, and also propagates it automatically. - -A sophisticated underlying file system could provide an attribute that fulfills this requirement and changes whenever content or metadata of a resource changes, and - which is most important - also changes the attribute of the parent resource and the parent of the parent etc. - -### Automatic Tree Size Propagation - -Similar to the ETag propagation described before, Infinite Scale also tracks the accumulated tree size in all nodes of the file tree. A change to any file requires a re-calculation of the size attribute in all parent folders. - -Infinite Scale would benefit from file systems with native tree size propagation. - -### Quota - -Each space has it's own quota, thus every storage driver implementation needs to consider that. - -For example, IBM Spectrum Scale supports quota handling directly in the file system. - -Other systems store quota data in the metadata storage and implement propagation of used quota similar to the tree size propagation. - -### File ID Resolution - -Infinite Scale uses an ID based approach to work with resources, rather than a file path based mechanism. The reason for that is, that ID based lookups can be done way more efficiently compared to tree traversals, just to name one reason. - -The most important component of the ID is a unique file ID that identifies the resource within a space. Ideally the Inode of a file could be used here. However, some file systems re-use inodes which must be avoided. Infinite Scale thus does not use the file Inode, but generates a UUID instead. - -ID based lookups utilize an ID cache which needs to be shared between all storageprovider and dataprovider instances. During startup a scan of the whole file tree is performed to detect and cache new entities. - -In the future a powerful underlying file system could support Infinite Scale by providing an API that - -1. Provides the ID for a given file path referenced resource -2. Provides the path for a given ID. - -These two operations are very crucial for the performance of the entire system. - -### User Management - -With the requirement that data can be manipulated either through the filesystem or the Infinite Scale system, the question under which UID the manipulation happens is important. - -There are a few possible ways for user management: -1. Changes can either be only accepted by the same user that Infinite Scale is running under, for example the user `ocis`. All manipulations in the filesystem have to be done by, and only by this user. -2. Group based: All users who should be able to manipulate files have to be in a unix group. The Infinite Scale user has also to be member of that group. The default umask in the directory used has to allow group writing all over the place. -3. Impersonation: Infinite Scale impersonates the user who owns the folder on the file system to mimic the access as the user. - -All possibilities have pros and cons for operations. - -One for all, it seems reasonable to use LDAP to manage users which is the base for the Infinite Scale IDP as well as the system login system via PAM. - -### GID Based Space Access - -The Posix FS Storage Driver supports GID based space access to support the problem that project spaces might have to be accessible by multiple users on disk. In order to enable this feature the `ocis` binary needs to have the `setgid` capability and `STORAGE_USERS_POSIX_USE_SPACE_GROUPS` needs to be set to `true`. Inifinite Scale will then use the space GID (the gid of the space root) for all file system access using the `setfsgid` syscall, i.e. all files and directories created by Infinite Scale will belong to the same group as the space root. - -## Advanced Features - -Depending on the capabilities of the underlying file system, the Posix FS Storage Driver can benefit from more advanced functionality described here. - -### Versioning - -If the underlying file system is able to create versions of single resources (imagine a git based file system) this functionality could directly be used by Infinite Scale. - -In the current state of the Posix FS Storage Driver, versioning is not supported. - -### Trashbin - -If the underlying file system handles deleted files in a trash bin that allows restoring of previously removed files, this functionality could directly be used by Infinite Scale. - -If not available it will follow the [the Free Desktop Trash specificaton](https://specifications.freedesktop.org/trash-spec/trashspec-latest.html). - -## Limitations - -As of Q2/2024 the Posix FS Storage Driver is not officially supported and in technical preview state. - -The tech preview comes with the following limitations: - -1. Only inotify and GPFS file system change notification methods are supported -1. Versioning is not supported yet -1. The space/project folders in the filesystem are named after the UUID, not the real space name -1. No CephFS support yet -1. Postprocessing (ie. anti virus check) does not happen for file actions outside of Infinite Scale - -## Setup - -This describes the steps to use the Posix FS Storage Driver storage driver with Infinite Scale. - -It is possible to use different storage drivers in the same Infinite Scale installation. For example it is possible to set up one space running on Posix FS Storage Driver while others run Decomposed FS. - -### Prerequisites - -To use the Posix FS Storage Driver, the following prerequisites have to be fulfilled: - -1. There must be storage available to store meta data and blobs, available under a root path. -1. When using inotify, the storage must be local on the same machine. Network mounts do not work with inotify. `inotifywait` needs to be installed. -1. The storage root path must be writeable and executable by the same user Infinite Scale is running under. -1. An appropiate version of Infinite Scale is installed, version number 5.0.5 and later. -1. `nats-js-kv` as cache service - - -### Setup Configuration - -This is an example configuration with environment variables that configures Infinite Scale to use Posix FS Storage Driver for all spaces it works with, ie. Personal and Project Spaces: - -``` -export STORAGE_USERS_DRIVER="posix" -export STORAGE_USERS_POSIX_ROOT="/home/kf/tmp/posix-storage" -export STORAGE_USERS_POSIX_WATCH_TYPE="inotifywait" -export STORAGE_USERS_ID_CACHE_STORE="nats-js-kv" -export STORAGE_USERS_ID_CACHE_STORE_NODES="localhost:9233" - -# Optionally enable gid based space access -export STORAGE_USERS_POSIX_USE_SPACE_GROUPS="true" -``` - -## GPFS Specifics - -When using GPFS as the underlying filesystem the machine running the according `storage-users` service needs to have the GPFS filesystem mounted locally. The mount path is given to ocis as the `STORAGE_USERS_POSIX_ROOT` path. - -Other than that there a few other points to consider: - -### Extended Attributes - -As described above metadata is stored as extended attributes of the according entities and thus is suspect to their limitations. In GPFS extended attributes are first stored in the inode itself but can then also use an overflow block which is at least 64KB and up to the metadata block size. Inode and metadata block size should be chosen accordingly. - -### FS Watcher - -The Posix FS Storage Driver supports two different watchers for detecting changes to the filesystem. The watchfolder watcher is better tested and supported at that point. - -#### GPFS File Audit Logging - -The `gpfsfileauditlogging` watcher tails a GPFS file audit log and parses the JSON events to detect relevant changes. - -``` -export STORAGE_USERS_POSIX_WATCH_TYPE="gpfsfileauditlogging" -export STORAGE_USERS_POSIX_WATCH_PATH="/path/to/current/audit/log" -``` - -#### GPFS Watchfolder - -The `gpfswatchfolder` watcher connects to a kafka cluster which is being filled with filesystem events by the GPFS watchfolder service. - -``` -export STORAGE_USERS_POSIX_WATCH_TYPE="gpfswatchfolder" -export STORAGE_USERS_POSIX_WATCH_PATH="fs1_audit" # the kafka topic to watch -export STORAGE_USERS_POSIX_WATCH_FOLDER_KAFKA_BROKERS="192.168.1.180:29092" -``` diff --git a/docs/architecture/protocol-changes.md b/docs/architecture/protocol-changes.md deleted file mode 100644 index 4647dcf48f..0000000000 --- a/docs/architecture/protocol-changes.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -title: "Protocol changes" -date: 2022-05-17T08:46:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/architecture -geekdocFilePath: protocol-changes.md ---- - -The spaces concept allows clients to look up the space endpoints a user has access to and then do individual sync discoveries. Technically, we introduce an indirection that allows clients to rely on server provided URLs instead of hardcoded `/webdav` or `/dav/files/{username}` paths, that may change over time. - -## Space discovery - -{{}} -%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%% -%% font weight is a css bug: https://github.com/mermaid-js/mermaid/issues/1976 -%% edit this diagram by pasting it into eg. https://mermaid.live -sequenceDiagram - participant Client - participant Graph - participant SpaceA - participant SpaceB - links Client: {"web": "https://owncloud.dev/clients/web/", "RClone": "https://owncloud.dev/clients/rclone/"} - link Graph: Documentation @ https://owncloud.dev/extensions/graph/ - - Note left of Client: First, a clients looks
up the spaces a user has access to - opt space lookup - Client->>+Graph: GET /me/drives - Graph-->>-Client: 200 OK JSON list of spaces, say A, B and C,
each with a dedicated webDavURL, etag and quota - end - - Note left of Client: Then it can do a parallel
sync discovery on spaces
whose etag changed - par Client to Space A - Client->>+SpaceA: PROPFIND {webDavURL for Space A} - SpaceA-->>-Client: 207 Multistatus PROPFIND response - and Client to Space B - Client->>+SpaceB: PROPFIND {webDavURL for space B} - SpaceB-->>-Client: 207 Multistatus PROPFIND response - end -{{
}} - -### New /dav/spaces/{spaceid} endpoint with spaceid and a relative path - -The ocDAV service is responsible for translating ownCloud flavoured WebDAV into CS3 API calls. - -**General view** - -A PROPFIND finds its way to a storage provider like this: - -{{}} -%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%% -%% font weight is a css bug: https://github.com/mermaid-js/mermaid/issues/1976 -%% edit this diagram by pasting it into eg. https://mermaid.live -sequenceDiagram - participant Client - participant ocDAV - participant StorageProvider - - Note right of Client: {spaceid} identifies the space
{relative/path} is relative to the space root - Client->>+ocDAV: PROPFIND /dav/space/{spaceid}/{relative/path} - Note right of ocDAV: translate ownCloud flavoured webdav
into CS3 API requests - ocDAV->>+StorageProvider: ListContainer({spaceid}, path: {relative/path}) - StorageProvider-->>-ocDAV: []ResourceInfo - ocDAV-->>-Client: 207 Multistatus -{{
}} - -While the above is a simplification to get an understanding of what needs to go where, there are several places where sharding can happen. - -**Proxy can do user based routing** - -The ocis proxy authenticates requests and can forward requests to different backends, depending on the logged-in user or cookies. For example multiple ocdav services can be configured to shard users based on username or affiliation. - -{{}} -%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%% -%% font weight is a css bug: https://github.com/mermaid-js/mermaid/issues/1976 -%% edit this diagram by pasting it into eg. https://mermaid.live -sequenceDiagram - participant Client - participant proxy - participant ocDAV1 as ocDAV [a-k] - participant ocDAV2 as ocDAV [l-z] - - Note right of Client: {spaceid} identifies the space
{relative/path} is relative to the space root - Client->>+proxy: PROPFIND /dav/space/{spaceid}/{relative/path} - - alt username starting with a-k - proxy->>+ocDAV1: PROPFIND /dav/space/{spaceid}/{relative/path} - Note right of ocDAV1: translate ownCloud flavoured webdav
into CS3 API requests - ocDAV1-->>-Client: 207 Multistatus - else username starting with l-z - proxy->>+ocDAV2: PROPFIND /dav/space/{spaceid}/{relative/path} - ocDAV2-->>-Client: 207 Multistatus - end -{{
}} - -**Gateway can do path or storage provider id based routing** - -The reva gateway acts as a facade to multiple storage providers that can be configured with the storage registry: - -{{}} -%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%% -%% font weight is a css bug: https://github.com/mermaid-js/mermaid/issues/1976 -%% edit this diagram by pasting it into eg. https://mermaid.live -sequenceDiagram - participant ocDAV - participant Gateway - participant StorageRegistry - participant StorageProvider1 as StorageProvider [a-k] - participant StorageProvider2 as StorageProvider [l-z] - - Note right of ocDAV: translate ownCloud flavoured webdav
into CS3 API requests - ocDAV->>+Gateway: ListContainer({spaceid}, path: {relative/path}) - Note right of Gateway: find address of the storage provider
that is responsible for the space - Gateway->>+StorageRegistry: ListStorageProviders({spaceid}) - StorageRegistry-->>-Gateway: []ProviderInfo - Note right of Gateway: forward request to
correct storage provider - alt username starting with a-k - Gateway->>+StorageProvider1: ListContainer({spaceid}, path: {relative/path}) - StorageProvider1-->>-Gateway: []ResourceInfo - else username starting with l-z - Gateway->>+StorageProvider2: ListContainer({spaceid}, path: {relative/path}) - StorageProvider2-->>-Gateway: []ResourceInfo - end - Gateway-->>-ocDAV: []ResourceInfo -{{
}} - - -### Old /dav/files/{username} endpoint with username and a path relative to the users home - -**PROPFIND request against old webdav endpoints** - -To route a PROPFIND request against the old webdav endpoints like `/dav/files/username`, ocdav first has to build a CS3 namespace prefix, e.g. `/users/{{.Id.OpaqueId}}` to the users home. - -{{}} -%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%% -%% font weight is a css bug: https://github.com/mermaid-js/mermaid/issues/1976 -%% edit this diagram by pasting it into eg. https://mermaid.live -sequenceDiagram - participant Client - participant ocDAV - participant Gateway - - opt old /dav/files/{username} endpoint with username and a path relative to the users home - Note right of Client: translate ownCloud flavoured webdav
into CS3 API requests - Client->>+ocDAV: PROPFIND /dav/files/{username}/{relative/path} - Note right of ocDAV: translate ownCloud flavoured webdav
into CS3 API requests - ocDAV->>+Gateway: GetUser({username}) - Gateway-->>-ocDAV: User - Note right of ocDAV: build path prefix to user home - ocDAV->>+ocDAV: {namespace/prefix} = ApplyLayout({path layout}, User), eg. /users/e/einstein - Note right of ocDAV: look up the space responsible for a path - ocDAV->>+Gateway: ListStorageSpaces(path: {namespace/prefix}/{relative/path}) - Gateway-->>-ocDAV: []StorageSpace - Note right of ocDAV: make actual request with space and relative path - ocDAV->>+Gateway: ListContainer({spaceid}, path: {relative/path}) - Gateway-->>-ocDAV: []ResourceInfo - ocDAV-->>-Client: 207 Multistatus - end -{{
}} - -**Handling legacy global namespace webdav endpoints** - -The reason ocis uses a path based lookup instead of looking up the current users home using the user id and a space type filter is, because there are deployments that use a global namespace at the legacy `/webdav` endpoint. To support these use cases, the gateway allows looking up spaces using their mount path. - -{{}} -%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%% -%% font weight is a css bug: https://github.com/mermaid-js/mermaid/issues/1976 -%% edit this diagram by pasting it into eg. https://mermaid.live -sequenceDiagram - participant Client - participant ocDAV - participant Gateway - - Note right of Client: translate ownCloud flavoured webdav
into CS3 API requests - alt old /dav/files/{username} endpoint with username and a path relative to the users home - Client->>+ocDAV: PROPFIND /dav/files/{username}/{relative/path} - Note right of ocDAV: look up {username} in URL path - ocDAV->>+Gateway: GetUser({username}) - Gateway-->>-ocDAV: User - Note right of ocDAV:build namespace prefix to user home - ocDAV->>+ocDAV: {namespace/prefix} = ApplyLayout({namespace layout}, User), eg. /users/e/einstein - else legacy /webdav/ endpoint with a path relative to the users home - Client->>+ocDAV: PROPFIND /webdav/{relative/path} - Note right of ocDAV: use currently logged in user - ocDAV->>+ocDAV: ContextGetUser() - Note right of ocDAV: build namespace prefix to user home - ocDAV->>+ocDAV: {namespace/prefix} = ApplyLayout({namespace layout}, User), eg. /users/e/einstein - else legacy /webdav/ endpoint with a path relative to a global namespace - Client->>+ocDAV: PROPFIND /webdav/{relative/path} - Note right of ocDAV: omit namespace prefix by using empty layout template - ocDAV->>+ocDAV: {namespace/prefix} = ApplyLayout("/", u), always returns "/" - end - Note right of ocDAV: look up the space responsible for a path - ocDAV->>+Gateway: ListStorageSpaces(path: {namespace/prefix}/{relative/path}) - Gateway-->>-ocDAV: []StorageSpace - Note right of ocDAV: make actual request with space and relative path - ocDAV->>+Gateway: ListContainer({spaceid}, path: {relative/path}) - Gateway-->>-ocDAV: []ResourceInfo - ocDAV-->>-Client: 207 Multistatus -{{
}} diff --git a/docs/architecture/services-communication.md b/docs/architecture/services-communication.md deleted file mode 100644 index f3e827426d..0000000000 --- a/docs/architecture/services-communication.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Services Communication" -date: 2022-02-15T11:26:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/architecture -geekdocFilePath: services-communication.md ---- - -{{< figure src="/ocis/static/ocis-services-communication.drawio.svg" >}} diff --git a/docs/architecture/upload-processing.md b/docs/architecture/upload-processing.md deleted file mode 100644 index 7caca17ba6..0000000000 --- a/docs/architecture/upload-processing.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: "Upload processing" -date: 2022-07-06T12:47:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/architecture -geekdocFilePath: upload-processing.md ---- - -Uploads are handled by a dedicated service that uses TUS.io for resumable uploads. When all bytes have been transferred the upload is finalized by making the file available in file listings and for download. - -The finalization may be asynchronous when mandatory workflow steps are involved. - -## Legacy PUT upload - -{{}} - -%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%% -%% font weight is a css bug: https://github.com/mermaid-js/mermaid/issues/1976 -%% edit this diagram by pasting it into eg. https://mermaid.live -sequenceDiagram - participant Client - participant ocdav - participant storageprovider - participant dataprovider - - Client->>+ocdav: PUT /dav/spaces/{spaceid}/newfile.bin - ocdav->>+storageprovider: InitiateFileUpload - storageprovider-->>-ocdav: OK, Protocol simple, UploadEndpoint: /data, Token: {jwt} - Note right of ocdav: The {jwt} contains the internal actual target, eg.:
http://localhost:9158/data/simple/91cc9882-db71-4b37-b694-a522850fcee1 - ocdav->>+dataprovider: PUT /data
X-Reva-Transfer: {jwt} - dataprovider-->>-ocdav: 201 Created - ocdav-->>-Client: 201 Created - -{{
}} - -## TUS upload - -{{}} - -%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%% -%% font weight is a css bug: https://github.com/mermaid-js/mermaid/issues/1976 -%% edit this diagram by pasting it into eg. https://mermaid.live -sequenceDiagram - participant Client - participant ocdav - participant storageprovider - participant datagateway - participant dataprovider - - - Client->>+ocdav: POST /dav/spaces/{spaceid}
Upload-Metadata: {base64 encoded filename etc}
TUS-Resumable: 1.0.0 - ocdav->>+storageprovider: InitiateFileUpload - storageprovider-->>-ocdav: OK, Protocol tus, UploadEndpoint: /data, Token: {jwt} - Note right of ocdav: The {jwt} contains the internal actual target, eg.:
http://localhost:9158/data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160 - ocdav-->>-Client: 201 Created
Location: /data/{jwt}
TUS-Resumable: 1.0.0 - - Client->>+datagateway: PATCH /data/{jwt}
TUS-Resumable: 1.0.0
Upload-Offset: 0 - Note over datagateway: unwrap the {jwt} target - datagateway->>+dataprovider: PATCH /data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160
X-Reva-Transfer: {jwt} - Note over dataprovider: storage driver
handles request - dataprovider-->>-datagateway: 204 No Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976 - datagateway-->>-Client: 204 No Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976 - -{{
}} - - -## TUS upload with async postprocessing - - - -{{}} - -%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%% -%% font weight is a css bug: https://github.com/mermaid-js/mermaid/issues/1976 -%% edit this diagram by pasting it into eg. https://mermaid.live -sequenceDiagram - participant Client - participant ocdav - participant storageprovider - participant datagateway - participant dataprovider - participant nats - - - Client->>+ocdav: POST /dav/spaces/{spaceid}
Upload-Metadata: {base64 encoded filename etc}
TUS-Resumable: 1.0.0 - ocdav->>+storageprovider: InitiateFileUpload - storageprovider-->>-ocdav: OK, Protocol tus, UploadEndpoint: /data, Token: {jwt} - Note right of ocdav: The {jwt} contains the internal actual target, eg.:
http://localhost:9158/data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160 - ocdav-->>-Client: 201 Created
Location: /data/{jwt}
TUS-Resumable: 1.0.0 - - Client->>+datagateway: PATCH /data/{jwt}
TUS-Resumable: 1.0.0
Upload-Offset: 0 - - Note over datagateway: unwrap the {jwt} target - datagateway->>+dataprovider: PATCH /data/tus/24d893f5-b942-4bc7-9fb0-28f49f980160
X-Reva-Transfer: {jwt} - Note over dataprovider: storage driver
handles request - dataprovider-)nats: emit all-bytes-received event - nats-)processing: all-bytes-received({uploadid}) event - Note over dataprovider: TODO: A lot of time may pass here, we could use
the `Prefer: respond-async` header to return early
with a 202 Accepted status and a Location header
to a websocket endpoint - alt success - processing-)nats: emit processing-finished({uploadid}) event - nats-)dataprovider: processing-finished({uploadid}) event - dataprovider-->>-datagateway: 204 No Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976 - datagateway-->>-Client: 204 No Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976 - else failure - activate dataprovider - activate datagateway - processing-)nats: emit processing-aborted({uploadid}) event - nats-)dataprovider: processing-aborted({uploadid}) event - Note over dataprovider: FIXME: What HTTP status code should we report?
422 Unprocessable Content is just a proposal, see
https://httpwg.org/specs/rfc9110.html#status.422 - dataprovider-->>-datagateway: 422 Unprocessable Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976 - datagateway-->>-Client: 422 Unprocessable Content
TUS-Resumable: 1.0.0
Upload-Offset: 363976 - end - -{{
}} - - -## Async TUS upload with postprocessing -This might be a TUS extension or a misunderstanding on our side of what tus can do for us. Clients should send a `Prefer: respond-async` header to allow the server to return early when postprocessing might take longer. The PATCH requests can then return status `202 Accepted` and a `Location` header to a websocket that clients can use to track the processing / upload progress. - -TODO there is a conflict with the TUS.io POST request with the creation extension, as that also returns a `Location` header which carries the upload URL. We would need another header to transport the websocket location. Maybe `Websocket-Location` or `Progress-Location`? diff --git a/docs/clients/_index.md b/docs/clients/_index.md deleted file mode 100644 index 0370bab5eb..0000000000 --- a/docs/clients/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Clients -date: 2023-12-06T13:00:00+01:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/clients/ -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- diff --git a/docs/clients/rclone/_index.md b/docs/clients/rclone/_index.md deleted file mode 100644 index 9190aee312..0000000000 --- a/docs/clients/rclone/_index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Rclone -date: 2021-11-17T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/clients/rclone -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## About Rclone - -{{< hint ok >}} -Rclone is a command line program to manage files on cloud storage. It is a feature rich alternative to cloud vendors' web storage interfaces. Over 40 cloud storage products support rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols. - -Rclone has powerful cloud equivalents to the unix commands rsync, cp, mv, mount, ls, ncdu, tree, rm, and cat. Rclone's familiar syntax includes shell pipeline support, and --dry-run protection. It is used at the command line, in scripts or via its API. - -Users call rclone "The Swiss army knife of cloud storage", and "Technology indistinguishable from magic". -{{< /hint >}} - -Source: [Rclone project website](https://rclone.org/) - -## Table of Contents - -{{< toc-tree >}} \ No newline at end of file diff --git a/docs/clients/rclone/webdav-sync-basic-auth.md b/docs/clients/rclone/webdav-sync-basic-auth.md deleted file mode 100644 index e922a156f3..0000000000 --- a/docs/clients/rclone/webdav-sync-basic-auth.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: WebDAV with Basic Authentication -date: 2021-11-17T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/clients/rclone -geekdocFilePath: webdav-sync-basic-auth.md -geekdocCollapseSection: true ---- - - -## WebDAV with Basic Authentication - -{{< hint danger >}} -Basic Authentication is disabled by default in oCIS because of security considerations. In order to make the following Rclone commands work the oCIS administrator needs to enable Basic Authentication e.g. by setting the environment variable `PROXY_ENABLE_BASIC_AUTH` to `true`. - -Please consider to use [Rclone with OpenID Connect]({{< ref "webdav-sync-oidc.md" >}}) instead. -{{< /hint >}} - -For the usage of a WebDAV remote with Rclone see also the [Rclone documentation](https://rclone.org/webdav/) - -## Configure the WebDAV remote - -First of all we need to set up our credentials and the WebDAV remote for Rclone. In this example we do this by setting environment variables. You might also set up a named remote or use command line options to achieve the same. - -``` bash -export RCLONE_WEBDAV_VENDOR=owncloud -export RCLONE_WEBDAV_URL=https://ocis.owncloud.test/remote.php/webdav/ -export RCLONE_WEBDAV_USER=einstein -export RCLONE_WEBDAV_PASS=$(rclone obscure relativity) -``` - -{{< hint info >}} -Please note that `RCLONE_WEBDAV_PASS` is not set to the actual password, but to the value returned by `rclone obscure `. -{{< /hint >}} - -We now can use Rclone to sync the local folder `/tmp/test` to `/test` in your oCIS home folder. - - -### Sync to the WebDAV remote - -``` bash -rclone sync :local:/tmp :webdav:/test -``` - -If your oCIS doesn't use valid SSL certificates, you may need to use `rclone --no-check-certificate sync ...`. diff --git a/docs/clients/rclone/webdav-sync-oidc.md b/docs/clients/rclone/webdav-sync-oidc.md deleted file mode 100644 index a64b32e48b..0000000000 --- a/docs/clients/rclone/webdav-sync-oidc.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: WebDAV with OpenID Connect -date: 2021-11-17T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/clients/rclone -geekdocFilePath: webdav-sync-oidc.md -geekdocCollapseSection: true ---- - - -## WebDAV with OpenID Connect - -Rclone itself is not able to open and maintain an OpenID Connect session. But it is able to still use OpenID Connect for authentication by leveraging a so called OIDC-agent. - -### Setting up the OIDC-agent - -You need to install the [OIDC-agent](https://github.com/indigo-dc/oidc-agent) from your OS' package repository (e.g. [Debian](https://github.com/indigo-dc/oidc-agent#debian-packages) or [MacOS](https://github.com/indigo-dc/oidc-agent#debian-packages)). - - -### Configuring the OIDC-agent - -Run the following command to add a OpenID Connect profile to your OIDC-agent. It will open the login page of OpenID Connect identity provider where you need to log in if you don't have an active session. - -``` bash -oidc-gen \ - --client-id=oidc-agent \ - --client-secret="" \ - --pub \ - --issuer https://ocis.owncloud.test \ - --redirect-uri=http://localhost:12345 \ - --scope max \ - einstein-ocis-owncloud-test -``` - -If you have dynamic client registration enabled on your OpenID Connect identity provider, you can skip the `--client-id`, `--client-secret` and `--pub` options. - -If you're using a dedicated OpenID Connect client for the OIDC-agent, we recommend a public one with the following two redirect URIs: `http://127.0.0.1:*` and `http://localhost:*`. Alternatively you also may use the already existing OIDC client of the ownCloud Desktop Client (`--client-id=xdXOt13JKxym1B1QcEncf2XDkLAexMBFwiT9j6EfhhHFJhs2KM9jbjTmf8JBXE69` and `--client-secret=UBntmLjC2yYCeHwsyj73Uwo9TAaecAetRwMw0xYcvNL9yRdLSUi0hUAHfvCHFeFh`, no `--pub` set, request specific scope for offline access), e.g.: -``` bash -oidc-gen \ - --client-id=xdXOt13JKxym1B1QcEncf2XDkLAexMBFwiT9j6EfhhHFJhs2KM9jbjTmf8JBXE69 \ - --client-secret=UBntmLjC2yYCeHwsyj73Uwo9TAaecAetRwMw0xYcvNL9yRdLSUi0hUAHfvCHFeFh \ - --issuer https://cloud.ocis.test \ - --redirect-uri=http://localhost:12345 \ - --scope="openid offline_access profile email" \ - my-client -``` - -When using a self signed certificate you have to provide the certificate chain using `--cp /etc/ssl/certs/test.cert.pem`. In case oidc-gen cannot determine the flow try with `--flow=code`. - -Please also note that the OIDC-agent will listen on your localhost interface on port 12345 for the time of the initial authentication. If that port is already occupied on your machine, you can easily change that by setting the `--redirect-uri` parameter to a different value. - -After a successful login or an already existing session you will be redirected to success page of the OIDC-agent. -You will now be asked for a password for your account configuration, so that your OIDC session is secured and cannot be used by other people with access to your computer. - - - -## Configure the WebDAV remote - -First of all we need to set up our credentials and the WebDAV remote for Rclone. In this example we do this by setting environment variables. You might also set up a named remote or use command line options to achieve the same. - -``` bash -export RCLONE_WEBDAV_VENDOR=owncloud -export RCLONE_WEBDAV_URL=https://ocis.owncloud.test/remote.php/webdav/ -export RCLONE_WEBDAV_BEARER_TOKEN_COMMAND="oidc-token einstein-ocis-owncloud-test" -``` - - -### Sync to the WebDAV remote - -We now can use Rclone to sync the local folder `/tmp/test` to `/test` in your oCIS home folder. - -``` bash -rclone sync :local:/tmp :webdav:/test -``` - -If your oCIS doesn't use valid SSL certificates, you may need to use `rclone --no-check-certificate sync ...`. diff --git a/docs/helpers/README.md b/docs/helpers/README.md deleted file mode 100644 index 4e56011f60..0000000000 --- a/docs/helpers/README.md +++ /dev/null @@ -1,230 +0,0 @@ -# Docs Helpers - - * [Introduction](#introduction) - * [Output Generated](#output) - * [Admin Doc Process](#admin-doc-process) - * [Branching](#branching) - * [Service-Dependent Output](#service-dependent-output) - * [Generate Envvar Docs for Config Structs](#generate-envvar-docs-for-config-structs) - * [Deprecation Process](#deprecation-process) - * [Global Envvars](#global-envvars) - * [Extended Envvars](#extended-envvars) - * [General Extended Envvars Info](#general-extended-envvars-info) - * [Extract Extended Envvars](#extract-extended-envvars) - * [Generate Extended Envvar Docs](#generate-extended-envvar-docs) - * [Tasks for New Releases](#tasks-for-new-releases) - * [Backporting](#backporting) - -## Introduction - -`docs/helpers` contains a go program named `main.go` which creates docs by extracting information from the code using additional go programs. Individual steps (programs) can be called manually if needed. Note that not all programs are called automatically on purpose, see the [Tasks for New Releases](#tasks-for-new-releases) below. `main.go` is used by `make docs-generate` (or `make -C docs docs-generate` when running manually from the repos root) which is triggered by the CI or can be called manually. It calls the other required programs and has these main responsibilities for automatic runs: - -- Generate docs for envvars in config structs including deprecations if there are any. -- Extract and generate docs for `extended` envvars that are not mentioned in config structs (aka "rogue" envvars). -- Extract and generate docs for `global` envvars which occur in multiple services. -- Create `docs/service//_index.md` from `service//README.md` files while keeping the existing `_index.md` if the service README.md has not been created so far. Also see the important note at [docs README](../README.md). - -## Output Generated - -- The generated yaml files can be found at: `docs/services/_includes` when running locally respectively in the `docs branch` after the CI has finished. -- The generated adoc files can be found at: `docs/services/_includes/adoc` when running locally respectively in the `docs branch` after the CI has finished. -- The file name for global envvars is named: `global_configvars.adoc`. -- The file name for extended envvars is named: `extended_configvars.adoc`. -- A file named `docs/helpers/env_vars.yaml` containing envvar changes gets updated if changes have been identified. -- A file named `docs/helpers/extended_vars.yaml` containing changes for extended envvars gets updated if changes have been identified. Note, if changes appear, **this file needs manual treatment** before committing, see [Extended Envvars](#extended-envvars) below. - -## Admin Doc Process - -Whenever a build from the [ocis admin](https://github.com/owncloud/docs-ocis) documentation or any other admin related documentation is triggered, files generated here in the ocis repo are included into the build process and added in a proper manner defined by the admin documentation. The updated documentation will then show up on the public [admin documentation](https://doc.owncloud.com/ocis/next/). - -## Branching - -The following is valid for envvars and yaml files related to the doc process: - -* When filing a pull request in the ocis master branch relating to docs, CI runs `make docs-generate` and copies the result into the `docs` branch of ocis. This branch is then taken as base for owncloud.dev and as reference for the [admin docs](https://doc.owncloud.com/ocis/next/). -* When running `make docs-generate` _locally_, the same output is created as above but it stays in the same branch where the make command was issued. - -In both cases, `make docs-generate` removes files in the target folder `_includes` to avoid remnants. All content is recreated. - -On a side note (unrelated to the `docs` branch), [deployment examples](https://github.com/owncloud/ocis/tree/master/deployments/examples) have their own branch related to an ocis stable version to keep the state consistent, which is necessary for the admin documentation. - -## Service-Dependent Output - -For each service available, a file named like `_configvars.adoc` is created containing a: - -* table on top defining deprecated envvars - if applicable -* table containing all envvars with their name, type, default value and description - -The table with deprecations is always printed in the final adoc file even if there are none, but is rendered in the docs build process only if the `HasDeprecations` value is set. This value is automatically handed over via the adoc file. The template file can be found at `docs/templates/ADOC.tmpl`. - -### Generate Envvar Docs for Config Structs - -Generates docs from a template file, mainly extracting `"env"` and `"desc"` tags from the config structs. - -Templates can be found in `docs/helpers` folder. (Same as this `README`.) Check `.tmpl` files - -### Deprecation Process - -For details on deprecation see the [deprecating-variables](https://github.com/owncloud/ocis/blob/master/docs/ocis/development/deprecating-variables.md) documentation. - -## Global Envvars - -Global envvars are gathered by checking if the envvar is available in more than one service. The table created is similar to the service-dependent envvar table but additionally contains a column with all service names where this envvar occurs. The output is rendered in list form where each item is clickable and automatically points to the corresponding service page. The template file can be found at `docs/templates/ADOC_global.tmpl`. - -If global envvars do not appear in the list of globals, before checking if the code works, do a manual search in the ocis/services folder with `grep -rn OC_xxx` if the envvar in question appears at least twice. If the envvar only appears once, the helpers code works correct. - -## Extended Envvars - -### General Extended Envvars Info - -"Extended" envvars are variables that need to be present *before* the core or services are starting up as they depend on the info provided like path for config files etc. Therefore they are _not_ bound to services like other envvars. Extended envvars are identified via `os.Getenv`, usually defined via a subfolder of `ocis-pkg`. The real envvar name name cant be automatically assigned and needs to be manually defined via the code in the `extended_vars.yaml` file. - -It can happen that extended envvars are found but do not need to be published as they are for internal use only. Those envvars can be defined to be ignored for further processing. - -**IMPORTANT:** - -- **First Time Identification**\ - Once an extended envvar has been identified, it is added to the `extended_vars.yaml` file found, but never changed or touched by the process anymore. There is one exception with respect to single/double quote usage. While you can (and will) manually define a text like: `"'/var/lib/ocis'"`, quotes are transformed by the process in the .yaml file to: `'''/var/lib/ocis'''`. There is no need to change this back, as the final step transforms this correctly for the adoc table. - -- **Item Naming**\ - An extended envvar may not have the right naming. It may appear as `name: _registryEnv`. In case, this envvar needs to be named properly like `name: MICRO_REGISTRY` which can only be done in close alignment with development. - -- **Item Uniqueness**\ - The identification, if an envvar is already present in the yaml file, is made via the `rawname` and the `path` identifier which includes the line number. **If there is a change in the source file shifting line numbers, new items will get added and old ones do not get touched.** Though technically ok, this can cause confusion to identify which items are correctly present or just added additionally just be cause code location has changed. If there are multiple occurrences of the same `rawname` value, check which one contains relevant data and set `do_ignore` to `false` and all others to `true`. When there are two identical blocks with different source references, mostly the one containing a proper `default_value` is the active one. Populate the false block with the envvar data to be used. - -- **Fixing Items**\ - If an item has been identified as additionally added because there was a change in the code location, it is mostly sufficient to just fix the line number in the `path` key of the existing/correct one and double check by removing the newly added ones. Then, re-run `make docs-generate`. If the fix was correct, no new items of the same will re-appear. - -- **Remove Orphaned Items**\ - To get rid of items with wrong line numbers, check `rawname` the `path` and correct the _existing ones_, especially the one containing the description and which is marked `do_ignore` false. Only items that have a real line number match need to be present, orphaned items can safely be removed. You can double-check valid items by creating a dummy branch, delete the `extended_vars.yaml` and run `make docs-generate` to regenerate the file having only items with valid path references. With that info, you can remove orphaned items from the live file. Note to be careful on judging only on `foundincode` set to false indicating an item not existing anymore. Fix all items first, when rerunning `make docs-generate`, this may change back to true! - -- **Sort Ordering**\ - Do not change the sort order of extended envvar blocks as they are automatically reordered alphabetically. - -- **Mandatory Key Values**\ - Because extended envvars do not have the same structural setup as "normal" envvars (like type, description or defaults), this info needs to be provided manually once - for each valid block. Any change of this info will be noticed during the next CI run, the corresponding adoc file generated, changes transported to the docs branch and published in the next admin docs build. See the following example with all keys listed and populated: - ```yaml - rawname: registryAddressEnv - path: ocis-pkg/registry/registry.go:44 - foundincode: true - name: MICRO_REGISTRY_ADDRESS - type: string - default_value: "" - description: The bind address of the internal go micro framework. Only change on - supervision of ownCloud Support. - do_ignore: false - ``` - -### Extract Extended Envvars - -The grep command parses the code, looking for `os.Getenv` and passes these contents to a yaml file along with the following information: -```golang -// Variable contains all information about one rogue envvar -type Variable struct { - // These field structs are automatically filled: - // RawName can be the name of the envvar or the name of its var - RawName string `yaml:"rawname"` - // Path to the envvar with linenumber - Path string `yaml:"path"` - // FoundInCode indicates if the variable is still found in the codebase. - FoundInCode bool `yaml:"foundincode"` - // Name is equal to RawName but will not be overwritten in consecutive runs - Name string `yaml:"name"` - - // These field structs need manual filling: - // Type of the envvar - Type string `yaml:"type"` - // DefaultValue of the envvar - DefaultValue string `yaml:"default_value"` - // Description of what this envvar does - Description string `yaml:"description"` - // Do not export this envvar into the generated adoc table - Ignore bool `yaml:"do_ignore"` - - // For simplicity ignored for now: - // DependendServices []Service `yaml:"dependend_services"` -} -``` - -This yaml file can later be manually edited to add descriptions, default values, etc. - -**IMPORTANT**: `RawName`, `Path` and `FoundInCode` are automatically filled by the program. DO NOT EDIT THESE VALUES MANUALLY. - -### Generate Extended Envvar Docs - -The process further picks up the `yaml` file generated in the `Extract Rogue Envvars` step and renders it to an adoc file (a table is created) using a go template. The template file for this step can be found at `docs/templates/ADOC_extended.tmpl`. - -## Doc Tasks for New Releases - -**IMPORTANT**\ -For a new ocis release, some tasks are necessary to be done **before** and **after** releasing. Follow the steps carefully to avoid issues. Most of the docs related tasks are not part of the CI. With each step finished successfully, the next step can be started. Sometimes, due to last minute changes, steps need to be redone! - -**Backgroud Information**\ -Admin docs rely on the existance of the following branches in the ocis repo. Note that the reference in the admin docs which ocis branch is accessed is defined in the `antora.yml` file via `attributes` existing in each branch. - -* `docs`\ -This reflects ocis master and is referenced from the admin docs from the master branch showing as `next` in the documentation. -* `docs-stable-x.y`\ -This reflects a published ocis release and is referenced from the admin docs from the corresponding branch showing like `7.0` - -Because of this, branching and parametrizing admin docs occurs **after** branching an ocis release with its necessary branches! If you branch admin docs before the required ocis branches are available, you must set the ocis source branch to import data from to `docs` and reconfigure afterwards. - -**Notes** -* When docs relevant data will be generated in ocis, they will be written into the `docs/servcies/...` folder structure, but they are in the master branch. When merging, an automated process will move/copy them into the `docs`branch. When running make commands locally, the relocation is not done and files reside on the generated location! - -* .adoc file generation - * Service related adoc files are autogenerated and saved in `/docs/services/` but will be _relocated_ by each merge into the docs branch into a subfolder named `services/_include/adoc/`. - * Release based envvar changes are saved during manual generation in `/docs/services/general-info/env-var-deltas/` but will be _copied_ on each merge into the doc branch into a subfolder named `services/_include/adoc/env-var-deltas/`. - -* Exclude paths for Hugo - * The paths defined above for .adoc files are excluded from parsing by Hugo. The source of what to exclude is defined in the `config.yaml` file located in [owncloud.github.io](https://github.com/owncloud/owncloud.github.io/). Any folder containg .adoc files must be added there else `make -C docs docs-serve` or CI will fail reporting an adoc related parsing error. (We could also add an asciidoc parser to Hugo as alternative...) - -### Task List - -The following can be done at any time but it must be done *latest* when no envvar changes are made which is just before a new release gets finally tagged. The data generated **must** be part of the upcoming release and be merged before tagging/branching! - -**Before Releasing** Generate required .adoc files necessary for the admin docs - -* Run from the ocis root `make -C docs docs-generate` - * **Check for Extended Envvars**\ -Check if there is a change in the `extended-envars.yaml` output. In this case, process [Extended Envvars](#extended-envvars). When done, re-run the make command and check if the output of `./docs/services/_includes/adoc/extended_configvars.adoc` matches the expectations. - * **Check for a changed 'env_vars.yaml' File**\ -This file will most likely show changes and merging them is essential as base for added/removed or deprecated envvars. This file will get additions/updates only, but things never get automatically deleted. - * **Mandatory for a new release**, remove all envvars from the `env_vars.yaml` file manually that have been removed from the code, either with or without deprecation. - - Commit the changes, create a PR and merge it. Next steps are based on this! - -* Create added/removed and deprecated envvar .adoc files between versions containing includable tables pulled by the admin docs. - * Parametrize variables in `docs/helpers/changed_envvars.py` according your needs necessary to generate proper output. - * Create a branch and run from the ocis root `python3 docs/helpers/changed_envvars.py`\ - This will create three files that need manual treatment before committing/merging. Note that this script accesses sources from github and not locally, therefore an actual `env_vars.yaml` in github is essential. - * Check the output of all three files and fix/delete any envvar in `env_vars.yaml` if required. If fixes have been done, the changed `env_vars.yaml` file **MUST** be _merged_ first, you must rebase and rerun the python script. - * If all three files contain correct data, manually set the xrefs. This cant be done automatically. Use one of the existing `added` files as template to generate a consistent output. - * Merge the three files and rerun the python script to prove all has been done correctly. You should now see only changes in xrefs as they get overwritten by default data. If this is the case, you can safely drop the generated changes. - -**After Releasing** Generate required .md files necessary for the dev docs - -Similar to the Asciidoc files for the admin docs, Markdown files necessary for the dev docs need to be generated. The program for this is written in go and currently does not compare versions but only checks the introduction version. This is sufficient for devs as details necessary for migration documentation is done via the .adoc files in the admin docs. - -* In `./docs/helpers` run: `go run . --help`\ - This will give you an overview of available commands. - * Because `env_vars.yaml` has been cleaned up as part of the _before release_ tasks above, we can rely on its actuality for the branches to be compared. - * Create delta files for added, removed and deprecated envvars. To do so type:\ - `go run . env-var-delta-table` and use as parameter the versions you want to compare. Example: `v5.0.0 v7.0.0`. - * List and check the files created in `./docs/helpers/output/env-deltas/`. The markdown files created contain a table with dev relevant data. Any other files created are not relevant and can safely be deleted. - * Create a branch and move the markdown files from `./docs/helpers/output/env-deltas/` to `./docs/services/general-info/env-var-deltas/`. The markdown files will be consumed by dev docs from this location. - - -* Commit all changes, create a PR and merge. Dev docs is now up-to-date. - -## Backporting - -The ocis repo contains branches which are necessary for the documentation. The `docs` branch is related to changes in master, necessary for owncloud.dev and the admin docs referencing master content when it comes to envvars and yaml files. - -Cases for a backport can be a typo in an envvar description you want to have fixed in a stable branch too or a file was created after the stable branch was set up but needs to be available in that branch. - -When a new stable ocis release (branch) is published, like `stable-5.0`, an additional branch (including CI) is set up manually by the dev team for referencing docs content like `docs-stable-5.0` - related to envvars and yaml files only - and added to the CI. - -In case it is necessary to transport a change from master to a stable branch like `docs-stable-5.0`, you must backport the original changes that will create that file to the `stable-5.0` branch. The CI will then take care of creating the results in the target `docs-stable-5.0`. - -If the change is expected to have a bigger impact on documenation, you can locally run `make -C docs docs-generate` in the respective branch containing the changes or independently in the `stable-x.y` branch after merging to see if there are additional actions necessary and changed files may need to get checked in. diff --git a/docs/helpers/changed_envvars.py b/docs/helpers/changed_envvars.py deleted file mode 100644 index 4890a276f5..0000000000 --- a/docs/helpers/changed_envvars.py +++ /dev/null @@ -1,221 +0,0 @@ -import yaml -import sys -import os -from datetime import date -from urllib.request import urlopen - -## this python script generates based on defined variables adoc files for added, removed and deprecated -## envvars based on the env_vars.yaml that must exist in each referenced version. -## it is CRUCIAL that the version compared TO is actual - do required updates first! -## note that env_vars.yaml has been introduced with v6.0.0, comparing earlier is not possible -## note that we are always comparing from github sources and NOT local files - -## when the files got created, you MUST do some post work manually like referencing services with xref: -## when running, files get recreated, existing content gets overwritten!! - -## you MUST run this script from the local ocis repo root !! -## like: python3 docs/helpers/changed_envvars.py -## create a branch to prepare the changes - -# CHANGE according your needs -# old is the base version to compare from -# new is the target version to compare to -# tagged versions must be of format: 'tags/v6.0.0' -# master is different, it must be: 'heads/master' -versionOld = 'tags/v7.0.0' -versionNew = 'heads/master' - -# CHANGE according your needs -from_version = '7.0.0' -to_version = '7.1.0' - -# CHANGE according your needs -# this will create files like 5.0.0-7.0.0-added and 5.0.0-7.0.0-removed -# this should match which versions you compare. master is ok if that is the base for a named release -nameComponent = '7.0.0-7.1.0' - -# ADD new elements when a new version has been published so that it gets excluded -# array of version patterns to be excluded for added items. we dont need patch versions -excludePattern = ['pre5.0', '5.0', '6.0', '6.0.0', '6.0.1', '6.1.0', '6.7', '7.0', '7.0.0'] - -# DO NOT CHANGE -# this is the path the added/removed result is written to -adocWritePath = 'docs/services/general-info/env-var-deltas' - -addedWith = {} -removedWith = {} -deprecatedWith = {} - -def check_path(): - # check which path the script started. we can do this because the target path must be present - # exit if not present - if not os.path.exists(adocWritePath): - print('Path not found: ' + adocWritePath) - sys.exit() - -def get_sources(versionOld, versionNew): - # get the sources from github - git_bleft_dir = 'https://raw.githubusercontent.com/owncloud/ocis/refs/' - git_right_dir ='/docs/helpers/env_vars.yaml' - - urlOld = git_bleft_dir + versionOld + git_right_dir - urlNew = git_bleft_dir + versionNew + git_right_dir - - try: - fileOld = urlopen(urlOld).read().decode('utf-8') - fileNew = urlopen(urlNew).read().decode('utf-8') - return yaml.safe_load(fileOld), yaml.safe_load(fileNew) - - except Exception as e: - print(e) - sys.exit() - -def get_added(fileNew, excludePattern): - # create dict with added items - addedWith = {} - for key, value in fileNew.items(): - if not fileNew[key]['introductionVersion'] in str(excludePattern): - addedWith[key] = value - return addedWith - -def get_removed(fileOld, fileNew): - # create dict with removed items - removedWith = {} - for key, value in fileOld.items(): - if not key in fileNew: - removedWith[key] = value - return removedWith - -def get_deprecated(fileNew): - # create dict with deprecated items - deprecatedWith = {} - for key, value in fileNew.items(): - if value['removalVersion']: - deprecatedWith[key] = value - return deprecatedWith - -def create_adoc_start(type_text, from_version, to_version, creation_date, columns, closing): - # create the page/table header - # 'closing' contains variable column names dependen if added/removed ir deprecated - a = '''// # {ftype} Variables between oCIS {ffrom} and oCIS {fto} -// commenting the headline to make it better includable - -// table created per {fdate} -// the table should be recreated/updated on source () changes - -[width="100%",cols="{fcolumns}",options="header"] -|=== -| Service | Variable | Description | {fclosing} - -'''.format(ftype = type_text, ffrom = from_version, fto = to_version, fdate = creation_date, fcolumns = columns, fclosing = closing) - return a - -def create_adoc_end(): - # close the table - a = '''|=== - -''' - return a - -def add_adoc_line_1(service, variable, description, value): - # add a table line for added/removed - # the dummy values are only here to have the same number of parameters as add_adoc_line_2 - a = '''| {fservice} -| {fvariable} -| {fdescription} -| {fvalue} - -'''.format(fservice = service, fvariable = variable, fdescription = description, fvalue = value) - return a - -def add_adoc_line_2(service, variable, description, removalVersion, deprecationInfo): - # add a table line for deprecated, this has different columns - a = '''| {fservice} -| {fvariable} -| {fdescription} -| {fremovalVersion} -| {fdeprecationInfo} - -'''.format(fservice = service, fvariable = variable, fdescription = description, fremovalVersion = removalVersion, fdeprecationInfo = deprecationInfo) - return a - -def create_table(type_text, source_dict, from_version, to_version, date_today, type = False): - # get the table header - columns = '~,~,~,~' if type == False else '~,~,~,~,~' - closing = 'Default' if type == False else 'Removal Version | Deprecation Info' - a = create_adoc_start(type_text, from_version, to_version, date_today, columns, closing) - - if not type: - # added and removed envvars - # first add all ocis_ - for key, value in source_dict.items(): - if key.startswith('OC_'): - a += add_adoc_line_1( - 'xref:deployment/services/env-vars-special-scope.adoc[Special Scope Envvars]', - key, - value['description'], - value['defaultValue'] - ) - # then add all others - for key, value in source_dict.items(): - if not key.startswith('OC_'): - a += add_adoc_line_1( - 'xref:{s-path}/xxx.adoc[xxx]', - key, - value['description'], - value['defaultValue'] - ) - else: - # deprecated envvars - # first add all ocis_ - for key, value in source_dict.items(): - if key.startswith('OC_'): - a += add_adoc_line_2( - 'xref:deployment/services/env-vars-special-scope.adoc[Special Scope Envvars]', - key, - value['description'], - value['removalVersion'], - value['deprecationInfo'] - ) - # then add all others - for key, value in source_dict.items(): - if not key.startswith('OC_'): - a += add_adoc_line_2( - 'xref:{s-path}/xxx.adoc[xxx]', - key, - value['description'], - value['removalVersion'], - value['deprecationInfo'] - ) - - # finally close the table - a += create_adoc_end() - return a - -def write_output(a, type_text): - # write the content to a file - try: - with open(adocWritePath + '/' + nameComponent + '-' + type_text + '.adoc', 'w') as file: - file.write(a) - except Exception as e: - print('Failed creating ' + type_text + ' file') - print(e) - sys.exit() - -## here are the tasks in sequence - -check_path() -fileOld, fileNew = get_sources(versionOld, versionNew) -addedWith = get_added(fileNew, excludePattern) -removedWith = get_removed(fileOld, fileNew) -deprecatedWith = get_deprecated(fileNew) - -a = create_table('Added', addedWith, from_version, to_version, date.today().strftime('%Y.%m.%d')) -r = create_table('Removed', removedWith, from_version, to_version, date.today().strftime('%Y.%m.%d')) -d = create_table('Deprecated', deprecatedWith, from_version, to_version, date.today().strftime('%Y.%m.%d'), True) - -write_output(a, 'added') -write_output(r, 'removed') -write_output(d, 'deprecated') - -print('Success, see files created in: ' + adocWritePath) diff --git a/docs/helpers/configenvextractor.go b/docs/helpers/configenvextractor.go deleted file mode 100644 index b20c36900b..0000000000 --- a/docs/helpers/configenvextractor.go +++ /dev/null @@ -1,79 +0,0 @@ -package main - -import ( - "fmt" - "log" - "os" - "os/exec" - "path" - "path/filepath" - "strings" - "text/template" -) - -var targets = map[string]string{ - "templates/adoc-generator.go.tmpl": "output/adoc/adoc-generator.go", - "templates/example-config-generator.go.tmpl": "output/exampleconfig/example-config-generator.go", - "templates/environment-variable-docs-generator.go.tmpl": "output/env/environment-variable-docs-generator.go", - "templates/envar-delta-table.go.tmpl": "output/env/envvar-delta-table.go", -} - -// RenderTemplates does something with templates -func RenderTemplates() { - fmt.Println("Getting relevant packages") - paths, err := filepath.Glob("../../services/*/pkg/config/defaults/defaultconfig.go") - if err != nil { - log.Fatal(err) - } - replacer := strings.NewReplacer( - "../../", "github.com/opencloud-eu/opencloud/", - "/defaultconfig.go", "", - ) - for i := range paths { - paths[i] = replacer.Replace(paths[i]) - } - - for template, output := range targets { - generateIntermediateCode(template, output, paths) - runIntermediateCode(output) - } - fmt.Println("Cleaning up") - err = os.RemoveAll("output") - if err != nil { - fmt.Println(err) - } -} - -func generateIntermediateCode(templatePath string, intermediateCodePath string, paths []string) { - content, err := os.ReadFile(templatePath) - if err != nil { - log.Fatal(err) - } - fmt.Println("Generating intermediate go code for " + intermediateCodePath + " using template " + templatePath) - tpl := template.Must(template.New("").Parse(string(content))) - err = os.MkdirAll(path.Dir(intermediateCodePath), 0700) - if err != nil { - log.Fatal(err) - } - runner, err := os.Create(intermediateCodePath) - if err != nil { - log.Fatal(err) - } - err = tpl.Execute(runner, paths) - if err != nil { - log.Fatal(err) - } -} - -func runIntermediateCode(intermediateCodePath string) { - fmt.Println("Running intermediate go code for " + intermediateCodePath) - defaultConfigPath := "/etc/opencloud" - defaultDataPath := "/var/lib/opencloud" - os.Setenv("OC_BASE_DATA_PATH", defaultDataPath) - os.Setenv("OC_CONFIG_DIR", defaultConfigPath) - out, err := exec.Command("go", "run", intermediateCodePath).CombinedOutput() - if err != nil { - log.Fatal(string(out), err) - } - fmt.Println(string(out)) -} diff --git a/docs/helpers/env-var-delta.go b/docs/helpers/env-var-delta.go deleted file mode 100644 index 7d917e6821..0000000000 --- a/docs/helpers/env-var-delta.go +++ /dev/null @@ -1,122 +0,0 @@ -package main - -import ( - "fmt" - "github.com/rogpeppe/go-internal/semver" - "gopkg.in/yaml.v2" - "log" - "os" - "path/filepath" - "text/template" -) - -const envVarYamlSource = "env_vars.yaml" - -var envVarOutPutTemplates = map[string]string{ - "added": "templates/env-vars-added.md.tmpl", - "removed": "templates/env-vars-removed.md.tmpl", - "deprecated": "templates/env-vars-deprecated.md.tmpl", -} - -// ConfigField represents the env-var annotation in the code -type ConfigField struct { - Name string `yaml:"name"` - DefaultValue string `yaml:"defaultValue"` - Type string `yaml:"type"` - Description string `yaml:"description"` - IntroductionVersion string `yaml:"introductionVersion"` - DeprecationVersion string `yaml:"deprecationVersion"` - RemovalVersion string `yaml:"removalVersion"` - DeprecationInfo string `yaml:"deprecationInfo"` -} - -type TemplateData struct { - StartVersion string - EndVersion string - DeltaFields []*ConfigField -} - -// RenderEnvVarDeltaTable generates tables for env-var deltas -func RenderEnvVarDeltaTable(osArgs []string) { - if !semver.IsValid(osArgs[2]) { - log.Fatalf("Start version invalid semver: %s", osArgs[2]) - } - if !semver.IsValid(osArgs[3]) { - log.Fatalf("Target version invalid semver: %s", osArgs[3]) - } - if semver.Compare(osArgs[2], osArgs[3]) >= 0 { - log.Fatalf("Start version %s is not smaller than target version %s", osArgs[2], osArgs[3]) - } - if semver.Compare(osArgs[2], "v5.0.0") < 0 { - log.Fatalf("This tool does not support versions prior v5.0.0, (given %s)", osArgs[2]) - } - startVersion := osArgs[2] - endVersion := osArgs[3] - fmt.Printf("Generating tables for env-var deltas between version %s and %s...\n", startVersion, endVersion) - curdir, err := os.Getwd() - if err != nil { - log.Fatal(err) - } - fullYamlPath := filepath.Join(curdir, envVarYamlSource) - configFields := make(map[string]*ConfigField) - variableList := map[string][]*ConfigField{ - "added": {}, - "removed": {}, - "deprecated": {}, - } - fmt.Printf("Reading existing variable definitions from %s\n", fullYamlPath) - yfile, err := os.ReadFile(fullYamlPath) - if err == nil { - err := yaml.Unmarshal(yfile, configFields) - if err != nil { - log.Fatal(err) - } - } - fmt.Printf("Success, found %d entries\n", len(configFields)) - for _, field := range configFields { - if field.IntroductionVersion != "" && - field.IntroductionVersion != "pre5.0" && - !semver.IsValid(field.IntroductionVersion) && - field.IntroductionVersion[0] != 'v' { - field.IntroductionVersion = "v" + field.IntroductionVersion - } - if field.IntroductionVersion != "pre5.0" && !semver.IsValid(field.IntroductionVersion) { - fmt.Printf("Invalid semver for field %s: %s\n", field.Name, field.IntroductionVersion) - os.Exit(1) - } - //fmt.Printf("Processing field %s dv: %s, iv: %s\n", field.Name, field.DeprecationVersion, field.IntroductionVersion) - if semver.IsValid(field.RemovalVersion) && semver.Compare(startVersion, field.RemovalVersion) < 0 && semver.Compare(endVersion, field.RemovalVersion) >= 0 { - variableList["removed"] = append(variableList["removed"], field) - } - if semver.IsValid(field.DeprecationVersion) && semver.Compare(startVersion, field.DeprecationVersion) <= 0 && semver.Compare(endVersion, field.DeprecationVersion) > 0 { - variableList["deprecated"] = append(variableList["deprecated"], field) - } - if semver.IsValid(field.IntroductionVersion) && semver.Compare(startVersion, field.IntroductionVersion) <= 0 && semver.Compare(endVersion, field.IntroductionVersion) >= 0 { - fmt.Printf("Adding field %s iv: %s\n", field.Name, field.IntroductionVersion) - variableList["added"] = append(variableList["added"], field) - } - } - for templateName, templatePath := range envVarOutPutTemplates { - content, err := os.ReadFile(templatePath) - if err != nil { - log.Fatal(err) - } - tpl := template.Must(template.New(templateName).Parse(string(content))) - err = os.MkdirAll("output/env-deltas", 0700) - if err != nil { - log.Fatal(err) - } - targetFile, err := os.Create(filepath.Join("output/env-deltas", fmt.Sprintf("%s-%s-%s.md", startVersion, endVersion, templateName))) - if err != nil { - log.Fatal(err) - } - err = tpl.Execute(targetFile, TemplateData{ - StartVersion: startVersion, - EndVersion: endVersion, - DeltaFields: variableList[templateName], - }) - if err != nil { - log.Fatal(err) - } - } -} diff --git a/docs/helpers/env_vars.yaml b/docs/helpers/env_vars.yaml deleted file mode 100644 index 0443e94437..0000000000 --- a/docs/helpers/env_vars.yaml +++ /dev/null @@ -1,16614 +0,0 @@ -ACTIVITYLOG_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;ACTIVITYLOG_CORS_ALLOW_CREDENTIALS - defaultValue: "true" - type: bool - 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: "" -ACTIVITYLOG_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;ACTIVITYLOG_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;ACTIVITYLOG_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;ACTIVITYLOG_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_DEBUG_ADDR: - name: ACTIVITYLOG_DEBUG_ADDR - defaultValue: 127.0.0.1:9197 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_DEBUG_PPROF: - name: ACTIVITYLOG_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_DEBUG_TOKEN: - name: ACTIVITYLOG_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_DEBUG_ZPAGES: - name: ACTIVITYLOG_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_HTTP_ADDR: - name: ACTIVITYLOG_HTTP_ADDR - defaultValue: 127.0.0.1:9195 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_HTTP_ROOT: - name: ACTIVITYLOG_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_JWT_SECRET: - name: OC_JWT_SECRET;ACTIVITYLOG_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_LOG_COLOR: - name: OC_LOG_COLOR;ACTIVITYLOG_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_LOG_FILE: - name: OC_LOG_FILE;ACTIVITYLOG_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_LOG_LEVEL: - name: OC_LOG_LEVEL;ACTIVITYLOG_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_LOG_PRETTY: - name: OC_LOG_PRETTY;ACTIVITYLOG_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;ACTIVITYLOG_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;ACTIVITYLOG_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_STORE: - name: OC_PERSISTENT_STORE;ACTIVITYLOG_STORE - defaultValue: nats-js-kv - type: string - description: 'The type of the store. Supported values are: ''memory'', ''nats-js-kv'', - ''redis-sentinel'', ''noop''. See the text description for details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_STORE_AUTH_PASSWORD: - name: OC_PERSISTENT_STORE_AUTH_PASSWORD;ACTIVITYLOG_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_STORE_AUTH_USERNAME: - name: OC_PERSISTENT_STORE_AUTH_USERNAME;ACTIVITYLOG_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_STORE_DATABASE: - name: ACTIVITYLOG_STORE_DATABASE - defaultValue: activitylog - type: string - description: The database name the configured store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_STORE_NODES: - name: OC_PERSISTENT_STORE_NODES;ACTIVITYLOG_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -ACTIVITYLOG_STORE_TABLE: - name: ACTIVITYLOG_STORE_TABLE - defaultValue: "" - type: string - description: The database table the store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_STORE_TTL: - name: OC_PERSISTENT_STORE_TTL;ACTIVITYLOG_STORE_TTL - defaultValue: 0s - type: Duration - description: Time to live for events in the store. See the Environment Variable - Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;ACTIVITYLOG_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_TRACING_ENABLED: - name: OC_TRACING_ENABLED;ACTIVITYLOG_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;ACTIVITYLOG_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_TRACING_TYPE: - name: OC_TRACING_TYPE;ACTIVITYLOG_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ACTIVITYLOG_TRANSLATION_PATH: - name: OC_TRANSLATION_PATH;ACTIVITYLOG_TRANSLATION_PATH - defaultValue: "" - type: string - description: (optional) Set this to a path with custom translations to overwrite - the builtin translations. Note that file and folder naming rules apply, see the - documentation for more details. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_CLAMAV_SOCKET: - name: ANTIVIRUS_CLAMAV_SOCKET - defaultValue: /run/clamav/clamd.ctl - type: string - description: The socket clamav is running on. Note the default value is an example - which needs adaption according your OS. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_DEBUG_ADDR: - name: ANTIVIRUS_DEBUG_ADDR - defaultValue: 127.0.0.1:9277 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_DEBUG_PPROF: - name: ANTIVIRUS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_DEBUG_SCAN_OUTCOME: - name: ANTIVIRUS_DEBUG_SCAN_OUTCOME - defaultValue: "" - type: string - description: 'A predefined outcome for virus scanning, FOR DEBUG PURPOSES ONLY! - (example values: ''found,infected'')' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_DEBUG_TOKEN: - name: ANTIVIRUS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_DEBUG_ZPAGES: - name: ANTIVIRUS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;ANTIVIRUS_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;ANTIVIRUS_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;ANTIVIRUS_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;ANTIVIRUS_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;ANTIVIRUS_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_EVENTS_TLS_INSECURE: - name: OC_INSECURE;ANTIVIRUS_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;ANTIVIRUS_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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_ICAP_SCAN_TIMEOUT: - name: ANTIVIRUS_ICAP_SCAN_TIMEOUT - defaultValue: 5m0s - type: Duration - description: Scan timeout for the ICAP client. Defaults to '5m' (5 minutes). See - the Environment Variable Types description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_ICAP_SERVICE: - name: ANTIVIRUS_ICAP_SERVICE - defaultValue: avscan - type: string - description: The name of the ICAP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_ICAP_URL: - name: ANTIVIRUS_ICAP_URL - defaultValue: icap://127.0.0.1:1344 - type: string - description: URL of the ICAP server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_INFECTED_FILE_HANDLING: - name: ANTIVIRUS_INFECTED_FILE_HANDLING - defaultValue: delete - type: string - description: 'Defines the behaviour when a virus has been found. Supported options - are: ''delete'', ''continue'' and ''abort ''. Delete will delete the file. Continue - will mark the file as infected but continues further processing. Abort will keep - the file in the uploads folder for further admin inspection and will not move - it to its final destination.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_LOG_COLOR: - name: OC_LOG_COLOR;ANTIVIRUS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_LOG_FILE: - name: OC_LOG_FILE;ANTIVIRUS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_LOG_LEVEL: - name: OC_LOG_LEVEL;ANTIVIRUS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_LOG_PRETTY: - name: OC_LOG_PRETTY;ANTIVIRUS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_MAX_SCAN_SIZE: - name: ANTIVIRUS_MAX_SCAN_SIZE - defaultValue: "" - type: string - description: 'The maximum scan size the virus scanner can handle. Only this many - bytes of a file will be scanned. 0 means unlimited and is the default. Usable - common abbreviations: [KB, KiB, MB, MiB, GB, GiB, TB, TiB, PB, PiB, EB, EiB], - example: 2GB.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_SCANNER_TYPE: - name: ANTIVIRUS_SCANNER_TYPE - defaultValue: clamav - type: string - description: The antivirus scanner to use. Supported values are 'clamav' and 'icap'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;ANTIVIRUS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;ANTIVIRUS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;ANTIVIRUS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_TRACING_TYPE: - name: OC_TRACING_TYPE;ANTIVIRUS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -ANTIVIRUS_WORKERS: - name: ANTIVIRUS_WORKERS - defaultValue: "10" - type: int - description: The number of concurrent go routines that fetch events from the event - queue. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_DEBUG_ADDR: - name: APP_PROVIDER_DEBUG_ADDR - defaultValue: 127.0.0.1:9165 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_DEBUG_PPROF: - name: APP_PROVIDER_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_DEBUG_TOKEN: - name: APP_PROVIDER_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_DEBUG_ZPAGES: - name: APP_PROVIDER_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing traces - in-memory. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_DRIVER: - name: APP_PROVIDER_DRIVER - defaultValue: "" - type: string - description: Driver, the APP PROVIDER services uses. Only 'wopi' is supported as - of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_EXTERNAL_ADDR: - name: APP_PROVIDER_EXTERNAL_ADDR - defaultValue: eu.opencloud.api.app-provider - type: string - description: Address of the app provider, where the GATEWAY service can reach it. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_GRPC_ADDR: - name: APP_PROVIDER_GRPC_ADDR - defaultValue: 127.0.0.1:9164 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;APP_PROVIDER_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GPRC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_JWT_SECRET: - name: OC_JWT_SECRET;APP_PROVIDER_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_LOG_COLOR: - name: OC_LOG_COLOR;APP_PROVIDER_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_LOG_FILE: - name: OC_LOG_FILE;APP_PROVIDER_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_LOG_LEVEL: - name: OC_LOG_LEVEL;APP_PROVIDER_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_LOG_PRETTY: - name: OC_LOG_PRETTY;APP_PROVIDER_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_SERVICE_NAME: - name: APP_PROVIDER_SERVICE_NAME - defaultValue: app-provider - type: string - description: 'The name of the service. This needs to be changed when using more - than one app provider. Each app provider configured needs to be identified by - a unique service name. Possible examples are: ''app-provider-collabora'', ''app-provider-onlyoffice'', - ''app-provider-office365''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;APP_PROVIDER_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_TRACING_ENABLED: - name: OC_TRACING_ENABLED;APP_PROVIDER_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;APP_PROVIDER_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_TRACING_TYPE: - name: OC_TRACING_TYPE;APP_PROVIDER_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_APP_API_KEY: - name: APP_PROVIDER_WOPI_APP_API_KEY - defaultValue: "" - type: string - description: API key for the wopi app. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_APP_DESKTOP_ONLY: - name: APP_PROVIDER_WOPI_APP_DESKTOP_ONLY - defaultValue: "false" - type: bool - description: Offer this app only on desktop. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_APP_ICON_URI: - name: APP_PROVIDER_WOPI_APP_ICON_URI - defaultValue: "" - type: string - description: URI to an app icon to be used by clients. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_APP_INTERNAL_URL: - name: APP_PROVIDER_WOPI_APP_INTERNAL_URL - defaultValue: "" - type: string - description: Internal URL to the app, like in your DMZ. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_APP_NAME: - name: APP_PROVIDER_WOPI_APP_NAME - defaultValue: "" - type: string - description: Human readable app name. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_APP_URL: - name: APP_PROVIDER_WOPI_APP_URL - defaultValue: "" - type: string - description: URL for end users to access the app. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_DISABLE_CHAT: - name: APP_PROVIDER_WOPI_DISABLE_CHAT;OC_WOPI_DISABLE_CHAT - defaultValue: "false" - type: bool - description: Disable the chat functionality of the office app. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_FOLDER_URL_BASE_URL: - name: OC_URL;APP_PROVIDER_WOPI_FOLDER_URL_BASE_URL - defaultValue: https://localhost:9200/ - type: string - description: Base url to navigate back from the app to the containing folder in - the file list. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_FOLDER_URL_PATH_TEMPLATE: - name: APP_PROVIDER_WOPI_FOLDER_URL_PATH_TEMPLATE - defaultValue: /f/{{.ResourceID}} - type: string - description: Path template to navigate back from the app to the containing folder - in the file list. Supported template variables are {{.ResourceInfo.ResourceID}}, - {{.ResourceInfo.Mtime.Seconds}}, {{.ResourceInfo.Name}}, {{.ResourceInfo.Path}}, - {{.ResourceInfo.Type}}, {{.ResourceInfo.Id.SpaceId}}, {{.ResourceInfo.Id.StorageId}}, - {{.ResourceInfo.Id.OpaqueId}}, {{.ResourceInfo.MimeType}} - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_INSECURE: - name: APP_PROVIDER_WOPI_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for requests to the WOPI server - and the web office application. Do not set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_WOPI_SERVER_EXTERNAL_URL: - name: APP_PROVIDER_WOPI_WOPI_SERVER_EXTERNAL_URL - defaultValue: "" - type: string - description: External url of the CS3org WOPI server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_PROVIDER_WOPI_WOPI_SERVER_IOP_SECRET: - name: APP_PROVIDER_WOPI_WOPI_SERVER_IOP_SECRET - defaultValue: "" - type: string - description: Shared secret of the CS3org WOPI server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_DEBUG_ADDR: - name: APP_REGISTRY_DEBUG_ADDR - defaultValue: 127.0.0.1:9243 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_DEBUG_PPROF: - name: APP_REGISTRY_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_DEBUG_TOKEN: - name: APP_REGISTRY_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_DEBUG_ZPAGES: - name: APP_REGISTRY_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_GRPC_ADDR: - name: APP_REGISTRY_GRPC_ADDR - defaultValue: 127.0.0.1:9242 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;APP_REGISTRY_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_JWT_SECRET: - name: OC_JWT_SECRET;APP_REGISTRY_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_LOG_COLOR: - name: OC_LOG_COLOR;APP_REGISTRY_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_LOG_FILE: - name: OC_LOG_FILE;APP_REGISTRY_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_LOG_LEVEL: - name: OC_LOG_LEVEL;APP_REGISTRY_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_LOG_PRETTY: - name: OC_LOG_PRETTY;APP_REGISTRY_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;APP_REGISTRY_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_TRACING_ENABLED: - name: OC_TRACING_ENABLED;APP_REGISTRY_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;APP_REGISTRY_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -APP_REGISTRY_TRACING_TYPE: - name: OC_TRACING_TYPE;APP_REGISTRY_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_DEBUG_ADDR: - name: AUDIT_DEBUG_ADDR - defaultValue: 127.0.0.1:9229 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_DEBUG_PPROF: - name: AUDIT_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_DEBUG_TOKEN: - name: AUDIT_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_DEBUG_ZPAGES: - name: AUDIT_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;AUDIT_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;AUDIT_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;AUDIT_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;AUDIT_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;AUDIT_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_EVENTS_TLS_INSECURE: - name: OC_INSECURE;AUDIT_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;AUDIT_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided AUDIT_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_FILEPATH: - name: AUDIT_FILEPATH - defaultValue: "" - type: string - description: Filepath of the logfile. Mandatory if LOG_TO_FILE is set to 'true'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_FORMAT: - name: AUDIT_FORMAT - defaultValue: json - type: string - description: Log format. Supported values are '' (empty) and 'json'. Using 'json' - is advised, '' (empty) renders the 'minimal' format. See the text description - for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_LOG_COLOR: - name: OC_LOG_COLOR;AUDIT_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_LOG_FILE: - name: OC_LOG_FILE;AUDIT_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_LOG_LEVEL: - name: OC_LOG_LEVEL;AUDIT_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_LOG_PRETTY: - name: OC_LOG_PRETTY;AUDIT_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_LOG_TO_CONSOLE: - name: AUDIT_LOG_TO_CONSOLE - defaultValue: "true" - type: bool - description: Logs to stdout if set to 'true'. Independent of the LOG_TO_FILE option. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_LOG_TO_FILE: - name: AUDIT_LOG_TO_FILE - defaultValue: "false" - type: bool - description: Logs to file if set to 'true'. Independent of the LOG_TO_CONSOLE option. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;AUDIT_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_TRACING_ENABLED: - name: OC_TRACING_ENABLED;AUDIT_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;AUDIT_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUDIT_TRACING_TYPE: - name: OC_TRACING_TYPE;AUDIT_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;AUTH_APP_CORS_ALLOW_CREDENTIALS - defaultValue: "true" - type: bool - 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: "" -AUTH_APP_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;AUTH_APP_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;AUTH_APP_CORS_ALLOW_METHODS - defaultValue: '[GET POST DELETE]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;AUTH_APP_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_DEBUG_ADDR: - name: AUTH_APP_DEBUG_ADDR - defaultValue: 127.0.0.1:9245 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_DEBUG_PPROF: - name: AUTH_APP_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_DEBUG_TOKEN: - name: AUTH_APP_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_DEBUG_ZPAGES: - name: AUTH_APP_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing traces - in-memory. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_ENABLE_IMPERSONATION: - name: AUTH_APP_ENABLE_IMPERSONATION - defaultValue: "false" - type: bool - description: Allows admins to create app tokens for other users. Used for migration. - Do NOT use in productive deployments. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_GRPC_ADDR: - name: AUTH_APP_GRPC_ADDR - defaultValue: 127.0.0.1:9246 - type: string - description: The bind address of the GRPC service. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;AUTH_APP_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_HTTP_ADDR: - name: AUTH_APP_HTTP_ADDR - defaultValue: 127.0.0.1:9247 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_HTTP_ROOT: - name: AUTH_APP_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_JWT_SECRET: - name: OC_JWT_SECRET;AUTH_APP_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_LOG_COLOR: - name: OC_LOG_COLOR;AUTH_APP_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_LOG_FILE: - name: OC_LOG_FILE;AUTH_APP_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_LOG_LEVEL: - name: OC_LOG_LEVEL;AUTH_APP_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_LOG_PRETTY: - name: OC_LOG_PRETTY;AUTH_APP_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_MACHINE_AUTH_API_KEY: - name: OC_MACHINE_AUTH_API_KEY;AUTH_APP_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. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_SKIP_USER_GROUPS_IN_TOKEN: - name: AUTH_APP_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the encoding of the user's group memberships in the access - token. This reduces the token size, especially when users are members of a large - number of groups. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;AUTH_APP_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_TRACING_ENABLED: - name: OC_TRACING_ENABLED;AUTH_APP_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;AUTH_APP_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_APP_TRACING_TYPE: - name: OC_TRACING_TYPE;AUTH_APP_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_AUTH_MANAGER: - name: AUTH_BASIC_AUTH_MANAGER - defaultValue: ldap - type: string - description: The authentication manager to check if credentials are valid. Supported - value is 'ldap'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_DEBUG_ADDR: - name: AUTH_BASIC_DEBUG_ADDR - defaultValue: 127.0.0.1:9147 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_DEBUG_PPROF: - name: AUTH_BASIC_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_DEBUG_TOKEN: - name: AUTH_BASIC_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_DEBUG_ZPAGES: - name: AUTH_BASIC_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing traces - in-memory. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_DISABLE_USER_MECHANISM: - name: OC_LDAP_DISABLE_USER_MECHANISM;AUTH_BASIC_DISABLE_USER_MECHANISM - defaultValue: attribute - type: string - description: An option to control the behavior for disabling users. Valid options - are 'none', 'attribute' and 'group'. If set to 'group', disabling a user via API - will add the user to the configured group for disabled users, if set to 'attribute' - this will be done in the ldap user entry, if set to 'none' the disable request - is not processed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_DISABLED_USERS_GROUP_DN: - name: OC_LDAP_DISABLED_USERS_GROUP_DN;AUTH_BASIC_DISABLED_USERS_GROUP_DN - defaultValue: cn=DisabledUsersGroup,ou=groups,o=libregraph-idm - type: string - description: The distinguished name of the group to which added users will be classified - as disabled when 'disable_user_mechanism' is set to 'group'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_GRPC_ADDR: - name: AUTH_BASIC_GRPC_ADDR - defaultValue: 127.0.0.1:9146 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;AUTH_BASIC_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_IDP_URL: - name: OC_URL;OC_OIDC_ISSUER;AUTH_BASIC_IDP_URL - defaultValue: https://localhost:9200 - type: string - description: The identity provider value to set in the userids of the CS3 user objects - for users returned by this user provider. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_JWT_SECRET: - name: OC_JWT_SECRET;AUTH_BASIC_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_BIND_DN: - name: OC_LDAP_BIND_DN;AUTH_BASIC_LDAP_BIND_DN - defaultValue: uid=reva,ou=sysusers,o=libregraph-idm - type: string - description: LDAP DN to use for simple bind authentication with the target LDAP - server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_BIND_PASSWORD: - name: OC_LDAP_BIND_PASSWORD;AUTH_BASIC_LDAP_BIND_PASSWORD - defaultValue: "" - type: string - description: Password to use for authenticating the 'bind_dn'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_CACERT: - name: OC_LDAP_CACERT;AUTH_BASIC_LDAP_CACERT - defaultValue: /var/lib/opencloud/idm/ldap.crt - type: string - description: Path/File name for the root CA certificate (in PEM format) used to - validate TLS server certificates of the LDAP service. If not defined, the root - directory derives from $OC_BASE_DATA_PATH/idm. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_BASE_DN: - name: OC_LDAP_GROUP_BASE_DN;AUTH_BASIC_LDAP_GROUP_BASE_DN - defaultValue: ou=groups,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_FILTER: - name: OC_LDAP_GROUP_FILTER;AUTH_BASIC_LDAP_GROUP_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for group searches. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_OBJECTCLASS: - name: OC_LDAP_GROUP_OBJECTCLASS;AUTH_BASIC_LDAP_GROUP_OBJECTCLASS - defaultValue: groupOfNames - type: string - description: The object class to use for groups in the default group search filter - ('groupOfNames'). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_SCHEMA_DISPLAYNAME: - name: OC_LDAP_GROUP_SCHEMA_DISPLAYNAME;AUTH_BASIC_LDAP_GROUP_SCHEMA_DISPLAYNAME - defaultValue: cn - type: string - description: LDAP Attribute to use for the displayname of groups (often the same - as groupname attribute). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_SCHEMA_GROUPNAME: - name: OC_LDAP_GROUP_SCHEMA_GROUPNAME;AUTH_BASIC_LDAP_GROUP_SCHEMA_GROUPNAME - defaultValue: cn - type: string - description: LDAP Attribute to use for the name of groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_SCHEMA_ID: - name: OC_LDAP_GROUP_SCHEMA_ID;AUTH_BASIC_LDAP_GROUP_SCHEMA_ID - defaultValue: ownclouduuid - type: string - description: LDAP Attribute to use as the unique id for groups. This should be a - stable globally unique id (e.g. a UUID). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING;AUTH_BASIC_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'id' attribute for groups is of the - 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute - of Active Directory for the group IDs. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_SCHEMA_MAIL: - name: OC_LDAP_GROUP_SCHEMA_MAIL;AUTH_BASIC_LDAP_GROUP_SCHEMA_MAIL - defaultValue: mail - type: string - description: LDAP Attribute to use for the email address of groups (can be empty). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_SCHEMA_MEMBER: - name: OC_LDAP_GROUP_SCHEMA_MEMBER;AUTH_BASIC_LDAP_GROUP_SCHEMA_MEMBER - defaultValue: member - type: string - description: LDAP Attribute that is used for group members. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_GROUP_SCOPE: - name: OC_LDAP_GROUP_SCOPE;AUTH_BASIC_LDAP_GROUP_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up groups. Supported values are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_INSECURE: - name: OC_LDAP_INSECURE;AUTH_BASIC_LDAP_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for the LDAP connections. Do not - set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_LOGIN_ATTRIBUTES: - name: LDAP_LOGIN_ATTRIBUTES;AUTH_BASIC_LDAP_LOGIN_ATTRIBUTES - defaultValue: '[uid]' - type: '[]string' - description: A list of user object attributes that can be used for login. See the - Environment Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_URI: - name: OC_LDAP_URI;AUTH_BASIC_LDAP_URI - defaultValue: ldaps://localhost:9235 - type: string - description: URI of the LDAP Server to connect to. Supported URI schemes are 'ldaps://' - and 'ldap://' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_BASE_DN: - name: OC_LDAP_USER_BASE_DN;AUTH_BASIC_LDAP_USER_BASE_DN - defaultValue: ou=users,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_ENABLED_ATTRIBUTE: - name: OC_LDAP_USER_ENABLED_ATTRIBUTE;AUTH_BASIC_LDAP_USER_ENABLED_ATTRIBUTE - defaultValue: ownCloudUserEnabled - type: string - description: LDAP attribute to use as a flag telling if the user is enabled or disabled. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_FILTER: - name: OC_LDAP_USER_FILTER;AUTH_BASIC_LDAP_USER_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for user search like '(objectclass=ownCloud)'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_OBJECTCLASS: - name: OC_LDAP_USER_OBJECTCLASS;AUTH_BASIC_LDAP_USER_OBJECTCLASS - defaultValue: inetOrgPerson - type: string - description: The object class to use for users in the default user search filter - ('inetOrgPerson'). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_SCHEMA_DISPLAYNAME: - name: OC_LDAP_USER_SCHEMA_DISPLAYNAME;AUTH_BASIC_LDAP_USER_SCHEMA_DISPLAYNAME - defaultValue: displayname - type: string - description: LDAP Attribute to use for the displayname of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_SCHEMA_ID: - name: OC_LDAP_USER_SCHEMA_ID;AUTH_BASIC_LDAP_USER_SCHEMA_ID - defaultValue: ownclouduuid - type: string - description: LDAP Attribute to use as the unique ID for users. This should be a - stable globally unique ID like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING;AUTH_BASIC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'ID' attribute for users is of the - 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute - of Active Directory for the user IDs. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_SCHEMA_MAIL: - name: OC_LDAP_USER_SCHEMA_MAIL;AUTH_BASIC_LDAP_USER_SCHEMA_MAIL - defaultValue: mail - type: string - description: LDAP Attribute to use for the email address of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_SCHEMA_USERNAME: - name: OC_LDAP_USER_SCHEMA_USERNAME;AUTH_BASIC_LDAP_USER_SCHEMA_USERNAME - defaultValue: uid - type: string - description: LDAP Attribute to use for username of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LDAP_USER_SCOPE: - name: OC_LDAP_USER_SCOPE;AUTH_BASIC_LDAP_USER_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up users. Supported values are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LOG_COLOR: - name: OC_LOG_COLOR;AUTH_BASIC_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LOG_FILE: - name: OC_LOG_FILE;AUTH_BASIC_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LOG_LEVEL: - name: OC_LOG_LEVEL;AUTH_BASIC_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_LOG_PRETTY: - name: OC_LOG_PRETTY;AUTH_BASIC_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_OWNCLOUDSQL_DB_HOST: - name: AUTH_BASIC_OWNCLOUDSQL_DB_HOST - defaultValue: mysql - type: string - description: Hostname of the database server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_OWNCLOUDSQL_DB_NAME: - name: AUTH_BASIC_OWNCLOUDSQL_DB_NAME - defaultValue: owncloud - type: string - description: Name of the owncloud database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_OWNCLOUDSQL_DB_PASSWORD: - name: AUTH_BASIC_OWNCLOUDSQL_DB_PASSWORD - defaultValue: "" - type: string - description: Password for the database user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_OWNCLOUDSQL_DB_PORT: - name: AUTH_BASIC_OWNCLOUDSQL_DB_PORT - defaultValue: "3306" - type: int - description: Network port to use for the database connection. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_OWNCLOUDSQL_DB_USERNAME: - name: AUTH_BASIC_OWNCLOUDSQL_DB_USERNAME - defaultValue: owncloud - type: string - description: Database user to use for authenticating with the owncloud database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_OWNCLOUDSQL_IDP: - name: AUTH_BASIC_OWNCLOUDSQL_IDP - defaultValue: https://localhost:9200 - type: string - description: The identity provider value to set in the userids of the CS3 user objects - for users returned by this user provider. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID: - name: AUTH_BASIC_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID - defaultValue: "false" - type: bool - description: Join the user properties table to read user ID's. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_OWNCLOUDSQL_JOIN_USERNAME: - name: AUTH_BASIC_OWNCLOUDSQL_JOIN_USERNAME - defaultValue: "false" - type: bool - description: Join the user properties table to read usernames - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_OWNCLOUDSQL_NOBODY: - name: AUTH_BASIC_OWNCLOUDSQL_NOBODY - defaultValue: "90" - type: int64 - description: Fallback number if no numeric UID and GID properties are provided. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_SKIP_USER_GROUPS_IN_TOKEN: - name: AUTH_BASIC_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the encoding of the user's group memberships in the reva access - token. This reduces the token size, especially when users are members of a large - number of groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;AUTH_BASIC_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_TRACING_ENABLED: - name: OC_TRACING_ENABLED;AUTH_BASIC_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;AUTH_BASIC_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BASIC_TRACING_TYPE: - name: OC_TRACING_TYPE;AUTH_BASIC_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_DEBUG_ADDR: - name: AUTH_BEARER_DEBUG_ADDR - defaultValue: 127.0.0.1:9149 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_DEBUG_PPROF: - name: AUTH_BEARER_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_DEBUG_TOKEN: - name: AUTH_BEARER_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_DEBUG_ZPAGES: - name: AUTH_BEARER_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_GRPC_ADDR: - name: AUTH_BEARER_GRPC_ADDR - defaultValue: 127.0.0.1:9148 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;AUTH_BEARER_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_JWT_SECRET: - name: OC_JWT_SECRET;AUTH_BEARER_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_LOG_COLOR: - name: OC_LOG_COLOR;AUTH_BEARER_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_LOG_FILE: - name: OC_LOG_FILE;AUTH_BEARER_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_LOG_LEVEL: - name: OC_LOG_LEVEL;AUTH_BEARER_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_LOG_PRETTY: - name: OC_LOG_PRETTY;AUTH_BEARER_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_OIDC_GID_CLAIM: - name: AUTH_BEARER_OIDC_GID_CLAIM - defaultValue: "" - type: string - description: Name of the claim, which holds the GID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_OIDC_ID_CLAIM: - name: AUTH_BEARER_OIDC_ID_CLAIM - defaultValue: preferred_username - type: string - description: Name of the claim, which holds the user identifier. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_OIDC_INSECURE: - name: OC_INSECURE;AUTH_BEARER_OIDC_INSECURE - defaultValue: "false" - type: bool - description: Allow insecure connections to the OIDC issuer. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_OIDC_ISSUER: - name: OC_URL;OC_OIDC_ISSUER;AUTH_BEARER_OIDC_ISSUER - defaultValue: https://localhost:9200 - type: string - description: URL of the OIDC issuer. It defaults to URL of the builtin IDP. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_OIDC_UID_CLAIM: - name: AUTH_BEARER_OIDC_UID_CLAIM - defaultValue: "" - type: string - description: Name of the claim, which holds the UID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_SKIP_USER_GROUPS_IN_TOKEN: - name: AUTH_BEARER_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the encoding of the user's group memberships in the reva access - token. This reduces the token size, especially when users are members of a large - number of groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;AUTH_BEARER_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_TRACING_ENABLED: - name: OC_TRACING_ENABLED;AUTH_BEARER_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;AUTH_BEARER_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_BEARER_TRACING_TYPE: - name: OC_TRACING_TYPE;AUTH_BEARER_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_API_KEY: - name: OC_MACHINE_AUTH_API_KEY;AUTH_MACHINE_API_KEY - defaultValue: "" - type: string - description: Machine auth API key used to validate internal requests necessary for - the access to resources from other services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_DEBUG_ADDR: - name: AUTH_MACHINE_DEBUG_ADDR - defaultValue: 127.0.0.1:9167 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_DEBUG_PPROF: - name: AUTH_MACHINE_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_DEBUG_TOKEN: - name: AUTH_MACHINE_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_DEBUG_ZPAGES: - name: AUTH_MACHINE_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_GRPC_ADDR: - name: AUTH_MACHINE_GRPC_ADDR - defaultValue: 127.0.0.1:9166 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;AUTH_MACHINE_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_JWT_SECRET: - name: OC_JWT_SECRET;AUTH_MACHINE_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_LOG_COLOR: - name: OC_LOG_COLOR;AUTH_MACHINE_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_LOG_FILE: - name: OC_LOG_FILE;AUTH_MACHINE_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_LOG_LEVEL: - name: OC_LOG_LEVEL;AUTH_MACHINE_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_LOG_PRETTY: - name: OC_LOG_PRETTY;AUTH_MACHINE_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_SKIP_USER_GROUPS_IN_TOKEN: - name: AUTH_MACHINE_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the encoding of the user's group memberships in the reva access - token. This reduces the token size, especially when users are members of a large - number of groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;AUTH_MACHINE_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_TRACING_ENABLED: - name: OC_TRACING_ENABLED;AUTH_MACHINE_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;AUTH_MACHINE_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_MACHINE_TRACING_TYPE: - name: OC_TRACING_TYPE;AUTH_MACHINE_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_DEBUG_ADDR: - name: AUTH_SERVICE_DEBUG_ADDR - defaultValue: 127.0.0.1:9198 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_DEBUG_PPROF: - name: AUTH_SERVICE_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_DEBUG_TOKEN: - name: AUTH_SERVICE_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_DEBUG_ZPAGES: - name: AUTH_SERVICE_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_GRPC_ADDR: - name: AUTH_SERVICE_GRPC_ADDR - defaultValue: 127.0.0.1:9199 - type: string - description: The bind address of the GRPC service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;AUTH_SERVICE_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_JWT_SECRET: - name: OC_JWT_SECRET;AUTH_SERVICE_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_LOG_COLOR: - name: OC_LOG_COLOR;AUTH_SERVICE_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_LOG_FILE: - name: OC_LOG_FILE;AUTH_SERVICE_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_LOG_LEVEL: - name: OC_LOG_LEVEL;AUTH_SERVICE_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_LOG_PRETTY: - name: OC_LOG_PRETTY;AUTH_SERVICE_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;AUTH_SERVICE_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;AUTH_SERVICE_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;AUTH_SERVICE_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_TRACING_ENABLED: - name: OC_TRACING_ENABLED;AUTH_SERVICE_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;AUTH_SERVICE_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -AUTH_SERVICE_TRACING_TYPE: - name: OC_TRACING_TYPE;AUTH_SERVICE_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_DEBUG_ADDR: - name: CLIENTLOG_DEBUG_ADDR - defaultValue: 127.0.0.1:9260 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_DEBUG_PPROF: - name: CLIENTLOG_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_DEBUG_TOKEN: - name: CLIENTLOG_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_DEBUG_ZPAGES: - name: CLIENTLOG_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;CLIENTLOG_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;CLIENTLOG_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;CLIENTLOG_EVENTS_CLUSTER - defaultValue: opencloud-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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;CLIENTLOG_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;CLIENTLOG_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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_EVENTS_TLS_INSECURE: - name: OC_INSECURE;CLIENTLOG_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;CLIENTLOG_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_JWT_SECRET: - name: OC_JWT_SECRET;CLIENTLOG_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_REVA_GATEWAY: - name: OC_REVA_GATEWAY;CLIENTLOG_REVA_GATEWAY - defaultValue: eu.opencloud.api.gateway - type: string - description: CS3 gateway used to look up user metadata - introductionVersion: "5.0" - deprecationVersion: "6.0" - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: CLIENTLOG_REVA_GATEWAY removed for simplicity. -CLIENTLOG_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;CLIENTLOG_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;CLIENTLOG_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;CLIENTLOG_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_TRACING_ENABLED: - name: OC_TRACING_ENABLED;CLIENTLOG_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;CLIENTLOG_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_TRACING_TYPE: - name: OC_TRACING_TYPE;CLIENTLOG_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_USERLOG_LOG_COLOR: - name: OC_LOG_COLOR;CLIENTLOG_USERLOG_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_USERLOG_LOG_FILE: - name: OC_LOG_FILE;CLIENTLOG_USERLOG_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_USERLOG_LOG_LEVEL: - name: OC_LOG_LEVEL;CLIENTLOG_USERLOG_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -CLIENTLOG_USERLOG_LOG_PRETTY: - name: OC_LOG_PRETTY;CLIENTLOG_USERLOG_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_APP_ADDR: - name: COLLABORATION_APP_ADDR - defaultValue: https://127.0.0.1:9980 - type: string - description: The URL where the WOPI app is located, such as https://127.0.0.1:8080. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_APP_DESCRIPTION: - name: COLLABORATION_APP_DESCRIPTION - defaultValue: Open office documents with Collabora - type: string - description: App description - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_APP_ICON: - name: COLLABORATION_APP_ICON - defaultValue: image-edit - type: string - description: Icon for the app - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_APP_INSECURE: - name: COLLABORATION_APP_INSECURE - defaultValue: "false" - type: bool - description: Skip TLS certificate verification when connecting to the WOPI app - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_APP_LICENSE_CHECK_ENABLE: - name: COLLABORATION_APP_LICENSE_CHECK_ENABLE - defaultValue: "false" - type: bool - description: Enable license checking to edit files. Needs to be enabled when using - Microsoft365 with the business flow. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_APP_NAME: - name: COLLABORATION_APP_NAME - defaultValue: Collabora - type: string - description: The name of the app which is shown to the user. You can chose freely - but you are limited to a single word without special characters or whitespaces. - We recommend to use pascalCase like 'CollaboraOnline'. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_APP_PRODUCT: - name: COLLABORATION_APP_PRODUCT - defaultValue: "" - type: string - description: The WebOffice app, either Collabora, OnlyOffice, Microsoft365 or MicrosoftOfficeOnline. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_APP_PROOF_DISABLE: - name: COLLABORATION_APP_PROOF_DISABLE - defaultValue: "false" - type: bool - description: Disable the proof keys verification - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_APP_PROOF_DURATION: - name: COLLABORATION_APP_PROOF_DURATION - defaultValue: 12h - type: string - description: Duration for the proof keys to be cached in memory, using time.ParseDuration - format. If the duration can't be parsed, we'll use the default 12h as duration - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_CS3API_DATAGATEWAY_INSECURE: - name: COLLABORATION_CS3API_DATAGATEWAY_INSECURE - defaultValue: "false" - type: bool - description: Connect to the CS3API data gateway insecurely. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_DEBUG_ADDR: - name: COLLABORATION_DEBUG_ADDR - defaultValue: 127.0.0.1:9304 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_DEBUG_PPROF: - name: COLLABORATION_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_DEBUG_TOKEN: - name: COLLABORATION_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_DEBUG_ZPAGES: - name: COLLABORATION_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_GRPC_ADDR: - name: COLLABORATION_GRPC_ADDR - defaultValue: 127.0.0.1:9301 - type: string - description: The bind address of the GRPC service. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;COLLABORATION_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_HTTP_ADDR: - name: COLLABORATION_HTTP_ADDR - defaultValue: 127.0.0.1:9300 - type: string - description: The bind address of the HTTP service. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_JWT_SECRET: - name: OC_JWT_SECRET;COLLABORATION_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_LOG_COLOR: - name: OC_LOG_COLOR;COLLABORATION_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_LOG_FILE: - name: OC_LOG_FILE;COLLABORATION_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_LOG_LEVEL: - name: OC_LOG_LEVEL;COLLABORATION_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_LOG_PRETTY: - name: OC_LOG_PRETTY;COLLABORATION_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_STORE: - name: OC_PERSISTENT_STORE;COLLABORATION_STORE - defaultValue: nats-js-kv - type: string - description: 'The type of the store. Supported values are: ''memory'', ''nats-js-kv'', - ''redis-sentinel'', ''noop''. See the text description for details.' - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_STORE_AUTH_PASSWORD: - name: OC_PERSISTENT_STORE_AUTH_PASSWORD;COLLABORATION_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_STORE_AUTH_USERNAME: - name: OC_PERSISTENT_STORE_AUTH_USERNAME;COLLABORATION_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_STORE_DATABASE: - name: COLLABORATION_STORE_DATABASE - defaultValue: collaboration - type: string - description: The database name the configured store should use. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_STORE_NODES: - name: OC_PERSISTENT_STORE_NODES;COLLABORATION_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_STORE_TABLE: - name: COLLABORATION_STORE_TABLE - defaultValue: "" - type: string - description: The database table the store should use. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_STORE_TTL: - name: OC_PERSISTENT_STORE_TTL;COLLABORATION_STORE_TTL - defaultValue: 30m0s - type: Duration - description: Time to live for events in the store. Defaults to '30m' (30 minutes). - See the Environment Variable Types description for more details. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;COLLABORATION_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_TRACING_ENABLED: - name: OC_TRACING_ENABLED;COLLABORATION_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;COLLABORATION_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_TRACING_TYPE: - name: OC_TRACING_TYPE;COLLABORATION_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_WOPI_DISABLE_CHAT: - name: COLLABORATION_WOPI_DISABLE_CHAT;OC_WOPI_DISABLE_CHAT - defaultValue: "false" - type: bool - description: Disable chat in the office web frontend. This feature applies to OnlyOffice - and Microsoft. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_WOPI_PROXY_SECRET: - name: COLLABORATION_WOPI_PROXY_SECRET - defaultValue: "" - type: string - description: Optional, the secret to authenticate against the OpenCloud WOPI proxy. - This secret can be obtained from OpenCloud via the office365 proxy subscription. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_WOPI_PROXY_URL: - name: COLLABORATION_WOPI_PROXY_URL - defaultValue: "" - type: string - description: The URL to the OpenCloud WOPI proxy. Optional. To use this feature, - you need an office365 proxy subscription. If you become part of the Microsoft - CSP program (https://learn.microsoft.com/en-us/partner-center/enroll/csp-overview), - you can use WebOffice without a proxy. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_WOPI_SECRET: - name: COLLABORATION_WOPI_SECRET - defaultValue: "" - type: string - description: Used to mint and verify WOPI JWT tokens and encrypt and decrypt the - REVA JWT token embedded in the WOPI JWT token. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_WOPI_SHORTTOKENS: - name: COLLABORATION_WOPI_SHORTTOKENS - defaultValue: "false" - type: bool - description: Use short access tokens for WOPI access. This is useful for office - packages, like Microsoft Office Online, which have URL length restrictions. If - enabled, a persistent store must be configured. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -COLLABORATION_WOPI_SRC: - name: COLLABORATION_WOPI_SRC - defaultValue: https://localhost:9300 - type: string - description: The WOPI source base URL containing schema, host and port. Set this - to the schema and domain where the collaboration service is reachable for the - wopi app, such as https://office.example.test. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_DEBUG_ADDR: - name: EVENTHISTORY_DEBUG_ADDR - defaultValue: 127.0.0.1:9270 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_DEBUG_PPROF: - name: EVENTHISTORY_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_DEBUG_TOKEN: - name: EVENTHISTORY_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_DEBUG_ZPAGES: - name: EVENTHISTORY_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;EVENTHISTORY_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;EVENTHISTORY_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;EVENTHISTORY_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;EVENTHISTORY_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;EVENTHISTORY_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_EVENTS_TLS_INSECURE: - name: OC_INSECURE;EVENTHISTORY_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;EVENTHISTORY_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - Will be seen as empty if NOTIFICATIONS_EVENTS_TLS_INSECURE is provided. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_GRPC_ADDR: - name: EVENTHISTORY_GRPC_ADDR - defaultValue: 127.0.0.1:9274 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_LOG_COLOR: - name: OC_LOG_COLOR;EVENTHISTORY_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_LOG_FILE: - name: OC_LOG_FILE;EVENTHISTORY_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_LOG_LEVEL: - name: OC_LOG_LEVEL;EVENTHISTORY_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_LOG_PRETTY: - name: OC_LOG_PRETTY;EVENTHISTORY_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_STORE: - name: OC_PERSISTENT_STORE;EVENTHISTORY_STORE - defaultValue: nats-js-kv - type: string - description: 'The type of the store. Supported values are: ''memory'', ''nats-js-kv'', - ''redis-sentinel'', ''noop''. See the text description for details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_STORE_AUTH_PASSWORD: - name: OC_PERSISTENT_STORE_AUTH_PASSWORD;EVENTHISTORY_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_STORE_AUTH_USERNAME: - name: OC_PERSISTENT_STORE_AUTH_USERNAME;EVENTHISTORY_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_STORE_DATABASE: - name: EVENTHISTORY_STORE_DATABASE - defaultValue: eventhistory - type: string - description: The database name the configured store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_STORE_NODES: - name: OC_PERSISTENT_STORE_NODES;EVENTHISTORY_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -EVENTHISTORY_STORE_TABLE: - name: EVENTHISTORY_STORE_TABLE - defaultValue: "" - type: string - description: The database table the store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_STORE_TTL: - name: OC_PERSISTENT_STORE_TTL;EVENTHISTORY_STORE_TTL - defaultValue: 336h0m0s - type: Duration - 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: "" - deprecationInfo: "" -EVENTHISTORY_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;EVENTHISTORY_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_TRACING_ENABLED: - name: OC_TRACING_ENABLED;EVENTHISTORY_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;EVENTHISTORY_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -EVENTHISTORY_TRACING_TYPE: - name: OC_TRACING_TYPE;EVENTHISTORY_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_APP_HANDLER_INSECURE: - name: OC_INSECURE;FRONTEND_APP_HANDLER_INSECURE - defaultValue: "false" - type: bool - description: Allow insecure connections to the frontend. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_APP_HANDLER_SECURE_VIEW_APP_ADDR: - name: FRONTEND_APP_HANDLER_SECURE_VIEW_APP_ADDR - defaultValue: eu.opencloud.api.collaboration - type: string - description: Service name or address of the app provider to use for secure view. - Should match the service name or address of the registered CS3 app provider. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_ARCHIVER_INSECURE: - name: OC_INSECURE;FRONTEND_ARCHIVER_INSECURE - defaultValue: "false" - type: bool - description: Allow insecure connections to the archiver. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_ARCHIVER_MAX_NUM_FILES: - name: FRONTEND_ARCHIVER_MAX_NUM_FILES - defaultValue: "10000" - type: int64 - description: Max number of files that can be packed into an archive. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_ARCHIVER_MAX_SIZE: - name: FRONTEND_ARCHIVER_MAX_SIZE - defaultValue: "1073741824" - type: int64 - description: Max size in bytes of the zip archive the archiver can create. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_AUTO_ACCEPT_SHARES: - name: FRONTEND_AUTO_ACCEPT_SHARES - defaultValue: "true" - type: bool - description: Defines if shares should be auto accepted by default. Users can change - this setting individually in their profile. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_CHECKSUMS_PREFERRED_UPLOAD_TYPE: - name: FRONTEND_CHECKSUMS_PREFERRED_UPLOAD_TYPE - defaultValue: sha1 - type: string - description: The supported checksum type for uploads that indicates to clients supporting - multiple hash algorithms which one is preferred by the server. Must be one out - of the defined list of SUPPORTED_TYPES. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_CHECKSUMS_SUPPORTED_TYPES: - name: FRONTEND_CHECKSUMS_SUPPORTED_TYPES - defaultValue: '[sha1 md5 adler32]' - type: '[]string' - description: A list of checksum types that indicate to clients which hashes the - server can use to verify upload integrity. Supported types are 'sha1', 'md5' and - 'adler32'. See the Environment Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_CONFIGURABLE_NOTIFICATIONS: - name: FRONTEND_CONFIGURABLE_NOTIFICATIONS - defaultValue: "false" - type: bool - description: Allow configuring notifications via web client. - introductionVersion: "7.1" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;FRONTEND_CORS_ALLOW_CREDENTIALS - defaultValue: "false" - type: bool - 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: "" -FRONTEND_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;FRONTEND_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 Cache-Control]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;FRONTEND_CORS_ALLOW_METHODS - defaultValue: '[OPTIONS HEAD GET PUT POST PATCH DELETE MKCOL PROPFIND PROPPATCH - MOVE COPY REPORT SEARCH]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;FRONTEND_CORS_ALLOW_ORIGINS - defaultValue: '[https://localhost:9200]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_DATA_GATEWAY_PREFIX: - name: FRONTEND_DATA_GATEWAY_PREFIX - defaultValue: data - type: string - description: Path prefix for the data gateway. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_DEBUG_ADDR: - name: FRONTEND_DEBUG_ADDR - defaultValue: 127.0.0.1:9141 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_DEBUG_PPROF: - name: FRONTEND_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_DEBUG_TOKEN: - name: FRONTEND_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_DEBUG_ZPAGES: - name: FRONTEND_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_DEFAULT_LINK_PERMISSIONS: - name: FRONTEND_DEFAULT_LINK_PERMISSIONS - defaultValue: "1" - type: int - description: Defines the default permissions a link is being created with. Possible - values are 0 (= internal link, for instance members only) and 1 (= public link - with viewer permissions). Defaults to 1. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_DEFAULT_UPLOAD_PROTOCOL: - name: FRONTEND_DEFAULT_UPLOAD_PROTOCOL - defaultValue: tus - type: string - description: The default upload protocol to use in clients. Currently only 'tus' - is available. See the developer API documentation for more details about TUS. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_DISABLE_SSE: - name: OC_DISABLE_SSE;FRONTEND_DISABLE_SSE - defaultValue: "false" - type: bool - description: When set to true, clients are informed that the Server-Sent Events - endpoint is not accessible. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_EDITION: - name: OC_EDITION;FRONTEND_EDITION - defaultValue: Community - type: string - description: Edition of oCIS. Used for branding purposes. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_ENABLE_FAVORITES: - name: FRONTEND_ENABLE_FAVORITES - defaultValue: "false" - type: bool - description: Enables the support for favorites in the clients. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_ENABLE_FEDERATED_SHARING_INCOMING: - name: OC_ENABLE_OCM;FRONTEND_ENABLE_FEDERATED_SHARING_INCOMING - defaultValue: "false" - type: bool - description: Changing this value is NOT supported. Enables support for incoming - federated sharing for clients. The backend behaviour is not changed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_ENABLE_FEDERATED_SHARING_OUTGOING: - name: OC_ENABLE_OCM;FRONTEND_ENABLE_FEDERATED_SHARING_OUTGOING - defaultValue: "false" - type: bool - description: Changing this value is NOT supported. Enables support for outgoing - federated sharing for clients. The backend behaviour is not changed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;FRONTEND_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;FRONTEND_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;FRONTEND_EVENTS_CLUSTER - defaultValue: opencloud-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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;FRONTEND_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;FRONTEND_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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_EVENTS_TLS_INSECURE: - name: OC_INSECURE;FRONTEND_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: FRONTEND_EVENTS_TLS_ROOT_CA_CERTIFICATE;OCS_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_FULL_TEXT_SEARCH_ENABLED: - name: FRONTEND_FULL_TEXT_SEARCH_ENABLED - defaultValue: "false" - type: bool - description: Set to true to signal the web client that full-text search is enabled. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_HTTP_ADDR: - name: FRONTEND_HTTP_ADDR - defaultValue: 127.0.0.1:9140 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_HTTP_PREFIX: - name: FRONTEND_HTTP_PREFIX - defaultValue: "" - type: string - description: The Path prefix where the frontend can be accessed (defaults to /). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_HTTP_PROTOCOL: - name: FRONTEND_HTTP_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_JWT_SECRET: - name: OC_JWT_SECRET;FRONTEND_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_LDAP_SERVER_WRITE_ENABLED: - name: OC_LDAP_SERVER_WRITE_ENABLED;FRONTEND_LDAP_SERVER_WRITE_ENABLED - defaultValue: "true" - type: bool - description: Allow creating, modifying and deleting LDAP users via the GRAPH API. - This can only be set to 'true' when keeping default settings for the LDAP user - and group attribute types (the 'OC_LDAP_USER_SCHEMA_* and 'OC_LDAP_GROUP_SCHEMA_* - variables). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_LOG_COLOR: - name: OC_LOG_COLOR;FRONTEND_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_LOG_FILE: - name: OC_LOG_FILE;FRONTEND_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_LOG_LEVEL: - name: OC_LOG_LEVEL;FRONTEND_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_LOG_PRETTY: - name: OC_LOG_PRETTY;FRONTEND_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_MACHINE_AUTH_API_KEY: - name: OC_MACHINE_AUTH_API_KEY;FRONTEND_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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_MAX_CONCURRENCY: - name: OC_MAX_CONCURRENCY;FRONTEND_MAX_CONCURRENCY - defaultValue: "1" - type: int - description: Maximum number of concurrent go-routines. Higher values can potentially - get work done faster but will also cause more load on the system. Values of 0 - or below will be ignored and the default value will be used. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_MAX_QUOTA: - name: OC_SPACES_MAX_QUOTA;FRONTEND_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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_OCS_ADDITIONAL_INFO_ATTRIBUTE: - name: FRONTEND_OCS_ADDITIONAL_INFO_ATTRIBUTE - defaultValue: '{{.Mail}}' - type: string - description: Additional information attribute for the user like {{.Mail}}. - introductionVersion: pre5.0 - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: The OCS API is deprecated -FRONTEND_OCS_ENABLE_DENIALS: - name: FRONTEND_OCS_ENABLE_DENIALS - defaultValue: "false" - type: bool - description: 'EXPERIMENTAL: enable the feature to deny access on folders.' - introductionVersion: pre5.0 - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: The OCS API is deprecated -FRONTEND_OCS_INCLUDE_OCM_SHAREES: - name: OC_ENABLE_OCM;FRONTEND_OCS_INCLUDE_OCM_SHAREES - defaultValue: "false" - type: bool - description: Include OCM sharees when listing sharees. - introductionVersion: "5.0" - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: FRONTEND_OCS_INCLUDE_OCM_SHAREES, the OCS API is deprecated -FRONTEND_OCS_LIST_OCM_SHARES: - name: OC_ENABLE_OCM;FRONTEND_OCS_LIST_OCM_SHARES - defaultValue: "true" - type: bool - description: Include OCM shares when listing shares. See the OCM service documentation - for more details. - introductionVersion: "5.0" - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: FRONTEND_OCS_LIST_OCM_SHARES, the OCS API is deprecated -FRONTEND_OCS_PERSONAL_NAMESPACE: - name: FRONTEND_OCS_PERSONAL_NAMESPACE - defaultValue: /users/{{.Id.OpaqueId}} - type: string - description: Home namespace identifier. - introductionVersion: pre5.0 - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: The OCS API is deprecated -FRONTEND_OCS_PREFIX: - name: FRONTEND_OCS_PREFIX - defaultValue: ocs - type: string - description: URL path prefix for the OCS service. Note that the string must not - start with '/'. - introductionVersion: pre5.0 - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: The OCS API is deprecated -FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD: - name: OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD;FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD - defaultValue: "true" - type: bool - description: Set this to true if you want to enforce passwords on all public shares. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, the OCS API is deprecated - | | FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, the OCS API is deprecated | - FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, the OCS API is deprecated | FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated | FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, the - OCS API is deprecated -FRONTEND_OCS_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD: - name: OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD;FRONTEND_OCS_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD - defaultValue: "false" - type: bool - description: Set this to true if you want to enforce passwords for writable shares. - Only effective if the setting for 'passwords on all public shares' is set to false. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, the OCS - API is deprecated | | FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated | FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated | FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated | FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated -FRONTEND_OCS_SHARE_PREFIX: - name: FRONTEND_OCS_SHARE_PREFIX - defaultValue: /Shares - type: string - description: Path prefix for shares as part of an ocis resource. Note that the path - must start with '/'. - introductionVersion: pre5.0 - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: The OCS API is deprecated -FRONTEND_OCS_STAT_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;FRONTEND_OCS_STAT_CACHE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to use for authentication. Only applies when using the - 'nats-js-kv' store type. - introductionVersion: "5.0" - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: FRONTEND_OCS_STAT_CACHE_AUTH_PASSWORD, the OCS API is deprecated -FRONTEND_OCS_STAT_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;FRONTEND_OCS_STAT_CACHE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to use for authentication. Only applies when using the - 'nats-js-kv' store type. - introductionVersion: "5.0" - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: FRONTEND_OCS_STAT_CACHE_AUTH_USERNAME, the OCS API is deprecated -FRONTEND_OCS_STAT_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;FRONTEND_OCS_STAT_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. - introductionVersion: "5.0" - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: FRONTEND_OCS_STAT_CACHE_DISABLE_PERSISTENCE, the OCS API is deprecated -FRONTEND_OCS_STAT_CACHE_STORE: - name: OC_CACHE_STORE;FRONTEND_OCS_STAT_CACHE_STORE - defaultValue: memory - type: string - 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: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: FRONTEND_OCS_STAT_CACHE_STORE, the OCS API is deprecated -FRONTEND_OCS_STAT_CACHE_STORE_NODES: - name: OC_CACHE_STORE_NODES;FRONTEND_OCS_STAT_CACHE_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: FRONTEND_OCS_STAT_CACHE_STORE_NODES, the OCS API is deprecated -FRONTEND_OCS_STAT_CACHE_TABLE: - name: FRONTEND_OCS_STAT_CACHE_TABLE - defaultValue: "" - type: string - description: The database table the store should use. - introductionVersion: pre5.0 - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: The OCS API is deprecated -FRONTEND_OCS_STAT_CACHE_TTL: - name: OC_CACHE_TTL;FRONTEND_OCS_STAT_CACHE_TTL - defaultValue: 5m0s - type: Duration - description: Default time to live for user info in the cache. Only applied when - access tokens has no expiration. See the Environment Variable Types description - for more details. - introductionVersion: pre5.0 - deprecationVersion: 7.0.0 - removalVersion: '%%NEXT_PRODUCTION_VERSION%%' - deprecationInfo: FRONTEND_OCS_STAT_CACHE_TTL, the OCS API is deprecated -FRONTEND_PASSWORD_POLICY_BANNED_PASSWORDS_LIST: - name: OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST;FRONTEND_PASSWORD_POLICY_BANNED_PASSWORDS_LIST - defaultValue: "" - type: string - description: Path to the 'banned passwords list' file. This only impacts public - link password validation. See the documentation for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_PASSWORD_POLICY_DISABLED: - name: OC_PASSWORD_POLICY_DISABLED;FRONTEND_PASSWORD_POLICY_DISABLED - defaultValue: "false" - type: bool - description: Disable the password policy. Defaults to false if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_PASSWORD_POLICY_MIN_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_CHARACTERS;FRONTEND_PASSWORD_POLICY_MIN_CHARACTERS - defaultValue: "8" - type: int - description: Define the minimum password length. Defaults to 8 if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_PASSWORD_POLICY_MIN_DIGITS: - name: OC_PASSWORD_POLICY_MIN_DIGITS;FRONTEND_PASSWORD_POLICY_MIN_DIGITS - defaultValue: "1" - type: int - description: Define the minimum number of digits. Defaults to 1 if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS;FRONTEND_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS - defaultValue: "1" - type: int - description: Define the minimum number of uppercase letters. Defaults to 1 if not - set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS;FRONTEND_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS - defaultValue: "1" - type: int - description: Define the minimum number of characters from the special characters - list to be present. Defaults to 1 if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS;FRONTEND_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS - defaultValue: "1" - type: int - description: Define the minimum number of lowercase letters. Defaults to 1 if not - set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_PUBLIC_URL: - name: OC_URL;FRONTEND_PUBLIC_URL - defaultValue: https://localhost:9200 - type: string - description: The public facing URL of the oCIS frontend. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_READONLY_USER_ATTRIBUTES: - name: FRONTEND_READONLY_USER_ATTRIBUTES - defaultValue: '[]' - type: '[]string' - description: 'A list of user attributes to indicate as read-only. Supported values: - ''user.onPremisesSamAccountName'' (username), ''user.displayName'', ''user.mail'', - ''user.passwordProfile'' (password), ''user.appRoleAssignments'' (role), ''user.memberOf'' - (groups), ''user.accountEnabled'' (login allowed), ''drive.quota'' (quota). See - the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_SEARCH_MIN_LENGTH: - name: FRONTEND_SEARCH_MIN_LENGTH - defaultValue: "3" - type: int - description: Minimum number of characters to enter before a client should start - a search for Share receivers. This setting can be used to customize the user experience - if e.g too many results are displayed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;FRONTEND_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;FRONTEND_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_SKIP_USER_GROUPS_IN_TOKEN: - name: FRONTEND_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;FRONTEND_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_TRACING_ENABLED: - name: OC_TRACING_ENABLED;FRONTEND_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;FRONTEND_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_TRACING_TYPE: - name: OC_TRACING_TYPE;FRONTEND_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE: - name: FRONTEND_UPLOAD_HTTP_METHOD_OVERRIDE - defaultValue: "" - type: string - description: Advise TUS to replace PATCH requests by POST requests. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -FRONTEND_UPLOAD_MAX_CHUNK_SIZE: - name: FRONTEND_UPLOAD_MAX_CHUNK_SIZE - defaultValue: "10000000" - type: int - description: Sets the max chunk sizes in bytes for uploads via the clients. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_APP_REGISTRY_ENDPOINT: - name: GATEWAY_APP_REGISTRY_ENDPOINT - defaultValue: eu.opencloud.api.app-registry - type: string - description: The endpoint of the app-registry service. Can take a service name or - a gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_AUTH_APP_ENDPOINT: - name: GATEWAY_AUTH_APP_ENDPOINT - defaultValue: eu.opencloud.api.auth-app - type: string - description: The endpoint of the auth-app service. Can take a service name or a - gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_AUTH_BASIC_ENDPOINT: - name: GATEWAY_AUTH_BASIC_ENDPOINT - defaultValue: eu.opencloud.api.auth-basic - type: string - description: The endpoint of the auth-basic service. Can take a service name or - a gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_AUTH_BEARER_ENDPOINT: - name: GATEWAY_AUTH_BEARER_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the auth-bearer service. Can take a service name or - a gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_AUTH_MACHINE_ENDPOINT: - name: GATEWAY_AUTH_MACHINE_ENDPOINT - defaultValue: eu.opencloud.api.auth-machine - type: string - description: The endpoint of the auth-machine service. Can take a service name or - a gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_AUTH_SERVICE_ENDPOINT: - name: GATEWAY_AUTH_SERVICE_ENDPOINT - defaultValue: eu.opencloud.api.auth-service - type: string - description: The endpoint of the auth-service service. Can take a service name or - a gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT: - name: GATEWAY_COMMIT_SHARE_TO_STORAGE_GRANT - defaultValue: "true" - type: bool - description: Commit shares to storage grants. This grants access to shared resources - for the share receiver directly on the storage. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_CREATE_HOME_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;GATEWAY_CREATE_HOME_CACHE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to use for authentication. Only applies when store type - 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_CREATE_HOME_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;GATEWAY_CREATE_HOME_CACHE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to use for authentication. Only applies when store type - 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_CREATE_HOME_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;GATEWAY_CREATE_HOME_CACHE_DISABLE_PERSISTENCE - defaultValue: "false" - type: bool - description: Disables persistence of the create home cache. Only applies when store - type 'nats-js-kv' is configured. Defaults to false. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_CREATE_HOME_CACHE_STORE: - name: OC_CACHE_STORE;GATEWAY_CREATE_HOME_CACHE_STORE - defaultValue: memory - type: string - 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: "" -GATEWAY_CREATE_HOME_CACHE_STORE_NODES: - name: OC_CACHE_STORE_NODES;GATEWAY_CREATE_HOME_CACHE_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -GATEWAY_CREATE_HOME_CACHE_TTL: - name: OC_CACHE_TTL;GATEWAY_CREATE_HOME_CACHE_TTL - defaultValue: 5m0s - type: Duration - description: Default time to live for user info in the cache. Only applied when - access tokens has no expiration. See the Environment Variable Types description - for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_DEBUG_ADDR: - name: GATEWAY_DEBUG_ADDR - defaultValue: 127.0.0.1:9143 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_DEBUG_PPROF: - name: GATEWAY_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_DEBUG_TOKEN: - name: GATEWAY_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_DEBUG_ZPAGES: - name: GATEWAY_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN: - name: GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN - defaultValue: "true" - type: bool - description: Disable creation of the home space on login. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_FRONTEND_PUBLIC_URL: - name: OC_URL;GATEWAY_FRONTEND_PUBLIC_URL - defaultValue: https://localhost:9200 - type: string - description: The public facing URL of the OpenCloud frontend. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_GROUPS_ENDPOINT: - name: GATEWAY_GROUPS_ENDPOINT - defaultValue: eu.opencloud.api.groups - type: string - description: The endpoint of the groups service. Can take a service name or a gRPC - URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_GRPC_ADDR: - name: OC_GATEWAY_GRPC_ADDR;GATEWAY_GRPC_ADDR - defaultValue: 127.0.0.1:9142 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;GATEWAY_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_JWT_SECRET: - name: OC_JWT_SECRET;GATEWAY_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_LOG_COLOR: - name: OC_LOG_COLOR;GATEWAY_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_LOG_FILE: - name: OC_LOG_FILE;GATEWAY_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_LOG_LEVEL: - name: OC_LOG_LEVEL;GATEWAY_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_LOG_PRETTY: - name: OC_LOG_PRETTY;GATEWAY_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_OCM_ENDPOINT: - name: GATEWAY_OCM_ENDPOINT - defaultValue: eu.opencloud.api.ocm - type: string - description: The endpoint of the ocm service. Can take a service name or a gRPC - URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_PERMISSIONS_ENDPOINT: - name: GATEWAY_PERMISSIONS_ENDPOINT - defaultValue: eu.opencloud.api.settings - type: string - description: The endpoint of the permissions service. Can take a service name or - a gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_PROVIDER_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;GATEWAY_PROVIDER_CACHE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to use for authentication. Only applies when store type - 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_PROVIDER_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;GATEWAY_PROVIDER_CACHE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to use for authentication. Only applies when store type - 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_PROVIDER_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;GATEWAY_PROVIDER_CACHE_DISABLE_PERSISTENCE - defaultValue: "false" - type: bool - description: Disables persistence of the provider cache. Only applies when store - type 'nats-js-kv' is configured. Defaults to false. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_PROVIDER_CACHE_STORE: - name: OC_CACHE_STORE;GATEWAY_PROVIDER_CACHE_STORE - defaultValue: noop - type: string - 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: "" -GATEWAY_PROVIDER_CACHE_STORE_NODES: - name: OC_CACHE_STORE_NODES;GATEWAY_PROVIDER_CACHE_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -GATEWAY_PROVIDER_CACHE_TTL: - name: OC_CACHE_TTL;GATEWAY_PROVIDER_CACHE_TTL - defaultValue: 5m0s - type: Duration - description: Default time to live for user info in the cache. Only applied when - access tokens has no expiration. See the Environment Variable Types description - for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_SHARE_FOLDER_NAME: - name: GATEWAY_SHARE_FOLDER_NAME - defaultValue: Shares - type: string - description: Name of the share folder in users' home space. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_SHARING_ENDPOINT: - name: GATEWAY_SHARING_ENDPOINT - defaultValue: eu.opencloud.api.sharing - type: string - description: The endpoint of the shares service. Can take a service name or a gRPC - URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_SKIP_USER_GROUPS_IN_TOKEN: - name: GATEWAY_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_STORAGE_PUBLIC_LINK_ENDPOINT: - name: GATEWAY_STORAGE_PUBLIC_LINK_ENDPOINT - defaultValue: eu.opencloud.api.storage-publiclink - type: string - description: The endpoint of the storage-publiclink service. Can take a service - name or a gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_STORAGE_REGISTRY_CONFIG_JSON: - name: GATEWAY_STORAGE_REGISTRY_CONFIG_JSON - defaultValue: "" - type: string - description: Additional configuration for the storage registry in json format. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_STORAGE_REGISTRY_DRIVER: - name: GATEWAY_STORAGE_REGISTRY_DRIVER - defaultValue: spaces - type: string - description: The driver name of the storage registry to use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_STORAGE_REGISTRY_RULES: - name: GATEWAY_STORAGE_REGISTRY_RULES - defaultValue: '[]' - type: '[]string' - description: The rules for the storage registry. See the Environment Variable Types - description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_STORAGE_SHARES_ENDPOINT: - name: GATEWAY_STORAGE_SHARES_ENDPOINT - defaultValue: eu.opencloud.api.storage-shares - type: string - description: The endpoint of the storage-shares service. Can take a service name - or a gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_STORAGE_USERS_ENDPOINT: - name: GATEWAY_STORAGE_USERS_ENDPOINT - defaultValue: eu.opencloud.api.storage-users - type: string - description: The endpoint of the storage-users service. Can take a service name - or a gRPC URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_STORAGE_USERS_MOUNT_ID: - name: GATEWAY_STORAGE_USERS_MOUNT_ID - defaultValue: "" - type: string - description: Mount ID of this storage. Admins can set the ID for the storage in - this config option manually which is then used to reference the storage. Any reasonable - long string is possible, preferably this would be an UUIDv4 format. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;GATEWAY_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_TRACING_ENABLED: - name: OC_TRACING_ENABLED;GATEWAY_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;GATEWAY_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_TRACING_TYPE: - name: OC_TRACING_TYPE;GATEWAY_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_TRANSFER_EXPIRES: - name: GATEWAY_TRANSFER_EXPIRES - defaultValue: "86400" - type: int - description: Expiry for the gateway tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GATEWAY_USERS_ENDPOINT: - name: GATEWAY_USERS_ENDPOINT - defaultValue: eu.opencloud.api.users - type: string - description: The endpoint of the users service. Can take a service name or a gRPC - URI with the dns, kubernetes or unix protocol. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_APPLICATION_DISPLAYNAME: - name: GRAPH_APPLICATION_DISPLAYNAME - defaultValue: ownCloud Infinite Scale - type: string - description: The ocis application name. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_APPLICATION_ID: - name: GRAPH_APPLICATION_ID - defaultValue: "" - type: string - description: The ocis application ID shown in the graph. All app roles are tied - to this ID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_ASSIGN_DEFAULT_USER_ROLE: - name: GRAPH_ASSIGN_DEFAULT_USER_ROLE - defaultValue: "true" - type: bool - description: Whether to assign newly created users the default role 'User'. Set - this to 'false' if you want to assign roles manually, or if the role assignment - should happen at first login. Set this to 'true' (the default) to assign the role - 'User' when creating a new user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_AVAILABLE_ROLES: - name: GRAPH_AVAILABLE_ROLES - defaultValue: '[b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5 a8d5fe5e-96e3-418d-825b-534dbdf22b99 - fb6c3e19-e378-47e5-b277-9732f9de6e21 58c63c02-1d89-4572-916a-870abc5a1b7d 2d00ce52-1fc2-4dbc-8b95-a73b73395f5a - 1c996275-f1c9-4e71-abdf-a42f6495e960 312c0871-5ef7-4b3a-85b6-0e4074c64049]' - type: '[]string' - description: A comma separated list of roles that are available for assignment. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;GRAPH_CACHE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the cache. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;GRAPH_CACHE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the cache. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;GRAPH_CACHE_DISABLE_PERSISTENCE - defaultValue: "false" - type: bool - 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: "" -GRAPH_CACHE_STORE: - name: OC_CACHE_STORE;GRAPH_CACHE_STORE - defaultValue: memory - type: string - 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: "" -GRAPH_CACHE_STORE_DATABASE: - name: GRAPH_CACHE_STORE_DATABASE - defaultValue: cache-roles - type: string - description: The database name the configured store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_CACHE_STORE_NODES: - name: OC_CACHE_STORE_NODES;GRAPH_CACHE_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store 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: "" -GRAPH_CACHE_STORE_TABLE: - name: GRAPH_CACHE_STORE_TABLE - defaultValue: "" - type: string - description: The database table the store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_CACHE_TTL: - name: OC_CACHE_TTL;GRAPH_CACHE_TTL - defaultValue: 336h0m0s - type: Duration - description: Time to live for cache records in the graph. Defaults to '336h' (2 - weeks). See the Environment Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;GRAPH_CORS_ALLOW_CREDENTIALS - defaultValue: "true" - type: bool - 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: "" -GRAPH_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;GRAPH_CORS_ALLOW_HEADERS - defaultValue: '[Authorization Origin Content-Type Accept X-Requested-With X-Request-Id - Purge Restore]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;GRAPH_CORS_ALLOW_METHODS - defaultValue: '[GET POST PUT PATCH DELETE OPTIONS]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;GRAPH_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_DEBUG_ADDR: - name: GRAPH_DEBUG_ADDR - defaultValue: 127.0.0.1:9124 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_DEBUG_PPROF: - name: GRAPH_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_DEBUG_TOKEN: - name: GRAPH_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_DEBUG_ZPAGES: - name: GRAPH_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_DISABLE_USER_MECHANISM: - name: OC_LDAP_DISABLE_USER_MECHANISM;GRAPH_DISABLE_USER_MECHANISM - defaultValue: attribute - type: string - description: An option to control the behavior for disabling users. Supported options - are 'none', 'attribute' and 'group'. If set to 'group', disabling a user via API - will add the user to the configured group for disabled users, if set to 'attribute' - this will be done in the ldap user entry, if set to 'none' the disable request - is not processed. Default is 'attribute'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_DISABLED_USERS_GROUP_DN: - name: OC_LDAP_DISABLED_USERS_GROUP_DN;GRAPH_DISABLED_USERS_GROUP_DN - defaultValue: cn=DisabledUsersGroup,ou=groups,o=libregraph-idm - type: string - description: The distinguished name of the group to which added users will be classified - as disabled when 'disable_user_mechanism' is set to 'group'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;GRAPH_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;GRAPH_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;GRAPH_EVENTS_CLUSTER - defaultValue: opencloud-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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;GRAPH_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;GRAPH_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. Set to - a empty string to disable emitting events. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_EVENTS_TLS_INSECURE: - name: OC_INSECURE;GRAPH_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;GRAPH_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided GRAPH_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_GROUP_MEMBERS_PATCH_LIMIT: - name: GRAPH_GROUP_MEMBERS_PATCH_LIMIT - defaultValue: "20" - type: int - description: The amount of group members allowed to be added with a single patch - request. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_HTTP_ADDR: - name: GRAPH_HTTP_ADDR - defaultValue: 127.0.0.1:9120 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_HTTP_API_TOKEN: - name: GRAPH_HTTP_API_TOKEN - defaultValue: "" - type: string - description: An optional API bearer token - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_HTTP_ROOT: - name: GRAPH_HTTP_ROOT - defaultValue: /graph - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_IDENTITY_BACKEND: - name: GRAPH_IDENTITY_BACKEND - defaultValue: ldap - type: string - description: The user identity backend to use. Supported backend types are 'ldap' - and 'cs3'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_IDENTITY_SEARCH_MIN_LENGTH: - name: GRAPH_IDENTITY_SEARCH_MIN_LENGTH - defaultValue: "3" - type: int - description: The minimum length the search term needs to have for unprivileged users - when searching for users or groups. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_INCLUDE_OCM_SHAREES: - name: OC_ENABLE_OCM;GRAPH_INCLUDE_OCM_SHAREES - defaultValue: "false" - type: bool - description: Include OCM sharees when listing users. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_JWT_SECRET: - name: OC_JWT_SECRET;GRAPH_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_KEYCLOAK_BASE_PATH: - name: OC_KEYCLOAK_BASE_PATH;GRAPH_KEYCLOAK_BASE_PATH - defaultValue: "" - type: string - description: The URL to access keycloak. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_KEYCLOAK_CLIENT_ID: - name: OC_KEYCLOAK_CLIENT_ID;GRAPH_KEYCLOAK_CLIENT_ID - defaultValue: "" - type: string - description: The client id to authenticate with keycloak. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_KEYCLOAK_CLIENT_REALM: - name: OC_KEYCLOAK_CLIENT_REALM;GRAPH_KEYCLOAK_CLIENT_REALM - defaultValue: "" - type: string - description: The realm the client is defined in. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_KEYCLOAK_CLIENT_SECRET: - name: OC_KEYCLOAK_CLIENT_SECRET;GRAPH_KEYCLOAK_CLIENT_SECRET - defaultValue: "" - type: string - description: The client secret to use in authentication. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_KEYCLOAK_INSECURE_SKIP_VERIFY: - name: OC_KEYCLOAK_INSECURE_SKIP_VERIFY;GRAPH_KEYCLOAK_INSECURE_SKIP_VERIFY - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for Keycloak connections. Do not - set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_KEYCLOAK_USER_REALM: - name: OC_KEYCLOAK_USER_REALM;GRAPH_KEYCLOAK_USER_REALM - defaultValue: "" - type: string - description: The realm users are defined. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_BIND_DN: - name: OC_LDAP_BIND_DN;GRAPH_LDAP_BIND_DN - defaultValue: uid=libregraph,ou=sysusers,o=libregraph-idm - type: string - description: LDAP DN to use for simple bind authentication with the target LDAP - server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_BIND_PASSWORD: - name: OC_LDAP_BIND_PASSWORD;GRAPH_LDAP_BIND_PASSWORD - defaultValue: "" - type: string - description: Password to use for authenticating the 'bind_dn'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_CACERT: - name: OC_LDAP_CACERT;GRAPH_LDAP_CACERT - defaultValue: /var/lib/opencloud/idm/ldap.crt - type: string - description: Path/File name for the root CA certificate (in PEM format) used to - validate TLS server certificates of the LDAP service. If not defined, the root - directory derives from $OC_BASE_DATA_PATH/idm. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_EDUCATION_RESOURCES_ENABLED: - name: GRAPH_LDAP_EDUCATION_RESOURCES_ENABLED - defaultValue: "false" - type: bool - description: Enable LDAP support for managing education related resources. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_GROUP_BASE_DN: - name: OC_LDAP_GROUP_BASE_DN;GRAPH_LDAP_GROUP_BASE_DN - defaultValue: ou=groups,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_GROUP_CREATE_BASE_DN: - name: GRAPH_LDAP_GROUP_CREATE_BASE_DN - defaultValue: ou=groups,o=libregraph-idm - type: string - description: Parent DN under which new groups are created. This DN needs to be subordinate - to the 'GRAPH_LDAP_GROUP_BASE_DN'. This setting is only relevant when 'GRAPH_LDAP_SERVER_WRITE_ENABLED' - is 'true'. It defaults to the value of 'GRAPH_LDAP_GROUP_BASE_DN'. All groups - outside of this subtree are treated as readonly groups and cannot be updated. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_GROUP_FILTER: - name: OC_LDAP_GROUP_FILTER;GRAPH_LDAP_GROUP_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for group searches. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_GROUP_ID_ATTRIBUTE: - name: OC_LDAP_GROUP_SCHEMA_ID;GRAPH_LDAP_GROUP_ID_ATTRIBUTE - defaultValue: owncloudUUID - type: string - description: LDAP Attribute to use as the unique id for groups. This should be a - stable globally unique ID like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_GROUP_MEMBER_ATTRIBUTE: - name: OC_LDAP_GROUP_SCHEMA_MEMBER;GRAPH_LDAP_GROUP_MEMBER_ATTRIBUTE - defaultValue: member - type: string - description: LDAP Attribute that is used for group members. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_GROUP_NAME_ATTRIBUTE: - name: OC_LDAP_GROUP_SCHEMA_GROUPNAME;GRAPH_LDAP_GROUP_NAME_ATTRIBUTE - defaultValue: cn - type: string - description: LDAP Attribute to use for the name of groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_GROUP_OBJECTCLASS: - name: OC_LDAP_GROUP_OBJECTCLASS;GRAPH_LDAP_GROUP_OBJECTCLASS - defaultValue: groupOfNames - type: string - description: The object class to use for groups in the default group search filter - ('groupOfNames'). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING;GRAPH_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'ID' attribute for groups is of the - 'OCTETSTRING' syntax. This is required when using the 'objectGUID' attribute of - Active Directory for the group ID's. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_GROUP_SEARCH_SCOPE: - name: OC_LDAP_GROUP_SCOPE;GRAPH_LDAP_GROUP_SEARCH_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up groups. Supported scopes are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_INSECURE: - name: OC_LDAP_INSECURE;GRAPH_LDAP_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for the LDAP connections. Do not - set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_REFINT_ENABLED: - name: GRAPH_LDAP_REFINT_ENABLED - defaultValue: "false" - type: bool - description: Signals that the server has the refint plugin enabled, which makes - some actions not needed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SCHOOL_BASE_DN: - name: GRAPH_LDAP_SCHOOL_BASE_DN - defaultValue: "" - type: string - description: Search base DN for looking up LDAP schools. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SCHOOL_FILTER: - name: GRAPH_LDAP_SCHOOL_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for school searches. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SCHOOL_ID_ATTRIBUTE: - name: GRAPH_LDAP_SCHOOL_ID_ATTRIBUTE - defaultValue: "" - type: string - description: LDAP Attribute to use as the unique id for schools. This should be - a stable globally unique ID like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SCHOOL_NAME_ATTRIBUTE: - name: GRAPH_LDAP_SCHOOL_NAME_ATTRIBUTE - defaultValue: "" - type: string - description: LDAP Attribute to use for the name of a school. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SCHOOL_NUMBER_ATTRIBUTE: - name: GRAPH_LDAP_SCHOOL_NUMBER_ATTRIBUTE - defaultValue: "" - type: string - description: LDAP Attribute to use for the number of a school. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SCHOOL_OBJECTCLASS: - name: GRAPH_LDAP_SCHOOL_OBJECTCLASS - defaultValue: "" - type: string - description: The object class to use for schools in the default school search filter. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SCHOOL_SEARCH_SCOPE: - name: GRAPH_LDAP_SCHOOL_SEARCH_SCOPE - defaultValue: "" - type: string - description: LDAP search scope to use when looking up schools. Supported scopes - are 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SCHOOL_TERMINATION_MIN_GRACE_DAYS: - name: GRAPH_LDAP_SCHOOL_TERMINATION_MIN_GRACE_DAYS - defaultValue: "0" - type: int - description: When setting a 'terminationDate' for a school, require the date to - be at least this number of days in the future. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SERVER_USE_PASSWORD_MODIFY_EXOP: - name: GRAPH_LDAP_SERVER_USE_PASSWORD_MODIFY_EXOP - defaultValue: "true" - type: bool - description: Use the 'Password Modify Extended Operation' for updating user passwords. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SERVER_UUID: - name: GRAPH_LDAP_SERVER_UUID - defaultValue: "false" - type: bool - description: If set to true, rely on the LDAP Server to generate a unique ID for - users and groups, like when using 'entryUUID' as the user ID attribute. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_SERVER_WRITE_ENABLED: - name: OC_LDAP_SERVER_WRITE_ENABLED;GRAPH_LDAP_SERVER_WRITE_ENABLED - defaultValue: "true" - type: bool - description: Allow creating, modifying and deleting LDAP users via the GRAPH API. - This can only be set to 'true' when keeping default settings for the LDAP user - and group attribute types (the 'OC_LDAP_USER_SCHEMA_* and 'OC_LDAP_GROUP_SCHEMA_* - variables). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_URI: - name: OC_LDAP_URI;GRAPH_LDAP_URI - defaultValue: ldaps://localhost:9235 - type: string - description: URI of the LDAP Server to connect to. Supported URI schemes are 'ldaps://' - and 'ldap://' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_USER_BASE_DN: - name: OC_LDAP_USER_BASE_DN;GRAPH_LDAP_USER_BASE_DN - defaultValue: ou=users,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_USER_DISPLAYNAME_ATTRIBUTE: - name: OC_LDAP_USER_SCHEMA_DISPLAYNAME;LDAP_USER_SCHEMA_DISPLAY_NAME;GRAPH_LDAP_USER_DISPLAYNAME_ATTRIBUTE - defaultValue: displayName - type: string - description: LDAP Attribute to use for the display name of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: LDAP_USER_SCHEMA_DISPLAY_NAME changing name for consistency | | | | - LDAP_USER_SCHEMA_DISPLAY_NAME changing name for consistency | LDAP_USER_SCHEMA_DISPLAY_NAME - changing name for consistency | LDAP_USER_SCHEMA_DISPLAY_NAME changing name for - consistency | LDAP_USER_SCHEMA_DISPLAY_NAME changing name for consistency -GRAPH_LDAP_USER_EMAIL_ATTRIBUTE: - name: OC_LDAP_USER_SCHEMA_MAIL;GRAPH_LDAP_USER_EMAIL_ATTRIBUTE - defaultValue: mail - type: string - description: LDAP Attribute to use for the email address of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_USER_FILTER: - name: OC_LDAP_USER_FILTER;GRAPH_LDAP_USER_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for user search like '(objectclass=ownCloud)'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_USER_NAME_ATTRIBUTE: - name: OC_LDAP_USER_SCHEMA_USERNAME;GRAPH_LDAP_USER_NAME_ATTRIBUTE - defaultValue: uid - type: string - description: LDAP Attribute to use for username of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_USER_OBJECTCLASS: - name: OC_LDAP_USER_OBJECTCLASS;GRAPH_LDAP_USER_OBJECTCLASS - defaultValue: inetOrgPerson - type: string - description: The object class to use for users in the default user search filter - ('inetOrgPerson'). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING;GRAPH_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'ID' attribute for users is of the - 'OCTETSTRING' syntax. This is required when using the 'objectGUID' attribute of - Active Directory for the user ID's. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_USER_SCOPE: - name: OC_LDAP_USER_SCOPE;GRAPH_LDAP_USER_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up users. Supported scopes are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_USER_TYPE_ATTRIBUTE: - name: OC_LDAP_USER_SCHEMA_USER_TYPE;GRAPH_LDAP_USER_TYPE_ATTRIBUTE - defaultValue: ownCloudUserType - type: string - description: LDAP Attribute to distinguish between 'Member' and 'Guest' users. Default - is 'ownCloudUserType'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LDAP_USER_UID_ATTRIBUTE: - name: OC_LDAP_USER_SCHEMA_ID;GRAPH_LDAP_USER_UID_ATTRIBUTE - defaultValue: owncloudUUID - type: string - description: LDAP Attribute to use as the unique ID for users. This should be a - stable globally unique ID like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LOG_COLOR: - name: OC_LOG_COLOR;GRAPH_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LOG_FILE: - name: OC_LOG_FILE;GRAPH_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LOG_LEVEL: - name: OC_LOG_LEVEL;GRAPH_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_LOG_PRETTY: - name: OC_LOG_PRETTY;GRAPH_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_MAX_CONCURRENCY: - name: OC_MAX_CONCURRENCY;GRAPH_MAX_CONCURRENCY - defaultValue: "20" - type: int - description: The maximum number of concurrent requests the service will handle. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;GRAPH_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;GRAPH_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_SPACES_DEFAULT_QUOTA: - name: GRAPH_SPACES_DEFAULT_QUOTA - defaultValue: "1000000000" - type: string - description: The default quota in bytes. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_SPACES_EXTENDED_SPACE_PROPERTIES_CACHE_TTL: - name: GRAPH_SPACES_EXTENDED_SPACE_PROPERTIES_CACHE_TTL - defaultValue: "60000000000" - type: int - description: Max TTL in seconds for the spaces property cache. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_SPACES_GROUPS_CACHE_TTL: - name: GRAPH_SPACES_GROUPS_CACHE_TTL - defaultValue: "60000000000" - type: int - description: Max TTL in seconds for the spaces groups cache. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_SPACES_STORAGE_USERS_ADDRESS: - name: GRAPH_SPACES_STORAGE_USERS_ADDRESS - defaultValue: eu.opencloud.api.storage-users - type: string - description: The address of the storage-users service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_SPACES_USERS_CACHE_TTL: - name: GRAPH_SPACES_USERS_CACHE_TTL - defaultValue: "60000000000" - type: int - description: Max TTL in seconds for the spaces users cache. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_SPACES_WEBDAV_BASE: - name: OC_URL;GRAPH_SPACES_WEBDAV_BASE - defaultValue: https://localhost:9200 - type: string - description: The public facing URL of WebDAV. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_SPACES_WEBDAV_PATH: - name: GRAPH_SPACES_WEBDAV_PATH - defaultValue: /dav/spaces/ - type: string - description: The WebDAV sub-path for spaces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;GRAPH_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_TRACING_ENABLED: - name: OC_TRACING_ENABLED;GRAPH_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;GRAPH_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_TRACING_TYPE: - name: OC_TRACING_TYPE;GRAPH_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_TRANSLATION_PATH: - name: OC_TRANSLATION_PATH;GRAPH_TRANSLATION_PATH - defaultValue: "" - type: string - description: (optional) Set this to a path with custom translations to overwrite - the builtin translations. Note that file and folder naming rules apply, see the - documentation for more details. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_USER_ENABLED_ATTRIBUTE: - name: OC_LDAP_USER_ENABLED_ATTRIBUTE;GRAPH_USER_ENABLED_ATTRIBUTE - defaultValue: ownCloudUserEnabled - type: string - description: LDAP Attribute to use as a flag telling if the user is enabled or disabled. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GRAPH_USERNAME_MATCH: - name: GRAPH_USERNAME_MATCH - defaultValue: default - type: string - description: Apply restrictions to usernames. Supported values are 'default' and - 'none'. When set to 'default', user names must not start with a number and are - restricted to ASCII characters. When set to 'none', no restrictions are applied. - The default value is 'default'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_DEBUG_ADDR: - name: GROUPS_DEBUG_ADDR - defaultValue: 127.0.0.1:9161 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_DEBUG_PPROF: - name: GROUPS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_DEBUG_TOKEN: - name: GROUPS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_DEBUG_ZPAGES: - name: GROUPS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_DRIVER: - name: GROUPS_DRIVER - defaultValue: ldap - type: string - description: The driver which should be used by the groups service. Supported values - are 'ldap' and 'owncloudsql'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_GRPC_ADDR: - name: GROUPS_GRPC_ADDR - defaultValue: 127.0.0.1:9160 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;GROUPS_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_IDP_URL: - name: OC_URL;OC_OIDC_ISSUER;GROUPS_IDP_URL - defaultValue: https://localhost:9200 - type: string - description: The identity provider value to set in the group IDs of the CS3 group - objects for groups returned by this group provider. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_JWT_SECRET: - name: OC_JWT_SECRET;GROUPS_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_BIND_DN: - name: OC_LDAP_BIND_DN;GROUPS_LDAP_BIND_DN - defaultValue: uid=reva,ou=sysusers,o=libregraph-idm - type: string - description: LDAP DN to use for simple bind authentication with the target LDAP - server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_BIND_PASSWORD: - name: OC_LDAP_BIND_PASSWORD;GROUPS_LDAP_BIND_PASSWORD - defaultValue: "" - type: string - description: Password to use for authenticating the 'bind_dn'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_CACERT: - name: OC_LDAP_CACERT;GROUPS_LDAP_CACERT - defaultValue: /var/lib/opencloud/idm/ldap.crt - type: string - description: Path/File name for the root CA certificate (in PEM format) used to - validate TLS server certificates of the LDAP service. If not defined, the root - directory derives from $OC_BASE_DATA_PATH/idm. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_BASE_DN: - name: OC_LDAP_GROUP_BASE_DN;GROUPS_LDAP_GROUP_BASE_DN - defaultValue: ou=groups,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_FILTER: - name: OC_LDAP_GROUP_FILTER;GROUPS_LDAP_GROUP_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for group searches. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_OBJECTCLASS: - name: OC_LDAP_GROUP_OBJECTCLASS;GROUPS_LDAP_GROUP_OBJECTCLASS - defaultValue: groupOfNames - type: string - description: The object class to use for groups in the default group search filter - ('groupOfNames'). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_SCHEMA_DISPLAYNAME: - name: OC_LDAP_GROUP_SCHEMA_DISPLAYNAME;GROUPS_LDAP_GROUP_SCHEMA_DISPLAYNAME - defaultValue: cn - type: string - description: LDAP Attribute to use for the displayname of groups (often the same - as groupname attribute). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_SCHEMA_GROUPNAME: - name: OC_LDAP_GROUP_SCHEMA_GROUPNAME;GROUPS_LDAP_GROUP_SCHEMA_GROUPNAME - defaultValue: cn - type: string - description: LDAP Attribute to use for the name of groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_SCHEMA_ID: - name: OC_LDAP_GROUP_SCHEMA_ID;GROUPS_LDAP_GROUP_SCHEMA_ID - defaultValue: ownclouduuid - type: string - description: LDAP Attribute to use as the unique id for groups. This should be a - stable globally unique ID like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING;GROUPS_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'id' attribute for groups is of the - 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute - of Active Directory for the group ID's. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_SCHEMA_MAIL: - name: OC_LDAP_GROUP_SCHEMA_MAIL;GROUPS_LDAP_GROUP_SCHEMA_MAIL - defaultValue: mail - type: string - description: LDAP Attribute to use for the email address of groups (can be empty). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_SCHEMA_MEMBER: - name: OC_LDAP_GROUP_SCHEMA_MEMBER;GROUPS_LDAP_GROUP_SCHEMA_MEMBER - defaultValue: member - type: string - description: LDAP Attribute that is used for group members. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_SCOPE: - name: OC_LDAP_GROUP_SCOPE;GROUPS_LDAP_GROUP_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up groups. Supported scopes are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_GROUP_SUBSTRING_FILTER_TYPE: - name: LDAP_GROUP_SUBSTRING_FILTER_TYPE;GROUPS_LDAP_GROUP_SUBSTRING_FILTER_TYPE - defaultValue: any - type: string - description: Type of substring search filter to use for substring searches for groups. - Supported values are 'initial', 'final' and 'any'. The value 'initial' is used - for doing prefix only searches, 'final' for doing suffix only searches or 'any' - for doing full substring searches - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_INSECURE: - name: OC_LDAP_INSECURE;GROUPS_LDAP_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for the LDAP connections. Do not - set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_URI: - name: OC_LDAP_URI;GROUPS_LDAP_URI - defaultValue: ldaps://localhost:9235 - type: string - description: URI of the LDAP Server to connect to. Supported URI schemes are 'ldaps://' - and 'ldap://' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_USER_BASE_DN: - name: OC_LDAP_USER_BASE_DN;GROUPS_LDAP_USER_BASE_DN - defaultValue: ou=users,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_USER_FILTER: - name: OC_LDAP_USER_FILTER;GROUPS_LDAP_USER_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for user search like '(objectclass=ownCloud)'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_USER_OBJECTCLASS: - name: OC_LDAP_USER_OBJECTCLASS;GROUPS_LDAP_USER_OBJECTCLASS - defaultValue: inetOrgPerson - type: string - description: The object class to use for users in the default user search filter - ('inetOrgPerson'). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_USER_SCHEMA_DISPLAYNAME: - name: OC_LDAP_USER_SCHEMA_DISPLAYNAME;GROUPS_LDAP_USER_SCHEMA_DISPLAYNAME - defaultValue: displayname - type: string - description: LDAP Attribute to use for the displayname of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_USER_SCHEMA_ID: - name: OC_LDAP_USER_SCHEMA_ID;GROUPS_LDAP_USER_SCHEMA_ID - defaultValue: ownclouduuid - type: string - description: LDAP Attribute to use as the unique id for users. This should be a - stable globally unique id like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING;GROUPS_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'ID' attribute for users is of the - 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute - of Active Directory for the user ID's. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_USER_SCHEMA_MAIL: - name: OC_LDAP_USER_SCHEMA_MAIL;GROUPS_LDAP_USER_SCHEMA_MAIL - defaultValue: mail - type: string - description: LDAP Attribute to use for the email address of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_USER_SCHEMA_USERNAME: - name: OC_LDAP_USER_SCHEMA_USERNAME;GROUPS_LDAP_USER_SCHEMA_USERNAME - defaultValue: uid - type: string - description: LDAP Attribute to use for username of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LDAP_USER_SCOPE: - name: OC_LDAP_USER_SCOPE;GROUPS_LDAP_USER_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up users. Supported scopes are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LOG_COLOR: - name: OC_LOG_COLOR;GROUPS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LOG_FILE: - name: OC_LOG_FILE;GROUPS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LOG_LEVEL: - name: OC_LOG_LEVEL;GROUPS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_LOG_PRETTY: - name: OC_LOG_PRETTY;GROUPS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_DB_HOST: - name: GROUPS_OWNCLOUDSQL_DB_HOST - defaultValue: mysql - type: string - description: Hostname of the database server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_DB_NAME: - name: GROUPS_OWNCLOUDSQL_DB_NAME - defaultValue: owncloud - type: string - description: Name of the owncloud database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_DB_PASSWORD: - name: GROUPS_OWNCLOUDSQL_DB_PASSWORD - defaultValue: "" - type: string - description: Password for the database user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_DB_PORT: - name: GROUPS_OWNCLOUDSQL_DB_PORT - defaultValue: "3306" - type: int - description: Network port to use for the database connection. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_DB_USERNAME: - name: GROUPS_OWNCLOUDSQL_DB_USERNAME - defaultValue: owncloud - type: string - description: Database user to use for authenticating with the owncloud database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_ENABLE_MEDIAL_SEARCH: - name: GROUPS_OWNCLOUDSQL_ENABLE_MEDIAL_SEARCH - defaultValue: "false" - type: bool - description: Allow 'medial search' when searching for users instead of just doing - a prefix search. This allows finding 'Alice' when searching for 'lic'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_IDP: - name: GROUPS_OWNCLOUDSQL_IDP - defaultValue: https://localhost:9200 - type: string - description: The identity provider value to set in the userids of the CS3 user objects - for users returned by this user provider. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID: - name: GROUPS_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID - defaultValue: "false" - type: bool - description: Join the user properties table to read user IDs. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_JOIN_USERNAME: - name: GROUPS_OWNCLOUDSQL_JOIN_USERNAME - defaultValue: "false" - type: bool - description: Join the user properties table to read usernames. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_OWNCLOUDSQL_NOBODY: - name: GROUPS_OWNCLOUDSQL_NOBODY - defaultValue: "90" - type: int64 - description: Fallback number if no numeric UID and GID properties are provided. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_SKIP_USER_GROUPS_IN_TOKEN: - name: GROUPS_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;GROUPS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;GROUPS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;GROUPS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -GROUPS_TRACING_TYPE: - name: OC_TRACING_TYPE;GROUPS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_ADMIN_PASSWORD: - name: IDM_ADMIN_PASSWORD - defaultValue: "" - type: string - description: Password to set for the oCIS 'admin' user. Either cleartext or an argon2id - hash. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_ADMIN_USER_ID: - name: OC_ADMIN_USER_ID;IDM_ADMIN_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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_CREATE_DEMO_USERS: - name: SETTINGS_SETUP_DEFAULT_ASSIGNMENTS;IDM_CREATE_DEMO_USERS - defaultValue: "false" - type: bool - description: The default role assignments the demo users should be setup. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_DATABASE_PATH: - name: IDM_DATABASE_PATH - defaultValue: /var/lib/opencloud/idm/ocis.boltdb - type: string - description: Full path to the IDM backend database. If not defined, the root directory - derives from $OC_BASE_DATA_PATH/idm. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_DEBUG_ADDR: - name: IDM_DEBUG_ADDR - defaultValue: 127.0.0.1:9239 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_DEBUG_PPROF: - name: IDM_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_DEBUG_TOKEN: - name: IDM_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_DEBUG_ZPAGES: - name: IDM_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_IDPSVC_PASSWORD: - name: IDM_IDPSVC_PASSWORD - defaultValue: "" - type: string - description: Password to set for the 'idp' service user. Either cleartext or an - argon2id hash. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_LDAPS_ADDR: - name: IDM_LDAPS_ADDR - defaultValue: 127.0.0.1:9235 - type: string - description: Listen address for the LDAPS listener (ip-addr:port). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_LDAPS_CERT: - name: IDM_LDAPS_CERT - defaultValue: /var/lib/opencloud/idm/ldap.crt - type: string - description: File name of the TLS server certificate for the LDAPS listener. If - not defined, the root directory derives from $OC_BASE_DATA_PATH/idm. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_LDAPS_KEY: - name: IDM_LDAPS_KEY - defaultValue: /var/lib/opencloud/idm/ldap.key - type: string - description: File name for the TLS certificate key for the server certificate. If - not defined, the root directory derives from $OC_BASE_DATA_PATH/idm. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_LOG_COLOR: - name: OC_LOG_COLOR;IDM_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_LOG_FILE: - name: OC_LOG_FILE;IDM_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_LOG_LEVEL: - name: OC_LOG_LEVEL;IDM_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_LOG_PRETTY: - name: OC_LOG_PRETTY;IDM_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_REVASVC_PASSWORD: - name: IDM_REVASVC_PASSWORD - defaultValue: "" - type: string - description: Password to set for the 'reva' service user. Either cleartext or an - argon2id hash. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_SVC_PASSWORD: - name: IDM_SVC_PASSWORD - defaultValue: "" - type: string - description: Password to set for the 'idm' service user. Either cleartext or an - argon2id hash. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;IDM_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_TRACING_ENABLED: - name: OC_TRACING_ENABLED;IDM_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;IDM_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDM_TRACING_TYPE: - name: OC_TRACING_TYPE;IDM_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_ACCESS_TOKEN_EXPIRATION: - name: IDP_ACCESS_TOKEN_EXPIRATION - defaultValue: "300" - type: uint64 - description: '''Access token lifespan in seconds (time before an access token is - expired).''' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_ALLOW_CLIENT_GUESTS: - name: IDP_ALLOW_CLIENT_GUESTS - defaultValue: "false" - type: bool - description: Allow guest clients to access OpenCloud. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_ALLOW_DYNAMIC_CLIENT_REGISTRATION: - name: IDP_ALLOW_DYNAMIC_CLIENT_REGISTRATION - defaultValue: "false" - type: bool - description: Allow dynamic client registration. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_ASSET_PATH: - name: IDP_ASSET_PATH - defaultValue: "" - type: string - description: Serve IDP assets from a path on the filesystem instead of the builtin - assets. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_DEBUG_ADDR: - name: IDP_DEBUG_ADDR - defaultValue: 127.0.0.1:9134 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_DEBUG_PPROF: - name: IDP_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_DEBUG_TOKEN: - name: IDP_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_DEBUG_ZPAGES: - name: IDP_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_DYNAMIC_CLIENT_SECRET_DURATION: - name: IDP_DYNAMIC_CLIENT_SECRET_DURATION - defaultValue: "0" - type: uint64 - description: Lifespan in seconds of a dynamically registered OIDC client. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_ENCRYPTION_SECRET_FILE: - name: IDP_ENCRYPTION_SECRET_FILE - defaultValue: /var/lib/opencloud/idp/encryption.key - type: string - description: Path to the encryption secret file, if unset, a new certificate will - be autogenerated upon each restart, thus invalidating all existing sessions. If - not defined, the root directory derives from $OC_BASE_DATA_PATH/idp. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_ENDPOINT_URI: - name: IDP_ENDPOINT_URI - defaultValue: "" - type: string - description: URL of the IDP endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_HTTP_ADDR: - name: IDP_HTTP_ADDR - defaultValue: 127.0.0.1:9130 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_HTTP_ROOT: - name: IDP_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_ID_TOKEN_EXPIRATION: - name: IDP_ID_TOKEN_EXPIRATION - defaultValue: "300" - type: uint64 - description: ID token lifespan in seconds (time before an ID token is expired). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_IDENTITY_MANAGER: - name: IDP_IDENTITY_MANAGER - defaultValue: ldap - type: string - description: The identity manager implementation to use. Supported identity managers - are 'ldap', 'cs3', 'libregraph' and 'guest'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_INSECURE: - name: OC_LDAP_INSECURE;IDP_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for the LDAP connections. Do not - set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_ISS: - name: OC_URL;OC_OIDC_ISSUER;IDP_ISS - defaultValue: https://localhost:9200 - type: string - description: The OIDC issuer URL to use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_BASE_DN: - name: OC_LDAP_USER_BASE_DN;IDP_LDAP_BASE_DN - defaultValue: ou=users,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_BIND_DN: - name: OC_LDAP_BIND_DN;IDP_LDAP_BIND_DN - defaultValue: uid=idp,ou=sysusers,o=libregraph-idm - type: string - description: LDAP DN to use for simple bind authentication with the target LDAP - server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_BIND_PASSWORD: - name: OC_LDAP_BIND_PASSWORD;IDP_LDAP_BIND_PASSWORD - defaultValue: "" - type: string - description: Password to use for authenticating the 'bind_dn'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_EMAIL_ATTRIBUTE: - name: OC_LDAP_USER_SCHEMA_MAIL;IDP_LDAP_EMAIL_ATTRIBUTE - defaultValue: mail - type: string - description: LDAP User email attribute like 'mail'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_FILTER: - name: OC_LDAP_USER_FILTER;IDP_LDAP_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for user search like '(objectclass=ownCloud)'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_LOGIN_ATTRIBUTE: - name: IDP_LDAP_LOGIN_ATTRIBUTE - defaultValue: uid - type: string - description: LDAP User attribute to use for login like 'uid'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_NAME_ATTRIBUTE: - name: OC_LDAP_USER_SCHEMA_USERNAME;IDP_LDAP_NAME_ATTRIBUTE - defaultValue: displayName - type: string - description: LDAP User name attribute like 'displayName'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_OBJECTCLASS: - name: OC_LDAP_USER_OBJECTCLASS;IDP_LDAP_OBJECTCLASS - defaultValue: inetOrgPerson - type: string - description: LDAP User ObjectClass like 'inetOrgPerson'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_SCOPE: - name: OC_LDAP_USER_SCOPE;IDP_LDAP_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up users. Supported scopes are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_TLS_CACERT: - name: OC_LDAP_CACERT;IDP_LDAP_TLS_CACERT - defaultValue: /var/lib/opencloud/idm/ldap.crt - type: string - description: Path/File name for the root CA certificate (in PEM format) used to - validate TLS server certificates of the LDAP service. If not defined, the root - directory derives from $OC_BASE_DATA_PATH/idp. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_URI: - name: OC_LDAP_URI;IDP_LDAP_URI - defaultValue: ldaps://localhost:9235 - type: string - description: Url of the LDAP service to use as IDP. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_UUID_ATTRIBUTE: - name: OC_LDAP_USER_SCHEMA_ID;IDP_LDAP_UUID_ATTRIBUTE - defaultValue: ownCloudUUID - type: string - description: LDAP User UUID attribute like 'uid'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LDAP_UUID_ATTRIBUTE_TYPE: - name: IDP_LDAP_UUID_ATTRIBUTE_TYPE - defaultValue: text - type: string - description: LDAP User uuid attribute type like 'text'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LOG_COLOR: - name: OC_LOG_COLOR;IDP_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LOG_FILE: - name: OC_LOG_FILE;IDP_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LOG_LEVEL: - name: OC_LOG_LEVEL;IDP_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LOG_PRETTY: - name: OC_LOG_PRETTY;IDP_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_LOGIN_BACKGROUND_URL: - name: IDP_LOGIN_BACKGROUND_URL - defaultValue: "" - type: string - description: Configure an alternative URL to the background image for the login - page. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_MACHINE_AUTH_API_KEY: - name: OC_MACHINE_AUTH_API_KEY;IDP_MACHINE_AUTH_API_KEY - defaultValue: "" - type: string - description: Machine auth API key used to validate internal requests necessary for - the access to resources from other services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_PASSWORD_RESET_URI: - name: IDP_PASSWORD_RESET_URI - defaultValue: "" - type: string - description: The URI where a user can reset their password. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_REFRESH_TOKEN_EXPIRATION: - name: IDP_REFRESH_TOKEN_EXPIRATION - defaultValue: "2592000" - type: uint64 - description: Refresh token lifespan in seconds (time before an refresh token is - expired). This also limits the duration of an idle offline session. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_SIGN_IN_URI: - name: IDP_SIGN_IN_URI - defaultValue: "" - type: string - description: IDP sign-in url. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_SIGN_OUT_URI: - name: IDP_SIGN_OUT_URI - defaultValue: "" - type: string - description: IDP sign-out url. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_SIGNING_KID: - name: IDP_SIGNING_KID - defaultValue: private-key - type: string - description: Value of the KID (Key ID) field which is used in created tokens to - uniquely identify the signing-private-key. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_SIGNING_METHOD: - name: IDP_SIGNING_METHOD - defaultValue: PS256 - type: string - description: Signing method of IDP requests like 'PS256' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_SIGNING_PRIVATE_KEY_FILES: - name: IDP_SIGNING_PRIVATE_KEY_FILES - defaultValue: '[/var/lib/opencloud/idp/private-key.pem]' - type: '[]string' - description: A list of private key files for signing IDP requests. If not defined, - the root directory derives from $OC_BASE_DATA_PATH/idp. See the Environment Variable - Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_TLS: - name: IDP_TLS - defaultValue: "false" - type: bool - description: Disable or Enable HTTPS for the communication between the Proxy service - and the IDP service. If set to 'true', the key and cert files need to be configured - and present. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;IDP_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_TRACING_ENABLED: - name: OC_TRACING_ENABLED;IDP_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;IDP_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_TRACING_TYPE: - name: OC_TRACING_TYPE;IDP_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_TRANSPORT_TLS_CERT: - name: IDP_TRANSPORT_TLS_CERT - defaultValue: /var/lib/opencloud/idp/server.crt - type: string - description: Path/File name of the TLS server certificate (in PEM format) for the - IDP service. If not defined, the root directory derives from $OC_BASE_DATA_PATH/idp. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_TRANSPORT_TLS_KEY: - name: IDP_TRANSPORT_TLS_KEY - defaultValue: /var/lib/opencloud/idp/server.key - type: string - description: Path/File name for the TLS certificate key (in PEM format) for the - server certificate to use for the IDP service. If not defined, the root directory - derives from $OC_BASE_DATA_PATH/idp. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_URI_BASE_PATH: - name: IDP_URI_BASE_PATH - defaultValue: "" - type: string - description: IDP uri base path (defaults to ''). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_USER_ENABLED_ATTRIBUTE: - name: OC_LDAP_USER_ENABLED_ATTRIBUTE;IDP_USER_ENABLED_ATTRIBUTE - defaultValue: ownCloudUserEnabled - type: string - description: LDAP Attribute to use as a flag telling if the user is enabled or disabled. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -IDP_VALIDATION_KEYS_PATH: - name: IDP_VALIDATION_KEYS_PATH - defaultValue: "" - type: string - description: Path to validation keys for IDP requests. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;INVITATIONS_CORS_ALLOW_CREDENTIALS - defaultValue: "false" - type: bool - 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: "" -INVITATIONS_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;INVITATIONS_CORS_ALLOW_HEADERS - defaultValue: '[]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;INVITATIONS_CORS_ALLOW_METHODS - defaultValue: '[]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;INVITATIONS_CORS_ALLOW_ORIGINS - defaultValue: '[https://localhost:9200]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_DEBUG_ADDR: - name: INVITATIONS_DEBUG_ADDR - defaultValue: 127.0.0.1:9269 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_DEBUG_PPROF: - name: INVITATIONS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_DEBUG_TOKEN: - name: INVITATIONS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_DEBUG_ZPAGES: - name: INVITATIONS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_HTTP_ADDR: - name: INVITATIONS_HTTP_ADDR - defaultValue: 127.0.0.1:9265 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_HTTP_ROOT: - name: INVITATIONS_HTTP_ROOT - defaultValue: /graph/v1.0 - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_JWT_SECRET: - name: OC_JWT_SECRET;INVITATIONS_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_KEYCLOAK_BASE_PATH: - name: OC_KEYCLOAK_BASE_PATH;INVITATIONS_KEYCLOAK_BASE_PATH - defaultValue: "" - type: string - description: The URL to access keycloak. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_KEYCLOAK_CLIENT_ID: - name: OC_KEYCLOAK_CLIENT_ID;INVITATIONS_KEYCLOAK_CLIENT_ID - defaultValue: "" - type: string - description: The client ID to authenticate with keycloak. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_KEYCLOAK_CLIENT_REALM: - name: OC_KEYCLOAK_CLIENT_REALM;INVITATIONS_KEYCLOAK_CLIENT_REALM - defaultValue: "" - type: string - description: The realm the client is defined in. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_KEYCLOAK_CLIENT_SECRET: - name: OC_KEYCLOAK_CLIENT_SECRET;INVITATIONS_KEYCLOAK_CLIENT_SECRET - defaultValue: "" - type: string - description: The client secret to use in authentication. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_KEYCLOAK_INSECURE_SKIP_VERIFY: - name: OC_KEYCLOAK_INSECURE_SKIP_VERIFY;INVITATIONS_KEYCLOAK_INSECURE_SKIP_VERIFY - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for Keycloak connections. Do not - set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_KEYCLOAK_USER_REALM: - name: OC_KEYCLOAK_USER_REALM;INVITATIONS_KEYCLOAK_USER_REALM - defaultValue: "" - type: string - description: The realm users are defined. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_LOG_COLOR: - name: OC_LOG_COLOR;INVITATIONS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_LOG_FILE: - name: OC_LOG_FILE;INVITATIONS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_LOG_LEVEL: - name: OC_LOG_LEVEL;INVITATIONS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_LOG_PRETTY: - name: OC_LOG_PRETTY;INVITATIONS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;INVITATIONS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;INVITATIONS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;INVITATIONS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -INVITATIONS_TRACING_TYPE: - name: OC_TRACING_TYPE;INVITATIONS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -LDAP_GROUP_SUBSTRING_FILTER_TYPE: - name: LDAP_GROUP_SUBSTRING_FILTER_TYPE;GROUPS_LDAP_GROUP_SUBSTRING_FILTER_TYPE - defaultValue: any - type: string - description: Type of substring search filter to use for substring searches for groups. - Supported values are 'initial', 'final' and 'any'. The value 'initial' is used - for doing prefix only searches, 'final' for doing suffix only searches or 'any' - for doing full substring searches - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -LDAP_LOGIN_ATTRIBUTES: - name: LDAP_LOGIN_ATTRIBUTES;AUTH_BASIC_LDAP_LOGIN_ATTRIBUTES - defaultValue: '[uid]' - type: '[]string' - description: A list of user object attributes that can be used for login. See the - Environment Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -LDAP_USER_SCHEMA_DISPLAY_NAME: - name: OC_LDAP_USER_SCHEMA_DISPLAYNAME;LDAP_USER_SCHEMA_DISPLAY_NAME;GRAPH_LDAP_USER_DISPLAYNAME_ATTRIBUTE - defaultValue: displayName - type: string - description: LDAP Attribute to use for the display name of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: LDAP_USER_SCHEMA_DISPLAY_NAME changing name for consistency | | | | - LDAP_USER_SCHEMA_DISPLAY_NAME changing name for consistency | LDAP_USER_SCHEMA_DISPLAY_NAME - changing name for consistency | LDAP_USER_SCHEMA_DISPLAY_NAME changing name for - consistency | LDAP_USER_SCHEMA_DISPLAY_NAME changing name for consistency -LDAP_USER_SUBSTRING_FILTER_TYPE: - name: LDAP_USER_SUBSTRING_FILTER_TYPE;USERS_LDAP_USER_SUBSTRING_FILTER_TYPE - defaultValue: any - type: string - description: 'Type of substring search filter to use for substring searches for - users. Possible values: ''initial'' for doing prefix only searches, ''final'' - for doing suffix only searches or ''any'' for doing full substring searches' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_DEBUG_ADDR: - name: NATS_DEBUG_ADDR - defaultValue: 127.0.0.1:9234 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_DEBUG_PPROF: - name: NATS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_DEBUG_TOKEN: - name: NATS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_DEBUG_ZPAGES: - name: NATS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;NATS_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_LOG_COLOR: - name: OC_LOG_COLOR;NATS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_LOG_FILE: - name: OC_LOG_FILE;NATS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_LOG_LEVEL: - name: OC_LOG_LEVEL;NATS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_LOG_PRETTY: - name: OC_LOG_PRETTY;NATS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_NATS_CLUSTER_ID: - name: NATS_NATS_CLUSTER_ID - defaultValue: opencloud-cluster - type: string - description: ID of the NATS cluster. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_NATS_HOST: - name: NATS_NATS_HOST - defaultValue: 127.0.0.1 - type: string - description: Bind address. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_NATS_PORT: - name: NATS_NATS_PORT - defaultValue: "9233" - type: int - description: Bind port. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_NATS_STORE_DIR: - name: NATS_NATS_STORE_DIR - defaultValue: /var/lib/opencloud/nats - type: string - description: The directory where the filesystem storage will store NATS JetStream - data. If not defined, the root directory derives from $OC_BASE_DATA_PATH/nats. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_TLS_CERT: - name: NATS_TLS_CERT - defaultValue: /var/lib/opencloud/nats/tls.crt - type: string - description: Path/File name of the TLS server certificate (in PEM format) for the - NATS listener. If not defined, the root directory derives from $OC_BASE_DATA_PATH/nats. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_TLS_KEY: - name: NATS_TLS_KEY - defaultValue: /var/lib/opencloud/nats/tls.key - type: string - description: Path/File name for the TLS certificate key (in PEM format) for the - NATS listener. If not defined, the root directory derives from $OC_BASE_DATA_PATH/nats. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_TLS_SKIP_VERIFY_CLIENT_CERT: - name: OC_INSECURE;NATS_TLS_SKIP_VERIFY_CLIENT_CERT - defaultValue: "false" - type: bool - description: Whether the NATS server should skip the client certificate verification - during the TLS handshake. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;NATS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;NATS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;NATS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NATS_TRACING_TYPE: - name: OC_TRACING_TYPE;NATS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_DEBUG_ADDR: - name: NOTIFICATIONS_DEBUG_ADDR - defaultValue: 127.0.0.1:9174 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_DEBUG_PPROF: - name: NOTIFICATIONS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_DEBUG_TOKEN: - name: NOTIFICATIONS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_DEBUG_ZPAGES: - name: NOTIFICATIONS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_EMAIL_TEMPLATE_PATH: - name: OC_EMAIL_TEMPLATE_PATH;NOTIFICATIONS_EMAIL_TEMPLATE_PATH - defaultValue: "" - type: string - description: Path to Email notification templates overriding embedded ones. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;NOTIFICATIONS_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;NOTIFICATIONS_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;NOTIFICATIONS_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;NOTIFICATIONS_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;NOTIFICATIONS_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_EVENTS_TLS_INSECURE: - name: OC_INSECURE;NOTIFICATIONS_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;NOTIFICATIONS_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_LOG_COLOR: - name: OC_LOG_COLOR;NOTIFICATIONS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_LOG_FILE: - name: OC_LOG_FILE;NOTIFICATIONS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_LOG_LEVEL: - name: OC_LOG_LEVEL;NOTIFICATIONS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_LOG_PRETTY: - name: OC_LOG_PRETTY;NOTIFICATIONS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;NOTIFICATIONS_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;NOTIFICATIONS_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SMTP_AUTHENTICATION: - name: NOTIFICATIONS_SMTP_AUTHENTICATION - defaultValue: "" - type: string - description: Authentication method for the SMTP communication. Possible values are - 'login', 'plain', 'crammd5', 'none' or 'auto'. If set to 'auto' or unset, the - authentication method is automatically negotiated with the server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SMTP_ENCRYPTION: - name: NOTIFICATIONS_SMTP_ENCRYPTION - defaultValue: none - type: string - description: Encryption method for the SMTP communication. Possible values are 'starttls', - 'ssltls' and 'none'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SMTP_HOST: - name: NOTIFICATIONS_SMTP_HOST - defaultValue: "" - type: string - description: SMTP host to connect to. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SMTP_INSECURE: - name: NOTIFICATIONS_SMTP_INSECURE - defaultValue: "false" - type: bool - description: Allow insecure connections to the SMTP server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SMTP_PASSWORD: - name: NOTIFICATIONS_SMTP_PASSWORD - defaultValue: "" - type: string - description: Password for the SMTP host to connect to. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SMTP_PORT: - name: NOTIFICATIONS_SMTP_PORT - defaultValue: "0" - type: int - description: Port of the SMTP host to connect to. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SMTP_SENDER: - name: NOTIFICATIONS_SMTP_SENDER - defaultValue: "" - type: string - description: Sender address of emails that will be sent (e.g. 'ownCloud '. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_SMTP_USERNAME: - name: NOTIFICATIONS_SMTP_USERNAME - defaultValue: "" - type: string - description: Username for the SMTP host to connect to. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_STORE: - name: OC_PERSISTENT_STORE;NOTIFICATIONS_STORE - defaultValue: nats-js-kv - type: string - description: 'The type of the store. Supported values are: ''memory'', ''nats-js-kv'', - ''redis-sentinel'', ''noop''. See the text description for details.' - introductionVersion: "7.1" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_STORE_AUTH_PASSWORD: - name: OC_PERSISTENT_STORE_AUTH_PASSWORD;NOTIFICATIONS_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "7.1" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_STORE_AUTH_USERNAME: - name: OC_PERSISTENT_STORE_AUTH_USERNAME;NOTIFICATIONS_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "7.1" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_STORE_DATABASE: - name: NOTIFICATIONS_STORE_DATABASE - defaultValue: notifications - type: string - description: The database name the configured store should use. - introductionVersion: "7.1" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_STORE_NODES: - name: OC_PERSISTENT_STORE_NODES;NOTIFICATIONS_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "7.1" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_STORE_TABLE: - name: NOTIFICATIONS_STORE_TABLE - defaultValue: "" - type: string - description: The database table the store should use. - introductionVersion: "7.1" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_STORE_TTL: - name: OC_PERSISTENT_STORE_TTL;NOTIFICATIONS_STORE_TTL - defaultValue: 336h0m0s - type: Duration - description: Time to live for notifications in the store. Defaults to '336h' (2 - weeks). See the Environment Variable Types description for more details. - introductionVersion: "7.1" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;NOTIFICATIONS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;NOTIFICATIONS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;NOTIFICATIONS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_TRACING_TYPE: - name: OC_TRACING_TYPE;NOTIFICATIONS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_TRANSLATION_PATH: - name: OC_TRANSLATION_PATH;NOTIFICATIONS_TRANSLATION_PATH - defaultValue: "" - type: string - description: (optional) Set this to a path with custom translations to overwrite - the builtin translations. Note that file and folder naming rules apply, see the - documentation for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -NOTIFICATIONS_WEB_UI_URL: - name: OC_URL;NOTIFICATIONS_WEB_UI_URL - defaultValue: https://localhost:9200 - type: string - description: The public facing URL of the oCIS Web UI, used e.g. when sending notification - eMails - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_ADMIN_USER_ID: - name: OC_ADMIN_USER_ID;STORAGE_USERS_PURGE_TRASH_BIN_USER_ID - defaultValue: "" - type: string - 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: "" -OC_ASSET_THEMES_PATH: - name: OC_ASSET_THEMES_PATH;WEB_ASSET_THEMES_PATH - defaultValue: /var/lib/opencloud/web/assets/themes - type: string - description: Serve ownCloud themes from a path on the filesystem instead of the - builtin assets. If not defined, the root directory derives from $OC_BASE_DATA_PATH/web/assets/themes - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_ASYNC_UPLOADS: - name: OC_ASYNC_UPLOADS - defaultValue: "true" - type: bool - description: Enable asynchronous file uploads. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CACHE_DATABASE: - name: OC_CACHE_DATABASE - defaultValue: cache-createhome - type: string - description: The database name the configured store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;GATEWAY_CREATE_HOME_CACHE_DISABLE_PERSISTENCE - defaultValue: "false" - type: bool - description: Disables persistence of the create home cache. Only applies when store - type 'nats-js-kv' is configured. Defaults to false. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CACHE_STORE: - name: OC_CACHE_STORE;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE - defaultValue: nats-js-kv - 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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CACHE_STORE_NODES: - name: OC_CACHE_STORE_NODES;OCS_PRESIGNEDURL_SIGNING_KEYS_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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CACHE_TTL: - name: OC_CACHE_TTL;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL - defaultValue: 12h0m0s - type: Duration - description: Default time to live for signing keys. See the Environment Variable - Types description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;WEBFINGER_CORS_ALLOW_CREDENTIALS - defaultValue: "false" - type: bool - 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: "" -OC_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;WEBFINGER_CORS_ALLOW_HEADERS - defaultValue: '[]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;WEBFINGER_CORS_ALLOW_METHODS - defaultValue: '[]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;WEBFINGER_CORS_ALLOW_ORIGINS - defaultValue: '[https://localhost:9200]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CORS_EXPOSE_HEADERS: - name: OC_CORS_EXPOSE_HEADERS;STORAGE_USERS_CORS_EXPOSE_HEADERS - defaultValue: '[Upload-Offset Location Upload-Length Tus-Version Tus-Resumable Tus-Max-Size - Tus-Extension Upload-Metadata Upload-Defer-Length Upload-Concat Upload-Incomplete - Upload-Draft-Interop-Version]' - type: '[]string' - description: 'A list of exposed CORS headers. See following chapter for more details: - *Access-Control-Expose-Headers* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_CORS_MAX_AGE: - name: OC_CORS_MAX_AGE;STORAGE_USERS_CORS_MAX_AGE - defaultValue: "86400" - type: uint - description: 'The max cache duration of preflight headers. See following chapter - for more details: *Access-Control-Max-Age* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_DECOMPOSEDFS_PROPAGATOR: - name: OC_DECOMPOSEDFS_PROPAGATOR;STORAGE_USERS_S3NG_PROPAGATOR - defaultValue: sync - type: string - description: The propagator used for decomposedfs. At the moment, only 'sync' is - fully supported, 'async' is available as an experimental option. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_DEFAULT_LANGUAGE: - name: OC_DEFAULT_LANGUAGE - defaultValue: "" - type: string - description: The default language used by services and the WebUI. If not defined, - English will be used as default. See the documentation for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_DISABLE_PREVIEWS: - name: OC_DISABLE_PREVIEWS;WEBDAV_DISABLE_PREVIEWS - defaultValue: "false" - type: bool - 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: "" - deprecationInfo: "" -OC_DISABLE_SSE: - name: OC_DISABLE_SSE;FRONTEND_DISABLE_SSE - defaultValue: "false" - type: bool - description: When set to true, clients are informed that the Server-Sent Events - endpoint is not accessible. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_DISABLE_SSE,USERLOG_DISABLE_SSE: - name: OC_DISABLE_SSE,USERLOG_DISABLE_SSE - defaultValue: "false" - type: bool - description: Disables server-sent events (sse). When disabled, clients will no longer - receive sse notifications. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_DISABLE_VERSIONING: - name: OC_DISABLE_VERSIONING - defaultValue: "false" - type: bool - description: Disables versioning of files. When set to true, new uploads with the - same filename will overwrite existing files instead of creating a new version. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_EDITION: - name: OC_EDITION;OCDAV_EDITION - defaultValue: Community - type: string - description: Edition of oCIS. Used for branding purposes. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_EMAIL_TEMPLATE_PATH: - name: OC_EMAIL_TEMPLATE_PATH;NOTIFICATIONS_EMAIL_TEMPLATE_PATH - defaultValue: "" - type: string - description: Path to Email notification templates overriding embedded ones. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_ENABLE_OCM: - name: OC_ENABLE_OCM;GRAPH_INCLUDE_OCM_SHAREES - defaultValue: "false" - type: bool - description: Include OCM sharees when listing users. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;ANTIVIRUS_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;ANTIVIRUS_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;ANTIVIRUS_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;ANTIVIRUS_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;ANTIVIRUS_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;ANTIVIRUS_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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_GATEWAY_GRPC_ADDR: - name: OC_GATEWAY_GRPC_ADDR;GATEWAY_GRPC_ADDR - defaultValue: 127.0.0.1:9142 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_GRPC_CLIENT_TLS_CACERT: - name: OC_GRPC_CLIENT_TLS_CACERT - defaultValue: "" - type: string - description: Path/File name for the root CA certificate (in PEM format) used to - validate TLS server certificates of the go-micro based grpc services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_GRPC_CLIENT_TLS_MODE: - name: OC_GRPC_CLIENT_TLS_MODE - defaultValue: "" - type: string - description: '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.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;GROUPS_GRPC_PROTOCOL - defaultValue: "" - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_HTTP_TLS_CERTIFICATE: - name: OC_HTTP_TLS_CERTIFICATE - defaultValue: "" - type: string - description: Path/File name of the TLS server certificate (in PEM format) for the - http services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_HTTP_TLS_ENABLED: - name: OC_HTTP_TLS_ENABLED - defaultValue: "false" - type: bool - description: Activates TLS for the http based services using the server certifcate - and key configured via OC_HTTP_TLS_CERTIFICATE and OC_HTTP_TLS_KEY. If OC_HTTP_TLS_CERTIFICATE - is not set a temporary server certificate is generated - to be used with PROXY_INSECURE_BACKEND=true. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_HTTP_TLS_KEY: - name: OC_HTTP_TLS_KEY - defaultValue: "" - type: string - description: Path/File name for the TLS certificate key (in PEM format) for the - server certificate to use for the http services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_INSECURE: - name: OC_INSECURE;WEBFINGER_INSECURE - defaultValue: "false" - type: bool - description: Allow insecure connections to the WEBFINGER service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_JWT_SECRET: - name: OC_JWT_SECRET;OCS_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_KEYCLOAK_BASE_PATH: - name: OC_KEYCLOAK_BASE_PATH;INVITATIONS_KEYCLOAK_BASE_PATH - defaultValue: "" - type: string - description: The URL to access keycloak. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_KEYCLOAK_CLIENT_ID: - name: OC_KEYCLOAK_CLIENT_ID;INVITATIONS_KEYCLOAK_CLIENT_ID - defaultValue: "" - type: string - description: The client ID to authenticate with keycloak. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_KEYCLOAK_CLIENT_REALM: - name: OC_KEYCLOAK_CLIENT_REALM;INVITATIONS_KEYCLOAK_CLIENT_REALM - defaultValue: "" - type: string - description: The realm the client is defined in. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_KEYCLOAK_CLIENT_SECRET: - name: OC_KEYCLOAK_CLIENT_SECRET;INVITATIONS_KEYCLOAK_CLIENT_SECRET - defaultValue: "" - type: string - description: The client secret to use in authentication. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_KEYCLOAK_INSECURE_SKIP_VERIFY: - name: OC_KEYCLOAK_INSECURE_SKIP_VERIFY;INVITATIONS_KEYCLOAK_INSECURE_SKIP_VERIFY - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for Keycloak connections. Do not - set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_KEYCLOAK_USER_REALM: - name: OC_KEYCLOAK_USER_REALM;INVITATIONS_KEYCLOAK_USER_REALM - defaultValue: "" - type: string - description: The realm users are defined. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_BIND_DN: - name: OC_LDAP_BIND_DN;GROUPS_LDAP_BIND_DN - defaultValue: uid=reva,ou=sysusers,o=libregraph-idm - type: string - description: LDAP DN to use for simple bind authentication with the target LDAP - server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_BIND_PASSWORD: - name: OC_LDAP_BIND_PASSWORD;GROUPS_LDAP_BIND_PASSWORD - defaultValue: "" - type: string - description: Password to use for authenticating the 'bind_dn'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_CACERT: - name: OC_LDAP_CACERT;GROUPS_LDAP_CACERT - defaultValue: /var/lib/opencloud/idm/ldap.crt - type: string - description: Path/File name for the root CA certificate (in PEM format) used to - validate TLS server certificates of the LDAP service. If not defined, the root - directory derives from $OC_BASE_DATA_PATH/idm. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_DISABLE_USER_MECHANISM: - name: OC_LDAP_DISABLE_USER_MECHANISM;GRAPH_DISABLE_USER_MECHANISM - defaultValue: attribute - type: string - description: An option to control the behavior for disabling users. Supported options - are 'none', 'attribute' and 'group'. If set to 'group', disabling a user via API - will add the user to the configured group for disabled users, if set to 'attribute' - this will be done in the ldap user entry, if set to 'none' the disable request - is not processed. Default is 'attribute'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_DISABLED_USERS_GROUP_DN: - name: OC_LDAP_DISABLED_USERS_GROUP_DN;GRAPH_DISABLED_USERS_GROUP_DN - defaultValue: cn=DisabledUsersGroup,ou=groups,o=libregraph-idm - type: string - description: The distinguished name of the group to which added users will be classified - as disabled when 'disable_user_mechanism' is set to 'group'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_BASE_DN: - name: OC_LDAP_GROUP_BASE_DN;GROUPS_LDAP_GROUP_BASE_DN - defaultValue: ou=groups,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_FILTER: - name: OC_LDAP_GROUP_FILTER;GROUPS_LDAP_GROUP_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for group searches. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_OBJECTCLASS: - name: OC_LDAP_GROUP_OBJECTCLASS;GROUPS_LDAP_GROUP_OBJECTCLASS - defaultValue: groupOfNames - type: string - description: The object class to use for groups in the default group search filter - ('groupOfNames'). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_SCHEMA_DISPLAYNAME: - name: OC_LDAP_GROUP_SCHEMA_DISPLAYNAME;GROUPS_LDAP_GROUP_SCHEMA_DISPLAYNAME - defaultValue: cn - type: string - description: LDAP Attribute to use for the displayname of groups (often the same - as groupname attribute). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_SCHEMA_GROUPNAME: - name: OC_LDAP_GROUP_SCHEMA_GROUPNAME;GROUPS_LDAP_GROUP_SCHEMA_GROUPNAME - defaultValue: cn - type: string - description: LDAP Attribute to use for the name of groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_SCHEMA_ID: - name: OC_LDAP_GROUP_SCHEMA_ID;GROUPS_LDAP_GROUP_SCHEMA_ID - defaultValue: ownclouduuid - type: string - description: LDAP Attribute to use as the unique id for groups. This should be a - stable globally unique ID like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING;GROUPS_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'id' attribute for groups is of the - 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute - of Active Directory for the group ID's. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_SCHEMA_MAIL: - name: OC_LDAP_GROUP_SCHEMA_MAIL;GROUPS_LDAP_GROUP_SCHEMA_MAIL - defaultValue: mail - type: string - description: LDAP Attribute to use for the email address of groups (can be empty). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_SCHEMA_MEMBER: - name: OC_LDAP_GROUP_SCHEMA_MEMBER;GROUPS_LDAP_GROUP_SCHEMA_MEMBER - defaultValue: member - type: string - description: LDAP Attribute that is used for group members. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_GROUP_SCOPE: - name: OC_LDAP_GROUP_SCOPE;GROUPS_LDAP_GROUP_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up groups. Supported scopes are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_INSECURE: - name: OC_LDAP_INSECURE;GROUPS_LDAP_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for the LDAP connections. Do not - set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_SERVER_WRITE_ENABLED: - name: OC_LDAP_SERVER_WRITE_ENABLED;GRAPH_LDAP_SERVER_WRITE_ENABLED - defaultValue: "true" - type: bool - description: Allow creating, modifying and deleting LDAP users via the GRAPH API. - This can only be set to 'true' when keeping default settings for the LDAP user - and group attribute types (the 'OC_LDAP_USER_SCHEMA_* and 'OC_LDAP_GROUP_SCHEMA_* - variables). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_URI: - name: OC_LDAP_URI;GROUPS_LDAP_URI - defaultValue: ldaps://localhost:9235 - type: string - description: URI of the LDAP Server to connect to. Supported URI schemes are 'ldaps://' - and 'ldap://' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_BASE_DN: - name: OC_LDAP_USER_BASE_DN;GROUPS_LDAP_USER_BASE_DN - defaultValue: ou=users,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_ENABLED_ATTRIBUTE: - name: OC_LDAP_USER_ENABLED_ATTRIBUTE;GRAPH_USER_ENABLED_ATTRIBUTE - defaultValue: ownCloudUserEnabled - type: string - description: LDAP Attribute to use as a flag telling if the user is enabled or disabled. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_FILTER: - name: OC_LDAP_USER_FILTER;GROUPS_LDAP_USER_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for user search like '(objectclass=ownCloud)'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_OBJECTCLASS: - name: OC_LDAP_USER_OBJECTCLASS;GROUPS_LDAP_USER_OBJECTCLASS - defaultValue: inetOrgPerson - type: string - description: The object class to use for users in the default user search filter - ('inetOrgPerson'). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_SCHEMA_DISPLAYNAME: - name: OC_LDAP_USER_SCHEMA_DISPLAYNAME;GROUPS_LDAP_USER_SCHEMA_DISPLAYNAME - defaultValue: displayname - type: string - description: LDAP Attribute to use for the displayname of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: 'LDAP_USER_SCHEMA_DISPLAY_NAME changing name for consistency | | | | | | | - LDAP_USER_SCHEMA_DISPLAY_NAME changing name for consistency | | | | LDAP_USER_SCHEMA_DISPLAY_NAME - changing name for consistency | | | LDAP_USER_SCHEMA_DISPLAY_NAME changing name - for consistency | | | | LDAP_USER_SCHEMA_DISPLAY_NAME changing name for consistency - | ' -OC_LDAP_USER_SCHEMA_ID: - name: OC_LDAP_USER_SCHEMA_ID;GROUPS_LDAP_USER_SCHEMA_ID - defaultValue: ownclouduuid - type: string - description: LDAP Attribute to use as the unique id for users. This should be a - stable globally unique id like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING;GROUPS_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'ID' attribute for users is of the - 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute - of Active Directory for the user ID's. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_SCHEMA_MAIL: - name: OC_LDAP_USER_SCHEMA_MAIL;GROUPS_LDAP_USER_SCHEMA_MAIL - defaultValue: mail - type: string - description: LDAP Attribute to use for the email address of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_SCHEMA_USER_TYPE: - name: OC_LDAP_USER_SCHEMA_USER_TYPE;GRAPH_LDAP_USER_TYPE_ATTRIBUTE - defaultValue: ownCloudUserType - type: string - description: LDAP Attribute to distinguish between 'Member' and 'Guest' users. Default - is 'ownCloudUserType'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_SCHEMA_USERNAME: - name: OC_LDAP_USER_SCHEMA_USERNAME;GROUPS_LDAP_USER_SCHEMA_USERNAME - defaultValue: uid - type: string - description: LDAP Attribute to use for username of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LDAP_USER_SCOPE: - name: OC_LDAP_USER_SCOPE;GROUPS_LDAP_USER_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up users. Supported scopes are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LOG_COLOR: - name: OC_LOG_COLOR;WEBFINGER_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LOG_FILE: - name: OC_LOG_FILE;WEBFINGER_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LOG_LEVEL: - name: OC_LOG_LEVEL;WEBFINGER_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_LOG_PRETTY: - name: OC_LOG_PRETTY;WEBFINGER_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_MACHINE_AUTH_API_KEY: - name: OC_MACHINE_AUTH_API_KEY;AUTH_APP_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. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_MAX_CONCURRENCY: - name: OC_MAX_CONCURRENCY;STORAGE_USERS_S3NG_MAX_CONCURRENCY - defaultValue: "5" - type: int - description: Maximum number of concurrent go-routines. Higher values can potentially - get work done faster but will also cause more load on the system. Values of 0 - or below will be ignored and the default value of 100 will be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_OIDC_CLIENT_ID: - name: OC_OIDC_CLIENT_ID;WEB_OIDC_CLIENT_ID - defaultValue: web - type: string - description: The OIDC client ID which ownCloud Web uses. This client needs to be - set up in your IDP. Note that this setting has no effect when using the builtin - IDP. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_OIDC_ISSUER: - name: OC_URL;OC_OIDC_ISSUER;WEBFINGER_OIDC_ISSUER - defaultValue: https://localhost:9200 - type: string - description: The identity provider href for the openid-discovery relation. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST: - name: OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST;SHARING_PASSWORD_POLICY_BANNED_PASSWORDS_LIST - defaultValue: "" - type: string - description: Path to the 'banned passwords list' file. This only impacts public - link password validation. See the documentation for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PASSWORD_POLICY_DISABLED: - name: OC_PASSWORD_POLICY_DISABLED;SHARING_PASSWORD_POLICY_DISABLED - defaultValue: "false" - type: bool - description: Disable the password policy. Defaults to false if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PASSWORD_POLICY_MIN_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_CHARACTERS - defaultValue: "8" - type: int - description: Define the minimum password length. Defaults to 8 if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PASSWORD_POLICY_MIN_DIGITS: - name: OC_PASSWORD_POLICY_MIN_DIGITS;SHARING_PASSWORD_POLICY_MIN_DIGITS - defaultValue: "1" - type: int - description: Define the minimum number of digits. Defaults to 1 if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS - defaultValue: "1" - type: int - description: Define the minimum number of uppercase letters. Defaults to 1 if not - set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS - defaultValue: "1" - type: int - description: Define the minimum number of characters from the special characters - list to be present. Defaults to 1 if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS - defaultValue: "1" - type: int - description: Define the minimum number of lowercase letters. Defaults to 1 if not - set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PERSISTENT_STORE: - name: OC_PERSISTENT_STORE;POSTPROCESSING_STORE - defaultValue: nats-js-kv - type: string - description: 'The type of the store. Supported values are: ''memory'', ''redis-sentinel'', - ''nats-js-kv'', ''noop''. See the text description for details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PERSISTENT_STORE_AUTH_PASSWORD: - name: OC_PERSISTENT_STORE_AUTH_PASSWORD;POSTPROCESSING_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PERSISTENT_STORE_AUTH_USERNAME: - name: OC_PERSISTENT_STORE_AUTH_USERNAME;POSTPROCESSING_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PERSISTENT_STORE_NODES: - name: OC_PERSISTENT_STORE_NODES;POSTPROCESSING_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -OC_PERSISTENT_STORE_TTL: - name: OC_PERSISTENT_STORE_TTL;POSTPROCESSING_STORE_TTL - defaultValue: 0s - type: Duration - description: Time to live for events in the store. See the Environment Variable - Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_PUBLIC_URL: - name: OC_URL;OC_PUBLIC_URL - defaultValue: https://127.0.0.1:9200 - type: string - description: URL, where oCIS is reachable for users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_REVA_GATEWAY: - name: OC_REVA_GATEWAY - defaultValue: eu.opencloud.api.gateway - type: string - description: The CS3 gateway endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_REVA_GATEWAY_TLS_CACERT: - name: OC_REVA_GATEWAY_TLS_CACERT - defaultValue: "" - type: string - description: The root CA certificate used to validate the gateway's TLS certificate. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_REVA_GATEWAY_TLS_MODE: - name: OC_REVA_GATEWAY_TLS_MODE - defaultValue: "" - type: string - description: 'TLS mode for grpc connection to the CS3 gateway endpoint. 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.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;PROXY_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;PROXY_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD: - name: OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD;SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD - defaultValue: "true" - type: bool - description: Set this to true if you want to enforce passwords on all public shares. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: 'FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, the OCS API is deprecated - | | FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, the OCS API is deprecated | | | - FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, the OCS API is deprecated | | FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated | FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD, the - OCS API is deprecated | ' -OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD: - name: OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD;SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD - defaultValue: "false" - type: bool - description: Set this to true if you want to enforce passwords on Uploader, Editor - or Contributor shares. If not using the global OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD, - you must define the FRONTEND_OCS_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD (deprecated) - in the frontend service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: 'FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, the OCS - API is deprecated | | FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated | | | FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated | | FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated | FRONTEND_OCS_PUBLIC_WRITABLE_SHARE_MUST_HAVE_PASSWORD, - the OCS API is deprecated | ' -OC_SHOW_USER_EMAIL_IN_RESULTS: - name: OC_SHOW_USER_EMAIL_IN_RESULTS - defaultValue: "false" - type: bool - description: Include user email addresses in responses. If absent or set to false - emails will be omitted from results. Please note that admin users can always see - all email addresses. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_SPACES_MAX_QUOTA: - name: OC_SPACES_MAX_QUOTA;STORAGE_USERS_OCIS_MAX_QUOTA - defaultValue: "0" - type: uint64 - description: Set a global max quota for spaces in bytes. A value of 0 equals unlimited. - If not using the global OC_SPACES_MAX_QUOTA, you must define the FRONTEND_MAX_QUOTA - in the frontend service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_SYSTEM_USER_API_KEY: - name: OC_SYSTEM_USER_API_KEY - defaultValue: "" - type: string - description: API key for the STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_SYSTEM_USER_ID: - name: OC_SYSTEM_USER_ID;SETTINGS_SYSTEM_USER_ID - defaultValue: "" - type: string - 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_SYSTEM_USER_IDP: - name: OC_SYSTEM_USER_IDP;SETTINGS_SYSTEM_USER_IDP - defaultValue: internal - type: string - description: IDP of the oCIS STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;WEBFINGER_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_TRACING_ENABLED: - name: OC_TRACING_ENABLED;WEBFINGER_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;WEBFINGER_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_TRACING_TYPE: - name: OC_TRACING_TYPE;WEBFINGER_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_TRANSFER_SECRET: - name: OC_TRANSFER_SECRET - defaultValue: "" - type: string - description: The storage transfer secret. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_TRANSLATION_PATH: - name: OC_TRANSLATION_PATH;GRAPH_TRANSLATION_PATH - defaultValue: "" - type: string - description: (optional) Set this to a path with custom translations to overwrite - the builtin translations. Note that file and folder naming rules apply, see the - documentation for more details. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_URL: - name: OC_URL;WEBFINGER_OPENCLOUD_SERVER_INSTANCE_URL - defaultValue: https://localhost:9200 - type: string - description: The URL for the legacy OpenCloud server instance relation (not to be - confused with the product OpenCloud Server). It defaults to the OC_URL but can - be overridden to support some reverse proxy corner cases. To shard the deployment, - multiple instances can be configured in the configuration file. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OC_WOPI_DISABLE_CHAT: - name: COLLABORATION_WOPI_DISABLE_CHAT;OC_WOPI_DISABLE_CHAT - defaultValue: "false" - type: bool - description: Disable chat in the office web frontend. This feature applies to OnlyOffice - and Microsoft. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_ALLOW_PROPFIND_DEPTH_INFINITY: - name: OCDAV_ALLOW_PROPFIND_DEPTH_INFINITY - defaultValue: "false" - type: bool - description: Allow the use of depth infinity in PROPFINDS. When enabled, a propfind - will traverse through all subfolders. If many subfolders are expected, depth infinity - can cause heavy server load and/or delayed response times. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;OCDAV_CORS_ALLOW_CREDENTIALS - defaultValue: "false" - type: bool - 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: "" -OCDAV_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;OCDAV_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 Cache-Control]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;OCDAV_CORS_ALLOW_METHODS - defaultValue: '[OPTIONS HEAD GET PUT POST DELETE MKCOL PROPFIND PROPPATCH MOVE COPY - REPORT SEARCH]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;OCDAV_CORS_ALLOW_ORIGINS - defaultValue: '[https://localhost:9200]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_DEBUG_ADDR: - name: OCDAV_DEBUG_ADDR - defaultValue: 127.0.0.1:9163 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_DEBUG_PPROF: - name: OCDAV_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_DEBUG_TOKEN: - name: OCDAV_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_DEBUG_ZPAGES: - name: OCDAV_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_EDITION: - name: OC_EDITION;OCDAV_EDITION - defaultValue: Community - type: string - description: Edition of oCIS. Used for branding purposes. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_FILES_NAMESPACE: - name: OCDAV_FILES_NAMESPACE - defaultValue: /users/{{.Id.OpaqueId}} - type: string - description: Jail requests to /dav/files/{username} into this CS3 namespace. Supports - template layouting with CS3 User properties. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_GATEWAY_REQUEST_TIMEOUT: - name: OCDAV_GATEWAY_REQUEST_TIMEOUT - defaultValue: "84300" - type: int64 - description: Request timeout in seconds for requests from the oCDAV service to the - GATEWAY service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_HTTP_ADDR: - name: OCDAV_HTTP_ADDR - defaultValue: 127.0.0.1:9350 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_HTTP_PREFIX: - name: OCDAV_HTTP_PREFIX - defaultValue: "" - type: string - description: A URL path prefix for the handler. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_HTTP_PROTOCOL: - name: OCDAV_HTTP_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_INSECURE: - name: OC_INSECURE;OCDAV_INSECURE - defaultValue: "false" - type: bool - description: Allow insecure connections to the GATEWAY service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_JWT_SECRET: - name: OC_JWT_SECRET;OCDAV_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_LOG_COLOR: - name: OC_LOG_COLOR;OCDAV_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_LOG_FILE: - name: OC_LOG_FILE;OCDAV_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_LOG_LEVEL: - name: OC_LOG_LEVEL;OCDAV_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_LOG_PRETTY: - name: OC_LOG_PRETTY;OCDAV_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_MACHINE_AUTH_API_KEY: - name: OC_MACHINE_AUTH_API_KEY;OCDAV_MACHINE_AUTH_API_KEY - defaultValue: "" - type: string - description: Machine auth API key used to validate internal requests necessary for - the access to resources from other services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_OCM_NAMESPACE: - name: OCDAV_OCM_NAMESPACE - defaultValue: /public - type: string - description: The human readable path prefix for the ocm shares. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_PUBLIC_URL: - name: OC_URL;OCDAV_PUBLIC_URL - defaultValue: https://localhost:9200 - type: string - description: URL where oCIS is reachable for users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_SHARES_NAMESPACE: - name: OCDAV_SHARES_NAMESPACE - defaultValue: /Shares - type: string - description: The human readable path for the share jail. Relative to a users personal - space root. Upcased intentionally. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_SKIP_USER_GROUPS_IN_TOKEN: - name: OCDAV_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;OCDAV_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_TRACING_ENABLED: - name: OC_TRACING_ENABLED;OCDAV_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;OCDAV_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_TRACING_TYPE: - name: OC_TRACING_TYPE;OCDAV_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCDAV_WEBDAV_NAMESPACE: - name: OCDAV_WEBDAV_NAMESPACE - defaultValue: /users/{{.Id.OpaqueId}} - type: string - description: Jail requests to /dav/webdav into this CS3 namespace. Supports template - layouting with CS3 User properties. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;OCM_CORS_ALLOW_CREDENTIALS - defaultValue: "false" - type: bool - 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: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;OCM_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 Cache-Control]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;OCM_CORS_ALLOW_METHODS - defaultValue: '[OPTIONS HEAD GET PUT POST DELETE MKCOL PROPFIND PROPPATCH MOVE COPY - REPORT SEARCH]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;OCM_CORS_ALLOW_ORIGINS - defaultValue: '[https://localhost:9200]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_DEBUG_ADDR: - name: OCM_DEBUG_ADDR - defaultValue: 127.0.0.1:9281 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_DEBUG_PPROF: - name: OCM_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_DEBUG_TOKEN: - name: OCM_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_DEBUG_ZPAGES: - name: OCM_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;OCM_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;OCM_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;OCM_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;OCM_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;OCM_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_EVENTS_TLS_INSECURE: - name: OC_INSECURE;OCM_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;OCM_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided OCM_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_GRPC_ADDR: - name: OCM_GRPC_ADDR - defaultValue: 127.0.0.1:9282 - type: string - description: The bind address of the GRPC service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;OCM_GRPC_PROTOCOL - defaultValue: "" - type: string - description: The transport protocol of the GRPC service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_HTTP_ADDR: - name: OCM_HTTP_ADDR - defaultValue: 127.0.0.1:9280 - type: string - description: The bind address of the HTTP service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_HTTP_PREFIX: - name: OCM_HTTP_PREFIX - defaultValue: "" - type: string - description: The path prefix where OCM can be accessed (defaults to /). - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_HTTP_PROTOCOL: - name: OCM_HTTP_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the HTTP service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_JWT_SECRET: - name: OC_JWT_SECRET;OCM_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_LOG_COLOR: - name: OC_LOG_COLOR;OCM_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_LOG_FILE: - name: OC_LOG_FILE;OCM_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_LOG_LEVEL: - name: OC_LOG_LEVEL;OCM_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_LOG_PRETTY: - name: OC_LOG_PRETTY;OCM_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_MESH_DIRECTORY_URL: - name: OCM_MESH_DIRECTORY_URL - defaultValue: "" - type: string - description: URL of the mesh directory service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_CORE_DRIVER: - name: OCM_OCM_CORE_DRIVER - defaultValue: json - type: string - description: Driver to be used for the OCM core. Supported value is only 'json'. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_CORE_JSON_FILE: - name: OCM_OCM_CORE_JSON_FILE - defaultValue: /var/lib/opencloud/storage/ocm/ocmshares.json - type: string - description: Path to the JSON file where OCM share data will be stored. If not defined, - the root directory derives from $OC_BASE_DATA_PATH/storage. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_INVITE_MANAGER_DRIVER: - name: OCM_OCM_INVITE_MANAGER_DRIVER - defaultValue: json - type: string - description: Driver to be used to persist OCM invites. Supported value is only 'json'. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_INVITE_MANAGER_INSECURE: - name: OCM_OCM_INVITE_MANAGER_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for the OCM connections. Do not - set this in production environments. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_INVITE_MANAGER_JSON_FILE: - name: OCM_OCM_INVITE_MANAGER_JSON_FILE - defaultValue: /var/lib/opencloud/storage/ocm/ocminvites.json - type: string - description: Path to the JSON file where OCM invite data will be stored. This file - is maintained by the instance and must not be changed manually. If not defined, - the root directory derives from $OC_BASE_DATA_PATH/storage/ocm. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_INVITE_MANAGER_TIMEOUT: - name: OCM_OCM_INVITE_MANAGER_TIMEOUT - defaultValue: 30s - type: Duration - description: Timeout specifies a time limit for requests made to OCM endpoints. - introductionVersion: 6.0.1 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_INVITE_MANAGER_TOKEN_EXPIRATION: - name: OCM_OCM_INVITE_MANAGER_TOKEN_EXPIRATION - defaultValue: 24h0m0s - type: Duration - description: Expiry duration for invite tokens. - introductionVersion: 6.0.1 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_PROVIDER_AUTHORIZER_PROVIDERS_FILE: - name: OCM_OCM_PROVIDER_AUTHORIZER_PROVIDERS_FILE - defaultValue: /etc/opencloud/ocmproviders.json - type: string - description: Path to the JSON file where ocm invite data will be stored. Defaults - to $OC_CONFIG_DIR/ocmproviders.json. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_SHARE_PROVIDER_DRIVER: - name: OCM_OCM_SHARE_PROVIDER_DRIVER - defaultValue: json - type: string - description: Driver to be used for the OCM share provider. Supported value is only - 'json'. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_SHARE_PROVIDER_INSECURE: - name: OCM_OCM_SHARE_PROVIDER_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for the OCM connections. Do not - set this in production environments. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_SHAREPROVIDER_JSON_FILE: - name: OCM_OCM_SHAREPROVIDER_JSON_FILE - defaultValue: /var/lib/opencloud/storage/ocm/ocmshares.json - type: string - description: Path to the JSON file where OCM share data will be stored. If not defined, - the root directory derives from $OC_BASE_DATA_PATH/storage. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_STORAGE_DATA_SERVER_URL: - name: OCM_OCM_STORAGE_DATA_SERVER_URL - defaultValue: http://localhost:9280/data - type: string - description: URL of the data server, needs to be reachable by the data gateway provided - by the frontend service or the user if directly exposed. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_STORAGE_PROVIDER_INSECURE: - name: OCM_OCM_STORAGE_PROVIDER_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for the OCM connections. Do not - set this in production environments. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCM_STORAGE_PROVIDER_STORAGE_ROOT: - name: OCM_OCM_STORAGE_PROVIDER_STORAGE_ROOT - defaultValue: /var/lib/opencloud/storage/ocm - type: string - description: Directory where the ocm storage provider persists its data like tus - upload info files. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCMD_EXPOSE_RECIPIENT_DISPLAY_NAME: - name: OCM_OCMD_EXPOSE_RECIPIENT_DISPLAY_NAME - defaultValue: "false" - type: bool - description: Expose the display name of OCM share recipients. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_OCMD_PREFIX: - name: OCM_OCMD_PREFIX - defaultValue: ocm - type: string - description: URL path prefix for the OCMD service. Note that the string must not - start with '/'. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_SCIENCEMESH_PREFIX: - name: OCM_SCIENCEMESH_PREFIX - defaultValue: sciencemesh - type: string - description: URL path prefix for the ScienceMesh service. Note that the string must - not start with '/'. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;OCM_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;OCM_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;OCM_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_TRACING_ENABLED: - name: OC_TRACING_ENABLED;OCM_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;OCM_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_TRACING_TYPE: - name: OC_TRACING_TYPE;OCM_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCM_WEBAPP_TEMPLATE: - name: OCM_WEBAPP_TEMPLATE - defaultValue: "" - type: string - description: Template for the webapp url. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;OCS_CORS_ALLOW_CREDENTIALS - defaultValue: "true" - type: bool - 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: "" -OCS_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;OCS_CORS_ALLOW_HEADERS - defaultValue: '[Authorization Origin Content-Type Accept X-Requested-With X-Request-Id - Cache-Control]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;OCS_CORS_ALLOW_METHODS - defaultValue: '[GET POST PUT PATCH DELETE OPTIONS]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;OCS_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_DEBUG_ADDR: - name: OCS_DEBUG_ADDR - defaultValue: 127.0.0.1:9114 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_DEBUG_PPROF: - name: OCS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_DEBUG_TOKEN: - name: OCS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_DEBUG_ZPAGES: - name: OCS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: FRONTEND_EVENTS_TLS_ROOT_CA_CERTIFICATE;OCS_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_HTTP_ADDR: - name: OCS_HTTP_ADDR - defaultValue: 127.0.0.1:9110 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_HTTP_ROOT: - name: OCS_HTTP_ROOT - defaultValue: /ocs - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_JWT_SECRET: - name: OC_JWT_SECRET;OCS_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_LOG_COLOR: - name: OC_LOG_COLOR;OCS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_LOG_FILE: - name: OC_LOG_FILE;OCS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_LOG_LEVEL: - name: OC_LOG_LEVEL;OCS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_LOG_PRETTY: - name: OC_LOG_PRETTY;OCS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_PRESIGNEDURL_SIGNING_KEYS_STORE: - name: OC_CACHE_STORE;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE - defaultValue: nats-js-kv - 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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_NODES: - name: OC_CACHE_STORE_NODES;OCS_PRESIGNEDURL_SIGNING_KEYS_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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL: - name: OC_CACHE_TTL;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL - defaultValue: 12h0m0s - type: Duration - description: Default time to live for signing keys. See the Environment Variable - Types description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;OCS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;OCS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;OCS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -OCS_TRACING_TYPE: - name: OC_TRACING_TYPE;OCS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_DEBUG_ADDR: - name: POLICIES_DEBUG_ADDR - defaultValue: 127.0.0.1:9129 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_DEBUG_PPROF: - name: POLICIES_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_DEBUG_TOKEN: - name: POLICIES_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_DEBUG_ZPAGES: - name: POLICIES_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_ENGINE_MIMES: - name: POLICIES_ENGINE_MIMES - defaultValue: "" - type: string - description: Sets the mimes file path which maps mimetypes to associated file extensions. - See the text description for details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_ENGINE_TIMEOUT: - name: POLICIES_ENGINE_TIMEOUT - defaultValue: 10s - type: Duration - description: Sets the timeout the rego expression evaluation can take. Rules default - to deny if the timeout was reached. See the Environment Variable Types description - for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;POLICIES_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;POLICIES_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;POLICIES_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;POLICIES_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;POLICIES_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_EVENTS_TLS_INSECURE: - name: OC_INSECURE;POLICIES_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether the server should skip the client certificate verification - during the TLS handshake. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;POLICIES_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided POLICIES_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_GRPC_ADDR: - name: POLICIES_GRPC_ADDR - defaultValue: 127.0.0.1:9125 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_LOG_COLOR: - name: OC_LOG_COLOR;POLICIES_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_LOG_FILE: - name: OC_LOG_FILE;POLICIES_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_LOG_LEVEL: - name: OC_LOG_LEVEL;POLICIES_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_LOG_PRETTY: - name: OC_LOG_PRETTY;POLICIES_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_POSTPROCESSING_QUERY: - name: POLICIES_POSTPROCESSING_QUERY - defaultValue: "" - type: string - description: Defines the 'Complete Rules' variable defined in the rego rule set - this step uses for its evaluation. Defaults to deny if the variable was not found. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;POLICIES_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_TRACING_ENABLED: - name: OC_TRACING_ENABLED;POLICIES_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;POLICIES_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POLICIES_TRACING_TYPE: - name: OC_TRACING_TYPE;POLICIES_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_DEBUG_ADDR: - name: POSTPROCESSING_DEBUG_ADDR - defaultValue: 127.0.0.1:9255 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_DEBUG_PPROF: - name: POSTPROCESSING_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_DEBUG_TOKEN: - name: POSTPROCESSING_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_DEBUG_ZPAGES: - name: POSTPROCESSING_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_DELAY: - name: POSTPROCESSING_DELAY - defaultValue: 0s - type: Duration - description: After uploading a file but before making it available for download, - a delay step can be added. Intended for developing purposes only. If a duration - is set but the keyword 'delay' is not explicitely added to 'POSTPROCESSING_STEPS', - the delay step will be processed as last step. In such a case, a log entry will - be written on service startup to remind the admin about that situation. See the - Environment Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;POSTPROCESSING_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;POSTPROCESSING_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;POSTPROCESSING_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;POSTPROCESSING_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;POSTPROCESSING_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_EVENTS_TLS_INSECURE: - name: OC_INSECURE;POSTPROCESSING_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether the ocis server should skip the client certificate verification - during the TLS handshake. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;POSTPROCESSING_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided POSTPROCESSING_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_LOG_COLOR: - name: OC_LOG_COLOR;POSTPROCESSING_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_LOG_FILE: - name: OC_LOG_FILE;POSTPROCESSING_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_LOG_LEVEL: - name: OC_LOG_LEVEL;POSTPROCESSING_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_LOG_PRETTY: - name: OC_LOG_PRETTY;POSTPROCESSING_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_MAX_RETRIES: - name: POSTPROCESSING_MAX_RETRIES - defaultValue: "14" - type: int - description: The maximum number of retries for a failed postprocessing step. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_RETRY_BACKOFF_DURATION: - name: POSTPROCESSING_RETRY_BACKOFF_DURATION - defaultValue: 5s - type: Duration - description: The base for the exponential backoff duration before retrying a failed - postprocessing step. See the Environment Variable Types description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_STEPS: - name: POSTPROCESSING_STEPS - defaultValue: '[]' - type: '[]string' - description: 'A list of postprocessing steps processed in order of their appearance. - Currently supported values by the system are: ''virusscan'', ''policies'' and - ''delay''. Custom steps are allowed. See the documentation for instructions. See - the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_STORE: - name: OC_PERSISTENT_STORE;POSTPROCESSING_STORE - defaultValue: nats-js-kv - type: string - description: 'The type of the store. Supported values are: ''memory'', ''redis-sentinel'', - ''nats-js-kv'', ''noop''. See the text description for details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_STORE_AUTH_PASSWORD: - name: OC_PERSISTENT_STORE_AUTH_PASSWORD;POSTPROCESSING_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_STORE_AUTH_USERNAME: - name: OC_PERSISTENT_STORE_AUTH_USERNAME;POSTPROCESSING_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_STORE_DATABASE: - name: POSTPROCESSING_STORE_DATABASE - defaultValue: postprocessing - type: string - description: The database name the configured store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_STORE_NODES: - name: OC_PERSISTENT_STORE_NODES;POSTPROCESSING_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -POSTPROCESSING_STORE_TABLE: - name: POSTPROCESSING_STORE_TABLE - defaultValue: "" - type: string - description: The database table the store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_STORE_TTL: - name: OC_PERSISTENT_STORE_TTL;POSTPROCESSING_STORE_TTL - defaultValue: 0s - type: Duration - description: Time to live for events in the store. See the Environment Variable - Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;POSTPROCESSING_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_TRACING_ENABLED: - name: OC_TRACING_ENABLED;POSTPROCESSING_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;POSTPROCESSING_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_TRACING_TYPE: - name: OC_TRACING_TYPE;POSTPROCESSING_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -POSTPROCESSING_WORKERS: - name: POSTPROCESSING_WORKERS - defaultValue: "3" - type: int - description: The number of concurrent go routines that fetch events from the event - queue. - introductionVersion: "6.7" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_ACCOUNT_BACKEND_TYPE: - name: PROXY_ACCOUNT_BACKEND_TYPE - defaultValue: cs3 - type: string - description: Account backend the PROXY service should use. Currently only 'cs3' - is possible here. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_AUTOPROVISION_ACCOUNTS: - name: PROXY_AUTOPROVISION_ACCOUNTS - defaultValue: "false" - type: bool - description: Set this to 'true' to automatically provision users that do not yet - exist in the users service on-demand upon first sign-in. To use this a write-enabled - libregraph user backend needs to be setup an running. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_AUTOPROVISION_CLAIM_DISPLAYNAME: - name: PROXY_AUTOPROVISION_CLAIM_DISPLAYNAME - defaultValue: name - type: string - description: The name of the OIDC claim that holds the display name. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_AUTOPROVISION_CLAIM_EMAIL: - name: PROXY_AUTOPROVISION_CLAIM_EMAIL - defaultValue: email - type: string - description: The name of the OIDC claim that holds the email. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_AUTOPROVISION_CLAIM_GROUPS: - name: PROXY_AUTOPROVISION_CLAIM_GROUPS - defaultValue: groups - type: string - description: The name of the OIDC claim that holds the groups. - introductionVersion: 6.1.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_AUTOPROVISION_CLAIM_USERNAME: - name: PROXY_AUTOPROVISION_CLAIM_USERNAME - defaultValue: preferred_username - type: string - description: The name of the OIDC claim that holds the username. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_CSP_CONFIG_FILE_LOCATION: - name: PROXY_CSP_CONFIG_FILE_LOCATION - defaultValue: "" - type: string - description: The location of the CSP configuration file. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_DEBUG_ADDR: - name: PROXY_DEBUG_ADDR - defaultValue: 127.0.0.1:9205 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_DEBUG_PPROF: - name: PROXY_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_DEBUG_TOKEN: - name: PROXY_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_DEBUG_ZPAGES: - name: PROXY_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_ENABLE_APP_AUTH: - name: PROXY_ENABLE_APP_AUTH - defaultValue: "false" - type: bool - description: Allow app authentication. This can be used to authenticate 3rd party - applications. Note that auth-app service must be running for this feature to work. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_ENABLE_BASIC_AUTH: - name: PROXY_ENABLE_BASIC_AUTH - defaultValue: "false" - type: bool - description: Set this to true to enable 'basic authentication' (username/password). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_ENABLE_PRESIGNEDURLS: - name: PROXY_ENABLE_PRESIGNEDURLS - defaultValue: "true" - type: bool - description: Allow OCS to get a signing key to sign requests. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;PROXY_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;PROXY_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;PROXY_EVENTS_CLUSTER - defaultValue: opencloud-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. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;PROXY_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;PROXY_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. Set to - a empty string to disable emitting events. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_EVENTS_TLS_INSECURE: - name: OC_INSECURE;PROXY_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;PROXY_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided PROXY_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_HTTP_ADDR: - name: PROXY_HTTP_ADDR - defaultValue: 0.0.0.0:9200 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_HTTP_ROOT: - name: PROXY_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_HTTPS_CACERT: - name: PROXY_HTTPS_CACERT - defaultValue: "" - type: string - description: Path/File for the root CA certificate used to validate the server’s - TLS certificate for https enabled backend services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_INSECURE_BACKENDS: - name: PROXY_INSECURE_BACKENDS - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for all HTTP backend connections. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_LOG_COLOR: - name: OC_LOG_COLOR;PROXY_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_LOG_FILE: - name: OC_LOG_FILE;PROXY_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_LOG_LEVEL: - name: OC_LOG_LEVEL;PROXY_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_LOG_PRETTY: - name: OC_LOG_PRETTY;PROXY_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_MACHINE_AUTH_API_KEY: - name: OC_MACHINE_AUTH_API_KEY;PROXY_MACHINE_AUTH_API_KEY - defaultValue: "" - type: string - description: Machine auth API key used to validate internal requests necessary to - access resources from other services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_ACCESS_TOKEN_VERIFY_METHOD: - name: PROXY_OIDC_ACCESS_TOKEN_VERIFY_METHOD - defaultValue: jwt - type: string - description: Sets how OIDC access tokens should be verified. Possible values are - 'none' and 'jwt'. When using 'none', no special validation apart from using it - for accessing the IPD's userinfo endpoint will be done. When using 'jwt', it tries - to parse the access token as a jwt token and verifies the signature using the - keys published on the IDP's 'jwks_uri'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_INSECURE: - name: OC_INSECURE;PROXY_OIDC_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for connections to the IDP. Note - that this is not recommended for production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_ISSUER: - name: OC_URL;OC_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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_JWKS_REFRESH_INTERVAL: - name: PROXY_OIDC_JWKS_REFRESH_INTERVAL - defaultValue: "60" - type: uint64 - description: The interval for refreshing the JWKS (JSON Web Key Set) in minutes - in the background via a new HTTP request to the IDP. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_JWKS_REFRESH_RATE_LIMIT: - name: PROXY_OIDC_JWKS_REFRESH_RATE_LIMIT - defaultValue: "60" - type: uint64 - description: Limits the rate in seconds at which refresh requests are performed - for unknown keys. This is used to prevent malicious clients from imposing high - network load on the IDP via ocis. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_JWKS_REFRESH_TIMEOUT: - name: PROXY_OIDC_JWKS_REFRESH_TIMEOUT - defaultValue: "10" - type: uint64 - description: The timeout in seconds for an outgoing JWKS request. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_JWKS_REFRESH_UNKNOWN_KID: - name: PROXY_OIDC_JWKS_REFRESH_UNKNOWN_KID - defaultValue: "true" - type: bool - description: If set to 'true', the JWKS refresh request will occur every time an - unknown KEY ID (KID) is seen. Always set a 'refresh_limit' when enabling this. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_REWRITE_WELLKNOWN: - name: PROXY_OIDC_REWRITE_WELLKNOWN - defaultValue: "false" - type: bool - description: Enables rewriting the /.well-known/openid-configuration to the configured - OIDC issuer. Needed by the Desktop Client, Android Client and iOS Client to discover - the OIDC provider. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_SKIP_USER_INFO: - name: PROXY_OIDC_SKIP_USER_INFO - defaultValue: "false" - type: bool - description: Do not look up user claims at the userinfo endpoint and directly read - them from the access token. Incompatible with 'PROXY_OIDC_ACCESS_TOKEN_VERIFY_METHOD=none'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_USERINFO_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;PROXY_OIDC_USERINFO_CACHE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the cache. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_USERINFO_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;PROXY_OIDC_USERINFO_CACHE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the cache. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_USERINFO_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;PROXY_OIDC_USERINFO_CACHE_DISABLE_PERSISTENCE - defaultValue: "false" - type: bool - description: Disables persistence of the cache. Only applies when store type 'nats-js-kv' - is configured. Defaults to false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_USERINFO_CACHE_STORE: - name: OC_CACHE_STORE;PROXY_OIDC_USERINFO_CACHE_STORE - defaultValue: memory - type: string - 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: "" -PROXY_OIDC_USERINFO_CACHE_STORE_NODES: - name: OC_CACHE_STORE_NODES;PROXY_OIDC_USERINFO_CACHE_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -PROXY_OIDC_USERINFO_CACHE_TABLE: - name: PROXY_OIDC_USERINFO_CACHE_TABLE - defaultValue: "" - type: string - description: The database table the store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_OIDC_USERINFO_CACHE_TTL: - name: OC_CACHE_TTL;PROXY_OIDC_USERINFO_CACHE_TTL - defaultValue: 10s - type: Duration - 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: "" -PROXY_POLICIES_QUERY: - name: PROXY_POLICIES_QUERY - defaultValue: "" - type: string - description: Defines the 'Complete Rules' variable defined in the rego rule set - this step uses for its evaluation. Rules default to deny if the variable was not - found. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE: - name: OC_CACHE_STORE;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE - defaultValue: nats-js-kv - type: string - description: 'The type of the signing key store. Supported values are: ''redis-sentinel'', - ''nats-js-kv'' and ''ocisstoreservice'' (deprecated). See the text description - for details.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_DISABLE_PERSISTENCE - defaultValue: "true" - type: bool - description: Disables persistence of the store. Only applies when store type 'nats-js-kv' - is configured. Defaults to true. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_NODES: - name: OC_CACHE_STORE_NODES;PROXY_PRESIGNEDURL_SIGNING_KEYS_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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL: - name: OC_CACHE_TTL;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL - defaultValue: 12h0m0s - type: Duration - description: Default time to live for signing keys. See the Environment Variable - Types description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_ROLE_ASSIGNMENT_DRIVER: - name: PROXY_ROLE_ASSIGNMENT_DRIVER - defaultValue: default - type: string - description: 'The mechanism that should be used to assign roles to user upon login. - Supported values: ''default'' or ''oidc''. ''default'' will assign the role ''user'' - to users which don''t have a role assigned at the time they login. ''oidc'' will - assign the role based on the value of a claim (configured via PROXY_ROLE_ASSIGNMENT_OIDC_CLAIM) - from the users OIDC claims.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_ROLE_ASSIGNMENT_OIDC_CLAIM: - name: PROXY_ROLE_ASSIGNMENT_OIDC_CLAIM - defaultValue: roles - type: string - description: The OIDC claim used to create the users role assignment. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;PROXY_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;PROXY_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_TLS: - name: PROXY_TLS - defaultValue: "true" - type: bool - description: Enable/Disable HTTPS for external HTTP services. Must be set to 'true' - if the built-in IDP service an no reverse proxy is used. See the text description - for details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;PROXY_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_TRACING_ENABLED: - name: OC_TRACING_ENABLED;PROXY_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;PROXY_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_TRACING_TYPE: - name: OC_TRACING_TYPE;PROXY_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_TRANSPORT_TLS_CERT: - name: PROXY_TRANSPORT_TLS_CERT - defaultValue: /var/lib/opencloud/proxy/server.crt - type: string - description: Path/File name of the TLS server certificate (in PEM format) for the - external http services. If not defined, the root directory derives from $OC_BASE_DATA_PATH/proxy. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_TRANSPORT_TLS_KEY: - name: PROXY_TRANSPORT_TLS_KEY - defaultValue: /var/lib/opencloud/proxy/server.key - type: string - description: Path/File name for the TLS certificate key (in PEM format) for the - server certificate to use for the external http services. If not defined, the - root directory derives from $OC_BASE_DATA_PATH/proxy. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_USER_CS3_CLAIM: - name: PROXY_USER_CS3_CLAIM - defaultValue: username - type: string - description: The name of a CS3 user attribute (claim) that should be mapped to the - 'user_oidc_claim'. Supported values are 'username', 'mail' and 'userid'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -PROXY_USER_OIDC_CLAIM: - name: PROXY_USER_OIDC_CLAIM - defaultValue: preferred_username - type: string - description: The name of an OpenID Connect claim that is used for resolving users - with the account backend. The value of the claim must hold a per user unique, - stable and non re-assignable identifier. The availability of claims depends on - your Identity Provider. There are common claims available for most Identity providers - like 'email' or 'preferred_username' but you can also add your own claim. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_CONTENT_EXTRACTION_SIZE_LIMIT: - name: SEARCH_CONTENT_EXTRACTION_SIZE_LIMIT - defaultValue: "20971520" - type: uint64 - description: Maximum file size in bytes that is allowed for content extraction. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_DEBUG_ADDR: - name: SEARCH_DEBUG_ADDR - defaultValue: 127.0.0.1:9224 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_DEBUG_PPROF: - name: SEARCH_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_DEBUG_TOKEN: - name: SEARCH_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_DEBUG_ZPAGES: - name: SEARCH_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_ENGINE_BLEVE_DATA_PATH: - name: SEARCH_ENGINE_BLEVE_DATA_PATH - defaultValue: /var/lib/opencloud/search - type: string - description: The directory where the filesystem will store search data. If not defined, - the root directory derives from $OC_BASE_DATA_PATH/search. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_ENGINE_TYPE: - name: SEARCH_ENGINE_TYPE - defaultValue: bleve - type: string - description: 'Defines which search engine to use. Defaults to ''bleve''. Supported - values are: ''bleve''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_ASYNC_UPLOADS: - name: OC_ASYNC_UPLOADS;SEARCH_EVENTS_ASYNC_UPLOADS - defaultValue: "true" - type: bool - description: Enable asynchronous file uploads. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;SEARCH_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;SEARCH_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;SEARCH_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;SEARCH_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;SEARCH_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_NUM_CONSUMERS: - name: SEARCH_EVENTS_NUM_CONSUMERS - defaultValue: "0" - type: int - description: The amount of concurrent event consumers to start. Event consumers - are used for searching files. Multiple consumers increase parallelisation, but - will also increase CPU and memory demands. The default value is 0. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_REINDEX_DEBOUNCE_DURATION: - name: SEARCH_EVENTS_REINDEX_DEBOUNCE_DURATION - defaultValue: "1000" - type: int - description: The duration in milliseconds the reindex debouncer waits before triggering - a reindex of a space that was modified. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_TLS_INSECURE: - name: OC_INSECURE;SEARCH_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;SEARCH_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided SEARCH_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EXTRACTOR_CS3SOURCE_INSECURE: - name: OC_INSECURE;SEARCH_EXTRACTOR_CS3SOURCE_INSECURE - defaultValue: "false" - type: bool - description: Ignore untrusted SSL certificates when connecting to the CS3 source. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EXTRACTOR_TIKA_CLEAN_STOP_WORDS: - name: SEARCH_EXTRACTOR_TIKA_CLEAN_STOP_WORDS - defaultValue: "true" - type: bool - description: Defines if stop words should be cleaned or not. See the documentation - for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EXTRACTOR_TIKA_TIKA_URL: - name: SEARCH_EXTRACTOR_TIKA_TIKA_URL - defaultValue: http://127.0.0.1:9998 - type: string - description: URL of the tika server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_EXTRACTOR_TYPE: - name: SEARCH_EXTRACTOR_TYPE - defaultValue: basic - type: string - description: 'Defines the content extraction engine. Defaults to ''basic''. Supported - values are: ''basic'' and ''tika''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_GRPC_ADDR: - name: SEARCH_GRPC_ADDR - defaultValue: 127.0.0.1:9220 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_JWT_SECRET: - name: OC_JWT_SECRET;SEARCH_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_LOG_COLOR: - name: OC_LOG_COLOR;SEARCH_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_LOG_FILE: - name: OC_LOG_FILE;SEARCH_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_LOG_LEVEL: - name: OC_LOG_LEVEL;SEARCH_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_LOG_PRETTY: - name: OC_LOG_PRETTY;SEARCH_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;SEARCH_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;SEARCH_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;SEARCH_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_TRACING_ENABLED: - name: OC_TRACING_ENABLED;SEARCH_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;SEARCH_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SEARCH_TRACING_TYPE: - name: OC_TRACING_TYPE;SEARCH_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_ADMIN_USER_ID: - name: OC_ADMIN_USER_ID;SETTINGS_ADMIN_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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_BUNDLES_PATH: - name: SETTINGS_BUNDLES_PATH - defaultValue: "" - type: string - description: The path to a JSON file with a list of bundles. If not defined, the - default bundles will be loaded. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;SETTINGS_CACHE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the cache. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;SETTINGS_CACHE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the cache. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;SETTINGS_CACHE_DISABLE_PERSISTENCE - defaultValue: "false" - type: bool - 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: "" -SETTINGS_CACHE_STORE: - name: OC_CACHE_STORE;SETTINGS_CACHE_STORE - defaultValue: memory - type: string - 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: "" -SETTINGS_CACHE_STORE_NODES: - name: OC_CACHE_STORE_NODES;SETTINGS_CACHE_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -SETTINGS_CACHE_TTL: - name: OC_CACHE_TTL;SETTINGS_CACHE_TTL - defaultValue: 10m0s - type: Duration - description: Default time to live for entries in the cache. Only applied when access - tokens has no expiration. See the Environment Variable Types description for more - details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;SETTINGS_CORS_ALLOW_CREDENTIALS - defaultValue: "true" - type: bool - 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: "" -SETTINGS_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;SETTINGS_CORS_ALLOW_HEADERS - defaultValue: '[Authorization Origin Content-Type Accept X-Requested-With X-Request-Id]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;SETTINGS_CORS_ALLOW_METHODS - defaultValue: '[GET POST PUT PATCH DELETE OPTIONS]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;SETTINGS_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_DEBUG_ADDR: - name: SETTINGS_DEBUG_ADDR - defaultValue: 127.0.0.1:9194 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_DEBUG_PPROF: - name: SETTINGS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_DEBUG_TOKEN: - name: SETTINGS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_DEBUG_ZPAGES: - name: SETTINGS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_DIRECTORY_CACHE_TABLE: - name: SETTINGS_DIRECTORY_CACHE_TABLE - defaultValue: settings_dirs - type: string - description: The database table the store should use for the directory cache. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_FILE_CACHE_TABLE: - name: SETTINGS_FILE_CACHE_TABLE - defaultValue: settings_files - type: string - description: The database table the store should use for the file cache. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_GRPC_ADDR: - name: SETTINGS_GRPC_ADDR - defaultValue: 127.0.0.1:9191 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_HTTP_ADDR: - name: SETTINGS_HTTP_ADDR - defaultValue: 127.0.0.1:9190 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_HTTP_ROOT: - name: SETTINGS_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_JWT_SECRET: - name: OC_JWT_SECRET;SETTINGS_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_LOG_COLOR: - name: OC_LOG_COLOR;SETTINGS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_LOG_FILE: - name: OC_LOG_FILE;SETTINGS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_LOG_LEVEL: - name: OC_LOG_LEVEL;SETTINGS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_LOG_PRETTY: - name: OC_LOG_PRETTY;SETTINGS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_SERVICE_ACCOUNT_IDS: - name: SETTINGS_SERVICE_ACCOUNT_IDS;OC_SERVICE_ACCOUNT_ID - defaultValue: '[service-user-id]' - type: '[]string' - description: 'The list of all service account IDs. These will be assigned the hidden - ''service-account'' role. Note: When using ''OC_SERVICE_ACCOUNT_ID'' this will - contain only one value while ''SETTINGS_SERVICE_ACCOUNT_IDS'' can have multiple. - See the ''auth-service'' service description for more details about service accounts.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_SETUP_DEFAULT_ASSIGNMENTS: - name: SETTINGS_SETUP_DEFAULT_ASSIGNMENTS;IDM_CREATE_DEMO_USERS - defaultValue: "false" - type: bool - description: The default role assignments the demo users should be setup. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_STORAGE_GATEWAY_GRPC_ADDR: - name: SETTINGS_STORAGE_GATEWAY_GRPC_ADDR;STORAGE_GATEWAY_GRPC_ADDR - defaultValue: eu.opencloud.api.storage-system - type: string - description: GRPC address of the STORAGE-SYSTEM service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_STORAGE_GRPC_ADDR: - name: SETTINGS_STORAGE_GRPC_ADDR;STORAGE_GRPC_ADDR - defaultValue: eu.opencloud.api.storage-system - type: string - description: GRPC address of the STORAGE-SYSTEM service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_SYSTEM_USER_ID: - name: OC_SYSTEM_USER_ID;SETTINGS_SYSTEM_USER_ID - defaultValue: "" - type: string - 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_SYSTEM_USER_IDP: - name: OC_SYSTEM_USER_IDP;SETTINGS_SYSTEM_USER_IDP - defaultValue: internal - type: string - description: IDP of the oCIS STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;SETTINGS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;SETTINGS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;SETTINGS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_TRACING_TYPE: - name: OC_TRACING_TYPE;SETTINGS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SETTINGS_TRANSLATION_PATH: - name: OC_TRANSLATION_PATH;SETTINGS_TRANSLATION_PATH - defaultValue: "" - type: string - description: (optional) Set this to a path with custom translations to overwrite - the builtin translations. Note that file and folder naming rules apply, see the - documentation for more details. - introductionVersion: "7.1" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_DEBUG_ADDR: - name: SHARING_DEBUG_ADDR - defaultValue: 127.0.0.1:9151 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_DEBUG_PPROF: - name: SHARING_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_DEBUG_TOKEN: - name: SHARING_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_DEBUG_ZPAGES: - name: SHARING_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;SHARING_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: Password for the events broker. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;SHARING_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: Username for the events broker. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;SHARING_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;SHARING_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;SHARING_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_EVENTS_TLS_INSECURE: - name: OC_INSECURE;SHARING_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;SHARING_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided SHARING_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_GRPC_ADDR: - name: SHARING_GRPC_ADDR - defaultValue: 127.0.0.1:9150 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;SHARING_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_JWT_SECRET: - name: OC_JWT_SECRET;SHARING_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_LOG_COLOR: - name: OC_LOG_COLOR;SHARING_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_LOG_FILE: - name: OC_LOG_FILE;SHARING_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_LOG_LEVEL: - name: OC_LOG_LEVEL;SHARING_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_LOG_PRETTY: - name: OC_LOG_PRETTY;SHARING_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_OCM_PROVIDER_AUTHORIZER_DRIVER: - name: SHARING_OCM_PROVIDER_AUTHORIZER_DRIVER - defaultValue: json - type: string - description: Driver to be used to persist ocm invites. Supported value is only 'json'. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PASSWORD_POLICY_BANNED_PASSWORDS_LIST: - name: OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST;SHARING_PASSWORD_POLICY_BANNED_PASSWORDS_LIST - defaultValue: "" - type: string - description: Path to the 'banned passwords list' file. This only impacts public - link password validation. See the documentation for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PASSWORD_POLICY_DISABLED: - name: OC_PASSWORD_POLICY_DISABLED;SHARING_PASSWORD_POLICY_DISABLED - defaultValue: "false" - type: bool - description: Disable the password policy. Defaults to false if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PASSWORD_POLICY_MIN_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_CHARACTERS - defaultValue: "8" - type: int - description: Define the minimum password length. Defaults to 8 if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PASSWORD_POLICY_MIN_DIGITS: - name: OC_PASSWORD_POLICY_MIN_DIGITS;SHARING_PASSWORD_POLICY_MIN_DIGITS - defaultValue: "1" - type: int - description: Define the minimum number of digits. Defaults to 1 if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS - defaultValue: "1" - type: int - description: Define the minimum number of uppercase letters. Defaults to 1 if not - set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS - defaultValue: "1" - type: int - description: Define the minimum number of characters from the special characters - list to be present. Defaults to 1 if not set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS: - name: OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS - defaultValue: "1" - type: int - description: Define the minimum number of lowercase letters. Defaults to 1 if not - set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_CS3_PROVIDER_ADDR: - name: SHARING_PUBLIC_CS3_PROVIDER_ADDR - defaultValue: eu.opencloud.api.storage-system - type: string - description: GRPC address of the STORAGE-SYSTEM service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_CS3_SYSTEM_USER_API_KEY: - name: OC_SYSTEM_USER_API_KEY;SHARING_PUBLIC_CS3_SYSTEM_USER_API_KEY - defaultValue: "" - type: string - description: API key for the STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_CS3_SYSTEM_USER_ID: - name: OC_SYSTEM_USER_ID;SHARING_PUBLIC_CS3_SYSTEM_USER_ID - defaultValue: "" - type: string - 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_CS3_SYSTEM_USER_IDP: - name: OC_SYSTEM_USER_IDP;SHARING_PUBLIC_CS3_SYSTEM_USER_IDP - defaultValue: internal - type: string - description: IDP of the oCIS STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_DRIVER: - name: SHARING_PUBLIC_DRIVER - defaultValue: jsoncs3 - type: string - description: Driver to be used to persist public shares. Supported values are 'jsoncs3', - 'json' and 'cs3' (deprecated). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_JSON_FILE: - name: SHARING_PUBLIC_JSON_FILE - defaultValue: /var/lib/opencloud/storage/publicshares.json - type: string - description: Path to the JSON file where public share meta-data will be stored. - This JSON file contains the information about public shares that have been created. - If not defined, the root directory derives from $OC_BASE_DATA_PATH/storage. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_JSONCS3_PROVIDER_ADDR: - name: SHARING_PUBLIC_JSONCS3_PROVIDER_ADDR - defaultValue: eu.opencloud.api.storage-system - type: string - description: GRPC address of the STORAGE-SYSTEM service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_JSONCS3_SYSTEM_USER_API_KEY: - name: OC_SYSTEM_USER_API_KEY;SHARING_PUBLIC_JSONCS3_SYSTEM_USER_API_KEY - defaultValue: "" - type: string - description: API key for the STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_JSONCS3_SYSTEM_USER_ID: - name: OC_SYSTEM_USER_ID;SHARING_PUBLIC_JSONCS3_SYSTEM_USER_ID - defaultValue: "" - type: string - 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_JSONCS3_SYSTEM_USER_IDP: - name: OC_SYSTEM_USER_IDP;SHARING_PUBLIC_JSONCS3_SYSTEM_USER_IDP - defaultValue: internal - type: string - description: IDP of the oCIS STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD: - name: OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD;SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD - defaultValue: "true" - type: bool - description: Set this to true if you want to enforce passwords on all public shares. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD: - name: OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD;SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD - defaultValue: "false" - type: bool - description: Set this to true if you want to enforce passwords on Uploader, Editor - or Contributor shares. If not using the global OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD, - you must define the FRONTEND_OCS_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD (deprecated) - in the frontend service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_SKIP_USER_GROUPS_IN_TOKEN: - name: SHARING_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;SHARING_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_TRACING_ENABLED: - name: OC_TRACING_ENABLED;SHARING_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;SHARING_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_TRACING_TYPE: - name: OC_TRACING_TYPE;SHARING_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_CS3_PROVIDER_ADDR: - name: SHARING_USER_CS3_PROVIDER_ADDR - defaultValue: eu.opencloud.api.storage-system - type: string - description: GRPC address of the STORAGE-SYSTEM service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_CS3_SYSTEM_USER_API_KEY: - name: OC_SYSTEM_USER_API_KEY;SHARING_USER_CS3_SYSTEM_USER_API_KEY - defaultValue: "" - type: string - description: API key for the STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_CS3_SYSTEM_USER_ID: - name: OC_SYSTEM_USER_ID;SHARING_USER_CS3_SYSTEM_USER_ID - defaultValue: "" - type: string - 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_CS3_SYSTEM_USER_IDP: - name: OC_SYSTEM_USER_IDP;SHARING_USER_CS3_SYSTEM_USER_IDP - defaultValue: internal - type: string - description: IDP of the oCIS STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_DRIVER: - name: SHARING_USER_DRIVER - defaultValue: jsoncs3 - type: string - description: Driver to be used to persist shares. Supported values are 'jsoncs3', - 'json', 'cs3' (deprecated) and 'owncloudsql'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_JSON_FILE: - name: SHARING_USER_JSON_FILE - defaultValue: /var/lib/opencloud/storage/shares.json - type: string - description: Path to the JSON file where shares will be persisted. If not defined, - the root directory derives from $OC_BASE_DATA_PATH/storage. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_JSONCS3_CACHE_TTL: - name: SHARING_USER_JSONCS3_CACHE_TTL - defaultValue: "0" - type: int - description: TTL for the internal caches in seconds. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_JSONCS3_MAX_CONCURRENCY: - name: OC_MAX_CONCURRENCY;SHARING_USER_JSONCS3_MAX_CONCURRENCY - defaultValue: "1" - type: int - description: Maximum number of concurrent go-routines. Higher values can potentially - get work done faster but will also cause more load on the system. Values of 0 - or below will be ignored and the default value will be used. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_JSONCS3_PROVIDER_ADDR: - name: SHARING_USER_JSONCS3_PROVIDER_ADDR - defaultValue: eu.opencloud.api.storage-system - type: string - description: GRPC address of the STORAGE-SYSTEM service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_JSONCS3_SYSTEM_USER_API_KEY: - name: OC_SYSTEM_USER_API_KEY;SHARING_USER_JSONCS3_SYSTEM_USER_API_KEY - defaultValue: "" - type: string - description: API key for the STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_JSONCS3_SYSTEM_USER_ID: - name: OC_SYSTEM_USER_ID;SHARING_USER_JSONCS3_SYSTEM_USER_ID - defaultValue: "" - type: string - 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_JSONCS3_SYSTEM_USER_IDP: - name: OC_SYSTEM_USER_IDP;SHARING_USER_JSONCS3_SYSTEM_USER_IDP - defaultValue: internal - type: string - description: IDP of the oCIS STORAGE-SYSTEM system user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_OWNCLOUDSQL_DB_HOST: - name: SHARING_USER_OWNCLOUDSQL_DB_HOST - defaultValue: mysql - type: string - description: Hostname or IP of the database server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_OWNCLOUDSQL_DB_NAME: - name: SHARING_USER_OWNCLOUDSQL_DB_NAME - defaultValue: owncloud - type: string - description: Name of the database to be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_OWNCLOUDSQL_DB_PASSWORD: - name: SHARING_USER_OWNCLOUDSQL_DB_PASSWORD - defaultValue: "" - type: string - description: Password for the database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_OWNCLOUDSQL_DB_PORT: - name: SHARING_USER_OWNCLOUDSQL_DB_PORT - defaultValue: "3306" - type: int - description: Port that the database server is listening on. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_OWNCLOUDSQL_DB_USERNAME: - name: SHARING_USER_OWNCLOUDSQL_DB_USERNAME - defaultValue: owncloud - type: string - description: Username for the database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SHARING_USER_OWNCLOUDSQL_USER_STORAGE_MOUNT_ID: - name: SHARING_USER_OWNCLOUDSQL_USER_STORAGE_MOUNT_ID - defaultValue: "" - type: string - description: Mount ID of the ownCloudSQL users storage for mapping ownCloud 10 shares. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;SSE_CORS_ALLOW_CREDENTIALS - defaultValue: "true" - type: bool - 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: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;SSE_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. - See the Environment Variable Types description for more details.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;SSE_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. - See the Environment Variable Types description for more details.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;SSE_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. - See the Environment Variable Types description for more details.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_DEBUG_ADDR: - name: SSE_DEBUG_ADDR - defaultValue: 127.0.0.1:9139 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_DEBUG_PPROF: - name: SSE_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_DEBUG_TOKEN: - name: SSE_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_DEBUG_ZPAGES: - name: SSE_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;SSE_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;SSE_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;SSE_EVENTS_CLUSTER - defaultValue: opencloud-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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;SSE_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;SSE_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" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_EVENTS_TLS_INSECURE: - name: OC_INSECURE;SSE_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;SSE_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided SSE_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_HTTP_ADDR: - name: SSE_HTTP_ADDR - defaultValue: 127.0.0.1:9135 - type: string - description: The bind address of the HTTP service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_HTTP_ROOT: - name: SSE_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_JWT_SECRET: - name: OC_JWT_SECRET;SSE_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_KEEPALIVE_INTERVAL: - name: SSE_KEEPALIVE_INTERVAL - defaultValue: 0s - type: Duration - description: To prevent intermediate proxies from closing the SSE connection, send - periodic SSE comments to keep it open. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_LOG_COLOR: - name: OC_LOG_COLOR;SSE_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_LOG_FILE: - name: OC_LOG_FILE;SSE_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_LOG_LEVEL: - name: OC_LOG_LEVEL;SSE_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_LOG_PRETTY: - name: OC_LOG_PRETTY;SSE_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;SSE_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_TRACING_ENABLED: - name: OC_TRACING_ENABLED;SSE_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;SSE_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -SSE_TRACING_TYPE: - name: OC_TRACING_TYPE;SSE_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_GATEWAY_GRPC_ADDR: - name: SETTINGS_STORAGE_GATEWAY_GRPC_ADDR;STORAGE_GATEWAY_GRPC_ADDR - defaultValue: eu.opencloud.api.storage-system - type: string - description: GRPC address of the STORAGE-SYSTEM service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_GRPC_ADDR: - name: SETTINGS_STORAGE_GRPC_ADDR;STORAGE_GRPC_ADDR - defaultValue: eu.opencloud.api.storage-system - type: string - description: GRPC address of the STORAGE-SYSTEM service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_DEBUG_ADDR: - name: STORAGE_PUBLICLINK_DEBUG_ADDR - defaultValue: 127.0.0.1:9179 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_DEBUG_PPROF: - name: STORAGE_PUBLICLINK_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_DEBUG_TOKEN: - name: STORAGE_PUBLICLINK_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_DEBUG_ZPAGES: - name: STORAGE_PUBLICLINK_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_GRPC_ADDR: - name: STORAGE_PUBLICLINK_GRPC_ADDR - defaultValue: 127.0.0.1:9178 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;STORAGE_PUBLICLINK_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_JWT_SECRET: - name: OC_JWT_SECRET;STORAGE_PUBLICLINK_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_LOG_COLOR: - name: OC_LOG_COLOR;STORAGE_PUBLICLINK_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_LOG_FILE: - name: OC_LOG_FILE;STORAGE_PUBLICLINK_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_LOG_LEVEL: - name: OC_LOG_LEVEL;STORAGE_PUBLICLINK_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_LOG_PRETTY: - name: OC_LOG_PRETTY;STORAGE_PUBLICLINK_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_SKIP_USER_GROUPS_IN_TOKEN: - name: STORAGE_PUBLICLINK_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_STORAGE_PROVIDER_MOUNT_ID: - name: STORAGE_PUBLICLINK_STORAGE_PROVIDER_MOUNT_ID - defaultValue: 7993447f-687f-490d-875c-ac95e89a62a4 - type: string - description: Mount ID of this storage. Admins can set the ID for the storage in - this config option manually which is then used to reference the storage. Any reasonable - long string is possible, preferably this would be an UUIDv4 format. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;STORAGE_PUBLICLINK_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_TRACING_ENABLED: - name: OC_TRACING_ENABLED;STORAGE_PUBLICLINK_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;STORAGE_PUBLICLINK_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_PUBLICLINK_TRACING_TYPE: - name: OC_TRACING_TYPE;STORAGE_PUBLICLINK_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_DEBUG_ADDR: - name: STORAGE_SHARES_DEBUG_ADDR - defaultValue: 127.0.0.1:9156 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_DEBUG_PPROF: - name: STORAGE_SHARES_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_DEBUG_TOKEN: - name: STORAGE_SHARES_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_DEBUG_ZPAGES: - name: STORAGE_SHARES_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_GRPC_ADDR: - name: STORAGE_SHARES_GRPC_ADDR - defaultValue: 127.0.0.1:9154 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;STORAGE_SHARES_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_JWT_SECRET: - name: OC_JWT_SECRET;STORAGE_SHARES_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_LOG_COLOR: - name: OC_LOG_COLOR;STORAGE_SHARES_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_LOG_FILE: - name: OC_LOG_FILE;STORAGE_SHARES_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_LOG_LEVEL: - name: OC_LOG_LEVEL;STORAGE_SHARES_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_LOG_PRETTY: - name: OC_LOG_PRETTY;STORAGE_SHARES_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_MOUNT_ID: - name: STORAGE_SHARES_MOUNT_ID - defaultValue: 7639e57c-4433-4a12-8201-722fd0009154 - type: string - description: Mount ID of this storage. Admins can set the ID for the storage in - this config option manually which is then used to reference the storage. Any reasonable - long string is possible, preferably this would be an UUIDv4 format. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_READ_ONLY: - name: STORAGE_SHARES_READ_ONLY - defaultValue: "false" - type: bool - description: Set this storage to be read-only. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_SKIP_USER_GROUPS_IN_TOKEN: - name: STORAGE_SHARES_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;STORAGE_SHARES_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_TRACING_ENABLED: - name: OC_TRACING_ENABLED;STORAGE_SHARES_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;STORAGE_SHARES_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_TRACING_TYPE: - name: OC_TRACING_TYPE;STORAGE_SHARES_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SHARES_USER_SHARE_PROVIDER_ENDPOINT: - name: STORAGE_SHARES_USER_SHARE_PROVIDER_ENDPOINT - defaultValue: eu.opencloud.api.sharing - type: string - description: GRPC endpoint of the SHARING service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;STORAGE_SYSTEM_CACHE_AUTH_PASSWORD - defaultValue: "" - type: string - description: Password for the configured store. Only applies when store type 'nats-js-kv' - is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;STORAGE_SYSTEM_CACHE_AUTH_USERNAME - defaultValue: "" - type: string - description: Username for the configured store. Only applies when store type 'nats-js-kv' - is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;STORAGE_SYSTEM_CACHE_DISABLE_PERSISTENCE - defaultValue: "false" - type: bool - 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: "" -STORAGE_SYSTEM_CACHE_STORE: - name: OC_CACHE_STORE;STORAGE_SYSTEM_CACHE_STORE - defaultValue: memory - type: string - 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: "" -STORAGE_SYSTEM_CACHE_STORE_NODES: - name: OC_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. This has no effect - when 'memory' store is 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: "" -STORAGE_SYSTEM_CACHE_TTL: - name: OC_CACHE_TTL;STORAGE_SYSTEM_CACHE_TTL - defaultValue: 24m0s - type: Duration - 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: "" -STORAGE_SYSTEM_DATA_SERVER_URL: - name: STORAGE_SYSTEM_DATA_SERVER_URL - defaultValue: http://localhost:9216/data - type: string - description: URL of the data server, needs to be reachable by other services using - this service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_DEBUG_ADDR: - name: STORAGE_SYSTEM_DEBUG_ADDR - defaultValue: 127.0.0.1:9217 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_DEBUG_PPROF: - name: STORAGE_SYSTEM_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_DEBUG_TOKEN: - name: STORAGE_SYSTEM_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_DEBUG_ZPAGES: - name: STORAGE_SYSTEM_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_DRIVER: - name: STORAGE_SYSTEM_DRIVER - defaultValue: ocis - type: string - description: The driver which should be used by the service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_GRPC_ADDR: - name: STORAGE_SYSTEM_GRPC_ADDR - defaultValue: 127.0.0.1:9215 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;STORAGE_SYSTEM_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GPRC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_HTTP_ADDR: - name: STORAGE_SYSTEM_HTTP_ADDR - defaultValue: 127.0.0.1:9216 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_HTTP_PROTOCOL: - name: STORAGE_SYSTEM_HTTP_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_JWT_SECRET: - name: OC_JWT_SECRET;STORAGE_SYSTEM_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_LOG_COLOR: - name: OC_LOG_COLOR;STORAGE_SYSTEM_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_LOG_FILE: - name: OC_LOG_FILE;STORAGE_SYSTEM_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_LOG_LEVEL: - name: OC_LOG_LEVEL;STORAGE_SYSTEM_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_LOG_PRETTY: - name: OC_LOG_PRETTY;STORAGE_SYSTEM_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_OC_LOCK_CYCLE_DURATION_FACTOR: - name: STORAGE_SYSTEM_OC_LOCK_CYCLE_DURATION_FACTOR - defaultValue: "30" - type: int - description: When trying to lock files, ocis will multiply the cycle with this factor - and use it as a millisecond timeout. Values of 0 or below will be ignored and - the default value of 30 will be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_OC_MAX_ACQUIRE_LOCK_CYCLES: - name: STORAGE_SYSTEM_OC_MAX_ACQUIRE_LOCK_CYCLES - defaultValue: "20" - type: int - description: When trying to lock files, ocis will try this amount of times to acquire - the lock before failing. After each try it will wait for an increasing amount - of time. Values of 0 or below will be ignored and the default value of 20 will - be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_OC_ROOT: - name: STORAGE_SYSTEM_OC_ROOT - defaultValue: /var/lib/opencloud/storage/metadata - type: string - description: Path for the directory where the STORAGE-SYSTEM service stores it's - persistent data. If not defined, the root directory derives from $OC_BASE_DATA_PATH/storage. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_SKIP_USER_GROUPS_IN_TOKEN: - name: STORAGE_SYSTEM_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;STORAGE_SYSTEM_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_TRACING_ENABLED: - name: OC_TRACING_ENABLED;STORAGE_SYSTEM_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;STORAGE_SYSTEM_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_SYSTEM_TRACING_TYPE: - name: OC_TRACING_TYPE;STORAGE_SYSTEM_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_ASYNC_PROPAGATOR_PROPAGATION_DELAY: - name: STORAGE_USERS_ASYNC_PROPAGATOR_PROPAGATION_DELAY - defaultValue: 0s - type: Duration - description: The delay between a change made to a tree and the propagation start - on treesize and treetime. Multiple propagations are computed to a single one. - See the Environment Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_CLI_MAX_ATTEMPTS_RENAME_FILE: - name: STORAGE_USERS_CLI_MAX_ATTEMPTS_RENAME_FILE - defaultValue: "0" - type: int - description: The maximum number of attempts to rename a file when a user restores - a file to an existing destination with the same name. The minimum value is 100. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;STORAGE_USERS_CORS_ALLOW_CREDENTIALS - defaultValue: "false" - type: bool - 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: "" -STORAGE_USERS_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;STORAGE_USERS_CORS_ALLOW_HEADERS - defaultValue: '[Authorization Origin X-Requested-With X-Request-Id X-HTTP-Method-Override - Content-Type Upload-Length Upload-Offset Tus-Resumable Upload-Metadata Upload-Defer-Length - Upload-Concat Upload-Incomplete Upload-Draft-Interop-Version]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;STORAGE_USERS_CORS_ALLOW_METHODS - defaultValue: '[POST HEAD PATCH OPTIONS GET DELETE]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;STORAGE_USERS_CORS_ALLOW_ORIGINS - defaultValue: '[https://localhost:9200]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_CORS_EXPOSE_HEADERS: - name: OC_CORS_EXPOSE_HEADERS;STORAGE_USERS_CORS_EXPOSE_HEADERS - defaultValue: '[Upload-Offset Location Upload-Length Tus-Version Tus-Resumable Tus-Max-Size - Tus-Extension Upload-Metadata Upload-Defer-Length Upload-Concat Upload-Incomplete - Upload-Draft-Interop-Version]' - type: '[]string' - description: 'A list of exposed CORS headers. See following chapter for more details: - *Access-Control-Expose-Headers* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_CORS_MAX_AGE: - name: OC_CORS_MAX_AGE;STORAGE_USERS_CORS_MAX_AGE - defaultValue: "86400" - type: uint - description: 'The max cache duration of preflight headers. See following chapter - for more details: *Access-Control-Max-Age* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_DATA_GATEWAY_URL: - name: STORAGE_USERS_DATA_GATEWAY_URL - defaultValue: https://localhost:9200/data - type: string - description: URL of the data gateway server - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_DATA_SERVER_URL: - name: STORAGE_USERS_DATA_SERVER_URL - defaultValue: http://localhost:9158/data - type: string - description: URL of the data server, needs to be reachable by the data gateway provided - by the frontend service or the user if directly exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_DEBUG_ADDR: - name: STORAGE_USERS_DEBUG_ADDR - defaultValue: 127.0.0.1:9159 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_DEBUG_PPROF: - name: STORAGE_USERS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_DEBUG_TOKEN: - name: STORAGE_USERS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_DEBUG_ZPAGES: - name: STORAGE_USERS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_DRIVER: - name: STORAGE_USERS_DRIVER - defaultValue: ocis - type: string - description: 'The storage driver which should be used by the service. Defaults to - ''ocis'', Supported values are: ''ocis'', ''s3ng'' and ''owncloudsql''. The ''ocis'' - driver stores all data (blob and meta data) in an POSIX compliant volume. The - ''s3ng'' driver stores metadata in a POSIX compliant volume and uploads blobs - to the s3 bucket.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;STORAGE_USERS_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;STORAGE_USERS_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;STORAGE_USERS_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_EVENTS_ENABLE_TLS: - name: OC_EVENTS_ENABLE_TLS;STORAGE_USERS_EVENTS_ENABLE_TLS - defaultValue: "false" - type: bool - description: Enable TLS for the connection to the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_EVENTS_ENDPOINT: - name: OC_EVENTS_ENDPOINT;STORAGE_USERS_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_EVENTS_NUM_CONSUMERS: - name: STORAGE_USERS_EVENTS_NUM_CONSUMERS - defaultValue: "0" - type: int - description: The amount of concurrent event consumers to start. Event consumers - are used for post-processing files. Multiple consumers increase parallelisation, - but will also increase CPU and memory demands. The setting has no effect when - the OC_ASYNC_UPLOADS is set to false. The default and minimum value is 1. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_EVENTS_TLS_INSECURE: - name: OC_INSECURE;STORAGE_USERS_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;STORAGE_USERS_EVENTS_TLS_ROOT_CA_CERTIFICATE - defaultValue: "" - type: string - description: The root CA certificate used to validate the server's TLS certificate. - If provided STORAGE_USERS_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_EXPOSE_DATA_SERVER: - name: STORAGE_USERS_EXPOSE_DATA_SERVER - defaultValue: "false" - type: bool - description: Exposes the data server directly to users and bypasses the data gateway. - Ensure that the data server address is reachable by users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_FILEMETADATA_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;STORAGE_USERS_FILEMETADATA_CACHE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the cache store. Only applies when - store type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_FILEMETADATA_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;STORAGE_USERS_FILEMETADATA_CACHE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the cache store. Only applies when - store type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_FILEMETADATA_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;STORAGE_USERS_FILEMETADATA_CACHE_DISABLE_PERSISTENCE - defaultValue: "false" - type: bool - 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: "" -STORAGE_USERS_FILEMETADATA_CACHE_STORE: - name: OC_CACHE_STORE;STORAGE_USERS_FILEMETADATA_CACHE_STORE - defaultValue: memory - type: string - 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: "" -STORAGE_USERS_FILEMETADATA_CACHE_STORE_NODES: - name: OC_CACHE_STORE_NODES;STORAGE_USERS_FILEMETADATA_CACHE_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -STORAGE_USERS_FILEMETADATA_CACHE_TTL: - name: OC_CACHE_TTL;STORAGE_USERS_FILEMETADATA_CACHE_TTL - defaultValue: 24m0s - type: Duration - 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: "" -STORAGE_USERS_GATEWAY_GRPC_ADDR: - name: OC_GATEWAY_GRPC_ADDR;STORAGE_USERS_GATEWAY_GRPC_ADDR - defaultValue: 127.0.0.1:9142 - type: string - description: The bind address of the gateway GRPC address. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_GRACEFUL_SHUTDOWN_TIMEOUT: - name: STORAGE_USERS_GRACEFUL_SHUTDOWN_TIMEOUT - defaultValue: "30" - type: int - description: 'The number of seconds to wait for the ''storage-users'' service to - shutdown cleanly before exiting with an error that gets logged. Note: This setting - is only applicable when running the ''storage-users'' service as a standalone - service. See the text description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_GRPC_ADDR: - name: STORAGE_USERS_GRPC_ADDR - defaultValue: 127.0.0.1:9157 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;STORAGE_USERS_GRPC_PROTOCOL - defaultValue: "" - type: string - description: The transport protocol of the GPRC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_HTTP_ADDR: - name: STORAGE_USERS_HTTP_ADDR - defaultValue: 127.0.0.1:9158 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_HTTP_PROTOCOL: - name: STORAGE_USERS_HTTP_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_ID_CACHE_AUTH_PASSWORD: - name: OC_CACHE_AUTH_PASSWORD;STORAGE_USERS_ID_CACHE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the cache store. Only applies when - store type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_ID_CACHE_AUTH_USERNAME: - name: OC_CACHE_AUTH_USERNAME;STORAGE_USERS_ID_CACHE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the cache store. Only applies when - store type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_ID_CACHE_DISABLE_PERSISTENCE: - name: OC_CACHE_DISABLE_PERSISTENCE;STORAGE_USERS_ID_CACHE_DISABLE_PERSISTENCE - defaultValue: "false" - type: bool - 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: "" -STORAGE_USERS_ID_CACHE_STORE: - name: OC_CACHE_STORE;STORAGE_USERS_ID_CACHE_STORE - defaultValue: memory - type: string - 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: "" -STORAGE_USERS_ID_CACHE_STORE_NODES: - name: OC_CACHE_STORE_NODES;STORAGE_USERS_ID_CACHE_STORE_NODES - defaultValue: '[127.0.0.1:9233]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -STORAGE_USERS_ID_CACHE_TTL: - name: OC_CACHE_TTL;STORAGE_USERS_ID_CACHE_TTL - defaultValue: 24m0s - type: Duration - description: Default time to live for user info in the user info cache. Only applied - when access tokens have no expiration. Defaults to 300s which is derived from - the underlaying package though not explicitly set as default. See the Environment - Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_JWT_SECRET: - name: OC_JWT_SECRET;STORAGE_USERS_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_LOG_COLOR: - name: OC_LOG_COLOR;STORAGE_USERS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_LOG_FILE: - name: OC_LOG_FILE;STORAGE_USERS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_LOG_LEVEL: - name: OC_LOG_LEVEL;STORAGE_USERS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_LOG_PRETTY: - name: OC_LOG_PRETTY;STORAGE_USERS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_MACHINE_AUTH_API_KEY: - name: OC_MACHINE_AUTH_API_KEY;STORAGE_USERS_MACHINE_AUTH_API_KEY - defaultValue: "" - type: string - description: Machine auth API key used to validate internal requests necessary for - the access to resources from other services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_MOUNT_ID: - name: STORAGE_USERS_MOUNT_ID - defaultValue: "" - type: string - description: Mount ID of this storage. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_GENERAL_SPACE_ALIAS_TEMPLATE: - name: STORAGE_USERS_OCIS_GENERAL_SPACE_ALIAS_TEMPLATE - defaultValue: '{{.SpaceType}}/{{.SpaceName \| replace " " "-" \| - lower}}' - type: string - description: Template string to construct general space aliases. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_GENERAL_SPACE_PATH_TEMPLATE: - name: STORAGE_USERS_OCIS_GENERAL_SPACE_PATH_TEMPLATE - defaultValue: "" - type: string - description: Template string to construct the paths of the projects space roots. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_LOCK_CYCLE_DURATION_FACTOR: - name: STORAGE_USERS_OCIS_LOCK_CYCLE_DURATION_FACTOR - defaultValue: "30" - type: int - description: When trying to lock files, ocis will multiply the cycle with this factor - and use it as a millisecond timeout. Values of 0 or below will be ignored and - the default value will be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_MAX_ACQUIRE_LOCK_CYCLES: - name: STORAGE_USERS_OCIS_MAX_ACQUIRE_LOCK_CYCLES - defaultValue: "20" - type: int - description: When trying to lock files, ocis will try this amount of times to acquire - the lock before failing. After each try it will wait for an increasing amount - of time. Values of 0 or below will be ignored and the default value will be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_MAX_CONCURRENCY: - name: OC_MAX_CONCURRENCY;STORAGE_USERS_OCIS_MAX_CONCURRENCY - defaultValue: "5" - type: int - description: Maximum number of concurrent go-routines. Higher values can potentially - get work done faster but will also cause more load on the system. Values of 0 - or below will be ignored and the default value will be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_MAX_QUOTA: - name: OC_SPACES_MAX_QUOTA;STORAGE_USERS_OCIS_MAX_QUOTA - defaultValue: "0" - type: uint64 - description: Set a global max quota for spaces in bytes. A value of 0 equals unlimited. - If not using the global OC_SPACES_MAX_QUOTA, you must define the FRONTEND_MAX_QUOTA - in the frontend service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_PERMISSIONS_ENDPOINT: - name: STORAGE_USERS_PERMISSION_ENDPOINT;STORAGE_USERS_OCIS_PERMISSIONS_ENDPOINT - defaultValue: eu.opencloud.api.settings - type: string - description: Endpoint of the permissions service. The endpoints can differ for 'ocis' - and 's3ng'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_PERSONAL_SPACE_ALIAS_TEMPLATE: - name: STORAGE_USERS_OCIS_PERSONAL_SPACE_ALIAS_TEMPLATE - defaultValue: '{{.SpaceType}}/{{.User.Username \| lower}}' - type: string - description: Template string to construct personal space aliases. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_PERSONAL_SPACE_PATH_TEMPLATE: - name: STORAGE_USERS_OCIS_PERSONAL_SPACE_PATH_TEMPLATE - defaultValue: "" - type: string - description: Template string to construct the paths of the personal space roots. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_PROPAGATOR: - name: OC_DECOMPOSEDFS_PROPAGATOR;STORAGE_USERS_OCIS_PROPAGATOR - defaultValue: sync - type: string - description: The propagator used for decomposedfs. At the moment, only 'sync' is - fully supported, 'async' is available as an experimental option. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_ROOT: - name: STORAGE_USERS_OCIS_ROOT - defaultValue: /var/lib/opencloud/storage/users - type: string - description: The directory where the filesystem storage will store blobs and metadata. - If not defined, the root directory derives from $OC_BASE_DATA_PATH/storage/users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_SHARE_FOLDER: - name: STORAGE_USERS_OCIS_SHARE_FOLDER - defaultValue: /Shares - type: string - description: Name of the folder jailing all shares. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OCIS_USER_LAYOUT: - name: STORAGE_USERS_OCIS_USER_LAYOUT - defaultValue: '{{.Id.OpaqueId}}' - type: string - description: Template string for the user storage layout in the user directory. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_DATADIR: - name: STORAGE_USERS_OWNCLOUDSQL_DATADIR - defaultValue: /var/lib/opencloud/storage/owncloud - type: string - description: The directory where the filesystem storage will store SQL migration - data. If not defined, the root directory derives from $OC_BASE_DATA_PATH/storage/owncloud. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_DB_HOST: - name: STORAGE_USERS_OWNCLOUDSQL_DB_HOST - defaultValue: "" - type: string - description: Hostname or IP of the database server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_DB_NAME: - name: STORAGE_USERS_OWNCLOUDSQL_DB_NAME - defaultValue: owncloud - type: string - description: Name of the database to be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_DB_PASSWORD: - name: STORAGE_USERS_OWNCLOUDSQL_DB_PASSWORD - defaultValue: owncloud - type: string - description: Password for the database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_DB_PORT: - name: STORAGE_USERS_OWNCLOUDSQL_DB_PORT - defaultValue: "3306" - type: int - description: Port that the database server is listening on. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_DB_USERNAME: - name: STORAGE_USERS_OWNCLOUDSQL_DB_USERNAME - defaultValue: owncloud - type: string - description: Username for the database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_LAYOUT: - name: STORAGE_USERS_OWNCLOUDSQL_LAYOUT - defaultValue: '{{.Username}}' - type: string - description: Path layout to use to navigate into a users folder in an owncloud data - directory - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_SHARE_FOLDER: - name: STORAGE_USERS_OWNCLOUDSQL_SHARE_FOLDER - defaultValue: /Shares - type: string - description: Name of the folder jailing all shares. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_UPLOADINFO_DIR: - name: STORAGE_USERS_OWNCLOUDSQL_UPLOADINFO_DIR - defaultValue: /var/lib/opencloud/storage/uploadinfo - type: string - description: The directory where the filesystem will store uploads temporarily. - If not defined, the root directory derives from $OC_BASE_DATA_PATH/storage/uploadinfo. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_OWNCLOUDSQL_USERS_PROVIDER_ENDPOINT: - name: STORAGE_USERS_OWNCLOUDSQL_USERS_PROVIDER_ENDPOINT - defaultValue: eu.opencloud.api.users - type: string - description: Endpoint of the users provider. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_PERMISSION_ENDPOINT: - name: STORAGE_USERS_PERMISSION_ENDPOINT;STORAGE_USERS_POSIX_PERMISSIONS_ENDPOINT - defaultValue: eu.opencloud.api.settings - type: string - description: Endpoint of the permissions service. The endpoints can differ for 'ocis', - 'posix' and 's3ng'. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_POSIX_GENERAL_SPACE_PATH_TEMPLATE: - name: STORAGE_USERS_POSIX_GENERAL_SPACE_PATH_TEMPLATE - defaultValue: projects/{{.SpaceId}} - type: string - description: Template string to construct the paths of the projects space roots. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_POSIX_PERMISSIONS_ENDPOINT: - name: STORAGE_USERS_PERMISSION_ENDPOINT;STORAGE_USERS_POSIX_PERMISSIONS_ENDPOINT - defaultValue: eu.opencloud.api.settings - type: string - description: Endpoint of the permissions service. The endpoints can differ for 'ocis', - 'posix' and 's3ng'. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_POSIX_PERSONAL_SPACE_PATH_TEMPLATE: - name: STORAGE_USERS_POSIX_PERSONAL_SPACE_PATH_TEMPLATE - defaultValue: users/{{.User.Username}} - type: string - description: Template string to construct the paths of the personal space roots. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_POSIX_ROOT: - name: STORAGE_USERS_POSIX_ROOT - defaultValue: /var/lib/opencloud/storage/users - type: string - description: The directory where the filesystem storage will store its data. If - not defined, the root directory derives from $OC_BASE_DATA_PATH/storage/users. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_POSIX_SCAN_DEBOUNCE_DELAY: - name: STORAGE_USERS_POSIX_SCAN_DEBOUNCE_DELAY - defaultValue: 1s - type: Duration - description: The time in milliseconds to wait before scanning the filesystem for - changes after a change has been detected. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_POSIX_USE_SPACE_GROUPS: - name: STORAGE_USERS_POSIX_USE_SPACE_GROUPS - defaultValue: "false" - type: bool - description: Use space groups to manage permissions on spaces. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_POSIX_WATCH_FOLDER_KAFKA_BROKERS: - name: STORAGE_USERS_POSIX_WATCH_FOLDER_KAFKA_BROKERS - defaultValue: "" - type: string - description: Comma-separated list of kafka brokers to read the watchfolder events - from. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_POSIX_WATCH_PATH: - name: STORAGE_USERS_POSIX_WATCH_PATH - defaultValue: "" - type: string - description: Path to the watch directory/file. Only applies to the 'gpfsfileauditlogging' - and 'inotifywait' watcher, in which case it is the path of the file audit log - file/base directory to watch. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_POSIX_WATCH_TYPE: - name: STORAGE_USERS_POSIX_WATCH_TYPE - defaultValue: "" - type: string - description: Type of the watcher to use for getting notified about changes to the - filesystem. Currently available options are 'inotifywait' (default), 'gpfswatchfolder' - and 'gpfsfileauditlogging'. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_PURGE_TRASH_BIN_PERSONAL_DELETE_BEFORE: - name: STORAGE_USERS_PURGE_TRASH_BIN_PERSONAL_DELETE_BEFORE - defaultValue: 720h0m0s - type: Duration - description: Specifies the period of time in which items that have been in the personal - trash-bin for longer than this value should be deleted. A value of 0 means no - automatic deletion. See the Environment Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_PURGE_TRASH_BIN_PROJECT_DELETE_BEFORE: - name: STORAGE_USERS_PURGE_TRASH_BIN_PROJECT_DELETE_BEFORE - defaultValue: 720h0m0s - type: Duration - description: Specifies the period of time in which items that have been in the project - trash-bin for longer than this value should be deleted. A value of 0 means no - automatic deletion. See the Environment Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_PURGE_TRASH_BIN_USER_ID: - name: OC_ADMIN_USER_ID;STORAGE_USERS_PURGE_TRASH_BIN_USER_ID - defaultValue: "" - type: string - 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: "" -STORAGE_USERS_READ_ONLY: - name: STORAGE_USERS_READ_ONLY - defaultValue: "false" - type: bool - description: Set this storage to be read-only. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_ACCESS_KEY: - name: STORAGE_USERS_S3NG_ACCESS_KEY - defaultValue: "" - type: string - description: Access key for the S3 bucket. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_BUCKET: - name: STORAGE_USERS_S3NG_BUCKET - defaultValue: "" - type: string - description: Name of the S3 bucket. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_ENDPOINT: - name: STORAGE_USERS_S3NG_ENDPOINT - defaultValue: "" - type: string - description: Endpoint for the S3 bucket. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_GENERAL_SPACE_ALIAS_TEMPLATE: - name: STORAGE_USERS_S3NG_GENERAL_SPACE_ALIAS_TEMPLATE - defaultValue: '{{.SpaceType}}/{{.SpaceName \| replace " " "-" \| - lower}}' - type: string - description: Template string to construct general space aliases. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_GENERAL_SPACE_PATH_TEMPLATE: - name: STORAGE_USERS_S3NG_GENERAL_SPACE_PATH_TEMPLATE - defaultValue: "" - type: string - description: Template string to construct the paths of the projects space roots. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_LOCK_CYCLE_DURATION_FACTOR: - name: STORAGE_USERS_S3NG_LOCK_CYCLE_DURATION_FACTOR - defaultValue: "30" - type: int - description: When trying to lock files, ocis will multiply the cycle with this factor - and use it as a millisecond timeout. Values of 0 or below will be ignored and - the default value of 30 will be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_MAX_ACQUIRE_LOCK_CYCLES: - name: STORAGE_USERS_S3NG_MAX_ACQUIRE_LOCK_CYCLES - defaultValue: "20" - type: int - description: When trying to lock files, ocis will try this amount of times to acquire - the lock before failing. After each try it will wait for an increasing amount - of time. Values of 0 or below will be ignored and the default value of 20 will - be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_MAX_CONCURRENCY: - name: OC_MAX_CONCURRENCY;STORAGE_USERS_S3NG_MAX_CONCURRENCY - defaultValue: "5" - type: int - description: Maximum number of concurrent go-routines. Higher values can potentially - get work done faster but will also cause more load on the system. Values of 0 - or below will be ignored and the default value of 100 will be used. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PERMISSIONS_ENDPOINT: - name: STORAGE_USERS_PERMISSION_ENDPOINT;STORAGE_USERS_S3NG_PERMISSIONS_ENDPOINT - defaultValue: eu.opencloud.api.settings - type: string - description: Endpoint of the permissions service. The endpoints can differ for 'ocis' - and 's3ng'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PERSONAL_SPACE_ALIAS_TEMPLATE: - name: STORAGE_USERS_S3NG_PERSONAL_SPACE_ALIAS_TEMPLATE - defaultValue: '{{.SpaceType}}/{{.User.Username \| lower}}' - type: string - description: Template string to construct personal space aliases. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PERSONAL_SPACE_PATH_TEMPLATE: - name: STORAGE_USERS_S3NG_PERSONAL_SPACE_PATH_TEMPLATE - defaultValue: "" - type: string - description: Template string to construct the paths of the personal space roots. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PROPAGATOR: - name: OC_DECOMPOSEDFS_PROPAGATOR;STORAGE_USERS_S3NG_PROPAGATOR - defaultValue: sync - type: string - description: The propagator used for decomposedfs. At the moment, only 'sync' is - fully supported, 'async' is available as an experimental option. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PUT_OBJECT_CONCURRENT_STREAM_PARTS: - name: STORAGE_USERS_S3NG_PUT_OBJECT_CONCURRENT_STREAM_PARTS - defaultValue: "true" - type: bool - description: Always precreate parts when copying objects to S3. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PUT_OBJECT_DISABLE_CONTENT_SHA256: - name: STORAGE_USERS_S3NG_PUT_OBJECT_DISABLE_CONTENT_SHA256 - defaultValue: "false" - type: bool - description: Disable sending content sha256 when copying objects to S3. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PUT_OBJECT_DISABLE_MULTIPART: - name: STORAGE_USERS_S3NG_PUT_OBJECT_DISABLE_MULTIPART - defaultValue: "true" - type: bool - description: Disable multipart uploads when copying objects to S3 - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PUT_OBJECT_NUM_THREADS: - name: STORAGE_USERS_S3NG_PUT_OBJECT_NUM_THREADS - defaultValue: "4" - type: uint - description: Number of concurrent uploads to use when copying objects to S3. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PUT_OBJECT_PART_SIZE: - name: STORAGE_USERS_S3NG_PUT_OBJECT_PART_SIZE - defaultValue: "0" - type: uint64 - description: Part size for concurrent uploads to S3. If no value or 0 is set, the - library's default value of 16MB is used. The value range is min 5MB and max 5GB. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_PUT_OBJECT_SEND_CONTENT_MD5: - name: STORAGE_USERS_S3NG_PUT_OBJECT_SEND_CONTENT_MD5 - defaultValue: "true" - type: bool - description: Send a Content-MD5 header when copying objects to S3. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_REGION: - name: STORAGE_USERS_S3NG_REGION - defaultValue: default - type: string - description: Region of the S3 bucket. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_ROOT: - name: STORAGE_USERS_S3NG_ROOT - defaultValue: /var/lib/opencloud/storage/users - type: string - description: The directory where the filesystem storage will store metadata for - blobs. If not defined, the root directory derives from $OC_BASE_DATA_PATH/storage/users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_SECRET_KEY: - name: STORAGE_USERS_S3NG_SECRET_KEY - defaultValue: "" - type: string - description: Secret key for the S3 bucket. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_SHARE_FOLDER: - name: STORAGE_USERS_S3NG_SHARE_FOLDER - defaultValue: /Shares - type: string - description: Name of the folder jailing all shares. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_S3NG_USER_LAYOUT: - name: STORAGE_USERS_S3NG_USER_LAYOUT - defaultValue: '{{.Id.OpaqueId}}' - type: string - description: Template string for the user storage layout in the user directory. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_SERVICE_ACCOUNT_ID: - name: OC_SERVICE_ACCOUNT_ID;STORAGE_USERS_SERVICE_ACCOUNT_ID - defaultValue: "" - type: string - description: The ID of the service account the service should use. See the 'auth-service' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;STORAGE_USERS_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_SERVICE_NAME: - name: STORAGE_USERS_SERVICE_NAME - defaultValue: storage-users - type: string - description: Service name to use. Change this when starting an additional storage - provider with a custom configuration to prevent it from colliding with the default - 'storage-users' service. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_SKIP_USER_GROUPS_IN_TOKEN: - name: STORAGE_USERS_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;STORAGE_USERS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;STORAGE_USERS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;STORAGE_USERS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_TRACING_TYPE: - name: OC_TRACING_TYPE;STORAGE_USERS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_TRANSFER_EXPIRES: - name: STORAGE_USERS_TRANSFER_EXPIRES - defaultValue: "86400" - type: int64 - description: The time after which the token for upload postprocessing expires - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -STORAGE_USERS_UPLOAD_EXPIRATION: - name: STORAGE_USERS_UPLOAD_EXPIRATION - defaultValue: "86400" - type: int64 - description: Duration in seconds after which uploads will expire. Note that when - setting this to a low number, uploads could be cancelled before they are finished - and return a 403 to the user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;THUMBNAILS_CORS_ALLOW_CREDENTIALS - defaultValue: "true" - type: bool - 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: "6.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;THUMBNAILS_CORS_ALLOW_HEADERS - defaultValue: '[Authorization Origin Content-Type Accept X-Requested-With X-Request-Id - Cache-Control]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: "6.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;THUMBNAILS_CORS_ALLOW_METHODS - defaultValue: '[GET POST PUT PATCH DELETE OPTIONS]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: "6.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;THUMBNAILS_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. - See the Environment Variable Types description for more details.' - introductionVersion: "6.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_CS3SOURCE_INSECURE: - name: OC_INSECURE;THUMBNAILS_CS3SOURCE_INSECURE - defaultValue: "false" - type: bool - description: Ignore untrusted SSL certificates when connecting to the CS3 source. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_DATA_ENDPOINT: - name: THUMBNAILS_DATA_ENDPOINT - defaultValue: http://127.0.0.1:9186/thumbnails/data - type: string - description: The HTTP endpoint where the actual thumbnail file can be downloaded. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_DEBUG_ADDR: - name: THUMBNAILS_DEBUG_ADDR - defaultValue: 127.0.0.1:9189 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_DEBUG_PPROF: - name: THUMBNAILS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_DEBUG_TOKEN: - name: THUMBNAILS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_DEBUG_ZPAGES: - name: THUMBNAILS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_FILESYSTEMSTORAGE_ROOT: - name: THUMBNAILS_FILESYSTEMSTORAGE_ROOT - defaultValue: /var/lib/opencloud/thumbnails - type: string - description: The directory where the filesystem storage will store the thumbnails. - If not defined, the root directory derives from $OC_BASE_DATA_PATH/thumbnails. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_GRPC_ADDR: - name: THUMBNAILS_GRPC_ADDR - defaultValue: 127.0.0.1:9185 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_HTTP_ADDR: - name: THUMBNAILS_HTTP_ADDR - defaultValue: 127.0.0.1:9186 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_HTTP_ROOT: - name: THUMBNAILS_HTTP_ROOT - defaultValue: /thumbnails - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_LOG_COLOR: - name: OC_LOG_COLOR;THUMBNAILS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_LOG_FILE: - name: OC_LOG_FILE;THUMBNAILS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_LOG_LEVEL: - name: OC_LOG_LEVEL;THUMBNAILS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_LOG_PRETTY: - name: OC_LOG_PRETTY;THUMBNAILS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_MAX_CONCURRENT_REQUESTS: - name: THUMBNAILS_MAX_CONCURRENT_REQUESTS - defaultValue: "0" - type: int - description: Number of maximum concurrent thumbnail requests. Default is 0 which - is unlimited. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_MAX_INPUT_HEIGHT: - name: THUMBNAILS_MAX_INPUT_HEIGHT - defaultValue: "7680" - type: int - description: The maximum height of an input image which is being processed. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_MAX_INPUT_IMAGE_FILE_SIZE: - name: THUMBNAILS_MAX_INPUT_IMAGE_FILE_SIZE - defaultValue: 50MB - type: string - description: 'The maximum file size of an input image which is being processed. - Usable common abbreviations: [KB, KiB, MB, MiB, GB, GiB, TB, TiB, PB, PiB, EB, - EiB], example: 2GB.' - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_MAX_INPUT_WIDTH: - name: THUMBNAILS_MAX_INPUT_WIDTH - defaultValue: "7680" - type: int - description: The maximum width of an input image which is being processed. - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_RESOLUTIONS: - name: THUMBNAILS_RESOLUTIONS - defaultValue: '[16x16 32x32 64x64 128x128 1080x1920 1920x1080 2160x3840 3840x2160 - 4320x7680 7680x4320]' - type: '[]string' - description: The supported list of target resolutions in the format WidthxHeight - like 32x32. You can define any resolution as required. See the Environment Variable - Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;THUMBNAILS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;THUMBNAILS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;THUMBNAILS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_TRACING_TYPE: - name: OC_TRACING_TYPE;THUMBNAILS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_TRANSFER_TOKEN: - name: THUMBNAILS_TRANSFER_TOKEN - defaultValue: "" - type: string - description: The secret to sign JWT to download the actual thumbnail file. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_TXT_FONTMAP_FILE: - name: THUMBNAILS_TXT_FONTMAP_FILE - defaultValue: "" - type: string - description: The path to a font file for txt thumbnails. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -THUMBNAILS_WEBDAVSOURCE_INSECURE: - name: OC_INSECURE;THUMBNAILS_WEBDAVSOURCE_INSECURE - defaultValue: "false" - type: bool - description: Ignore untrusted SSL certificates when connecting to the webdav source. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;USERLOG_CORS_ALLOW_CREDENTIALS - defaultValue: "true" - type: bool - 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: "" -USERLOG_CORS_ALLOW_HEADERS: - name: OC_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_CORS_ALLOW_METHODS: - name: OC_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_CORS_ALLOW_ORIGINS: - name: OC_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_DEBUG_ADDR: - name: USERLOG_DEBUG_ADDR - defaultValue: 127.0.0.1:9214 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_DEBUG_PPROF: - name: USERLOG_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_DEBUG_TOKEN: - name: USERLOG_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_DEBUG_ZPAGES: - name: USERLOG_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_EVENTS_AUTH_PASSWORD: - name: OC_EVENTS_AUTH_PASSWORD;USERLOG_EVENTS_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_EVENTS_AUTH_USERNAME: - name: OC_EVENTS_AUTH_USERNAME;USERLOG_EVENTS_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the events broker. The events broker - is the OpenCloud service which receives and delivers events between the services. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_EVENTS_CLUSTER: - name: OC_EVENTS_CLUSTER;USERLOG_EVENTS_CLUSTER - defaultValue: opencloud-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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_EVENTS_ENABLE_TLS: - name: OC_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 OpenCloud service which receives and delivers events between the services. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_EVENTS_ENDPOINT: - name: OC_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: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_EVENTS_TLS_INSECURE: - name: OC_INSECURE;USERLOG_EVENTS_TLS_INSECURE - defaultValue: "false" - type: bool - description: Whether to verify the server TLS certificates. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_EVENTS_TLS_ROOT_CA_CERTIFICATE: - name: OC_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 NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_GLOBAL_NOTIFICATIONS_SECRET: - name: USERLOG_GLOBAL_NOTIFICATIONS_SECRET - defaultValue: "" - type: string - description: The secret to secure the global notifications endpoint. Only system - admins and users knowing that secret can call the global notifications POST/DELETE - endpoints. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_HTTP_ADDR: - name: USERLOG_HTTP_ADDR - defaultValue: 127.0.0.1:9210 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_HTTP_ROOT: - name: USERLOG_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_JWT_SECRET: - name: OC_JWT_SECRET;USERLOG_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_LOG_COLOR: - name: OC_LOG_COLOR;USERLOG_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_LOG_FILE: - name: OC_LOG_FILE;USERLOG_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_LOG_LEVEL: - name: OC_LOG_LEVEL;USERLOG_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_LOG_PRETTY: - name: OC_LOG_PRETTY;USERLOG_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_MAX_CONCURRENCY: - name: OC_MAX_CONCURRENCY;USERLOG_MAX_CONCURRENCY - defaultValue: "1" - type: int - description: Maximum number of concurrent go-routines. Higher values can potentially - get work done faster but will also cause more load on the system. Values of 0 - or below will be ignored and the default value will be used. - introductionVersion: 7.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_SERVICE_ACCOUNT_ID: - name: OC_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' - service description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_SERVICE_ACCOUNT_SECRET: - name: OC_SERVICE_ACCOUNT_SECRET;USERLOG_SERVICE_ACCOUNT_SECRET - defaultValue: "" - type: string - description: The service account secret. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_STORE: - name: OC_PERSISTENT_STORE;USERLOG_STORE - defaultValue: memory - type: string - description: 'The type of the store. Supported values are: ''memory'', ''nats-js-kv'', - ''redis-sentinel'', ''noop''. See the text description for details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_STORE_AUTH_PASSWORD: - name: OC_PERSISTENT_STORE_AUTH_PASSWORD;USERLOG_STORE_AUTH_PASSWORD - defaultValue: "" - type: string - description: The password to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_STORE_AUTH_USERNAME: - name: OC_PERSISTENT_STORE_AUTH_USERNAME;USERLOG_STORE_AUTH_USERNAME - defaultValue: "" - type: string - description: The username to authenticate with the store. Only applies when store - type 'nats-js-kv' is configured. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_STORE_DATABASE: - name: USERLOG_STORE_DATABASE - defaultValue: userlog - type: string - description: The database name the configured store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_STORE_NODES: - name: OC_PERSISTENT_STORE_NODES;USERLOG_STORE_NODES - defaultValue: '[]' - type: '[]string' - description: A list of nodes to access the configured store. This has no effect - when 'memory' store is 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: "" -USERLOG_STORE_TABLE: - name: USERLOG_STORE_TABLE - defaultValue: events - type: string - description: The database table the store should use. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_STORE_TTL: - name: OC_PERSISTENT_STORE_TTL;USERLOG_STORE_TTL - defaultValue: 336h0m0s - type: Duration - 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: "" - deprecationInfo: "" -USERLOG_TRACING_COLLECTOR: - name: OC_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. - Only used if the tracing endpoint is unset. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_TRACING_ENABLED: - name: OC_TRACING_ENABLED;USERLOG_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;USERLOG_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_TRACING_TYPE: - name: OC_TRACING_TYPE;USERLOG_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERLOG_TRANSLATION_PATH: - name: OC_TRANSLATION_PATH;USERLOG_TRANSLATION_PATH - defaultValue: "" - type: string - description: (optional) Set this to a path with custom translations to overwrite - the builtin translations. Note that file and folder naming rules apply, see the - documentation for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_DEBUG_ADDR: - name: USERS_DEBUG_ADDR - defaultValue: 127.0.0.1:9145 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_DEBUG_PPROF: - name: USERS_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_DEBUG_TOKEN: - name: USERS_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_DEBUG_ZPAGES: - name: USERS_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_DRIVER: - name: USERS_DRIVER - defaultValue: ldap - type: string - description: The driver which should be used by the users service. Supported values - are 'ldap' and 'owncloudsql'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_GRPC_ADDR: - name: USERS_GRPC_ADDR - defaultValue: 127.0.0.1:9144 - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_GRPC_PROTOCOL: - name: OC_GRPC_PROTOCOL;USERS_GRPC_PROTOCOL - defaultValue: tcp - type: string - description: The transport protocol of the GPRC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_IDP_URL: - name: OC_URL;OC_OIDC_ISSUER;USERS_IDP_URL - defaultValue: https://localhost:9200 - type: string - description: The identity provider value to set in the userids of the CS3 user objects - for users returned by this user provider. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_JWT_SECRET: - name: OC_JWT_SECRET;USERS_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_BIND_DN: - name: OC_LDAP_BIND_DN;USERS_LDAP_BIND_DN - defaultValue: uid=reva,ou=sysusers,o=libregraph-idm - type: string - description: LDAP DN to use for simple bind authentication with the target LDAP - server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_BIND_PASSWORD: - name: OC_LDAP_BIND_PASSWORD;USERS_LDAP_BIND_PASSWORD - defaultValue: "" - type: string - description: Password to use for authenticating the 'bind_dn'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_CACERT: - name: OC_LDAP_CACERT;USERS_LDAP_CACERT - defaultValue: /var/lib/opencloud/idm/ldap.crt - type: string - description: Path/File name for the root CA certificate (in PEM format) used to - validate TLS server certificates of the LDAP service. If not defined, the root - directory derives from $OC_BASE_DATA_PATH/idm. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_DISABLE_USER_MECHANISM: - name: OC_LDAP_DISABLE_USER_MECHANISM;USERS_LDAP_DISABLE_USER_MECHANISM - defaultValue: attribute - type: string - description: An option to control the behavior for disabling users. Valid options - are 'none', 'attribute' and 'group'. If set to 'group', disabling a user via API - will add the user to the configured group for disabled users, if set to 'attribute' - this will be done in the ldap user entry, if set to 'none' the disable request - is not processed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_DISABLED_USERS_GROUP_DN: - name: OC_LDAP_DISABLED_USERS_GROUP_DN;USERS_LDAP_DISABLED_USERS_GROUP_DN - defaultValue: cn=DisabledUsersGroup,ou=groups,o=libregraph-idm - type: string - description: The distinguished name of the group to which added users will be classified - as disabled when 'disable_user_mechanism' is set to 'group'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_BASE_DN: - name: OC_LDAP_GROUP_BASE_DN;USERS_LDAP_GROUP_BASE_DN - defaultValue: ou=groups,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_FILTER: - name: OC_LDAP_GROUP_FILTER;USERS_LDAP_GROUP_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for group searches. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_OBJECTCLASS: - name: OC_LDAP_GROUP_OBJECTCLASS;USERS_LDAP_GROUP_OBJECTCLASS - defaultValue: groupOfNames - type: string - description: The object class to use for groups in the default group search filter - like 'groupOfNames'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_SCHEMA_DISPLAYNAME: - name: OC_LDAP_GROUP_SCHEMA_DISPLAYNAME;USERS_LDAP_GROUP_SCHEMA_DISPLAYNAME - defaultValue: cn - type: string - description: LDAP Attribute to use for the displayname of groups (often the same - as groupname attribute). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_SCHEMA_GROUPNAME: - name: OC_LDAP_GROUP_SCHEMA_GROUPNAME;USERS_LDAP_GROUP_SCHEMA_GROUPNAME - defaultValue: cn - type: string - description: LDAP Attribute to use for the name of groups. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_SCHEMA_ID: - name: OC_LDAP_GROUP_SCHEMA_ID;USERS_LDAP_GROUP_SCHEMA_ID - defaultValue: ownclouduuid - type: string - description: LDAP Attribute to use as the unique ID for groups. This should be a - stable globally unique ID like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING;USERS_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'id' attribute for groups is of the - 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute - of Active Directory for the group ID's. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_SCHEMA_MAIL: - name: OC_LDAP_GROUP_SCHEMA_MAIL;USERS_LDAP_GROUP_SCHEMA_MAIL - defaultValue: mail - type: string - description: LDAP Attribute to use for the email address of groups (can be empty). - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_SCHEMA_MEMBER: - name: OC_LDAP_GROUP_SCHEMA_MEMBER;USERS_LDAP_GROUP_SCHEMA_MEMBER - defaultValue: member - type: string - description: LDAP Attribute that is used for group members. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_GROUP_SCOPE: - name: OC_LDAP_GROUP_SCOPE;USERS_LDAP_GROUP_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up groups. Supported values are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_INSECURE: - name: OC_LDAP_INSECURE;USERS_LDAP_INSECURE - defaultValue: "false" - type: bool - description: Disable TLS certificate validation for the LDAP connections. Do not - set this in production environments. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_URI: - name: OC_LDAP_URI;USERS_LDAP_URI - defaultValue: ldaps://localhost:9235 - type: string - description: URI of the LDAP Server to connect to. Supported URI schemes are 'ldaps://' - and 'ldap://' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_BASE_DN: - name: OC_LDAP_USER_BASE_DN;USERS_LDAP_USER_BASE_DN - defaultValue: ou=users,o=libregraph-idm - type: string - description: Search base DN for looking up LDAP users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_ENABLED_ATTRIBUTE: - name: OC_LDAP_USER_ENABLED_ATTRIBUTE;USERS_LDAP_USER_ENABLED_ATTRIBUTE - defaultValue: ownCloudUserEnabled - type: string - description: LDAP attribute to use as a flag telling if the user is enabled or disabled. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_FILTER: - name: OC_LDAP_USER_FILTER;USERS_LDAP_USER_FILTER - defaultValue: "" - type: string - description: LDAP filter to add to the default filters for user search like '(objectclass=ownCloud)'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_OBJECTCLASS: - name: OC_LDAP_USER_OBJECTCLASS;USERS_LDAP_USER_OBJECTCLASS - defaultValue: inetOrgPerson - type: string - description: The object class to use for users in the default user search filter - like 'inetOrgPerson'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_SCHEMA_DISPLAYNAME: - name: OC_LDAP_USER_SCHEMA_DISPLAYNAME;USERS_LDAP_USER_SCHEMA_DISPLAYNAME - defaultValue: displayname - type: string - description: LDAP Attribute to use for the displayname of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_SCHEMA_ID: - name: OC_LDAP_USER_SCHEMA_ID;USERS_LDAP_USER_SCHEMA_ID - defaultValue: ownclouduuid - type: string - description: LDAP Attribute to use as the unique ID for users. This should be a - stable globally unique ID like a UUID. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING: - name: OC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING;USERS_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING - defaultValue: "false" - type: bool - description: Set this to true if the defined 'ID' attribute for users is of the - 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute - of Active Directory for the user ID's. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_SCHEMA_MAIL: - name: OC_LDAP_USER_SCHEMA_MAIL;USERS_LDAP_USER_SCHEMA_MAIL - defaultValue: mail - type: string - description: LDAP Attribute to use for the email address of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_SCHEMA_USERNAME: - name: OC_LDAP_USER_SCHEMA_USERNAME;USERS_LDAP_USER_SCHEMA_USERNAME - defaultValue: uid - type: string - description: LDAP Attribute to use for username of users. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_SCOPE: - name: OC_LDAP_USER_SCOPE;USERS_LDAP_USER_SCOPE - defaultValue: sub - type: string - description: LDAP search scope to use when looking up users. Supported values are - 'base', 'one' and 'sub'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_SUBSTRING_FILTER_TYPE: - name: LDAP_USER_SUBSTRING_FILTER_TYPE;USERS_LDAP_USER_SUBSTRING_FILTER_TYPE - defaultValue: any - type: string - description: 'Type of substring search filter to use for substring searches for - users. Possible values: ''initial'' for doing prefix only searches, ''final'' - for doing suffix only searches or ''any'' for doing full substring searches' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LDAP_USER_TYPE_ATTRIBUTE: - name: OC_LDAP_USER_SCHEMA_USER_TYPE;USERS_LDAP_USER_TYPE_ATTRIBUTE - defaultValue: ownCloudUserType - type: string - description: LDAP Attribute to distinguish between 'Member' and 'Guest' users. Default - is 'ownCloudUserType'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LOG_COLOR: - name: OC_LOG_COLOR;USERS_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LOG_FILE: - name: OC_LOG_FILE;USERS_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LOG_LEVEL: - name: OC_LOG_LEVEL;USERS_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_LOG_PRETTY: - name: OC_LOG_PRETTY;USERS_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_DB_HOST: - name: USERS_OWNCLOUDSQL_DB_HOST - defaultValue: mysql - type: string - description: Hostname of the database server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_DB_NAME: - name: USERS_OWNCLOUDSQL_DB_NAME - defaultValue: owncloud - type: string - description: Name of the owncloud database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_DB_PASSWORD: - name: USERS_OWNCLOUDSQL_DB_PASSWORD - defaultValue: secret - type: string - description: Password for the database user. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_DB_PORT: - name: USERS_OWNCLOUDSQL_DB_PORT - defaultValue: "3306" - type: int - description: Network port to use for the database connection. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_DB_USERNAME: - name: USERS_OWNCLOUDSQL_DB_USERNAME - defaultValue: owncloud - type: string - description: Database user to use for authenticating with the owncloud database. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_ENABLE_MEDIAL_SEARCH: - name: USERS_OWNCLOUDSQL_ENABLE_MEDIAL_SEARCH - defaultValue: "false" - type: bool - description: Allow 'medial search' when searching for users instead of just doing - a prefix search. This allows finding 'Alice' when searching for 'lic'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_IDP: - name: USERS_OWNCLOUDSQL_IDP - defaultValue: https://localhost:9200 - type: string - description: The identity provider value to set in the userids of the CS3 user objects - for users returned by this user provider. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID: - name: USERS_OWNCLOUDSQL_JOIN_OWNCLOUD_UUID - defaultValue: "false" - type: bool - description: Join the user properties table to read user IDs. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_JOIN_USERNAME: - name: USERS_OWNCLOUDSQL_JOIN_USERNAME - defaultValue: "false" - type: bool - description: Join the user properties table to read usernames - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_OWNCLOUDSQL_NOBODY: - name: USERS_OWNCLOUDSQL_NOBODY - defaultValue: "90" - type: int64 - description: Fallback number if no numeric UID and GID properties are provided. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_SKIP_USER_GROUPS_IN_TOKEN: - name: USERS_SKIP_USER_GROUPS_IN_TOKEN - defaultValue: "false" - type: bool - description: Disables the loading of user's group memberships from the reva access - token. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;USERS_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_TRACING_ENABLED: - name: OC_TRACING_ENABLED;USERS_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;USERS_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -USERS_TRACING_TYPE: - name: OC_TRACING_TYPE;USERS_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_ASSET_APPS_PATH: - name: WEB_ASSET_APPS_PATH - defaultValue: /var/lib/opencloud/web/assets/apps - type: string - description: Serve ownCloud Web apps assets from a path on the filesystem instead - of the builtin assets. If not defined, the root directory derives from $OC_BASE_DATA_PATH/web/assets/apps - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_ASSET_CORE_PATH: - name: WEB_ASSET_CORE_PATH - defaultValue: /var/lib/opencloud/web/assets/core - type: string - description: Serve ownCloud Web assets from a path on the filesystem instead of - the builtin assets. If not defined, the root directory derives from $OC_BASE_DATA_PATH/web/assets/core - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_ASSET_THEMES_PATH: - name: OC_ASSET_THEMES_PATH;WEB_ASSET_THEMES_PATH - defaultValue: /var/lib/opencloud/web/assets/themes - type: string - description: Serve ownCloud themes from a path on the filesystem instead of the - builtin assets. If not defined, the root directory derives from $OC_BASE_DATA_PATH/web/assets/themes - introductionVersion: 6.0.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_CACHE_TTL: - name: WEB_CACHE_TTL - defaultValue: "604800" - type: int - description: Cache policy in seconds for ownCloud Web assets. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;WEB_CORS_ALLOW_CREDENTIALS - defaultValue: "false" - type: bool - 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: "" -WEB_CORS_ALLOW_HEADERS: - name: OC_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]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;WEB_CORS_ALLOW_METHODS - defaultValue: '[OPTIONS HEAD GET PUT PATCH POST DELETE MKCOL PROPFIND PROPPATCH - MOVE COPY REPORT SEARCH]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;WEB_CORS_ALLOW_ORIGINS - defaultValue: '[https://localhost:9200]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_DEBUG_ADDR: - name: WEB_DEBUG_ADDR - defaultValue: 127.0.0.1:9104 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_DEBUG_PPROF: - name: WEB_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_DEBUG_TOKEN: - name: WEB_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_DEBUG_ZPAGES: - name: WEB_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_GATEWAY_GRPC_ADDR: - name: WEB_GATEWAY_GRPC_ADDR - defaultValue: eu.opencloud.api.gateway - type: string - description: The bind address of the GRPC service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_HTTP_ADDR: - name: WEB_HTTP_ADDR - defaultValue: 127.0.0.1:9100 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_HTTP_ROOT: - name: WEB_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_JWT_SECRET: - name: OC_JWT_SECRET;WEB_JWT_SECRET - defaultValue: "" - type: string - description: The secret to mint and validate jwt tokens. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_LOG_COLOR: - name: OC_LOG_COLOR;WEB_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_LOG_FILE: - name: OC_LOG_FILE;WEB_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_LOG_LEVEL: - name: OC_LOG_LEVEL;WEB_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_LOG_PRETTY: - name: OC_LOG_PRETTY;WEB_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OIDC_AUTHORITY: - name: OC_URL;OC_OIDC_ISSUER;WEB_OIDC_AUTHORITY - defaultValue: https://localhost:9200 - type: string - description: URL of the OIDC issuer. It defaults to URL of the builtin IDP. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OIDC_CLIENT_ID: - name: OC_OIDC_CLIENT_ID;WEB_OIDC_CLIENT_ID - defaultValue: web - type: string - description: The OIDC client ID which ownCloud Web uses. This client needs to be - set up in your IDP. Note that this setting has no effect when using the builtin - IDP. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OIDC_METADATA_URL: - name: WEB_OIDC_METADATA_URL - defaultValue: https://localhost:9200/.well-known/openid-configuration - type: string - description: URL for the OIDC well-known configuration endpoint. Defaults to the - oCIS API URL + '/.well-known/openid-configuration'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OIDC_POST_LOGOUT_REDIRECT_URI: - name: WEB_OIDC_POST_LOGOUT_REDIRECT_URI - defaultValue: "" - type: string - description: This value needs to point to a valid and reachable web page. The web - client will trigger a redirect to that page directly after the logout action. - The default value is empty and redirects to the login page. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OIDC_RESPONSE_TYPE: - name: WEB_OIDC_RESPONSE_TYPE - defaultValue: code - type: string - description: The OIDC response type to use for authentication. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OIDC_SCOPE: - name: WEB_OIDC_SCOPE - defaultValue: openid profile email - type: string - description: OIDC scopes to request during authentication to authorize access to - user details. Defaults to 'openid profile email'. Values are separated by blank. - More example values but not limited to are 'address' or 'phone' etc. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_CONCURRENT_REQUESTS_RESOURCE_BATCH_ACTIONS: - name: WEB_OPTION_CONCURRENT_REQUESTS_RESOURCE_BATCH_ACTIONS - defaultValue: "0" - type: int - description: Defines the maximum number of concurrent requests per file/folder/space - batch action. Defaults to 4. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_CONCURRENT_REQUESTS_SHARES_CREATE: - name: WEB_OPTION_CONCURRENT_REQUESTS_SHARES_CREATE - defaultValue: "0" - type: int - description: Defines the maximum number of concurrent requests per sharing invite - batch. Defaults to 4. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_CONCURRENT_REQUESTS_SHARES_LIST: - name: WEB_OPTION_CONCURRENT_REQUESTS_SHARES_LIST - defaultValue: "0" - type: int - description: Defines the maximum number of concurrent requests when loading individual - share information inside listings. Defaults to 2. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_CONCURRENT_REQUESTS_SSE: - name: WEB_OPTION_CONCURRENT_REQUESTS_SSE - defaultValue: "0" - type: int - description: Defines the maximum number of concurrent requests in SSE event handlers. - Defaults to 4. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_CONTEXTHELPERS_READ_MORE: - name: WEB_OPTION_CONTEXTHELPERS_READ_MORE - defaultValue: "true" - type: bool - description: Specifies whether the 'Read more' link should be displayed or not. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_DISABLE_FEEDBACK_LINK: - name: WEB_OPTION_DISABLE_FEEDBACK_LINK - defaultValue: "false" - type: bool - description: Set this option to 'true' to disable the feedback link in the top bar. - Keeping it enabled by setting the value to 'false' or with the absence of the - option, allows ownCloud to get feedback from your user base through a dedicated - survey website. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_DISABLED_EXTENSIONS: - name: WEB_OPTION_DISABLED_EXTENSIONS - defaultValue: '[]' - type: '[]string' - description: 'A list to disable specific Web extensions identified by their ID. - The ID can e.g. be taken from the ''index.ts'' file of the web extension. Example: - ''com.github.owncloud.web.files.search,com.github.owncloud.web.files.print''. - See the Environment Variable Types description for more details.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_EMBED_DELEGATE_AUTHENTICATION: - name: WEB_OPTION_EMBED_DELEGATE_AUTHENTICATION - defaultValue: "false" - type: bool - description: Defines whether Web should require authentication to be done by the - parent application when running in 'embed' mode. If set to 'true' Web will not - try to authenticate the user on its own but will require an access token coming - from the parent application. Defaults to being unset. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_EMBED_DELEGATE_AUTHENTICATION_ORIGIN: - name: WEB_OPTION_EMBED_DELEGATE_AUTHENTICATION_ORIGIN - defaultValue: "" - type: string - description: Defines the host to validate the message event origin against when - running Web in 'embed' mode with delegated authentication. Defaults to event message - origin validation being omitted, which is only recommended for development setups. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_EMBED_ENABLED: - name: WEB_OPTION_EMBED_ENABLED - defaultValue: "" - type: string - description: Defines whether Web should be running in 'embed' mode. Setting this - to 'true' will enable a stripped down version of Web with reduced functionality - used to integrate Web into other applications like via iFrame. Setting it to 'false' - or not setting it (default) will run Web as usual with all functionality enabled. - See the text description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_EMBED_MESSAGES_ORIGIN: - name: WEB_OPTION_EMBED_MESSAGES_ORIGIN - defaultValue: "" - type: string - description: Defines a URL under which Web can be integrated via iFrame in 'embed' - mode. Note that setting this is mandatory when running Web in 'embed' mode. Use - '*' as value to allow running the iFrame under any URL, although this is not recommended - for security reasons. See the text description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_EMBED_TARGET: - name: WEB_OPTION_EMBED_TARGET - defaultValue: "" - type: string - description: Defines how Web is being integrated when running in 'embed' mode. Currently, - the only supported options are '' (empty) and 'location'. With '' which is the - default, Web will run regular as defined via the 'embed.enabled' config option. - With 'location', Web will run embedded as location picker. Resource selection - will be disabled and the selected resources array always includes the current - folder as the only item. See the text description for more details. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_LOGIN_URL: - name: WEB_OPTION_LOGIN_URL - defaultValue: "" - type: string - description: 'Specifies the target URL to the login page. This is helpful when an - external IdP is used. This option is disabled by default. Example URL like: https://www.myidp.com/login.' - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_LOGOUT_URL: - name: WEB_OPTION_LOGOUT_URL - defaultValue: "" - type: string - description: Adds a link to the user's profile page to point him to an external - page, where he can manage his session and devices. This is helpful when an external - IdP is used. This option is disabled by default. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_OPEN_APPS_IN_TAB: - name: WEB_OPTION_OPEN_APPS_IN_TAB - defaultValue: "false" - type: bool - description: Configures whether apps and extensions should generally open in a new - tab. Defaults to false. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_RUNNING_ON_EOS: - name: WEB_OPTION_RUNNING_ON_EOS - defaultValue: "false" - type: bool - description: Set this option to 'true' if running on an EOS storage backend (https://eos-web.web.cern.ch/eos-web/) - to enable its specific features. Defaults to 'false'. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_TOKEN_STORAGE_LOCAL: - name: WEB_OPTION_TOKEN_STORAGE_LOCAL - defaultValue: "true" - type: bool - description: Specifies whether the access token will be stored in the local storage - when set to 'true' or in the session storage when set to 'false'. If stored in - the local storage, login state will be persisted across multiple browser tabs, - means no additional logins are required. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_OPTION_USER_LIST_REQUIRES_FILTER: - name: WEB_OPTION_USER_LIST_REQUIRES_FILTER - defaultValue: "false" - type: bool - description: Defines whether one or more filters must be set in order to list users - in the Web admin settings. Set this option to 'true' if running in an environment - with a lot of users and listing all users could slow down performance. Defaults - to 'false'. - introductionVersion: "5.0" - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;WEB_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_TRACING_ENABLED: - name: OC_TRACING_ENABLED;WEB_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;WEB_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_TRACING_TYPE: - name: OC_TRACING_TYPE;WEB_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_UI_CONFIG_FILE: - name: WEB_UI_CONFIG_FILE - defaultValue: "" - type: string - description: Read the ownCloud Web json based configuration from this path/file. - The config file takes precedence over WEB_OPTION_xxx environment variables. See - the text description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_UI_CONFIG_SERVER: - name: OC_URL;WEB_UI_CONFIG_SERVER - defaultValue: https://localhost:9200 - type: string - description: URL, where the oCIS APIs are reachable for ownCloud Web. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_UI_THEME_PATH: - name: WEB_UI_THEME_PATH - defaultValue: /themes/opencloud/theme.json - type: string - description: Path to the theme json file. Will be appended to the URL of the theme - server. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEB_UI_THEME_SERVER: - name: OC_URL;WEB_UI_THEME_SERVER - defaultValue: https://localhost:9200 - type: string - description: Base URL to load themes from. Will be prepended to the theme path. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;WEBDAV_CORS_ALLOW_CREDENTIALS - defaultValue: "true" - type: bool - 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: "" -WEBDAV_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;WEBDAV_CORS_ALLOW_HEADERS - defaultValue: '[Authorization Origin Content-Type Accept X-Requested-With X-Request-Id - Cache-Control]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;WEBDAV_CORS_ALLOW_METHODS - defaultValue: '[GET POST PUT PATCH DELETE OPTIONS]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;WEBDAV_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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_DEBUG_ADDR: - name: WEBDAV_DEBUG_ADDR - defaultValue: 127.0.0.1:9119 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_DEBUG_PPROF: - name: WEBDAV_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_DEBUG_TOKEN: - name: WEBDAV_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_DEBUG_ZPAGES: - name: WEBDAV_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_DISABLE_PREVIEWS: - name: OC_DISABLE_PREVIEWS;WEBDAV_DISABLE_PREVIEWS - defaultValue: "false" - type: bool - 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: "" - deprecationInfo: "" -WEBDAV_HTTP_ADDR: - name: WEBDAV_HTTP_ADDR - defaultValue: 127.0.0.1:9115 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_HTTP_ROOT: - name: WEBDAV_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_LOG_COLOR: - name: OC_LOG_COLOR;WEBDAV_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_LOG_FILE: - name: OC_LOG_FILE;WEBDAV_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_LOG_LEVEL: - name: OC_LOG_LEVEL;WEBDAV_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_LOG_PRETTY: - name: OC_LOG_PRETTY;WEBDAV_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;WEBDAV_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_TRACING_ENABLED: - name: OC_TRACING_ENABLED;WEBDAV_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;WEBDAV_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_TRACING_TYPE: - name: OC_TRACING_TYPE;WEBDAV_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBDAV_WEBDAV_NAMESPACE: - name: WEBDAV_WEBDAV_NAMESPACE - defaultValue: /users/{{.Id.OpaqueId}} - type: string - description: CS3 path layout to use when forwarding /webdav requests - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_CORS_ALLOW_CREDENTIALS: - name: OC_CORS_ALLOW_CREDENTIALS;WEBFINGER_CORS_ALLOW_CREDENTIALS - defaultValue: "false" - type: bool - 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: "" -WEBFINGER_CORS_ALLOW_HEADERS: - name: OC_CORS_ALLOW_HEADERS;WEBFINGER_CORS_ALLOW_HEADERS - defaultValue: '[]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_CORS_ALLOW_METHODS: - name: OC_CORS_ALLOW_METHODS;WEBFINGER_CORS_ALLOW_METHODS - defaultValue: '[]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_CORS_ALLOW_ORIGINS: - name: OC_CORS_ALLOW_ORIGINS;WEBFINGER_CORS_ALLOW_ORIGINS - defaultValue: '[https://localhost:9200]' - 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. - See the Environment Variable Types description for more details.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_DEBUG_ADDR: - name: WEBFINGER_DEBUG_ADDR - defaultValue: 127.0.0.1:9279 - type: string - description: Bind address of the debug server, where metrics, health, config and - debug endpoints will be exposed. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_DEBUG_PPROF: - name: WEBFINGER_DEBUG_PPROF - defaultValue: "false" - type: bool - description: Enables pprof, which can be used for profiling. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_DEBUG_TOKEN: - name: WEBFINGER_DEBUG_TOKEN - defaultValue: "" - type: string - description: Token to secure the metrics endpoint. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_DEBUG_ZPAGES: - name: WEBFINGER_DEBUG_ZPAGES - defaultValue: "false" - type: bool - description: Enables zpages, which can be used for collecting and viewing in-memory - traces. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_HTTP_ADDR: - name: WEBFINGER_HTTP_ADDR - defaultValue: 127.0.0.1:9275 - type: string - description: The bind address of the HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_HTTP_ROOT: - name: WEBFINGER_HTTP_ROOT - defaultValue: / - type: string - description: Subdirectory that serves as the root for this HTTP service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_INSECURE: - name: OC_INSECURE;WEBFINGER_INSECURE - defaultValue: "false" - type: bool - description: Allow insecure connections to the WEBFINGER service. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_LOG_COLOR: - name: OC_LOG_COLOR;WEBFINGER_LOG_COLOR - defaultValue: "false" - type: bool - description: Activates colorized log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_LOG_FILE: - name: OC_LOG_FILE;WEBFINGER_LOG_FILE - defaultValue: "" - type: string - description: The path to the log file. Activates logging to this file if set. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_LOG_LEVEL: - name: OC_LOG_LEVEL;WEBFINGER_LOG_LEVEL - defaultValue: "" - type: string - description: 'The log level. Valid values are: ''panic'', ''fatal'', ''error'', - ''warn'', ''info'', ''debug'', ''trace''.' - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_LOG_PRETTY: - name: OC_LOG_PRETTY;WEBFINGER_LOG_PRETTY - defaultValue: "false" - type: bool - description: Activates pretty log output. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_OIDC_ISSUER: - name: OC_URL;OC_OIDC_ISSUER;WEBFINGER_OIDC_ISSUER - defaultValue: https://localhost:9200 - type: string - description: The identity provider href for the openid-discovery relation. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_OPENCLOUD_SERVER_INSTANCE_URL: - name: OC_URL;WEBFINGER_OPENCLOUD_SERVER_INSTANCE_URL - defaultValue: https://localhost:9200 - type: string - description: The URL for the legacy OpenCloud server instance relation (not to be - confused with the product OpenCloud Server). It defaults to the OC_URL but can - be overridden to support some reverse proxy corner cases. To shard the deployment, - multiple instances can be configured in the configuration file. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_OWNCLOUD_SERVER_INSTANCE_URL: - name: OC_URL;WEBFINGER_OWNCLOUD_SERVER_INSTANCE_URL - defaultValue: https://localhost:9200 - type: string - description: The URL for the legacy ownCloud server instance relation (not to be - confused with the product ownCloud Server). It defaults to the OC_URL but can - be overridden to support some reverse proxy corner cases. To shard the deployment, - multiple instances can be configured in the configuration file. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_RELATIONS: - name: WEBFINGER_RELATIONS - defaultValue: '[http://openid.net/specs/connect/1.0/issuer http://webfinger.opencloud/rel/server-instance]' - type: '[]string' - description: A list of relation URIs or registered relation types to add to webfinger - responses. See the Environment Variable Types description for more details. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_TRACING_COLLECTOR: - name: OC_TRACING_COLLECTOR;WEBFINGER_TRACING_COLLECTOR - defaultValue: "" - type: string - description: 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. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_TRACING_ENABLED: - name: OC_TRACING_ENABLED;WEBFINGER_TRACING_ENABLED - defaultValue: "false" - type: bool - description: Activates tracing. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_TRACING_ENDPOINT: - name: OC_TRACING_ENDPOINT;WEBFINGER_TRACING_ENDPOINT - defaultValue: "" - type: string - description: The endpoint of the tracing agent. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" -WEBFINGER_TRACING_TYPE: - name: OC_TRACING_TYPE;WEBFINGER_TRACING_TYPE - defaultValue: "" - type: string - description: The type of tracing. Defaults to '', which is the same as 'jaeger'. - Allowed tracing types are 'jaeger' and '' as of now. - introductionVersion: pre5.0 - deprecationVersion: "" - removalVersion: "" - deprecationInfo: "" diff --git a/docs/helpers/extendedEnv.go b/docs/helpers/extendedEnv.go deleted file mode 100644 index 3dee523b98..0000000000 --- a/docs/helpers/extendedEnv.go +++ /dev/null @@ -1,178 +0,0 @@ -package main - -import ( - "fmt" - "log" - "os" - "os/exec" - "path/filepath" - "regexp" - "sort" - "strings" - "text/template" - - "gopkg.in/yaml.v2" -) - -const yamlSource = "extended_vars.yaml" - -// ConfigVars is the main yaml source -type ConfigVars struct { - Variables []Variable `yaml:"variables"` -} - -// Variable contains all information about one rogue envvar -type Variable struct { - // These field structs are automatically filled: - // RawName can be the name of the envvar or the name of its var - RawName string `yaml:"rawname"` - // Path to the envvar with linenumber - Path string `yaml:"path"` - // FoundInCode indicates if the variable is still found in the codebase. TODO: delete immediately? - FoundInCode bool `yaml:"foundincode"` - // Name is equal to RawName but will not be overwritten in consecutive runs - Name string `yaml:"name"` - - // These field structs need manual filling: - // Type of the envvar - Type string `yaml:"type"` - // DefaultValue of the envvar - DefaultValue string `yaml:"default_value"` - // Description of what this envvar does - Description string `yaml:"description"` - // Ignore this envvar when creating docs? - Ignore bool `yaml:"do_ignore"` - - // For simplicity ignored for now: - // DependendServices []Service `yaml:"dependend_services"` -} - -// GetRogueEnvs extracts the rogue envs from the code -func GetRogueEnvs() { - curdir, err := os.Getwd() - if err != nil { - log.Fatal(err) - } - fullYamlPath := filepath.Join(curdir, yamlSource) - re := regexp.MustCompile(`os.Getenv\(([^\)]+)\)`) - vars := &ConfigVars{} - fmt.Printf("Reading existing variable definitions from %s\n", fullYamlPath) - yfile, err := os.ReadFile(fullYamlPath) - if err == nil { - err := yaml.Unmarshal(yfile, &vars) - if err != nil { - log.Fatal(err) - } - } - - if err := os.Chdir("../../"); err != nil { - log.Fatal(err) - } - fmt.Println("Gathering variable definitions from source") - out, err := exec.Command("sh", "-c", "grep -RHn os.Getenv --exclude-dir=vendor | grep -v extendedEnv.go |grep \\.go").Output() - if err != nil { - log.Fatal(err) - } - lines := strings.Split(string(out), "\n") - - // find current vars - currentVars := make(map[string]Variable) - for _, l := range lines { - fmt.Printf("Parsing %s\n", l) - r := strings.SplitN(l, ":\t", 2) - if len(r) != 2 || r[0] == "" || r[1] == "" { - continue - } - - res := re.FindAllSubmatch([]byte(r[1]), -1) - if len(res) < 1 { - fmt.Printf("Error envvar not matching pattern: %s", r[1]) - continue - } - - for _, m := range res { - path := r[0] - name := strings.Trim(string(m[1]), "\"") - currentVars[path+name] = Variable{ - RawName: name, - Path: path, - FoundInCode: true, - Name: name, - } - } - } - - // adjust existing vars - for i, v := range vars.Variables { - _, ok := currentVars[v.Path+v.RawName] - if !ok { - vars.Variables[i].FoundInCode = false - continue - } - - vars.Variables[i].FoundInCode = true - delete(currentVars, v.Path+v.RawName) - } - - // add new envvars - for _, v := range currentVars { - vars.Variables = append(vars.Variables, v) - } - - less := func(i, j int) bool { - return vars.Variables[i].Name < vars.Variables[j].Name - } - - sort.Slice(vars.Variables, less) - - output, err := yaml.Marshal(vars) - if err != nil { - log.Fatal(err) - } - fmt.Printf("Writing new variable definitions to %s\n", fullYamlPath) - err = os.WriteFile(fullYamlPath, output, 0666) - if err != nil { - log.Fatalf("could not write %s", fullYamlPath) - } - if err := os.Chdir(curdir); err != nil { - log.Fatal(err) - } -} - -// RenderGlobalVarsTemplate renders the global vars template -func RenderGlobalVarsTemplate() { - curdir, err := os.Getwd() - if err != nil { - log.Fatal(err) - } - fullYamlPath := filepath.Join(curdir, yamlSource) - - content, err := os.ReadFile("../../docs/templates/ADOC_extended.tmpl") - if err != nil { - log.Fatal(err) - } - - targetFolder := "../../docs/services/_includes/adoc/" - - vars := &ConfigVars{} - fmt.Printf("Reading existing variable definitions from %s\n", fullYamlPath) - yfile, err := os.ReadFile(fullYamlPath) - if err != nil { - log.Fatal(err) - } - err = yaml.Unmarshal(yfile, &vars) - if err != nil { - log.Fatal(err) - } - - targetFile, err := os.Create(filepath.Join(targetFolder, "extended_configvars.adoc")) - if err != nil { - log.Fatalf("Failed to create target file: %s", err) - } - defer targetFile.Close() - - tpl := template.Must(template.New("").Parse(string(content))) - if err = tpl.Execute(targetFile, *vars); err != nil { - log.Fatalf("Failed to execute template: %s", err) - } -} diff --git a/docs/helpers/extended_vars.yaml b/docs/helpers/extended_vars.yaml deleted file mode 100644 index 36639e8a59..0000000000 --- a/docs/helpers/extended_vars.yaml +++ /dev/null @@ -1,170 +0,0 @@ -variables: -- rawname: CS3_GATEWAY - path: services/idp/pkg/backends/cs3/bootstrap/cs3.go:77 - foundincode: true - name: CS3_GATEWAY - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: CS3_MACHINE_AUTH_API_KEY - path: services/idp/pkg/backends/cs3/bootstrap/cs3.go:78 - foundincode: true - name: CS3_MACHINE_AUTH_API_KEY - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: DAYS - path: tests/qa-activity-report/generate-qa-activity-report.go:94 - foundincode: true - name: DAYS - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: _registryRegisterIntervalEnv - path: ocis-pkg/registry/expiry.go:19 - foundincode: true - name: EXPERIMENTAL_REGISTER_INTERVAL - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: _registryRegisterTTLEnv - path: ocis-pkg/registry/expiry.go:28 - foundincode: true - name: EXPERIMENTAL_REGISTER_TTL - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: _serverMaxConnectionAgeEnv - path: ocis-pkg/service/grpc/keepalive.go:19 - foundincode: true - name: GRPC_MAX_CONNECTION_AGE - type: Duration - default_value: "9223372036854775807" - description: Timeout for GRPC connections. After timeout, a new connection will - be established automatically. The default value is in ns and is about 2.5 mio - h. - do_ignore: false -- rawname: MICRO_LOG_LEVEL - path: ocis-pkg/log/log.go:34 - foundincode: true - name: MICRO_LOG_LEVEL - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: MICRO_LOG_LEVEL - path: ocis-pkg/log/log.go:31 - foundincode: false - name: MICRO_LOG_LEVEL - type: string - default_value: Error - description: Set the log level for the internal go micro framework. Only change - on supervision of ownCloud Support. - do_ignore: false -- rawname: MICRO_LOG_LEVEL - path: ocis-pkg/log/log.go:30 - foundincode: true - name: MICRO_LOG_LEVEL - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: _registryEnv - path: ocis-pkg/registry/registry.go:87 - foundincode: true - name: MICRO_REGISTRY - type: string - default_value: nats-js-kv - description: 'The Go micro registry type to use. Supported types are: ''memory'' - and ''nats-js-kv'' (default). Only change on supervision of ownCloud Support.' - do_ignore: false -- rawname: _registryAddressEnv - path: ocis-pkg/registry/registry.go:91 - foundincode: true - name: MICRO_REGISTRY_ADDRESS - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: _registryAddressEnv - path: ocis-pkg/natsjsregistry/registry.go:192 - foundincode: true - name: MICRO_REGISTRY_ADDRESS - type: string - default_value: 127.0.0.1:9233 - description: The bind address of the internal go micro framework. Only change on - supervision of ownCloud Support. - do_ignore: false -- rawname: _registryPasswordEnv - path: ocis-pkg/natsjsregistry/registry.go:220 - foundincode: true - name: MICRO_REGISTRY_AUTH_PASSWORD - type: string - default_value: "" - description: Optional when using nats to authenticate with the nats cluster. - do_ignore: false -- rawname: _registryUsernameEnv - path: ocis-pkg/natsjsregistry/registry.go:220 - foundincode: true - name: MICRO_REGISTRY_AUTH_USERNAME - type: string - default_value: "" - description: Optional when using nats to authenticate with the nats cluster. - do_ignore: false -- rawname: MONTH - path: tests/qa-activity-report/generate-qa-activity-report.go:92 - foundincode: true - name: MONTH - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: OC_BASE_DATA_PATH - path: ocis-pkg/config/defaults/paths.go:23 - foundincode: true - name: OC_BASE_DATA_PATH - type: string - default_value: "" - description: The base directory location used by several services and for user data. - See the General Info section in the documentation for more details on defaults. - Services can have, if available, an individual setting with an own environment - variable. - do_ignore: false -- rawname: OC_CONFIG_DIR - path: ocis-pkg/config/defaults/paths.go:56 - foundincode: true - name: OC_CONFIG_DIR - type: string - default_value: "" - description: The default directory location for config files. See the General Info - section in the documentation for more details on defaults. - do_ignore: false -- rawname: RUN_CMD_TEST - path: internal/testenv/test.go:32 - foundincode: true - name: RUN_CMD_TEST - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: YEAR - path: tests/qa-activity-report/generate-qa-activity-report.go:93 - foundincode: true - name: YEAR - type: "" - default_value: "" - description: "" - do_ignore: true -- rawname: parts[0] - path: ocis-pkg/config/envdecode/envdecode.go:382 - foundincode: true - name: parts[0] - type: "" - default_value: "" - description: false positive - code that extract envvars for config structs - do_ignore: true diff --git a/docs/helpers/main.go b/docs/helpers/main.go deleted file mode 100644 index c0770d066f..0000000000 --- a/docs/helpers/main.go +++ /dev/null @@ -1,45 +0,0 @@ -package main - -import ( - "fmt" - "os" -) - -func main() { - if len(os.Args) > 1 { - switch os.Args[1] { - case "templates": - RenderTemplates() - case "rogue": - GetRogueEnvs() - case "globals": - RenderGlobalVarsTemplate() - case "service-index": - GenerateServiceIndexMarkdowns() - case "env-var-delta-table": - // This step is not covered by the all or default case, because it needs explicit arguments - if len(os.Args) != 4 { - fmt.Println("Needs two arguments: env-var-delta-table ") - fmt.Println("Example: env-var-delta-table v5.0.0 v6.0.0") - fmt.Println("Will not generate usable results for versions Prior to v5.0.0") - } else { - RenderEnvVarDeltaTable(os.Args) - } - case "all": - RenderTemplates() - GetRogueEnvs() - RenderGlobalVarsTemplate() - GenerateServiceIndexMarkdowns() - case "help": - fallthrough - default: - fmt.Printf("Usage: %s [templates|rogue|globals|service-index|env-var-delta-table|all|help]\n", os.Args[0]) - } - } else { - // Left here, even though present in the switch case, for backwards compatibility - RenderTemplates() - GetRogueEnvs() - RenderGlobalVarsTemplate() - GenerateServiceIndexMarkdowns() - } -} diff --git a/docs/helpers/markdowncreation.go b/docs/helpers/markdowncreation.go deleted file mode 100644 index 87aace4831..0000000000 --- a/docs/helpers/markdowncreation.go +++ /dev/null @@ -1,76 +0,0 @@ -package main - -import ( - "bytes" - "errors" - "fmt" - "log" - "os" - "path/filepath" - "text/template" - "time" - - "github.com/opencloud-eu/opencloud/pkg/markdown" -) - -var _configMarkdown = `{{< include file="services/_includes/%s-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/%s_configvars.md" >}} -` - -// GenerateServiceIndexMarkdowns generates the _index.md files for the dev docu -func GenerateServiceIndexMarkdowns() { - paths, err := filepath.Glob("../../services/*/README.md") - if err != nil { - log.Fatal(err) - } - - for _, p := range paths { - service := filepath.Base(filepath.Dir(p)) - if err := generateMarkdown(p, service); err != nil { - fmt.Printf("error generating markdown for %s: %s\n", service, err) - } - } -} - -func generateMarkdown(filepath string, servicename string) error { - f, err := os.ReadFile(filepath) - if err != nil { - return err - } - - md := markdown.NewMD(f) - if len(md.Headings) == 0 || md.Headings[0].Level != 1 { - return errors.New("readme has invalid format") - } - - // we don't need the main title, we add in our template - head := md.Headings[0] - md.Headings = md.Headings[1:] - md.Headings = append(md.Headings, markdown.Heading{ - Level: 2, - Header: "Example Yaml Config", - Content: fmt.Sprintf(_configMarkdown, servicename, servicename), - }) - - tpl := template.Must(template.ParseFiles("templates/index.tmpl")) - b := bytes.NewBuffer(nil) - if err := tpl.Execute(b, map[string]interface{}{ - "ServiceName": head.Header, - "CreationTime": time.Now().Format(time.RFC3339Nano), - "service": servicename, - "Abstract": head.Content, - "TocTree": md.TocString(), - "Content": md.String(), - }); err != nil { - return err - } - - path := fmt.Sprintf("../../docs/services/%s", servicename) - - if err := os.Mkdir(path, os.ModePerm); err != nil && !os.IsExist(err) { - return err - } - - return os.WriteFile(path+"/_index.md", b.Bytes(), os.ModePerm) -} diff --git a/docs/helpers/templates/adoc-generator.go.tmpl b/docs/helpers/templates/adoc-generator.go.tmpl deleted file mode 100644 index 262876c5ca..0000000000 --- a/docs/helpers/templates/adoc-generator.go.tmpl +++ /dev/null @@ -1,272 +0,0 @@ -package main - -import ( - "fmt" - "log" - "os" - "path/filepath" - "reflect" - "regexp" - "strings" - "text/template" - "time" - "sort" - - {{- range $key, $value := .}} - pkg{{$key}} "{{$value}}" - {{- end}} -) - -// ConfigField is the representation of one configuration field -type ConfigField struct { - EnvVars []string - DefaultValue string - IntroductionVersion string - Type string - Description string - VersionInfo string - DeprecationLink string -} - -// DeprecationField holds information about deprecation -type DeprecationField struct { - DeprecationVersion string - DeprecationInfo string - DeprecationReplacement string - RemovalVersion string -} - -// EnvVar holds information about one envvar -type EnvVar struct { - Name string - IntroductionVersion string - DefaultValue string - Type string - Description string - Services []string -} - -type templateData struct { - ExtensionName string - Fields []ConfigField - Deprecations []DeprecationField - HasDeprecations bool - Timestamp string -} - -func main() { - fmt.Println("Generating adoc documentation for environment variables:") - adoc, err := os.ReadFile("../../docs/templates/ADOC.tmpl") - if err != nil { - log.Fatal(err) - } - dpr, err := os.ReadFile("../../docs/templates/ADOC_deprecation.tmpl") - if err != nil { - log.Fatal(err) - } - replacer := strings.NewReplacer( - "github.com/owncloud/ocis/v2/services/", "", - "/pkg/config/defaults", "", - ) - var ( - fields []ConfigField - deprecations []DeprecationField - adocFile *os.File - dprFile *os.File - ) - adoctpl := template.Must(template.New("").Parse(string(adoc))) - dprtpl := template.Must(template.New("").Parse(string(dpr))) - - m := map[string]interface{}{ - {{- range $key, $value := .}} - "{{$value}}": *pkg{{$key}}.FullDefaultConfig(), - {{- end }} - } - - targetFolder := "../../docs/services/_includes/adoc/" - all := make(map[string]EnvVar) - for pkg, conf := range m { - service := replacer.Replace(pkg) - timestamp := time.Now().Format("2006-01-02-15-04-05") - fields, deprecations = GetAnnotatedVariables(conf, timestamp) - var hasDeprecations bool - if len(deprecations) > 0 { - hasDeprecations = true - } - - for _, f := range fields { - for _, e := range f.EnvVars { - if env, ok := all[e]; ok { - env.Services = append(env.Services, service) - sort.Slice(env.Services, func(i, j int) bool { - return env.Services[i] < env.Services[j] - }) - all[e] = env - } else { - all[e] = EnvVar{ - Name: e, - IntroductionVersion: replaceEnvVarPlaceHolder(f.IntroductionVersion), - Description: f.Description, - Type: f.Type, - DefaultValue: f.DefaultValue, - Services: []string{service}, - } - } - } - } - - if len(fields) > 0 || len(deprecations) > 0 { - fmt.Printf("... %s\n", pkg) - td := templateData{ - ExtensionName: service, - Fields: fields, - Deprecations: deprecations, - HasDeprecations: hasDeprecations, - Timestamp: timestamp, - } - adocFile, err = os.Create(filepath.Join(targetFolder, service + "_configvars.adoc")) - if err != nil { - log.Fatalf("Failed to create target file: %s", err) - } - defer adocFile.Close() - - if err := adoctpl.Execute(adocFile, td); err != nil { - log.Fatalf("Failed to execute template: %s", err) - } - - dprFile, err = os.Create(filepath.Join(targetFolder, service + "_deprecation.adoc")) - if err != nil { - log.Fatalf("Failed to create target file: %s", err) - } - defer dprFile.Close() - - if err := dprtpl.Execute(dprFile, td); err != nil { - log.Fatalf("Failed to execute template: %s", err) - } - } - } - - // render global env vars - tmplValues := make([]map[string]interface{}, 0) - for _, env := range all { - if len(env.Services) > 1 { - tmplValues = append(tmplValues, map[string]interface{}{ - "Name": env.Name, - "IntroductionVersion": replaceEnvVarPlaceHolder(env.IntroductionVersion), - "Services": env.Services, - "Description": env.Description, - "DefaultValue": env.DefaultValue, - "Type": env.Type, - }) - } - } - - // sort - sort.Slice(tmplValues, func(i, j int) bool { - return tmplValues[i]["Name"].(string) < tmplValues[j]["Name"].(string) - }) - - glc, err := os.ReadFile("../../docs/templates/ADOC_global.tmpl") - if err != nil { - log.Fatal(err) - } - - gltpl := template.Must(template.New("").Parse(string(glc))) - glfile, err := os.Create(filepath.Join(targetFolder, "global_configvars.adoc")) - if err != nil { - log.Fatalf("Failed to create target file: %s", err) - } - - if err := gltpl.Execute(glfile, tmplValues); err != nil { - log.Printf("Failed to execute template: %s", err) - } - - fmt.Println("done") -} - -func replaceEnvVarPlaceHolder(s string) string { - return strings.Replace( - strings.Replace(s, "%%NEXT%%", "next", -1), - "%%NEXT_PRODUCTION_VERSION%%", - "next-prod", - -1, - ) -} - -func GetAnnotatedVariables(s interface{}, timestamp string) ([]ConfigField, []DeprecationField) { - t := reflect.TypeOf(s) - v := reflect.ValueOf(s) - - var fields []ConfigField - var deprecations []DeprecationField - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - value := v.Field(i) - - switch value.Kind() { - default: - desc := field.Tag.Get("desc") - env, ok := field.Tag.Lookup("env") - deprecationLink := "" - if !ok { - continue - } - introductionVersion, _ := field.Tag.Lookup("introductionVersion") - deprecationVersion, _ := field.Tag.Lookup("deprecationVersion") - removalVersion, _ := field.Tag.Lookup("removalVersion") - deprecationInfo, _ := field.Tag.Lookup("deprecationInfo") - deprecationReplacement, _ := field.Tag.Lookup("deprecationReplacement") - if deprecationVersion != "" || - removalVersion != "" || - deprecationInfo != "" || - deprecationReplacement != "" { - deprecationLink = fmt.Sprintf("xref:deprecation-note-%s[Deprecation Note]", timestamp) - } - v := fmt.Sprintf("%v", value.Interface()) - td := strings.Split(env, ";") - // re := regexp.MustCompile(`^(https?:\/\/)`) - // v = re.ReplaceAllString(v,"\\$1") - re := regexp.MustCompile(`(https?:\/\/)`) - desc = re.ReplaceAllString(desc, "\\$1") - re = regexp.MustCompile(`(\|)`) - v = re.ReplaceAllString(v, "\\$1") - typeName := value.Type().Name() - if typeName == "" { - typeName = value.Type().String() - } - fields = append(fields, - ConfigField{ - EnvVars: td, - IntroductionVersion: replaceEnvVarPlaceHolder(introductionVersion), - DefaultValue: v, - Description: desc, - Type: typeName, - DeprecationLink: deprecationLink, - }) - if deprecationLink != "" { - deprecations = append(deprecations, - DeprecationField{ - DeprecationVersion: replaceEnvVarPlaceHolder(deprecationVersion), - DeprecationInfo: deprecationInfo, - DeprecationReplacement: deprecationReplacement, - RemovalVersion: replaceEnvVarPlaceHolder(removalVersion), - }) - } - case reflect.Ptr: - // PolicySelectors in the Proxy are being skipped atm - // they are not configurable via env vars, if that changes - // they are probably added to the Sanitize() function - // and this should not be an issue then - if !value.IsZero() && value.Elem().CanInterface() { - f, d := GetAnnotatedVariables(value.Elem().Interface(), timestamp) - fields = append(fields, f...) - deprecations = append(deprecations, d...) - } - case reflect.Struct: - f, d := GetAnnotatedVariables(value.Interface(), timestamp) - fields = append(fields, f...) - deprecations = append(deprecations, d...) - } - } - return fields, deprecations -} diff --git a/docs/helpers/templates/env-vars-added.md.tmpl b/docs/helpers/templates/env-vars-added.md.tmpl deleted file mode 100644 index 5e3725933a..0000000000 --- a/docs/helpers/templates/env-vars-added.md.tmpl +++ /dev/null @@ -1,7 +0,0 @@ -Added between Version {{ .StartVersion }} and {{ .EndVersion }}. - -| Variable | Description | -| --- | --- | -{{- range $key, $value := .DeltaFields}} -| {{$value.Name}} | {{$value.Description}} | -{{- end}} diff --git a/docs/helpers/templates/env-vars-deprecated.md.tmpl b/docs/helpers/templates/env-vars-deprecated.md.tmpl deleted file mode 100644 index 53c42afd64..0000000000 --- a/docs/helpers/templates/env-vars-deprecated.md.tmpl +++ /dev/null @@ -1,7 +0,0 @@ -Deprecated between Version {{ .StartVersion }} and {{ .EndVersion }}. - -| Variable | Description | Deprecation Info | -| --- | --- | -{{- range $key, $value := .DeltaFields}} -| {{$value.Name}} | {{$value.Description}} | {{$value.DeprecationInfo}} | -{{- end}} diff --git a/docs/helpers/templates/env-vars-removed.md.tmpl b/docs/helpers/templates/env-vars-removed.md.tmpl deleted file mode 100644 index c342027873..0000000000 --- a/docs/helpers/templates/env-vars-removed.md.tmpl +++ /dev/null @@ -1,7 +0,0 @@ -Removed between Version {{ .StartVersion }} and {{ .EndVersion }}. - -| Variable | Description | Deprecation Info | -| --- | --- | -{{- range $key, $value := .DeltaFields}} -| {{$value.Name}} | {{$value.Description}} | {{$value.DeprecationInfo}} | -{{- end}} diff --git a/docs/helpers/templates/envar-delta-table.go.tmpl b/docs/helpers/templates/envar-delta-table.go.tmpl deleted file mode 100644 index fe173e6a57..0000000000 --- a/docs/helpers/templates/envar-delta-table.go.tmpl +++ /dev/null @@ -1,154 +0,0 @@ -package main - -import ( - "fmt" - "gopkg.in/yaml.v2" - "html" - "reflect" - "strings" - "log" - "os" - "path/filepath" - - {{- range $key, $value :=.}} - pkg{{$key}} "{{$value}}" - {{- end}} -) - -const yamlSource = "env_vars.yaml" - -type ConfigField struct { - Name string `yaml:"name"` - DefaultValue string `yaml:"defaultValue"` - Type string `yaml:"type"` - Description string `yaml:"description"` - IntroductionVersion string `yaml:"introductionVersion"` - DeprecationVersion string `yaml:"deprecationVersion"` - RemovalVersion string `yaml:"removalVersion"` - DeprecationInfo string `yaml:"deprecationInfo"` -} - -func main() { - fmt.Println("Generating tables for env-var deltas...") - curdir, err := os.Getwd() - if err != nil { - log.Fatal(err) - } - fullYamlPath := filepath.Join(curdir, yamlSource) - var fields []ConfigField - configFields := make(map[string]*ConfigField) - fmt.Printf("Reading existing variable definitions from %s\n", fullYamlPath) - yfile, err := os.ReadFile(fullYamlPath) - if err == nil { - err := yaml.Unmarshal(yfile, configFields) - if err != nil { - log.Fatal(err) - } - } - m := map[string]interface{}{ - {{- range $key, $value := .}} - "{{$value}}": *pkg{{$key}}.FullDefaultConfig(), - {{- end }} - } - for _, conf := range m { - fields = GetAnnotatedVariables(conf) - for _, field := range fields { - variants := strings.Split(field.Name, ";") - for _, variant := range variants { - if (configFields[variant] != nil && configFields[variant].Name == "") || configFields[variant] == nil { - configFields[variant] = &field - } else { - fmt.Printf("%v, duplicate key, merging\n", variant) - if strings.TrimSpace(configFields[variant].DefaultValue) != "" && configFields[variant].DefaultValue != field.DefaultValue { - configFields[variant].DefaultValue = field.DefaultValue - } - if strings.TrimSpace(configFields[variant].Description) != "" && configFields[variant].Description != field.Description { - configFields[variant].Description = field.Description - } - if strings.TrimSpace(configFields[variant].Type) != "" && configFields[variant].Type != field.Type { - configFields[variant].Type = field.Type - } - if strings.TrimSpace(configFields[variant].IntroductionVersion) != "" && configFields[variant].IntroductionVersion != field.IntroductionVersion { - configFields[variant].IntroductionVersion = field.IntroductionVersion - } - if strings.TrimSpace(configFields[variant].DeprecationVersion) != "" && configFields[variant].DeprecationVersion != field.DeprecationVersion { - configFields[variant].DeprecationVersion = field.DeprecationVersion - } - if strings.TrimSpace(configFields[variant].RemovalVersion) != "" && configFields[variant].RemovalVersion != field.RemovalVersion { - configFields[variant].RemovalVersion = field.RemovalVersion - } - if strings.TrimSpace(configFields[variant].Name) != "" && configFields[variant].Name != field.Name { - configFields[variant].Name = field.Name - } - if strings.TrimSpace(configFields[variant].DeprecationInfo) != "" && configFields[variant].DeprecationInfo != field.DeprecationInfo { - // there might be multiple superseeding DeprecationInformations, we might want to keep track of those, that's why we are not overwriting the field - configFields[variant].DeprecationInfo = configFields[variant].DeprecationInfo + " | " + field.DeprecationInfo - } - } - } - } - } - - output, err := yaml.Marshal(configFields) - if err != nil { - log.Fatalf("Could not marshall variables: %v", err) - } - err = os.WriteFile(fullYamlPath, output, 0666) - if err != nil { - log.Fatalf("could not write %s", fullYamlPath) - } - if err := os.Chdir(curdir); err != nil { - log.Fatal(err) - } -} - -func GetAnnotatedVariables(s interface{}) []ConfigField { - t := reflect.TypeOf(s) - v := reflect.ValueOf(s) - - var fields []ConfigField - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - value := v.Field(i) - - switch value.Kind() { - default: - desc := field.Tag.Get("desc") - env, ok := field.Tag.Lookup("env") - if !ok { - continue - } - introductionVersion := field.Tag.Get("introductionVersion") - deprecationVersion := field.Tag.Get("deprecationVersion") - removalVersion := field.Tag.Get("removalVersion") - deprecationInfo := field.Tag.Get("deprecationInfo") - v := fmt.Sprintf("%v", value.Interface()) - typeName := value.Type().Name() - if typeName == "" { - typeName = value.Type().String() - } - //fields = append(fields, ConfigField{Name: strings.ReplaceAll(env, ";", "
"), DefaultValue: html.EscapeString(strings.Replace(v, "|", "\\|", -1)), Description: desc, Type: typeName}) - fields = append(fields, ConfigField{ - Name: env, - DefaultValue: html.EscapeString(strings.Replace(v, "|", "\\|", -1)), - Description: desc, - Type: typeName, - IntroductionVersion: introductionVersion, - DeprecationVersion: deprecationVersion, - RemovalVersion: removalVersion, - DeprecationInfo: deprecationInfo, - }) - case reflect.Ptr: - // PolicySelectors in the Proxy are being skipped atm - // they are not configurable via env vars, if that changes - // they are probably added to the Sanitize() function - // and this should not be an issue then - if !value.IsZero() && value.Elem().CanInterface() { - fields = append(fields, GetAnnotatedVariables(value.Elem().Interface())...) - } - case reflect.Struct: - fields = append(fields, GetAnnotatedVariables(value.Interface())...) - } - } - return fields -} diff --git a/docs/helpers/templates/environment-variable-docs-generator.go.tmpl b/docs/helpers/templates/environment-variable-docs-generator.go.tmpl deleted file mode 100644 index 475a6d760d..0000000000 --- a/docs/helpers/templates/environment-variable-docs-generator.go.tmpl +++ /dev/null @@ -1,97 +0,0 @@ -package main - -import ( - "fmt" - "html" - "log" - "os" - "path/filepath" - "reflect" - "strings" - "text/template" - - {{- range $key, $value := .}} - pkg{{$key}} "{{$value}}" - {{- end}}) - -type ConfigField struct { - Name string - DefaultValue string - Type string - Description string -} - -func main() { -fmt.Println("Generating documentation for environment variables:") -content, err := os.ReadFile("../../docs/templates/CONFIGURATION.tmpl") -if err != nil { - log.Fatal(err) -} -replacer := strings.NewReplacer( - "github.com/owncloud/ocis/v2/services/", "", - "/pkg/config/defaults", "", - ) -var fields []ConfigField -var targetFile *os.File -tpl := template.Must(template.New("").Parse(string(content))) - -m := map[string]interface{}{ -{{- range $key, $value := .}} - "{{$value}}": *pkg{{$key}}.FullDefaultConfig(), -{{- end }} -} - - targetFolder := "../../docs/services/_includes/" - for pkg, conf := range m { - fields = GetAnnotatedVariables(conf) - if len(fields) > 0 { - fmt.Printf("... %s\n", pkg) - targetFile, err = os.Create(filepath.Join(targetFolder, replacer.Replace(pkg) + "_configvars.md")) - if err != nil { - log.Fatalf("Failed to create target file: %s", err) - } - defer targetFile.Close() - if err := tpl.Execute(targetFile, fields); err != nil { - log.Fatalf("Failed to execute template: %s", err) - } - } - } - fmt.Println("done") -} - -func GetAnnotatedVariables(s interface{}) []ConfigField { - t := reflect.TypeOf(s) - v := reflect.ValueOf(s) - - var fields []ConfigField - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - value := v.Field(i) - - switch value.Kind() { - default: - desc := field.Tag.Get("desc") - env, ok := field.Tag.Lookup("env") - if !ok { - continue - } - v := fmt.Sprintf("%v", value.Interface()) - typeName := value.Type().Name() - if typeName == "" { - typeName = value.Type().String() - } - fields = append(fields, ConfigField{Name: strings.ReplaceAll(env, ";", "
"), DefaultValue: html.EscapeString(strings.Replace(v, "|", "\\|", -1)), Description: desc, Type: typeName}) - case reflect.Ptr: - // PolicySelectors in the Proxy are being skipped atm - // they are not configurable via env vars, if that changes - // they are probably added to the Sanitize() function - // and this should not be an issue then - if !value.IsZero() && value.Elem().CanInterface() { - fields = append(fields, GetAnnotatedVariables(value.Elem().Interface())...) - } - case reflect.Struct: - fields = append(fields, GetAnnotatedVariables(value.Interface())...) - } - } - return fields -} diff --git a/docs/helpers/templates/example-config-generator.go.tmpl b/docs/helpers/templates/example-config-generator.go.tmpl deleted file mode 100644 index c678a46ff0..0000000000 --- a/docs/helpers/templates/example-config-generator.go.tmpl +++ /dev/null @@ -1,50 +0,0 @@ -package main - -import ( - "fmt" - "log" - "os" - "path/filepath" - "strings" - - "gopkg.in/yaml.v2" - {{- range $key, $value := .}} - pkg{{$key}} "{{$value}}" - {{- end}} -) - -func main() { - replacer := strings.NewReplacer( - "github.com/owncloud/ocis/v2/services/", "", - "/pkg/config/defaults", "", - ) - cfg := map[string]string{ - {{- range $key, $value := .}} - replacer.Replace("{{$value}}"): func() string { - fmt.Println("Generating example YAML config for {{ $value -}}") - c := pkg{{$key}}.FullDefaultConfig() - yml, err := yaml.Marshal(c) - if err != nil { - log.Fatalf("Marshalling yaml for pkg0 failed: %s\n", err) - } - return fmt.Sprintf("# Autogenerated\n# Filename: %s-config-example.yaml\n\n%s", replacer.Replace("{{ $value }}"),string(yml)) - }(), - {{- end}} - } - for pkg, yml := range cfg { - targetFolders := []string{ - // TODO: comment in when it is clear how to commit this to the structure of the master|main branch - // filepath.Join("../../", pkg, "/config"), - "../../docs/services/_includes/", - } - for _, targetFolder := range targetFolders { - os.MkdirAll(targetFolder, 0700) - targetYamlFile, err := os.Create(filepath.Join(targetFolder, replacer.Replace(pkg) + "-config-example.yaml")) - if err != nil { - log.Fatalf("Failed to create target file for : %s", err) - } - defer targetYamlFile.Close() - targetYamlFile.WriteString(yml) - } - } -} diff --git a/docs/helpers/templates/index.tmpl b/docs/helpers/templates/index.tmpl deleted file mode 100644 index 2c011dc652..0000000000 --- a/docs/helpers/templates/index.tmpl +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: {{ .ServiceName }} -date: {{ .CreationTime }} -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/services/{{ .service }} -geekdocFilePath: README.md -geekdocCollapseSection: true ---- - - - -## Abstract - -{{ .Abstract }} -## Table of Contents - -{{ .TocTree }} -{{ .Content }} diff --git a/docs/mutagen.yml b/docs/mutagen.yml deleted file mode 100644 index 09c2d9b885..0000000000 --- a/docs/mutagen.yml +++ /dev/null @@ -1,14 +0,0 @@ -sync: - docs: - mode: one-way-replica - alpha: . - beta: ./hugo/content - flushOnCreate: true - ignore: - paths: - - .gitignore - - mutagen.yml - - mutagen.yml.lock - - hugo - - README.md - - Makefile diff --git a/docs/ocis/.gitignore b/docs/ocis/.gitignore deleted file mode 100644 index 422034a72a..0000000000 --- a/docs/ocis/.gitignore +++ /dev/null @@ -1 +0,0 @@ -configuration.md \ No newline at end of file diff --git a/docs/ocis/_index.md b/docs/ocis/_index.md deleted file mode 100644 index 256f547a70..0000000000 --- a/docs/ocis/_index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "oCIS - ownCloud Infinite Scale" -date: 2020-02-27T20:35:00+01:00 -weight: -10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -{{< figure class="floatright" src="/media/is.png" width="70%" height="auto" >}} - -## ownCloud Infinite Scale -Welcome to oCIS, the modern file-sync and share platform, which is based on our knowledge and experience with the PHP based [ownCloud server](https://owncloud.com/#server). - -### The idea of federated storage -To create a truly federated storage architecture oCIS breaks down the old ownCloud 10 user specific namespace, which is assembled on the server side, and makes the individual parts accessible to clients as storage spaces and storage space registries. - -The diagram below shows the core concepts that are the foundation for the new architecture: -- End user devices can fetch the list of *storage spaces* a user has access to, by querying one or multiple *storage space registries*. The list contains a unique endpoint for every *storage space*. -- [*Storage space registries*]({{< ref "./storage/terminology#storage-space-registries" >}}) manage the list of storage spaces a user has access to. They may subscribe to *storage spaces* in order to receive notifications about changes on behalf of an end users mobile or desktop client. -- [*Storage spaces*]({{< ref "./storage/terminology#storage-spaces" >}}) represent a collection of files and folders. A users personal files are contained in a *storage space*, a group or project drive is a *storage space*, and even incoming shares are treated and implemented as *storage spaces*. Each with properties like owners, permissions, quota and type. -- [*Storage providers*]({{< ref "./storage/terminology#storage-providers" >}}) can hold multiple *storage spaces*. At an oCIS instance, there might be a dedicated *storage provider* responsible for users personal storage spaces. There might be multiple, either to shard the load, provide different levels of redundancy or support custom workflows. Or there might be just one, hosting all types of *storage spaces*. - -{{< figure src="/ocis/static/idea.drawio.svg" >}} - -As an example, Einstein might want to share something with Marie, who has an account at a different identity provider and uses a different storage space registry. The process makes use of [OpenID Connect (OIDC)](https://openid.net/specs/openid-connect-core-1_0.html) for authentication and would look something like this: - -To share something with Marie, Einstein would open `https://cloud.zurich.test`. His browser loads oCIS web and presents a login form that uses the [OpenID Connect Discovery](https://openid.net/specs/openid-connect-discovery-1_0.html#EmailSyntax) to look up the OIDC issuer. For `einstein@zurich.test` he will end up at `https://idp.zurich.test`, authenticate and get redirected back to `https://cloud.zurich.test`. Now, oCIS web will use a similar discovery to look up the *storage space registry* for the account, based on the email (or username). He will discover that `https://cloud.zurich.test` is also his *storage registry* that the web UI will use to load the list of *storage spaces* that are available to him. - -After locating a folder that he wants to share with Marie he enters her email `marie@paris.test` in the sharing dialog to grant her the editor role. This, in effect, creates a new *storage space* that is registered with the *storage space registry* at `https://cloud.zurich.test`. - -Einstein copies the URL in the browser (or an email with the same URL is sent automatically, or the storage registries use a back-channel mechanism). It contains the most specific `storage space id` and a path relative to it: `https://cloud.zurich.test/#/spaces/716199a6-00c0-4fec-93d2-7e00150b1c84/a/rel/path`. - -When Marie enters that URL she will be presented with a login form on the `https://cloud.zurich.test` instance, because the share was created on that domain. If `https://cloud.zurich.test` trusts her OpenID Connect identity provider `https://idp.paris.test` she can log in. This time, the *storage space registry* discovery will come up with `https://cloud.paris.test` though. Since that registry is different than the registry tied to `https://cloud.zurich.test` oCIS web can look up the *storage space* `716199a6-00c0-4fec-93d2-7e00150b1c84` and register the WebDAV URL `https://cloud.zurich.test/dav/spaces/716199a6-00c0-4fec-93d2-7e00150b1c84/a/rel/path` in Marie's *storage space registry* at `https://cloud.paris.test`. When she accepts that share her clients will be able to sync the new *storage space* at `https://cloud.zurich.test`. - -### oCIS microservice runtime - -The oCIS runtime allows us to dynamically manage services running in a single process. We use [suture](https://github.com/thejerf/suture) to create a supervisor tree that starts each service in a dedicated goroutine. By default oCIS will start all built-in oCIS services in a single process. Individual services can be moved to other nodes to scale-out and meet specific performance requirements. A [go-micro](https://github.com/asim/go-micro/blob/master/registry/registry.go) based registry allows services in multiple nodes to form a distributed microservice architecture. - -### oCIS Services - -Every oCIS service uses [ocis-pkg](https://github.com/owncloud/ocis/tree/master/ocis-pkg), which implements the [go-micro](https://go-micro.dev/) interfaces for [servers](https://github.com/asim/go-micro/blob/v3.5.0/server/server.go#L17-L37) to register and [clients](https://github.com/asim/go-micro/blob/v3.5.0/client/client.go#L11-L23) to lookup nodes with a service [registry](https://github.com/asim/go-micro/blob/v3.5.0/registry/registry.go). -We are following the [12 Factor](https://12factor.net/) methodology with oCIS. The uniformity of services also allows us to use the same command, logging and configuration mechanism. Configurations are forwarded from the -oCIS runtime to the individual extensions. - - -### go-micro - -While the [go-micro](https://go-micro.dev/) framework provides abstractions as well as implementations for the different components in a microservice architecture, it uses a more developer focused runtime philosophy: It is used to download services from a repo, compile them on the fly and start them as individual processes. For oCIS we decided to use a more admin friendly runtime: You can download a single binary and start the contained oCIS services with a single `bin/ocis server`. This also makes packaging easier. - -We use [ocis-pkg](https://github.com/owncloud/ocis/tree/master/ocis-pkg) to configure the default implementations for the go-micro [grpc server](https://github.com/asim/go-micro/tree/v3.5.0/plugins/server/grpc), [client](https://github.com/asim/go-micro/tree/v3.5.0/plugins/client/grpc) and [mdns registry](https://github.com/asim/go-micro/blob/v3.5.0/registry/mdns_registry.go), swapping them out as needed, e.g. to use the [kubernetes registry plugin](https://github.com/asim/go-micro/tree/v3.5.0/plugins/registry/kubernetes). - -### REVA -A lot of embedded services in oCIS are built upon the [REVA](https://reva.link/) runtime. We decided to bundle some of the [CS3 services](https://github.com/cs3org/cs3apis) to logically group them. A [home storage provider](https://github.com/owncloud/ocis/blob/v1.2.0/storage/pkg/command/storagehome.go#L93-L108), which is dealing with [metadata](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ProviderAPI), and the corresponding [data provider](https://github.com/owncloud/ocis/blob/v1.2.0/storage/pkg/command/storagehome.go#L109-L123), which is dealing with [up and download](https://cs3org.github.io/cs3apis/#cs3.gateway.v1beta1.FileUploadProtocol), are one example. The [frontend](https://github.com/owncloud/ocis/blob/v1.2.0/storage/pkg/command/frontend.go) with the [oc flavoured webdav](https://github.com/owncloud/ocis/blob/v1.2.0/storage/pkg/command/frontend.go#L132-L138), [ocs handlers](https://github.com/owncloud/ocis/blob/v1.2.0/storage/pkg/command/frontend.go#L139-L148) and a [data-gateway](https://github.com/owncloud/ocis/blob/v1.2.0/storage/pkg/command/frontend.go#L126-L131) are another. - -### Protocol driven development -Interacting with oCIS involves a multitude af APIs. The server and all clients rely on [OpenID Connect](https://openid.net/connect/) for authentication. The [embedded LibreGraph Connect](https://owncloud.dev/services/idp/) can be replaced with any other OpenID Connect Identity Provider. Clients use the [WebDAV](http://webdav.org/) based [oc sync protocol](https://github.com/cernbox/smashbox/blob/master/protocol/protocol.md) to manage files and folders, [ocs to manage shares](https://doc.owncloud.com/server/developer_manual/core/apis/ocs-share-api.html) and [TUS](https://tus.io/protocols/resumable-upload.html) to upload files in a resumable way. On the server side [REVA](https://reva.link/) is the reference implementation of the [CS3 apis](https://github.com/cs3org/cs3apis) which is defined using [protobuf](https://developers.google.com/protocol-buffers/). By embedding [libregraph/idm](https://github.com/libregraph/idm), oCIS provides a [LDAP](https://tools.ietf.org/html/rfc2849) interface to make accounts, including guests available to firewalls and other systems. In the future, we are looking into [the Microsoft Graph API](https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0), which is based on [odata](http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html), as a well-defined REST/JSON dialect for the existing endpoints. - -### Acceptance test suite -We run a huge [test suite](https://github.com/owncloud/core/tree/master/tests), which originated in ownCloud 10 and continues to grow. A detailed description can be found in the developer docs for [testing]({{< ref "development/testing" >}}). - -### Architecture Overview - -Running `bin/ocis server` will start the following services, all of which can be scaled and deployed on a single node or in a cloud native environment, as needed. - -{{< figure src="/ocis/static/architecture-overview.drawio.svg" >}} diff --git a/docs/ocis/adr/0001-introduce-accounts-service.md b/docs/ocis/adr/0001-introduce-accounts-service.md deleted file mode 100644 index 8aca5b16c7..0000000000 --- a/docs/ocis/adr/0001-introduce-accounts-service.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "1. Introduce an accounts service" -weight: 1 -date: 2020-06-15T20:21:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0001-introduce-accounts-service.md ---- - -* Status: superseded by [ADR-0003]({{< ref "0003-external-user-management.md" >}}) -* Deciders: [@butonic](https://github.com/butonic), [@felixboehm](https://github.com/felixboehm), [@micbar](https://github.com/micbar), [@pmaier1](https://github.com/pmaier1) -* Date: [2020-06-15](https://github.com/owncloud/ocis-accounts/pull/34/commits/2fd05e2b6fe2a47c687bd0c0bc5e1b5c48a585b2) - -Technical Story: [persist accounts](https://github.com/owncloud/ocis-accounts/pull/34) - -## Context and Problem Statement - -To attach metadata like shares to users ownCloud relies on persistent, non-reassignable, unique identifiers for users (and files). Email und username can change when a user changes his name. But even the OIDC sub+iss combination may change when the IdP changes. While there is [an account porting protocol](https://openid.net/specs/openid-connect-account-porting-1_0.html) that describes how a relying party (RP) such as ownCloud should behave, it still requires the RP to maintain its own user identifiers. - -## Decision Drivers - -* oCIS should be a single binary that can run out of the box without external dependencies like an LDAP server. -* Time: we want to build a release candidate asap. -* Firewalls need access to guests, typically via LDAP. -* Not all external LDAPs are writeable for us to provision Guest accounts. -* We see multiple LDAP servers in deployments. Being able to handle them is important and should be covered by using OIDC + being able to query multiple LDAP servers. - -## Considered Options - -* Accounts service wraps LDAP -* [GLAuth](https://github.com/glauth/glauth) wraps accounts service - -## Decision Outcome - -Chosen option: "GLAuth wraps accounts service", because we need write access to provision guest accounts and GLAuth currently has no write support. - -### Positive Consequences - -* We can build a self-contained user management in the accounts service and can adjust it to our requirements. -* We do not rely on an LDAP server which would only be possible by implementing write support in the LDAP libraries used by GLAuth (hard to estimate effort, when will that be merged upstream). - -### Negative Consequences - -* We need to spend time on implementing user management - -## Pros and Cons of the Options - -### Accounts service wraps LDAP - -* Bad, because not all external LDAPs are writeable for us to provision Guest accounts. diff --git a/docs/ocis/adr/0002-persist-accounts-using-cs3-storage.md b/docs/ocis/adr/0002-persist-accounts-using-cs3-storage.md deleted file mode 100644 index dfbe8b9f7b..0000000000 --- a/docs/ocis/adr/0002-persist-accounts-using-cs3-storage.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "2. Persist accounts in a CS3 storage" -weight: 2 -date: 2020-08-21T20:21:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0002-persist-accounts-using-cs3-storage.md ---- - -* Status: accepted -* Deciders: [@butonic](https://github.com/butonic), [@felixboehm](https://github.com/felixboehm) -* Date: 2020-08-21 - -Technical Story: [File system based indexing](https://github.com/owncloud/ocis-accounts/pull/92) - -## Context and Problem Statement - -To set up High Availability (HA) or a geo-replicated setup we need to persist accounts in a distributed way. To efficiently query the accounts by email or username, and not only by id, they need to be indexed. Unfortunately, the [bleve](https://github.com/blevesearch/bleve) index we currently store locally on disk cannot be shared by multiple instances, preventing a scale out deployment. - -## Considered Options - -* Look into distributed bleve -* Persist users in a CS3 storage - -## Decision Outcome - -Chosen option: "Persist users in a CS3 storage", because we have one service less running and can rely on the filesystem for geo-replication and HA. - -### Positive Consequences - -* We can store accounts on the storage using the CS3 API, pushing geo-distribution to the storage layer. -* Backups of users and storage can be implemented without inconsistencies between using snapshots. - -### Negative Consequences - -* We need to spend time on implementing a reverse index based on files, and symlinks. diff --git a/docs/ocis/adr/0003-external-user-management.md b/docs/ocis/adr/0003-external-user-management.md deleted file mode 100644 index 7d914500b0..0000000000 --- a/docs/ocis/adr/0003-external-user-management.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: "3. Use external User Management" -weight: 3 -date: 2020-12-09T20:21:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0003-external-user-management.md ---- - -* Status: superseded by [17. Allow read only external User Management]({{< ref "0017-allow-read-only-external-user-management.md" >}}) -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@hodyroff](https://github.com/hodyroff), [@pmaier1](https://github.com/pmaier1) -* Date: 2022-02-08 - -Technical Story: [Skip account-service by talking to CS3 user-api](https://github.com/owncloud/ocis/pull/1020) - -## Context and Problem Statement - -To attach metadata like shares to users ownCloud relies on persistent, non-reassignable, unique identifiers for users (and files). Email and username can change when a user changes his name. But even the OIDC sub+iss combination may change when the IdP changes. While there is [an account porting protocol](https://openid.net/specs/openid-connect-account-porting-1_0.html) that describes how a relying party (RP) such as ownCloud should behave, it still requires the RP to maintain its own user identifiers. - -## Decision Drivers - -* oCIS should be a single binary that can run out of the box without external dependencies like an LDAP server. -* Time: we want to build a release candidate asap. -* oCIS should be able to be easily integrated with standard user management components - -## Considered Options - -* Accounts service wraps LDAP -* [GLAuth](https://github.com/glauth/glauth) wraps accounts service - -## Decision Outcome - -Chosen option: "Move accounts functionality to GLAuth and name it accounts", by moving the existing accounts service file based persistence to GLAuth and use it as a drop in replacement for an LDAP server. The reverse index and web UI existing in the accounts service will move as well in order to make GLAuth a standalone, small scale user management with write capabilities. - -### Product summary -- GLAuth is a drop in user management for small scale deployments that do not rely on an actual LDAP server. -- oCIS admins can either use the web UI to manage users in GLAuth or use existing tools in their IDM. -- We hide the complexity by embedding an OpenID Provider, an LDAP server and a user management web UI. - -### Resulting deployment options -- Use internal user management - - Recommended for small scale use cases and simple deployments - - Users, groups and roles are stored and managed within GLAuth -- Use external user management - - Recommended for mid and large scale use cases - - Users, groups and roles are stored and managed within an external LDAP / AD / IDM - - Separate oCIS and LDAP admin: oCIS admin relies on the LDAP admin to manage users -- User permissions for roles are always managed in oCIS (settings service) because they are specific to oCIS - -### Resulting technical implications -- Make the file based reverse index a standalone library -- Contribute to GLAuth - - Add ms graph based rest API to manage users, groups and roles (the LDAP lib is currently readonly) - - Add web UI to glauth that uses the ms graph based rest API to manage users - - Add a backend that uses the file based reverse index, currently living in the oCIS accounts service - - Move fallback mechanism from ocis/glauth service to upstream GLAuth to support multiple LDAP servers - - Make it a chain to support more than two LDAP servers - - Document the implications for merging result sets when searching for recipients - - At least one writeable backend is needed to support creating guest accounts -- Make all services currently using the accounts service talk to the CS3 userprovider -- To support multiple LDAP servers we need to move the fallback mechanism in ocis/glauth service to upstream GLAuth -- The current CS3 API for user management should be enriched with pagination, field mask and a query language as needed -- properly register an [auxiliary LDAP schema that adds an ownCloudUUID attribute to users and groups](https://github.com/owncloud/ocis/blob/c8668e8cb171860c70fec29e5ae945bca44f1fb7/deployments/examples/cs3_users_ocis/config/ldap/ldif/10_owncloud_schema.ldif) - -### Positive Consequences - -* The accounts service (which is our drop in LDAP solution) can be dropped. The CS3 userprovider service becomes the only service dealing with users. -* No sync - -### Negative Consequences - -* If users want to store users in their IDM and at the same time guests in a separate user management we need to implement GLAuth backends that support more than one LDAP server. - -## Pros and Cons of the Options - -### GLAuth wraps accounts service - -Currently, the accounts service is the source of truth and we use it to implement user management. - -* Good, because it solves the problem of storing and looking up an owncloud UUID for a user (and group) -* Good, because we can manage users out of the box -* Good, because we can persist accounts in a CS3 storage provider -* Bad, because it maintains a separate user repository: it needs to either learn or sync users. - -### Move accounts functionality to GLAuth and name it accounts - -We should use an existing LDAP server and make GLAuth a drop in replacement for it. - -* Good, because we can use an existing user repository (an LDAP server), no need to sync or learn users. -* Good, because admins can rely on existing user management tools. -* Good, because we would have a clear separation of concerns: - - users reside in whatever repository, typically an LDAP server - - could be an existing LDAP server or AD - - could be our embeddable drop in glauth server - - we use a service to wrap the LDAP server with other APIs: - - ms graph API - ODATA based restful API, - - [SCIM](http://www.simplecloud.info/) - designed to manage user identities, supported by some IDPs, - - the current accounts API (which is a protobuf spec following the ms graph API) - - our account management UI can use the ms graph based API service which can have different backends - - an existing LDAP server - - our drop in glauth server (which might serve the ms graph based API itself) - - the CS3 API + a future guest provisioning API + a future CS3 user provisioning API (or [generic space provisioning](https://github.com/cs3org/cs3apis/pull/95)) - - all oCIS services can use the service registry to look up the accounts service that provides an internal API - - could be the CS3 user provider (and API) - - could be the internal protobuf accounts API - - introduce a new guest provisioning API to CS3 which properly captures our requirement to have them in the user repository - - guests need to be made available to the firewall - - storages like EOS that integrate with the os for acl based file permissions need a numeric user and group id -* Good, because we can use the CS3 user provider with the existing LDAP / rest driver. -* Bad, because oCIS admins may not have the rights to manage role assignments. (But this is handled at a different department.) -* Bad, because oCIS admins may not have the rights to disable users if an external LDAP is used instead of the drop in GLAuth. - -## Links -* supersedes [ADR-0001]({{< ref "0001-introduce-accounts-service.md" >}}) -* superseded by [17. Allow read only external User Management]({{< ref "0017-allow-read-only-external-user-management.md" >}}) diff --git a/docs/ocis/adr/0004-support-hot-migration.md b/docs/ocis/adr/0004-support-hot-migration.md deleted file mode 100644 index ab1f7d4d65..0000000000 --- a/docs/ocis/adr/0004-support-hot-migration.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: "4. Support Hot Migration" -weight: 4 -date: 2020-12-09T20:21:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0004-support-hot-migration.md ---- - -* Status: proposed -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@hodyroff](https://github.com/hodyroff), [@pmaier1](https://github.com/pmaier1) -* Date: 2021-03-16 - -Technical Story: \[description | ticket/issue URL\] - -## Context and Problem Statement - -Migration is one of the most important topics of the oCIS story. We need to provide a concept how to migrate from oC10 to oCIS. - -## Decision Drivers - -- Do not lose file blob or metadata. - - To prevent a sync surge from clients the etag for files should be migrated. - - To prevent internal links from breaking or pointing to wrong files the file id of existing files needs to be migrated. - - To prevent data loss trash and version blobs should be migrated. -- Existing shares like public links and federated shares must remain functional after the migration. - - To prevent internal shares the share type, permissions and expiry needs to be migrated. - - To prevent public links from breaking the url token, permissions, expiry and password needs to be migrated. - - *What about federated shares?* - - *What about additional share permissions, e.g. comment on office files?* -- Legacy clients need to keep working - - To keep existing clients working the `remote.php/webdav` and `dav/files/` webdav endpoints as well as the ocs API need to be available. -- *What about [app passwords/tokens](https://doc.owncloud.com/server/user_manual/personal_settings/security.html#app-passwords-tokens)?* - -## Considered Options - -1. Cold Migration: migrate data while systems are not online, so no user interaction happens in between. -2. Hot Migration: one or both systems are online during migration. - -## Decision Outcome - -Chosen option: "\[option 1\]", because \[justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force force | … | comes out best (see below)\]. - -### Positive Consequences - -- \[e.g., improvement of quality attribute satisfaction, follow-up decisions required, …\] -- … - -### Negative Consequences - -- \[e.g., compromising quality attribute, follow-up decisions required, …\] -- … - -## Pros and Cons of the Options - -### Cold Migration - -The migration happens while the service is offline. File metadata, blobs and share data is exported from ownCloud 10 and imported in oCIS. This can happen user by user, where every user export would contain the file blobs, their metadata, trash, versions, shares and all metadata that belongs to the user's storage. To prevent group shares from breaking, users in the same groups must be migrated in batch. Depending on the actual group shares in an instance this may effectively require a complete migration in a single batch. - -- Good, because oCIS can be tested in a staging system without writing to the production system. -- Good, because file layout on disk can be changed to support new storage driver capabilities. -- Bad, because the export and import might require significant amounts of storage. -- Bad, because a rollback to the state before the migration might cause data loss of the changes that happened in between. -- Bad, because the cold migration can mean significant downtime. - -### Hot Migration - -The migration happens in subsequent stages while the service is online. - -- Good, because the admin can migrate users from old to new backend in a controlled way. -- Good, because users and admins can learn to trust the new system. -- Good, because there can be preparations even long before the migrations happens in parallel on the oC10 codebase, i.e. addition of metadata that is needed while the system operates. -- Good, because the downtime of the system can be fairly small. -- Bad, because it is more complex and might drag on for a long time. - - -## Links - - -- [Clarify responsibilities of share providers and storage providers · Issue #1377 · cs3org/reva (github.com)](https://github.com/cs3org/reva/issues/1377) because the share manager for oCIS should store share information on the storage system. And [storage provider should persist share creator · Issue #93 · cs3org/cs3apis (github.com)](https://github.com/cs3org/cs3apis/issues/93) finally: [eos: store share id in inherited xattr · Issue #543 · cs3org/reva (github.com)](https://github.com/cs3org/reva/issues/543) diff --git a/docs/ocis/adr/0005-cs3-api-account-management.md b/docs/ocis/adr/0005-cs3-api-account-management.md deleted file mode 100644 index 818452a85c..0000000000 --- a/docs/ocis/adr/0005-cs3-api-account-management.md +++ /dev/null @@ -1,210 +0,0 @@ ---- -title: "5. Account Management through CS3 API" -weight: 5 -date: 2021-04-12T15:00:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0005-cs3-api-account-management.md ---- - -* Status: proposed -* Deciders: [@refs](https://github.com/refs), [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@pmaier1](https://github.com/pmaier1) -* Date: 2021-04-12 - -Technical Story: [Write only management API for User and Group resources](https://github.com/cs3org/cs3apis/pull/119) - -## Context and Problem Statement - -What would be a more effective way of using network resources and handle account management within the oCIS-Reva ecosystem? Separating account management at the service level is pragmatic and allows for fast iterations, but also steadily accumulates inconsistencies and bloats technical debt. - -## Decision Drivers - -* Reduce number of network calls. -* Reduce number of services (merge Account + GLAuth from ADR-0003). -* Formalize account management at the API level. - -## Considered Options - -* Account management delegated to vendors. -* Add account management to the CS3 API. - -## Decision Outcome - -Chosen option: "Add account management to the CS3 API". Making the API declare an API for account management will not only allow a deployment to fail fast (as in: the management node is not running) but would also centralize all management operations that should happen to be constrained within the Reva context. Constrained operations *SHOULD* be by definition more secure, or at least as secure as the rest of the system. - -### Positive Consequences - -* More resilient API. - * Because account management is considered a "first class citizen" changes are forced to go through a more exhaustive revision process. -* Removing Accounts from search users1. -* Replace the provisioning API in favor of the new Reva Admin node. - -(1) the current vendor implementation of searching a user (i.e: when sharing a resource) relies directly on the accounts service, since this is the only source of truth. Searching a user looks like: - -``` -┌────────────────────────────────────────┐ -│user search (no LDAP) │ -│ │ -│ ┌──────────┐ │ -│ │ │ │ -│ │ proxy │ │ -│ │ │ ┌ ─ ─ ─ ─ ─ ┐ │ -│ └──────────┘ go-micro │ -│ ▲ │ │ │ -│ │ Λ │ -│ ▼ │ ╱ ╲ │ │ -│ ┌──────────┐ ╱ ╲ │ -│ │ │ │ ╱ ╲ │ │ -│ │ ocs │◀──(1)───▶registry▏ │ -│ │ │ │ ╲ ╱ │ │ -│ └──────────┘ ╲ ╱ │ -│ ▲ │ ╲ ╱ │ │ -│ │ V │ -│ │ │ │ │ -│ │ │ -│ │ └ ─ ─ ─ ─ ─ ┘ │ -│ │ │ -│ │ │ -│ │ ┌──────────┐ │ -│ │ │ │ │ -│ └─────────────▶│ accounts │ │ -│ │ │ │ -│ └──────────┘ │ -│ │ -│ │ -│(1) ocs requests a connection to the │ -│accounts service to the registry │ -│ │ -└────────────────────────────────────────┘ -``` - -Whereas, as a result of ADR-0003 and this ADR, we can simplify and improve this design: - -``` -┌─────────────────────────────────────────────┐ -│user search │ -│ │ -│ │ -│ ┌──────────┐ │ -│ │ │ │ -│ │ proxy │ │ -│ │ │ │ -│ └──────────┘ │ -│ │ │ -│ ▼ │ -│ ┌──────────┐ │ -│ │ │ │ -│ │ ocs │ │ -│ │ │ │ -│ └──────────┘ │ -│ │ │ -│ │ │ -│ ┌ ─ ─ ─ ─ ─│─ ─ ─ ─ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ┐ │ -│ reva ▼ │ IDM │ -│ │ ┌──────────┐ │ ┌──────────┐ │ │ -│ │ │ │ │ │ │ -│ │ │ users │◀─────┼──▶│ GLAuth │ │ │ -│ │ │ │ │ │ │ -│ │ └──────────┘ │ └──────────┘ │ │ -│ │ │ -│ └ ─ ─ ─ ─ ─ ─ ─ ─ ─ └ ─ ─ ─ ─ ─ ─ ─ ─ ┘ │ -│ │ -└─────────────────────────────────────────────┘ -``` - -And instead rely on the already existing Reva users provider. - - -## Pros and Cons of the Options - -### Account management delegated to vendors - -* Good, because it allows for fast iterations. -* Bad, because account management happens outside of the Reva process. This can potentially end up in invalid account creation / deletion / updates. - * An example with the existing Accounts service is that any client can fire CRUD accounts requests to the Accounts service as long as the client knows where the server is running and provides with an Authorization header (only required by the proxy). This request totally bypasses Reva middlewares and therefore any security measures that should be enforced by the entire system. -* Bad, because leaves teams the task of designing and implementing a way of dealing with account management. Ideally one schema should be provided / suggested. - -Creating an account using the first option looks currently is implemented in vendors as: - -``` -┌──────────────────────────────────────────────────┐ -│ creating a user (webui) │ -│ │ -│ ┌──────────┐ │ -│ │ │ │ -│ │ proxy │ │ -│ │ │ │ -│ └──────────┘ │ -│ │ │ -│ │ │ -│ /api/v0/accounts/accounts-create │ -│ │ │ -│ │ │ -│ │ │ -│ ▼ │ -│ ┌──────────┐ │ -│ │ │ │ -│ │ accounts │ │ -│ │ │ │ -│ └──────────┘ │ -│ │ -│ note that while doing CRUD operations changes │ -│ are instantly reflected for the IDP since out of │ -│ the box oCIS uses an accounts backend for │ -│ GLAuth. │ -└──────────────────────────────────────────────────┘ -``` - -As explained before, during this flow no Reva middlewares are run. Creating an account will only use the embedded accounts js file alongside a minted jwt token (by the oCIS proxy) to communicate with the accounts service. - -### Add account management to the CS3 API - -* Good, because it solidifies what the CS3 API can or cannot do, and account management should be handled at the API level since ultimately accounts would contain a mix of required CS3 and vendor-specific attributes. -* Good, because it centralizes account management and constrains it within the Reva boundaries. -* Good, because there is a clear separation of concerns on what is accounts management logic. -* Good, because we already designed [a similar API for the accounts service](https://github.com/owncloud/ocis/blob/master/accounts/pkg/proto/v0/accounts.proto#L42-L85) the only difference being we (vendors) [define their own messages](https://github.com/owncloud/ocis/blob/master/accounts/pkg/proto/v0/accounts.proto#L252-L408). - * The API would fully include CRUD methods -* Bad, because development cycles are larger. - * an example flow will be: `update api > run prototool > publish language specific packages > update dependencies to fetch latest version of the package > utilize the new changes`. - -The new account management workflow will result in: -``` -┌───────────────────────────────────────────────────┐ -│creating a user (webui) │ -│ - maintain the same route for compatibility │ -│ │ -│ ┌──────────┐ │ -│ │ │ │ -│ │ proxy │ │ -│ │ │ │ -│ └──────────┘ │ -│ │ │ -│ │ │ -│ /api/v0/accounts/accounts-create │ -│ │ │ -│ │ │ -│ ┌ ─ ─ ─ ─ ─│─ ─ ─ ─ ─ ─ ─ ─ ┐ ┌ ─ ─ ─ ─ ─ ─ ─ ─ │ -│ Reva │ IDM │ │ -│ │ │ │ │ │ -│ ▼ │ │ -│ │ ┌──────────┐ │ │ ┌──────────┐ │ -│ │ │ │ │ │ │ -│ │ │ admin │───────────┼──┼──▶│ GLAuth │ │ -│ │ │ │ │ │ │ -│ │ └──────────┘ │ │ └──────────┘ │ -│ │ │ -│ │ │ │ │ -│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ │ -│ an example of a driver could be GLAuth │ -│ implementing the user management portion of the │ -│ GraphAPI │ -└───────────────────────────────────────────────────┘ -``` - -This flow allows Reva and oCIS Proxy to run any middleware logic in order to validate a request. The communication between the proposed Admin api (CS3 API messages) and the IDM (GLAuth) are specific to the _drivers_. diff --git a/docs/ocis/adr/0006-service-discovery.md b/docs/ocis/adr/0006-service-discovery.md deleted file mode 100644 index 61461b9b77..0000000000 --- a/docs/ocis/adr/0006-service-discovery.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: "6. Service Discovery within oCIS and Reva" -weight: 6 -date: 2021-04-19T13:00:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0006-service-discovery.md ---- - -* Status: accepted -* Deciders: [@refs](https://github.com/refs), [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@pmaier1](https://github.com/pmaier1) -* Date: 2021-04-19 - -Technical Story: [Introduce Named Services.](https://github.com/cs3org/reva/pull/1509) - -## Context and Problem Statement - -Reva relies heavily on config files. A known implication of this approach are having to know a-priori where a service is running (host + port). We want to move away from hardcoded values and rely instead on named services for service discovery. Furthermore, we would like both platforms (Reva + oCIS) to have the same source of truth at any given time, not having one to notify the other whenever a service status changes. - -## Decision Drivers - -* Avoid a-priori knowledge of services. -* Ease of scalability. -* Always up-to-date knowledge of the running services on a given deployment (a service registry doesn't have to necessarily be running on the same machine / network) - -## Considered Options - -* Hardcoded tuples of hostname + port -* Dynamic service registration - -## Decision Outcome - -Chosen option: "Dynamic service registration". There were some drawbacks regarding this due to introducing go-micro to Reva was from start an issue. Given the little usage of go-micro we need, we decided instead to define our very own [Registry interface](https://github.com/refs/reva/blob/58d013a7509d1941834e1bc814e9a9fa8bff00b1/pkg/registry/registry.go#L22-L35) on Reva and extended the runtime arguments to [allow for injecting a registry](https://github.com/refs/reva/blob/58d013a7509d1941834e1bc814e9a9fa8bff00b1/cmd/revad/runtime/option.go#L53-L58). - -### Positive Consequences - -* Having dynamic service registration delegates the entire lifecycle of finding a process to the service registry. -* Removing a-priori knowledge of hostname + port for services. -* Marrying go-micro's registry and a newly defined registry abstraction on Reva. -* We will embrace go-micro interfaces by defining a third merger interface in order to marry go-micro registry and reva registry. -* The ability to fetch a service node relying only on its name (i.e: com.owncloud.proxy) and not on a tuple hostname + port that we rely on being preconfigured during runtime. -* Conceptually speaking, a better framework to tie all the services together. Referring to services by names is less overall confusing than having to add a service name + where it is running. A registry is agnostic to "where is it running" because it, by definition, keeps track of this specific question, so when speaking about design or functionality, it will ease communication. - -## Pros and Cons of the Options - -### Hardcoded tuples of hostname + port - -* Good, because firewalls are easier to configure since IP are static. -* Good, because the mental model required is easier to grasp as IP addresses can be easily bundled. -* Bad, because it requires thorough planning of ports. - -### Dynamic service registration - -* Good, because it abstracts the use of service lookup away to registry logic from the admin or developer. -* Good, because it allows for, through interfaces, registry injection - * This means we can have a service registry that we extensively use in oCIS and inject its functionality onto Reva. -* Bad, because it's yet another abstraction. -* Bad, because firewalls are harder to configure with dynamic IPs.f diff --git a/docs/ocis/adr/0007-api-for-spaces.md b/docs/ocis/adr/0007-api-for-spaces.md deleted file mode 100644 index 9d6ffe8c47..0000000000 --- a/docs/ocis/adr/0007-api-for-spaces.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: "7. Open Graph API for oCIS File Spaces" -weight: 7 -date: 2021-05-03T09:00:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0007-api-for-spaces.md ---- - -* Status: accepted -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@hodyroff](https://github.com/hodyroff), [@pmaier1](https://github.com/pmaier1) -* Date: 2021-03-19 - -Technical Story: API to enable the concept of [Spaces](https://github.com/owncloud/enterprise/issues/3863) - -## Context and Problem Statement - -As one of the building blocks for Spaces in oCIS we plan to add an API that returns information about available spaces. This ADR discusses the API design oriented on the Microsoft Graph API. - -> Note: The term "spaces" is used here in the context of "a space where files can be saved", similar to a directory. It is not to be confused with space in the sense of free file space for example. - -The purpose of this new API is to give clients a very simple way to query the dynamic list of spaces, that the user has access to. Clients can provide a better user experience with that. - -This API is supposed to be queried often, to give clients a condensed view of the available spaces for a user, but also their eTags and cTags. Hence the clients do not have to perform a PROPFIND for every space separately. - -This API would even allow providing (WebDAV-) endpoints depending on the kind and version of the client asking for it. - -## Decision Drivers - -- Make it easy to work with a dynamic list of spaces of a user for the clients. -- No longer the need to make assumptions about WebDAV- and other routes in clients. -- More meta data available about spaces for a better user experience. -- Part of the bigger spaces plan. -- Important to consider in client migration scenarios, i.e. in CERN. - -## Considered Options - -1. [Microsoft Graph API](https://developer.microsoft.com/en-us/graph) inspired API that provides the requested information. - -## Decision Outcome - -This the DRAFT for the API. - -### API to Get Info about Spaces - -ownCloud servers provide an API to query for available spaces of an user. - -See the openAPI Specification for the [Libre Graph API](https://owncloud.dev/libre-graph-api/). - -Most important, the API returns the WebDAV endpoint for each space. With that, clients do not have to make assumptions about WebDAV routes any more. - -See [Drive item in Microsoft Graph API](https://docs.microsoft.com/en-us/graph/api/resources/onedrive?view=graph-rest-1.0) for an overview of `drive` and `driveItem` resources. The concrete list of drives / spaces a user has access to can be obtained on multiple endpoints. - -### Get "Home folder" - -Retrieve information about the home space of a user. Note: The user has access to more spaces. This call only returns the home space to provide API parity with the Graph API. - -API Call: `/me/drive`: Returns the information about the users home folder. - -### Get All Spaces of a User - -Retrieve a list of available spaces of a user. This includes all spaces the user has access to at that moment, also the home space. - -API Call: `/me/drives`: Returns a list of spaces. - -There is also `/drives`, returning the list of spaces the user has access to. This endpoint is used to access any space by id using `/drives/{drive-id}`. - -### Common Reply - -The reply to both calls is either one or a list of [Drive representation objects](https://docs.microsoft.com/de-de/graph/api/resources/drive?view=graph-rest-1.0): - -``` -{ - "id": "string", - "createdDateTime": "string (timestamp)", - "description": "string", - "driveType": "personal | projectSpaces | shares", - "lastModifiedDateTime": "string (timestamp)", - "name": "string", - "owner": { "@odata.type": "microsoft.graph.identitySet" }, - "quota": { "@odata.type": "microsoft.graph.quota" }, - "root": { "@odata.type": "microsoft.graph.driveItem" }, - "webUrl": "url" -} -``` - -The meaning of the objects in Open Graph API context are: - -1. **id** - a persistent and unique ID identifying the space, called Storage Space ID. -2. **driveType** - describing the type of the space. -3. **owner** - an owner object to whom the space belongs -4. **quota** - quota information about this space -5. **root** - the root driveItem object. -6. **webUrl** - The URL to make this space visible in the browser. - -The following *driveType* values are available in the first step, but might be enhanced later: - -* **personal**: The users home space -* **projectSpaces**: The project spaces available for the user (*) -* **shares**: The share jail, contains all shares for the user (*) - -Other space types such as backup, hidden etc. can be added later as requested. - -> Note: The *projectSpaces* and *shares* space are virtual spaces. They only contain other spaces, and no regular resources. - -The (*) marked types are not defined in the official MS API. They are prefixed with `oc` to avoid namespace clashes. - -The `root` object equals a [driveItem](https://docs.microsoft.com/de-de/graph/api/resources/driveitem?view=graph-rest-1.0) and contains information about the root resource (directory) of the space. - -This is an example object as it can be expected as `root` element. It is not complete, as not all elements will be implemented so far. - -``` -{ - "cTag": "string (etag)", - "webDavUrl": "string", - - /* inherited from baseItem */ - "id": "string (identifier)", - "createdBy": {"@odata.type": "microsoft.graph.identitySet"}, - "createdDateTime": "String (timestamp)", - "eTag": "string", - "lastModifiedBy": {"@odata.type": "microsoft.graph.identitySet"}, - "lastModifiedDateTime": "String (timestamp)", - "name": "string", - "webUrl": "string", -} -``` - -Meaningful fields of the root element in the context of the Open Graph API: - -1. **id** - a persistent and unique ID identifying the root directory node. -2. **webDavUrl** - The webdav path of the top item of the space. -3. **eTag** - an identifier that changes automatically if the content *or* metadata of the node or the underlying resources changes. -4. **cTag** - an identifier that changes automatically if the content of the root node or of one of the underlying resources changes. -5. **webUrl** - The URL to make this space visible in the browser. - -> Note: To indicate that only the metadata of a resource has changed, the eTag has changed, but the cTag not. - -### Positive Consequences - -- A well understood and mature API from Microsoft adopted to our needs. -- Prerequisite for Spaces in oCIS. -- Enables further steps in client development. - -### Negative Consequences - -- Migration impact on existing installations. Still to be investigated. -- Requires additional webdav endpoint that allows accessing an arbitrary storage space, either - - with an id: `/dav/spaces//relative/path/to/file.ext`, or - - with a global path: `/dav/global////relative/path/to/file.ext`, e.g. `/dav/global/projects/Golive 2021/Resources/slides.odt` - -### Open Topics - -- What are the WebDAV paths for Trashbin, Versions - + option: additional entries in the reply struct -- The identitySet object used for "owner" and "coowner" require to implement the [https://docs.microsoft.com/de-de/graph/api/resources/identityset?view=graph-rest-1.0](IdentitySet) JSON object, which contains information that seems to be of limited benefit for oCIS. An alternative would be to implement a simpler identity object for oCIS and use that. diff --git a/docs/ocis/adr/0008-configuration.md b/docs/ocis/adr/0008-configuration.md deleted file mode 100644 index 7a9eb91730..0000000000 --- a/docs/ocis/adr/0008-configuration.md +++ /dev/null @@ -1,194 +0,0 @@ ---- -title: "8. Configuration" -weight: 8 -date: 2021-05-03T15:00:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0008-configuration.md ---- - -* Status: proposed -* Deciders: [@refs](https://github.com/refs), [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@pmaier1](https://github.com/pmaier1) -* Date: 2021-05-03 - -## Context and Problem Statement - -As per urfave/cli's doc: - ->The precedence for flag value sources is as follows (highest to lowest): -> ->0. Command line flag value from user ->1. Environment variable (if specified) ->2. Configuration file (if specified) ->3. Default defined on the flag - -An issue arises in point 2, in the sense that configuration file refers to a single file containing the value for the env variable. The CLI framework we use for flag parsing does not support merging config structs with CLI flags. This introduces an inconsistency with the framework: config structs are not supported, and we cannot hook to the lifecycle of the flags parsing to use a file as source and conform to these rules. - -Because we solely rely on [structured configuration](https://github.com/owncloud/ocis/blob/master/ocis-pkg/config/config.go) we need a way to modify values in this struct using the provided means urfave/cli gives us (flags, env variables, config files and default value), but since we have different modes of operation (supervised Vs. unsupervised) we have to define a clear line. - -### Decision Drivers -- Improve experience for the end user. -- Improve experience for developers. -- Sane defaults. -- Sane overrides. - -### Considered Options - -- Extend [FlagInputSourceExtension interface](https://github.com/urfave/cli/blob/master/altsrc/flag.go#L12-L17) -- Feature request: support for structured configuration (urfave/cli). -- Clearly defined boundaries of what can and cannot be done. -- Expose structured field values as CLI flags -- Drop support for structure configuration -- Adapt the "structured config files have the highest priority" within oCIS - -### Decision Outcome - -[STILL UNDECIDED] - -#### Positive Consequences - -[TBD, depends on Decision Outcome] - -### Pros and Cons of the Options - -#### Extend FlagInputSourceExtension interface -- Good, because we could still use Viper to load from config files here and apply values to the flags in the context. -- Bad, because urfave/cli team are [actively working on v3 of altsrc](https://github.com/urfave/cli/issues/1051#issuecomment-606311923) and we don't want to maintain yet another slice of the codebase. - -notes: source is [FlagInputSourceExtension interface](https://github.com/urfave/cli/blob/master/altsrc/flag.go#L12-L17) - -#### Feature request: support for structured configuration (urfave/cli). -- Good, because we could remove Viper off the codebase and solely rely on urfave/cli's native code. -- Bad, because there are no plans to support this upstream. - -#### Clearly defined boundaries of what can and cannot be done. - -- Good, because no changes to the codebase required (not drastic changes.) -- Bad, because we're limited by the framework - -#### Expose structured field values as CLI flags - -- Good, because it has been already taken into account on large projects (kubernetes) [here.](https://docs.google.com/document/d/1Dvct469xfjkgy3tjWMAKvRAJo4CmGH4cgSVGTDpay6A) in point 5. -- Bad, because it requires quite a bit1 of custom logic. -- Bad, because how should these flags be present in the `-h` menu of a subcommand? Probably some code generation needed. - -*[1] this is a big uncertainty. - -#### Drop support for structure configuration - -- Good, because it makes the integration with the cli framework easier to grasp. -- Good, because it is not encouraged by the 12factor app spec. -- Bad, because we already support if and users make active use of it. At least for development. - -#### Adapt the "structured config files have the highest priority" within oCIS - -- Good, because that would mean little structural changes to the codebase since the Viper config parsing logic already uses the `Before` hook to parse prior to the command's action executes. - -### Notes - -#### Use Cases and Expected Behaviors - -##### Supervised (`ocis server` or `ocis run extension`) - -![grafik](https://user-images.githubusercontent.com/6905948/116872568-62b1a780-ac16-11eb-9f29-030a651ee39b.png) - -- Use a global config file (ocis.yaml) to configure an entire set of services: `> ocis --config-file /etc/ocis.yaml service` -- Use a global config file (ocis.yaml) to configure a single extension: `> ocis --config-file /etc/ocis/yaml proxy` -- When running in supervised mode, config files from extensions are NOT evaluated (only when running `ocis server`, runs with `ocis run extension` do parse individual config files) - - i.e: present config files: `ocis.yaml` and `proxy.yaml`; only the contents of `ocis.yaml` are loaded1. -- Flag parsing for subcommands are not allowed in this mode, since the runtime is in control. Configuration has to be done solely using config files. - -*[1] see the development section for more on this topic. - -###### Known Gotchas -- `> ocis --config-file /etc/ocis/ocis.yaml server` does not work. It currently only supports reading global config values from the predefined locations. - -##### Unsupervised (`ocis proxy`) - -![grafik](https://user-images.githubusercontent.com/6905948/116872534-54fc2200-ac16-11eb-8267-ffe7b03177b3.png) - -- `ocis.yaml` is parsed first (since `proxy` is a subcommand of `ocis`) -- `proxy.yaml` is parsed if present, overriding values from `ocis.yaml` and any cli flag or env variable present. - -#### Other known use cases - -- Configure via env + some configuration files like WEB_UI_CONFIG or proxy routes -- Configure via flags + some configuration files like WEB_UI_CONFIG or proxy routes -- Configure via global (single file for all extensions) config file + some configuration files like WEB_UI_CONFIG or proxy routes -- configure via per extension config file + some configuration files like WEB_UI_CONFIG or proxy routes - -Each individual use case DOES NOT mix sources (i.e: when using cli flags, do not use environment variables nor cli flags). - -_Limitations on urfave/cli prevent us from providing structured configuration and framework support for cli flags + env variables._ - -#### Use Cases for Development - -#### Config Loading - -Sometimes is desired to decouple the main series of services from an individual instance. We want to use the runtime to startup all services, then do work only on a single service. To achieve that one could use `ocis server && ocis kill proxy && ocis run proxy`. This series of commands will 1. load all config from `ocis.yaml`, 2. kill the supervised proxy service and 3. start the same service with the contents from `proxy.yaml`. - -#### Start an extension multiple times with different configs (in Supervised mode) - -Flag parsing on subcommands in supervised mode is not yet allowed. The runtime will first parse the global `ocis.yaml` (if any) and run with the loaded configuration. This use case should provide support for having 2 different proxy config files and making use of the runtime start 2 proxy services, with different values. - -For this to work, services started via `Service.Start` need to forward any args as flags: - -```go -if err := client.Call("Service.Start", os.Args[2], &reply); err != nil { - log.Fatal(err) -} -``` - -This should provide with enough flexibility for interpreting different config sources as: `> bin/ocis run proxy --config-file /etc/ocis/unexpected/proxy.yaml` - -#### Developing Considered Alternatives Further - -Let's develop further the following concept: Adapt the "structured config files have the highest priority" within oCIS. - -Of course it directly contradicts urfave/cli priorities. When a command finished parsing its cli args and env variables, only after that `Before` is called. This mean by the time we reach a command `Before` hook, flags have already been parsed and its values loaded to their respective destinations within the `Config` struct. - -This should still not prevent a developer from using different config files for a single service. Let's analyze the following use case: - -1. global config file present (ocis.yaml) -2. single proxy.yaml config file -3. another proxy.yaml config file -4. running under supervision mode - -The outcome of the following set of commands should be having all bootstrapped services running + 2 proxies on different addresses: - -```console -> ocis server -> ocis kill proxy -> ocis run proxy --config-file proxy.yaml -> ocis run proxy --config-file proxy2.yaml -``` - -This is a desired use case that is yet not supported due to lacking of flags forwarding. - -#### Follow-up PR's - -- Variadic runtime extensions to run (development mostly) -- Arg forwarding to command (when running in supervised mode, forward any --config-file flag to supervised subcommands) -- Ability to set `OC_URL` from a config file (this would require to extend the ocis-pkg/config/config.go file). - -#### The case for `OC_URL` - -`OC_URL` is a jack-of-all trades configuration. It is meant to ease up providing defaults and ensuring dependant services are well configured. It is an override to the following env vars: - -``` -OC_IDM_ADDRESS -PROXY_OIDC_ISSUER -STORAGE_OIDC_ISSUER -STORAGE_FRONTEND_PUBLIC_URL -STORAGE_LDAP_IDP -WEB_UI_CONFIG_SERVER -WEB_OIDC_AUTHORITY -OC_PUBLIC_URL -``` - -Because this functionality is only available as an env var, there is no current way to "normalize" its usage with a config file. That is, there is no way to individually set `OC_URL` via config file. This is clear technical debt, and should be added functionality. - -#### State of the Art -- [Kubernetes proposal on this very same topic](https://docs.google.com/document/d/1Dvct469xfjkgy3tjWMAKvRAJo4CmGH4cgSVGTDpay6A) -- [Configuration \| Pulumi](https://www.pulumi.com/docs/intro/concepts/config/) - - Configuration can be altered via setters through the CLI. diff --git a/docs/ocis/adr/0009-extension-template.md b/docs/ocis/adr/0009-extension-template.md deleted file mode 100644 index bf4a02ac39..0000000000 --- a/docs/ocis/adr/0009-extension-template.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "9. Extension Template" -weight: 9 -date: 2021-06-10T15:00:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0009-extension-template.md ---- - -* Status: proposed -* Deciders: [@c0rby](https://github.com/c0rby) -* Date: 2021-06-10 - -Technical Story: [description | ticket/issue URL] - -## Context and Problem Statement - -We want to accelerate and simplify extension development by removing the necessity to type or copy the boilerplate code. Can we provide a template or a similar mechanism to aid when developing new extensions? - - -## Decision Drivers - -* The solution should be easily maintainable. - * It should always be up-to-date. -* The solution should be easy to use. - -## Considered Options - -* Use [boilr](https://github.com/tmrts/boilr) -* Create a template git repository. -* Use [ocis-hello](https://github.com/owncloud/ocis-hello/) as a "template" - -## Decision Outcome - -Chosen option: "[option 1]", because [justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force force | … | comes out best (see below)]. - -### Positive Consequences: - -* [e.g., improvement of quality attribute satisfaction, follow-up decisions required, …] -* … - -### Negative consequences: - -* [e.g., compromising quality attribute, follow-up decisions required, …] -* … - -## Pros and Cons of the Options - -### [boilr](https://github.com/tmrts/boilr) - -We have a boilr template already. [boilr-ocis-extension](https://github.com/owncloud/boilr-ocis-extension/) -This approach is nice because it provides placeholders which can be filled during the generation of a new extension from the template. It also provides prompts for the placeholder values during generation. - -* Good, because with the placeholders it is hard to miss values which should be changed -* Bad, because maintaining is more complex - -### Template git repository - -Create a git repository with an extension containing the boilerplate code. - -* Good, because we can use the usual tools for QA and dependency scanning/updating. -* Good, because it doesn't require any additional tool. - -### [ocis-hello](https://github.com/owncloud/ocis-hello/) as a "template" - -We have the ocis-hello repository which acts as an example extension containing a grpc and http service and a web UI. It also demonstrates the usage of the settings service. - -* Good, because it contains a bit more code than just the plain boilerplate -* Good, because the integration into oCIS is already tested for the Hello extension (e.g. with Proxy and Settings). This will ensure, that the example extension is up-to-date. -* Bad, because if you don't require all features you have to delete stuff - diff --git a/docs/ocis/adr/0010-policy-enforcement.md b/docs/ocis/adr/0010-policy-enforcement.md deleted file mode 100644 index 1cc24f8dec..0000000000 --- a/docs/ocis/adr/0010-policy-enforcement.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: "10. Extension Policies" -weight: 10 -date: 2021-06-30T14:00:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0010-policy-enforcement.md ---- - -* Status: proposed -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@hodyroff](https://github.com/hodyroff), [@pmaier1](https://github.com/pmaier1), [@fschade](https://github.com/fschade) -* Date: 2021-06-30 - -## Context and Problem Statement - -There should be a way to impose certain limitations in areas of the code that require licensing. This document researches an approach to achieve this goal, while limiting the scope to the enforcement side of it. The architecture for a policy system must be composed of 2 parts: - -1. License creation and validation -2. Enforcement - -It is desirable to keep both systems isolated, since the implementation of the latter has to be done within the constraints of the codebase. The alternative is running an enforcement service and have each and every single request evaluating whether the request is valid or not. - -## Decision Drivers - -- As a team, we want to have the licensing code concentrated in a central module -- We don't want to stop/start the extension whenever a policy is updated (hot reload). It must happen during runtime. - -## Considered Options - -1. Build the evaluation engine in-house. -2. Use third party libraries such as Open Policy Agent (a CNCF approved project written in Go) - -## Decision Outcome - -Chosen option: option 2; Use third party libraries such as Open Policy Agent (a CNCF approved project written in Go) - -### Positive Consequences - -- OPA is production battle tested. -- Built around performance - policies evaluations are no longer than 1ms per request. -- Middleware friendly: we use gRPC clients all over our ecosystem; wrappers (or middlewares) is a viable way to solve this problem instead of a dedicated service or its own package. -- Community support. -- Kubernetes friendly. -- Supports envoy, kong, terraform, traefik, php, node and many more. - -### Negative Consequences - -- More vendor code inside the binary (larger attack surface, larger footprint [to be quantified] ) - -## Chosen option approach - -Make use of [overloading Open Policy Agent's input](https://www.openpolicyagent.org/docs/latest/external-data/#option-2-overload-input) along with an external storage source (instead of an OPA service) in conjunction with go-micro's gRPC client wrappers (a.k.a. middlewares) to leverage policy rules evaluation. - -### Terminology - -New terms are defined to refer to new mental models: - -- Policy: self-imposed limitation of a piece of software. i.e: "after 20 users limit the use of thumbnails". -- Checkers: in the context of a middleware, a checker is in charge of defining logical conditions that prevent requests (users) from doing an action. -- Policy file: a [rego file](https://www.openpolicyagent.org/docs/latest/policy-language/). -- Policy evaluation: the act of piecing together input (from a request), data (from an external storage) and policies in order to make a decision. - -#### Temporary new Interfaces part of the PoC - -- IStorage: provides means of extracting data from an external source (in case of the POC an etcd storage cluster). - -### External data storages - -However, for this to be usable it needs state. The Rego engine works with input and data, where data is essentially a database the input is tried against, in order to expand this poc to include functionality such as counters (i.e: give access to the thumbnails only to 50 users) we need an external storage, and consequentially, Rego needs to have an option to load data from an external storage. There is an entire chapter in the documentation regarding external data: https://www.openpolicyagent.org/docs/latest/external-data/. The most "natural" option (option 5) states: - -> OPA includes functionality for reaching out to external servers during evaluation. This functionality handles those cases where there is too much data to synchronize into OPA, JWTs are ineffective, or policy requires information that must be as up-to-date as possible. - -This is a natural option because it requires service-to-service communication, and by definition using microservices it should come "natural to us". Another approach is using JWT (which we already use) to encode the necessary data into the JWT and handing it over to rego as "data". The issue with this approach is that depending on the features of the licenses the JWT might grow and be filled with noise and redundancy (this is, unless a new token is issued for licensing purposes). - -### Future ideas - -[This proof of concept](https://github.com/owncloud/ocis/pull/2236) is very rigid in the sense that the `IStorage` interface only has one implementation that ties it to etcd, meaning running an oCIS cluster without an etcd service will result in a crash. This is by far ideal and less coupled implementations should be done. There is the case of using the storage metadata as a source to store data necessary to the policies, or even using the go-micro store as a kv store to achieve the exact same, since it already runs as its own service. The implementation of this is trivial and left out of the POC since it requires more time than the allotted for this task. - -#### Message Broker - -This problem perfectly encompasses the use of a message broker, where services such as OCS will emit messages to a bus and only listeners react to them. In this case the following applies: - -![message broker](https://i.imgur.com/sa1pANQ.jpg) - -The necessary interfaces are provided to us by go-micro, only implementations are to be done. diff --git a/docs/ocis/adr/0011-global-url-format.md b/docs/ocis/adr/0011-global-url-format.md deleted file mode 100644 index d3ecf1bbee..0000000000 --- a/docs/ocis/adr/0011-global-url-format.md +++ /dev/null @@ -1,320 +0,0 @@ ---- -title: "11. WebUI URL format" -weight: 11 -date: 2021-07-07T14:55:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0011-global-url-format.md ---- - -* Status: accepted -* Deciders: [@refs](https://github.com/refs), [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@hodyroff](https://github.com/hodyroff), [@pmaier1](https://github.com/pmaier1), [@fschade](https://github.com/fschade), [@tbsbdr](https://github.com/tbsbdr), [@kulmann](https://github.com/kulmann) -* Date: 2021-07-07 - -## Context and Problem Statement - -When speaking about URLs we have to make a difference between browser URLs and API URLs. Only browser URLs are visible to end users and will be bookmarked. The currently existing and bookmarked ownCloud 10 URLs look something like this: - -``` -GET https://demo.owncloud.com/apps/files/?dir=/path/to/resource&fileid=5472225 -303 Location: https://demo.owncloud.com/apps/files/?dir=/path/to/resource -``` - -When the URL contains a `fileid` parameter the server will look up the corresponding `dir`, overwriting whatever was set before the redirect. The `fileid` always takes precedence and the server is responsible for the lookup. - -``` -GET https://demo.owncloud.com/apps/files/?dir=/path/to/resource -``` - -The `dir` parameter is then used to make a WebDAV request against the `/dav/files` endpoint of the currently logged-in user: - -``` -PROPFIND https://demo.owncloud.com/remote.php/dav/files/demo/path/to/resource -``` - -The resulting PROPFIND response is used to render the file listing. All good so far. - -For the new ocis web UI we want to clean up the user visible Browser URLs. They currently look like this: - -``` -https://demo.owncloud.com/#/files/list/all/path/to/resource -``` - -Currently, there is no `fileid` like parameter in the browser URL, making bookmarks of it fragile (they break when a bookmarked folder is renamed). - -The oCIS web UI just takes the path and uses the `/webdav` endpoint of the currently logged-in user: - -``` -PROPFIND https://demo.owncloud.com/remote.php/webdav/path/to/resource -``` - - -With the new ownCloud web client (owncloud/web) - - needs to interpret them to make API calls. With this in mind, this is the current mapping on ownCloud Web with OC10 and OCIS backend: - -| | Browser URL | API URL | -|------|----------------------------------------------------------------|----------------------------------------------------| -| OC10 + classic WebUI | `https://demo.owncloud.com/apps/files/?dir=/path/to/resource&fileid=5472225` | `https://demo.owncloud.com/remote.php/dav/files/demo/path/to/resource` | -| OC10 + OCIS WebUI| `https://web.owncloud.com/index.html#/files/list/all/path%2Fto%2Fresource` | `https://demo.owncloud.com/remote.php/webdav/path/to/resource` | -| OCIS | `https://demo.owncloud.com/#/files/list/all/path/to/resource` | `https://demo.owncloud.com/remote.php/webdav/path/to/resource` | - - -On an OC10 backend the `fileid` query parameter takes precedence over the `dir`. In fact if `dir` is invalid but `fileid` isn't, the resolution will succeed, as opposed to if the `fileid` is wrong (doesn't exist) and `dir` correct, resolution will fail altogether with a 404. - -This ADR is limited to the scope of "how will a web client deal with the browser URL?". The API URLs will change with the spaces concept to `https://demo.owncloud.com/dav/spaces//relative/path/to/resource`. The Web UI can look up a space id and the mount path using the `/graph/v1.0/drives` API: -1. TODO for a given resource id as part of the URL the `https://demo.owncloud.com/v1.0/drive/items/123456A14B0A7750!359?$select=parentReference` can be used to retrieve the drive/space: -``` -{ - "parentReference": { - "driveId": "123456a14b0a7750", - "driveType": "personal", - "id": "123456A14B0A7750!357", - "path": "/drive/root:" - } -} -``` -2. TODO to fetch the list of all spaces with their mount points we need an API endpoint that allows clients (not only the web ui) to 'sync' the list of storages a user has access to from the storage registry on the server side. This allows clients to directly talk to a storage provider on another instance, allowing true storage federation. The MS graph api has no notion of mount points, so we will need to add a `mountpath` *(or `mountpoint`? or `alias`?)* to our [`drive` resource properties in the libreGraph spec](https://github.com/owncloud/open-graph-api/blob/dc6da5359eee0345429080b5b59762fd8c57b121/api/openapi-spec/v0.0.yaml#L351-L384). Tracked in https://github.com/owncloud/open-graph-api/issues/6 - - -{{< hint >}} -@jfd: The graph api returns a `path` in the `parentReference`, which is part of the `root` in a `drive` resource. But it contains a value in the namespace of the `graph` endpoint, e.g.: `/drive/root:/Bilder` for the `/Bilder` folder in the root of the currently logged-in users personal drive/space. Which is again relative to the drive. To give the clients a way to determine the mount point we need to add a new `mountpath/point/alias` property. -{{< /hint >}} - -## Decision Drivers - -* To reveal relevant context to the user URLs should either carry a path component or a meaningful alias -* To prevent bookmarks from breaking URLs should have an id component that can be used by the system to lookup the resource - -## Considered Options - -* Existing ownCloud 10 URLs -* ID based URLs -* Path based URLs -* Space based URLs -* Mixed Global URLs -* Configurable path component in URLs - -## Decision Outcome - -Chosen option: "Mixed global URLs", because it meets the requirement to contain a path and a stable identifier. - -### Positive Consequences - -* The path makes it "human readable" -* The URL can be bookmarked -* The bookmarked URLs remain stable even if the path changes -* All URLs can be shortened to hide any metadata like path, resource name and query parameters - -### Negative Consequences - -* the web UI needs to look up the space alias in a registry to build an API request for the `/dav/space` endpoint - -## Pros and Cons of the Options - -### Existing OwnCloud 10 URLs - -The existing ownCloud 10 URLs look like this - -| URL | comment | -|-----|---------| -| `https:///apps/files/?dir=&fileid=` | pattern | -| `https://demo.owncloud.com/apps/files/?dir=/&fileid=18` | root of the currently logged in user | -| `https://demo.owncloud.com/index.php/apps/files/?dir=/path/to/resource&fileid=192` | sub folder `/path/to/resource` | - -It contains a path and a `fileid` (which takes precedence). - -* Good, because the `fileid` prevents bookmarks from breaking -* Good, because the `dir` reveals context in the form of a path -* Bad, because the web UI needs to look up the space alias in a registry to build an API request for the `/dav/space` endpoint -* Bad, because URLs still contain a long prefix `(/index.php)/apps/files` -* Bad, because the `fileid` needs to be accompanied by a `storageid` to allow efficient routing in ocis -* Bad, because if not configured properly an additional `/index.php` prefixes the route -* Bad, because power users cannot navigate by updating only the path in the URL, as the `fileid` takes precedence. They have to delete the `fileid` to navigate - -### ID based URLs - -MS OneDrive has URLs like this: - -| URL | comment | -|-----|---------| -| `https:///?id=(&cid=)` | pattern, the `cid` is optional but added automatically | -| `https://onedrive.live.com/?id=root&cid=A12345A14B0A7750` | root of a personal drive | -| `https://onedrive.live.com/?id=A12345A14B0A7750%21359&cid=A12345A14B0A7750` | sub folder in a personal drive | - -It contains only IDs but no folder names. The `fileid` is a URL encoded `!`. Very similar to the CS3 `resourceid` which consists of `storageid` and `nodeid`. - -* Good, because bookmarks cannot break -* Good, because URLs do not disclose unshared path segments -* Bad, because the web UI needs to look up the space id in a registry to build an API request for the `/dav/space` endpoint -* Bad, because URLs reveal no context to users - -### Path based URLs - -There is a customized ownCloud instance that uses path only based URLs: - -| URL | comment | -|-----|---------| -| `https:///apps/files/?dir=/&` | root of the currently logged in user | -| `https://demo.owncloud.com/apps/files/?dir=/&` | root of the currently logged in user | -| `https://demo.owncloud.com/apps/files/?dir=/path/to/resource&` | sub folder `/path/to/resource` | - -* Good, because the URLs reveal the full path context to users -* Good, because power users can navigate by updating the path in the url -* Bad, because the web UI needs to look up the space id in a registry to build an API request for the `/dav/space` endpoint -* Bad, because the bookmarks break when someone renames a folder in the path -* Bad, because there is no id that can be used as a fallback lookup mechanism -* Bad, because URLs might leak too much context (parent folders of shared files) - -### Space based URLs - -| URL | comment | -|-----|---------| -| `https:///#/s/(/)(?id=)` | the pattern, relative `path` and `resource_id` are optional | -| `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21607` | root of a storage space, might be the currently logged in users home | -| `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21607/relative/path/to/resource` | sub folder `/relative/path/to/resource` in the storage with id `b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21607`, works ***only*** if path still exists | -| `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21607/relative/path/to/resource?id=ba4c1820-df12-11eb-8dcd-ff21f12c1264:beb78dd6-df12-11eb-a05c-a395505126f6` | sub folder `/relative/path/to/resource` in the storage with id `b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21607`, lookup can fall back to the `id` | - -{{< hint >}} -* `/#` is used by the current vue router. -* `/s` denotes that this is a space url. -* `` and `` both consist of `:`, but the `space_id` can be replaced with a shorter id or an alias. See further down below. -* `` takes precedence over the ``, both are optional -{{< /hint >}} - -* Good, because the web UI does not need to look up the space id in a registry to build an API request for the `/dav/space` endpoint -* Good, because the URLs reveal a relevant path context to users -* Good, because everything after the `#` is not sent to the server, building the webdav request to list the folder is offloaded to the clients -* Good, because power users can navigate by updating the path in the url -* Bad, because the current ids are uuid based, leading to very long URLs where the path component nearly vanishes between two very long strings -* Bad, because the `#` in the URL is just a technical requirement -* Bad, because ocis web requires a `/#/files/s` at the root of the route to distinguish the files app from other apps -* Bad, while navigating using the WebUI, the URL has to be updated whenever we change spaces. -* Bad, because the technical `` is meaningless to end users - -With the above explained, let's see some use cases: - -#### Example 1: UserA shares something from her Home folder with UserB - -- open the browser and go to `demo.owncloud.com` -- the browser's url changes to: `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21607`. You're now in YOUR home folder / personal space. -- you create a new folder `/relative/path/to/resource` and navigate into `/relative/path/to` - - the URL now changes to: `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21607/relative/path/to` -- You share `resource` with some else -- You navigate into `/relative/path/to/resource` - - now the URL would look like: `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:3a9305da-df17-11eb-ab99-abe09d93e08a` - -As you can see, even if you're the owner of `/relative/path/to/resource` and navigate into it, the URL changes due to a new space being entered. This ensures that while working in your home folder, copying URLs and giving them to the person you share the resource with, the receiver can still navigate within the new space. - -In short terms, while navigating using the WebUI, the URL has to constantly change whenever we change spaces to reflect the most explicit one. - -#### Example 2: UserA shares something from a Workspace - -Assuming we only have one storage provider; a consequence of this, all storage spaces will start with the same storage_id. - -- open the browser and go to `demo.owncloud.com` -- the browser's url changes to: `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21607`. You're now in YOUR home folder / personal space. -- you have access to a workspace called `foo` (created by an admin) -- navigate into workspace `foo` - - the URL now changes to: `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:d342f9ce-df18-11eb-b319-1b6d9df4bc74`. You are now at the root of the workspace `foo`. - - because we only have one storage provider, the `space_id` section of the URL only updates the `node_id` part of it. - - had we had more than one storage provider, the `space_id` would depend on which storage provider contains the storage space. -- you create a folder `/relative/path/to/resource` -- you navigate into `/relative/path/to/resource` - - now the URL would look like: `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:d342f9ce-df18-11eb-b319-1b6d9df4bc74/relative/path/to/resource` - - or a more robust url: `https://demo.owncloud.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:d342f9ce-df18-11eb-b319-1b6d9df4bc74/relative/path/to/resource?id=b78c2044-5b51-446f-82f6-907a664d089c:04f1991c-df19-11eb-9cc7-3b09f04f9ca3` - -#### Spaces Registry - -A big drawback against this idea is that the length of the URL is increased by a lot, rendering them almost unreadable. Introducing a Spaces Registry (SR) would shorten them. Let's see how. - -A URL without a SR would look like: `https://ocis.com/#/s/b78c2044-5b51-446f-82f6-907a664d089c:d342f9ce-df18-11eb-b319-1b6d9df4bc74/TEST?id=b78c2044-5b51-446f-82f6-907a664d089c:04f1991c-df19-11eb-9cc7-3b09f04f9ca3` -The same URL with a SR `https://ocis.com/#/s/workspaceFoo/TEST?id=b78c2044-5b51-446f-82f6-907a664d089c:04f1991c-df19-11eb-9cc7-3b09f04f9ca3` - -Space Registry resolution can happen at the client side (i.e: the client keeps a list of space name -> space id [where space id = storageid + nodeid]; the client queries a SR) or server side. Server side is more resilient due to clients can have limited networking; for instance if they are running on a tight intranet. - -### Mixed Global URLs - -While ID based space URLs can be made more readable by shortening the IDs they only start to reveal context when an alias is used instead of the space id. These aliases however have to be unique identifiers. These aliases should live in namespaces like `/workspaces/marketing` and `/personal/marketing` to make phishing attacks harder (in this case a user that registered with the username `marketing`). But namespaced aliases is semantically equivalent to ... a path hierarchy. - -When every space has a namespaced alias and a relative path we can build a global namespace: - -| URL | comment | -|-----|---------| -| `https:///files?id=` | the pattern, `/files` might become optional | -| `https://demo.owncloud.com/files/personal/einstein/?id=b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21607` | root of user `einstein` | -| `https://demo.owncloud.com/files/personal/einstein/relative/path/to/resource?id=b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21608` | sub folder `/relative/path/to/resource` | -| `https://demo.owncloud.com/files/shares/einstein/somesharename?id=b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21608` | shared URL for `/relative/path/to/resource` | -| `https://demo.owncloud.com/files/personal/einstein/marie is stupid/and richard as well/resource?id=b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21608` | sub folder `marie is stupid/and richard as well/resource` ... something einstein might not want to reveal | -| `https://demo.owncloud.com/files/shares/einstein/resource (2)?id=b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21608` | named link URL for `/marie is stupid/and richard as well/resource`, does not disclose the actual hierarchy, has an appended counter to avoid a collision | -| `https://demo.owncloud.com/files/shares/einstein/mybestfriends?id=b78c2044-5b51-446f-82f6-907a664d089c:194b4a97-597c-4461-ab56-afd4f5a21608` | named link URL for `/marie is stupid/and richard as well/resource`, does not disclose the actual hierarchy, has a custom alias for the share | -| `https://demo.owncloud.com/files/public/kcZVYaXr7oZ66bg/relative/path/to/resource` | sub folder `/relative/path/to/resource` in public link with token `kcZVYaXr7oZ66bg` | -| `https://demo.owncloud.com/files/public/kcZVYaXr7oZ66bg/relative/path/to/resource` | sub folder `/relative/path/to/resource` in public link with token `kcZVYaXr7oZ66bg` | -| `https://demo.owncloud.com/s/kcZVYaXr7oZ66bg/` | shortened link to a resource. This is needed to be able to copy a link to a resource without leaking any metadata. | - - -`` is the global path in the CS3 api. The CS3 Storage Registry is responsible by managing the mount points. - -In order to be able to copy and paste URLs all resources must be uniquely identifiable: - -* Instead of `/home` the URL always has to reflect the user: `/personal/einstein` -* Workspaces can use `/workspaces/` or `/workspaces///` where the hierarchy is given by the organization -* Experiments can use `/experiments/` -* Research institutes could set up `/papers//` -* Trash could be accessed by prefixing the namespace alias with `/trash`? or using `/trash/` -* Instead of a namespaced alias a storage space id could be used with a generic `/space/` namespace -* An url shortener can create urls like `/s/` which could be used as a stable link to a resource. -* Links for anonymous users will resolve to `/public/` - -The alias namespace hierarchy and depth can be pre-determined by the admin. Even if aliases change the `id` parameter prevents bookmarks from breaking. A user can decide to build a different hierarchy by using his own registry. - -What about shares? Similar to `/home` it must reflect the user: `/shares/einstein` would list all shares *by* einstein for the currently logged-in user. The ui needs to apply the same URL rewriting as for space based URLs: when navigating into a share the URL has to switch from `/personal/einstein/relative/path/to/shared/resource` to `/shares/einstein/`. When more than one `resource` was shared a name collision would occur. To prevent this we can use ids `/shares/einstein/id/`. As a default we could take the alias at creation time from the filename. That way two shares to a resource with the same name, e.g.: `/personal/einstein/project AAA/foo` and `/personal/einstein/project BBB/foo` would lead to `/shares/einstein/foo` (a CS3 internal reference to `/personal/einstein/project AAA/foo`) and `/shares/einstein/foo (2)` (a CS3 internal reference to `/personal/einstein/project BBB/foo`). `foo (2)` would keep its name even when `foo` is deleted or renamed. Well an id as the alias might be better then, because users might rename these aliases, which would break URLs if they have been bookmarked. In any case this would make end user more aware of what they share AND it would allow them to choose an arbitrary context for the links they want to send out: personal internal share URLs. - -With these different namespaces the `/files` part in the URL becomes obsolete, because the files application can be registered for multiple namespaces: `/personal`, `/workspaces`, `/shares`, `/trash` ... - -* Good, because it contains a global path -* Good, because spaces with namespaced aliases can be bookmarked and copied into mails or chat without disclosing unshared path segments, as the space is supposed to be shared -* Good, because the UI can detect broken paths and notify the user to update his bookmark if the resource could be found by `id` -* Good, because the `/files` part might only be required for `id` only based lookup to let the web ui know which app is responsible for the route -* Good, because it turns shares into deliberately named spaces in `/shares//` -* Good, because all urls can be shortened to hide any metadata like path, resource name and query parameters -* Bad, because the web UI needs to look up the space alias in a registry to build an API request for the `/dav/space` endpoint - - -### Configurable path component in URLs - -Not every deployment may have the requirement to have the path in the URL. We could use id only based URLs, similar to onedrive and make showing paths configurable. - - -| URL | comment | -|-----|---------| -| `https:///files?id=` | default id based navigation | -| `https:///files?id=` | optional path based navigation with fallback to id | - -In contrast to ownCloud 10 path takes precedence and the user is warned when the fileid in his bookmark no longer matches the id on the server: sth. like "The path of the resource has changed, please verify and update your bookmark!" - -When a file is selected the filename also becomes part of the URL so individual files can be bookmarked. - -If navigation is id based we need to look up the path for the id so we can make a webdav request, or we need to implement the graph drives and driveItem resources. - -The URL `https:///files?id=̀` is sent to the server. It has to look up the correct path and redirect the request, including the path. But that would make all bookmarks contain tha path again, even if paths were configured to not be part of the URL. - -The `/meta/` webdav endpoint can be used to look up the path with property `meta-path-for-user`. - -For now, we would use path based navigation with URLs like this: - -``` -https:///files?id= -``` - -This means that only the _resource path_ is part of the URL path. Any other parameter, e.g. file `id`, `page` or sort order must be given as URL parameters. - -- [ ] To make lookup by id possible we need to implement the `/meta/` endpoint so the sdk can use it to look up the path. We should not implement a redirect on the ocis server side because the same redirect logic would need to be added to oc10. Having it in ocis web is the right place. - -- [ ] The old sharing links and oc10 urls still need to be redirected by ocis/reva as in oc10. - -Public links would have the same format: `https:///files?id=` The web UI has to detect if the user is logged in or not and adjust the ui accordingly. - -{{< hint warning >}} -Since there is no difference between public and private files a logged-in user cannot see the public version of a link unless he logs out. -{{< /hint >}} diff --git a/docs/ocis/adr/0012-tracing.md b/docs/ocis/adr/0012-tracing.md deleted file mode 100644 index e804b4853c..0000000000 --- a/docs/ocis/adr/0012-tracing.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "12. Tracing" -weight: 12 -date: 2021-08-17T12:56:53+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0012-tracing.md ---- - -* Status: proposed -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@mstingl](https://github.com/mstingl) [@pmaier1](https://github.com/pmaier1), [@fschade](https://github.com/fschade) -* Date: 2021-08-17 - -## Context and Problem Statement - -At the time of this writing we are in a situation where our logs have too much verbosity, rendering impossible or rather difficult to debug an instance. For this reason we are giving some care to our traces by updating dependencies from OpenCensus to OpenTelemetry. - -## Decision Drivers - -- We don't want to rely only on logs to debug an instance. -- Logs are too verbose. -- Since we have micro-services, we want to holistically understand a request. - -## Considered Options - -- Trim down logs -- Use OpenCensus -- Migrate to OpenTelemetry - -## Decision Outcome - -Chosen option: option 3; Migrate to OpenTelemetry. OpenCensus is deprecated, and OpenTelemetry is the merger from OpenCensus and OpenTelemetry and the most recent up-to-date spec. - -### Positive Consequences - -- Fix the current state of the traces on Reva. -- Add more contextual information on a span for a given request. -- Per-request filtering with the `X-Request-Id` header. -- Group the supported tracing backends to support Jaeger only for simplicity. - -## Chosen option approach - -- A trace is a tree, and the proxy will create the root trace and propagate it downstream. -- The Root trace will log the request headers. -- The unit that ultimately does the work will log the result of the operation if success. -- The unit that ultimately does the work will change the state of the span to error if any occurred. - - -With these premises, this is by no means a fixed document and the more we learn about the usage of an instance the more context we can add to the traces. diff --git a/docs/ocis/adr/0013-locking.md b/docs/ocis/adr/0013-locking.md deleted file mode 100644 index 693e651c64..0000000000 --- a/docs/ocis/adr/0013-locking.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: "13. Locking" -weight: 13 -date: 2021-08-17T12:56:53+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0013-locking.md ---- - -- Status: accepted -- Deciders: [@hodyroff](https://github.com/hodyroff), [@pmaier1](https://github.com/pmaier1), [@jojowein](https://github.com/jojowein), [@dragotin](https://github.com/dragotin), [@micbar](https://github.com/micbar), [@tbsbdr](https://github.com/tbsbdr), [@wkloucek](https://github.com/wkloucek) -- Date: 2021-11-03 - -## Context and Problem Statement - -At the time of this writing no locking mechanisms exists in oCIS / REVA for both directories and files. The CS3org WOPI server implements a file based locking in order to lock files. This ADR discusses if this approach is ok for the general availability of oCIS or if changes are needed. - -## Decision Drivers - -- Is the current situation acceptable for the GA -- Is locking needed or can we have oCIS / REVA without locking - -## Considered Options - -1. File based locking -2. No locking -3. CS3 API locking - -## Decision Outcome - -For the GA we chose option 2. Therefore we need to remove or disable the file based locking functionality of the CS3org WOPI server. The decision was taken because the current file based locking does not work on file-only shares. The current locking also does not guarantee exclusive access to a file since other parts of oCIS like the WebDAV API or other REVA services don't respect the locks. - -After the GA we need to implement option 3. - -## Pros and Cons of the Options - -### File based locking - -The CS3org WOPI server creates a `.sys.wopilock..` and `.~lock.#` file when opening a file in write mode - -**File based locking is good**, because: - -- it is already implemented in the current CS3org WOPI server - -**File based locking is bad**, because: - -- lock files should be checked by all parties manipulating files (e.g. the WebDAV api) -- lock files can be deleted by everyone -- you can not lock files in a file-only share (you need a folder share to create a lock file besides the original file) - -If we have file based locks, we can also sync them with e.g. the Desktop Client. - -**Syncing lock files is good**: because - -- native office applications can notice lock files by the WOPI server and vice versa (LibreOffice also creates `.lock.#` files) - -**Syncing lock files is bad**, because: - -- if lockfile is not deleted, no one can edit the file -- creating lock files in a folder shared with 2000000 users creates a lot of noise and pressure on the server (etag propagation, therefore oC Desktop sync client has an ignore rule for `.~lock.*` files) - -### No locking - -We remove or disable the file based locking of the CS3org WOPI server. - -**No locking is good**, because: - -- you don't need to release locks -- overwriting a file just creates a new version of it - -**No locking is bad**, because: - -- merging changes from different versions is a pain, since there is no way to calculate differences for most of the files (e.g. docx or xlsx files) -- no locking breaks the WOPI specs, as the CS3 WOPI server won't be capable to honor the WOPI Lock related operations - -### CS3 API locking - -- Add CS3 API for resource (files, directories) locking, unlocking and checking locks - - locking always with timeout - - lock creation is a "create-if-not-exists" operation - - locks need to have arbitrary metadata (e.g. the CS3 WOPI server is stateless by storing information on / in the locks) -- Implement WebDAV locking using the CS3 API -- Implement Locking in storage drivers -- Change CS3 WOPI server to use CS3 API locking mechanism -- Optional: manual lock / unlock in ownCloud Web (who is allowed to unlock locks of another user?) - -**CS3 API locking is good**, because: - -- you can lock files on the actual storage (if the storage supports that -> storage driver dependent) -- you can lock files in ownCloud 10 when using the ownCloudSQL storage driver in the migration deployment (but oC10 Collabora / OnlyOffice also need to implement locking, to fully leverage that) -- clients can get the lock information via the api without ignoring / hiding lock file changes -- clients can use the lock information to lock the file in their context (e.g. via some file explorer integration) - -**CS3 API locking is bad**, because: - -- it needs to be defined and implemented, currently not planned for the GA diff --git a/docs/ocis/adr/0014-microservices-runtime.md b/docs/ocis/adr/0014-microservices-runtime.md deleted file mode 100644 index 8587089c03..0000000000 --- a/docs/ocis/adr/0014-microservices-runtime.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "14. Microservices Runtime" -weight: 14 -date: 2022-01-21T12:56:53+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0014-microservices-runtime.md ---- - -* Status: proposed -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@mstingl](https://github.com/mstingl) [@pmaier1](https://github.com/pmaier1), [@fschade](https://github.com/fschade) -* Date: 2022-01-21 - -## Context and Problem Statement - -In an environment where shipping a single binary makes it easier for the end user to use oCIS, embedding a whole family of microservices within a package and running it leveraging the use of the Go language has plenty of value. In such environment, a runtime is necessary to orchestrate the services that run within it. Other solutions are hot right now, such as Kubernetes, but for a single deployment this entails orbital measures. - -## Decision Drivers - -- Start oCIS microservices with a single command (`ocis server`). -- Clear separation of concerns between services. -- Control the lifecycle of the running services. -- Services can be distributed across multiple machines and still be controllable somehow. - -## Considered Options - -1.The use of frameworks such as: - - asim/go-micro - - go-kit/kit -2. Build and synchronize all services in-house. -3. A hybrid solution between framework and in-house. - -## Options - -### go-kit/kit - -Pros -- Large community behind -- The creator is a maintainer of Go, so the code quality is quite high. - -Cons -- Too verbose. Ultimately too slow to make progress. -- Implementing a service would require defining interfaces and a lot of boilerplate. - -### asim/go-micro - -Pros -- Implementation based in swappable interfaces. -- Multiple implementations, either in-memory or through external services -- Production ready -- Good compromise between high and low level code. - -## Decision Outcome - -Number 3: A hybrid solution between framework and in-house. - -### Design - -{{< figure src="/ocis/static/runtime.drawio.svg" >}} - -First of, every ocis service IS a go-micro service, and because go-micro makes use of urfave/cli, a service can be conveniently wrapped inside a subcommand. Writing a supervisor is then a choice. We do use a supervisor to ensure long-running processes and embrace the "let it crash" mentality. The piece we use for this end is called [Suture](https://github.com/thejerf/suture). - -The code regarding the runtime can be found pretty isolated [here](https://github.com/owncloud/ocis/blob/d6adb7bee83b58aa3524951ed55872a5f3105568/ocis/pkg/runtime/service/service.go). The runtime itself runs as a service. This is done so messages can be sent to it using the oCIS single binary to control the lifecycle of its services. diff --git a/docs/ocis/adr/0015-events.md b/docs/ocis/adr/0015-events.md deleted file mode 100644 index 4a1f55727b..0000000000 --- a/docs/ocis/adr/0015-events.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "15. oCIS Event System" -weight: 15 -date: 2022-02-01T12:56:53+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0015-events.md ---- - -* Status: proposed -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@c0rby](https://github.com/c0rby), [@wkloucek](https://github.com/wkloucek) -* Date: 2022-01-21 - -## Context and Problem Statement - -### Overview - -To be able to implement simple, flexible and independent inter service communication there is the idea to implement an event system in oCIS. A service can send out events which are received by one or more other services. The receiving service can cause different kinds of actions based on the event by utilizing the information that the event carries. - -### Example: Email Notification - -A simple example is the notification feature for oCIS: Users should receive an email when another user shares a file with them. The information, that the file was shared should go out as an event from a storage provider or share manager, carrying the information which file was shared to which receiver. A potential notification service that sends out the email listens to these kinds of events and sends the email out once on every received event of that specific type. - -## Decision Drivers - -* Events are supposed to decouple services and raise flexibility, also considering extensions that are not directly controlled by the ownCloud project. -* Events should bring flexibility in the implementation of sending and receiving services. -* Events should not obsolete other mechanisms to communicate, i.e. grpc calls. -* Sending an event has to be as little resource consuming for the sender as possible. -* Events are never user visible. - -## Considered Options - -1. Lightweight Events with Event Queue and "At most once" QoS -2. As 1., but with "At least once" QoS - -## Options - -### 1. Lightweight Events with Event Queue and "At most once" QoS - -Reva will get a messaging service that is available to all services within oCIS and Reva. It is considered as one of the mandatory services of the oCIS system. If the messaging backend is not running, neither Reva nor oCIS can be considered healthy and should shut down. - -All oCIS- and Reva-services can connect to the messaging bus and send so-called events. The sender gets an immediate return if handing the event to the message bus was successful or not. - -The sender can not make any assumptions when the message is delivered to any receiving service. Depending on the QoS model (as proposed as alternatives in this ADR) it might even be not guaranteed that the event is delivered at all. Also, the sender can not know if zero, one or many services are listening to that event. - -#### Event Data - -Events are identified by their namespace and their respective name. The namespace is delimited by dots and starts with either "reva" or "ocis" or a future extension name. It is followed by the name of the sending service and an unique name of the event. - -Example: `ocis.ocdav.delete` - an event with that name sent out if an WebDAV DELETE request arrived in the oCDav service. - -An event can carry a payload which is encoded as json object. (See for example [NATS](https://docs.nats.io/using-nats/developer/sending/structure) ). There are no pre-defined members in that object, it is fully up to the sender which data will be included in the payload. Receivers must be robust to deal with changes. - -#### Quality of Service - -Events are sent with "At most once" quality of service. That means, if a receiver is not present at the moment of publishing it might not receive the event. That requires that the sender and the receiver must have functionality to back up the situation that events were missed. That adds more state to the services because they always need to behave like a [FISM](https://en.wikipedia.org/wiki/Finite-state_machine). Given that the event queue can be considered the backbone of the system, it is unlikely that it is not running. - -#### Transactions - -The described way of inter service communication with events is not transactional. It is not supposed to be, but only provides a lightweight, loosely coupled way to "inform". - -If transactions are required, proper synchronous GRPC API calls should be used. Another way would be to build asynchronous flows with request- and reply events as in [saga pattern](https://microservices.io/patterns/data/saga.html). That is only recommended for special cases. - -#### Pros - -* Simple setup -* Flexible way of connecting services -* Stateless event queue -* "State of the art" pattern in microservices architectures - -#### Cons - -* Over engineering: Can we do without an extra message queue component? -* Messages might get lost, so that eventual consistency is endangered -* A service needs to hold more state to ensure consistency -* Message queue needs to be implemented in Reva - -### 2. Lightweight Events with Event Queue and "At-least once" QoS - -Exactly as described above, but with a higher service level quality. - -#### Quality of Service - -Events are sent with "At least once" quality of service. That means the events will remain in the queue until they are received by all receivers. This puts more responsibility on the event bus and adds state to the events. Given that the event queue can be considered the backbone of the system, it is required to be running. - -#### Pros - -* Better service level: Messages do not get lost -* Simplifies the design of the microservices because the events are "fire-and-forget" -* Events would be idempotent. If a service goes down the events will stay in the queue until they are consumed - -#### Cons - -* Stateful event system with higher cost in terms of compute and storage -* The queue could become a bottleneck and needs to be scaled - -## Decision Outcome - -### Design diff --git a/docs/ocis/adr/0016-files-metadata.md b/docs/ocis/adr/0016-files-metadata.md deleted file mode 100644 index abb7dabf8b..0000000000 --- a/docs/ocis/adr/0016-files-metadata.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: "16. Storage for Files Metadata" -weight: 16 -date: 2022-03-02T00:00:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0016-files-metadata.md ---- - -* Status: superseded by [ADR-0024]({{< ref "0024-msgpack-metadata.md" >}}) -* Deciders: [@butonic](https://github.com/butonic), [@dragotin](https://github.com/dragotin), [@micbar](https://github.com/micbar), [@c0rby](https://github.com/c0rby) -* Date: 2022-02-04 - -## Context and Problem Statement - -In addition to the file content we need to store metadata which is attached to a file. Metadata describes additional properties of a file. These properties need to be stored as close as possible to the file content to avoid inconsistencies. Metadata are key to workflows and search. We consider them as an additional value which enhances the file content. - -## Decision Drivers - -* Metadata will become more important in the future -* Metadata are key to automated data processing -* Metadata storage should be as close as possible to the file content -* Metadata should be always in sync with the file content - -## Considered Options - -* Database -* Extended file attributes -* Metadata file next to the file content -* Linked metadata in separate file - -## Decision Outcome - -Chosen option: "Extended File Attributes", because we guarantee the consistency of data and have arbitrary simple storage mechanism. - -### Positive Consequences - -* Metadata is always attached to the file itself -* We can store arbitrary key/values -* No external dependencies are needed - -### Negative consequences - -* The storage inside extended file attributes has limits -* Changes to extended attributes are not atomic and need file locks - -## Pros and Cons of the Options - -### Database or Key-Value Store - -Use a Database or an external key/value store to persist metadata. - -* Good, because it scales well -* Good, because databases provide efficient lookup mechanisms -* Bad, because the file content and the metadata could run out of sync -* Bad, because a storage backup doesn't cover the file metadata - -### Extended File Attributes - -Extended File Attributes allow storing arbitrary properties. There are 4 namespaces `user`, `system`, `trusted` and `security`. We can safely use the `user` namespace. An example attribute name would be `user.ocis.owner.id`. The linux kernel has length limits on attribute names and values. - -From Wikipedia on [Extended file attributes](https://en.wikipedia.org/wiki/Extended_file_attributes#Linux): - -> The Linux kernel allows extended attribute to have names of up to 255 bytes and values of up to 64 KiB,[14] as do XFS and ReiserFS, but ext2/3/4 and btrfs impose much smaller limits, requiring all the attributes (names and values) of one file to fit in one “filesystem block” (usually 4 KiB). Per POSIX.1e,[citation needed] the names are required to start with one of security, system, trusted, and user plus a period. This defines the four namespaces of extended attributes. - -* Good, because metadata is stored in the filesystem -* Good, because consistency is easy to maintain -* Good, because the data is attached to the file and survives file operations like copy and move -* Good, because a storage backup also covers the file metadata -* Bad, because we could hit the filesystem limit -* Bad, because changes to extended attributes are not atomic - -### Metadata File - -We could store metadata in a metadata file next to the file content which has a structured content format like .json, .yaml or .toml. That would give us more space to store bigger amounts of metadata. - -* Good, because there are no size limits -* Good, because there is more freedom to the content format -* Good, because a storage backup also covers the file metadata -* Bad, because it doubles the amount of read / write operations -* Bad, because it needs additional measures against concurrent overwriting changes - -### Link metadata with an id in the extended attributes - -To link metadata to file content a single extended attribute with a file id (unique per storage space) is sufficient. This would also allow putting metadata in better suited storage systems like SQLite or a key value store. - -* Good, because it avoids extended attribute limits -* Good, because the same mechanism could be used to look up files by id, when the underlying filesystem is an existing POSIX filesystem. -* Bad, because backup needs to cover the metadata as well. Could be mitigated by sharing metadata per space and doing space wide snapshots. -* Bad, because it is a bit more effort to access it to read or index it. diff --git a/docs/ocis/adr/0017-allow-read-only-external-user-management.md b/docs/ocis/adr/0017-allow-read-only-external-user-management.md deleted file mode 100644 index cfd78e7560..0000000000 --- a/docs/ocis/adr/0017-allow-read-only-external-user-management.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: "17. Allow read only external User Management" -weight: 17 -date: 2022-02-08T10:53:00+01:00 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0017-allow-read-only-external-user-management.md ---- - -* Status: proposed -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@rhafer](https://github.com/rhafer) -* Date: 2022-02-08 - -## Context and Problem Statement - -oCIS needs to be integrated with various external Authentication and Identity Management Systems. -Usually oCIS will have no administrative access to such a system and we will not be allowed to -reconfigure it to suit our needs (e.g. we will not be able to enhance the schema of an already existing -LDAP Directory). In most of the cases our access will be read-only. - -Sidenote: There is a difference between users, identities and accounts: A user may have multiple -identities which he can authenticate with, e.g. his facebook, twitter, microsoft or google -identity. Multiple identities can be linked to an account in ocis, allowing to fall back to another -identity provider should one of them shut down. This also allows migrating from one identity -provider to another. - -There are different cases where oCIS requires access to users: - -1. While we settled on using OpenID Connect (OIDC) as the authentication protocol for oCIS, we - need to build a user object during authentication with at least an account UUID (to identify - the account) and the email or a name (for display purposes). -2. When searching for share recipients we need to be able to query existing users in the external - identity management system -3. When listing files we need to be able to look up a users display properties (username, email, - avatar...) based on the account UUID - -oCIS internally relies on a stable and persistent identifier (e.g. a UUID) for accounts in order to -implement permissions and sharing. Unfortunately, some deployments are unable to deliver this kind -of stable identifier for users: - -- In OIDC itself the only stable identifier that is guaranteed to be provided by the IDP is - combination of the sub and iss claims. IDPs can optionally return other claims, but we cannot - rely on a specific claim being present. -- When no other services (LDAP, SCIM, ...) are available that could be used look up a user UUID - - -## Decision Drivers - -* oCIS should be a single binary that can run out of the box without external dependencies like an - LDAP server. -* Time: we want to build a release candidate asap. -* oCIS should be easy to integrate with standard external identity management systems - -## Considered Options - -There are two case to consider: -* External identity management system provides an OIDC IdP and an interface to query users -* External identity management system provides just an OIDC IdP with no possibility to query users - -## Decision Outcome - -It's not really possible single out any of the options for this ADR. In the end we will likely need -to support both scenarios. - -### Positive Consequences: - -* Very flexible integration with a wide range of external systems - -### Negative consequences: - -* configuration complexity, high support efforts -* Increasingly complex code in oCIS - -## Pros and Cons of the Options - -### External identity management system is read only and provides an interface to query users (e.g. Corporate Active Directory) - -IdP sends sub & iss and mail or username claims, Identity Management System provides APIs (e.g. -LDAP, SCIM, REST ...) to lookup additional user information. All oCIS services use the CS3 API to -look up the account for the given email or username, where CS3 then uses a backend that relies on -the APIs provided by the IdM. - -* Good, because we can rely on the external identity management -* Good, because ocis services only need to know about the CS3 user provider API, which acts as an - abstraction layer for different identity management systems -* Good, because there is only a single source of truth (the external IdM) and we don't need to - implement a synchronization mechanism to maintain an internal user database (we will likely need - some form of caching though, see below) -* Bad, because the identity management needs to provide a stable, persistent, non-reassignable user - identifier for an account, e.g. `owncloudUUID` or `ms-DS-ConsistencyGuid` -* Bad, because we need to implement tools that can change the account id when it did change anyway -* Bad, because without caching we will hammer the identity management system with lookup requests - -### External identity management system is read only and does NOT provide an API to query users - -Idp sends sub & iss and mail or username claims. We need to provision an internal account mapping, -creating a unique ID, upon the first login of a user to be able to look up user properties by account -id. - -* Good, because this has very little external requirements -* Good, because we have accounts fully under our control -* Bad, because we have to provide the user lookup APIs -* Bad, because users will only a visible after the first login -* Bad, because our internal account mapping might get out of date when user attribute (e.g. name or - mail) change. At least until the next time that user logs in - -## Links - -* [Link type] [Link to ADR] -* … -* supersedes [3. Use external User Management]({{< ref "0003-external-user-management.md" >}}) diff --git a/docs/ocis/adr/0018-file-search-api.md b/docs/ocis/adr/0018-file-search-api.md deleted file mode 100644 index 51fc25250a..0000000000 --- a/docs/ocis/adr/0018-file-search-api.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: "18. File Search API" -date: 2022-03-18T09:00:00+01:00 -weight: 18 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0018-file-search-api.md ---- - -* Status: proposed -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@c0rby](https://github.com/c0rby) -* Date: 2022-03-18 - -## Context and Problem Statement - -The ability to find files based on certain search terms is a key requirement for a system that provides the ability to store unstructured data on a large scale. - -## Decision Drivers - -* Have a simple yet powerful, scalable and performant way of finding files in oCIS -* Be able to construct intelligent searches based on metadata -* Allow the user to filter the search queries based on metadata - -## Considered Options - -* [Libre Graph API](#libre-graph-api) -* [WebDAV API](#webdav-api) - -## Decision Outcome - -Chosen option: [WebDAV API](#webdav-api) because the current WebUI is compatible with that API. We may use the GraphAPI later in a second iteration. - -### Positive Consequences - -* The existing Clients can continue to use the well-known API -* There are existing API tests which cover the basic behavior - -### Negative consequences - -* We have no server side result filtering capabilities - -## Pros and Cons of the Options - -### Libre Graph API - -* Good, because we try to switch most of our HTTP requests to Libre Graph -* Good, because the Graph API supports scopes, sorting and query language -* Good, because it supports server side result filtering -* Bad, because there are currently no clients which support that - -### WebDAV API - -* Good, because WebDAV is a well-known and widely adopted Standard -* Good, because existing Clients continue to work without extra efforts -* Bad, because the syntax is limited -* Bad, because we cannot do server side result filtering - -## Links - -* [Search Indexing](0019-file-search-index.md) -* [Search Query Language](0020-file-search-query-language.md) diff --git a/docs/ocis/adr/0019-file-search-index.md b/docs/ocis/adr/0019-file-search-index.md deleted file mode 100644 index b80b56c5d2..0000000000 --- a/docs/ocis/adr/0019-file-search-index.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: "19. File Search Index" -date: 2022-03-18T09:00:00+01:00 -weight: 19 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0019-file-search-index.md ---- - -* Status: accepted -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@c0rby](https://github.com/c0rby) -* Date: 2022-03-18 - -## Context and Problem Statement - -The ability to find files based on certain search terms is a key requirement for a system that provides the ability to store unstructured data on a large scale. - -More sophisticated search capabilities are expected and can be implemented, especially based on metadata. - -To trigger the indexing of a file, the search service listens to create, update and delete events on the internal event bus of oCIS. - -The events need to contain a valid reference that defines the file space and file id of the file in question. The event only must be sent when the file operation (update, creation, removal) is finished. - -Sharing adds more complexity because the index also needs to react to create, delete and modify shares events. Sharing should not duplicate the indexed data, especially within spaces or group shares. - -## Decision Drivers - -* Have a simple yet powerful, scalable and performant way of finding files in oCIS -* Be able to construct intelligent searches based on metadata -* Allow the user to filter the search queries based on metadata -* Basic File Search needs to be implemented out of the box without external dependencies -* The Search Indexing Service should be replaceable with more sophisticated technologies like Elasticsearch -* Make use of the spaces architecture to shard search indexes by space -* The Search Indexing Service needs to deal with multiple users accessing the same resources due to shares -* The Search Service should be compatible with different search indexing technologies - -## Considered Options - -* [Bleve Search](#bleve-search) -* [Elastic Search](#elastic-search) - -## Decision Outcome - -Chosen option: Bleve Search, because we can fulfill the MVP and include it into the single binary. - -### Positive Consequences - -* Basic File Search works out of the box -* We do not need heavy external dependencies which need to be deployed alongside - -### Negative consequences - -* We need to be aware of the scaling limits -* We need to find a way to work with shares and spaces -* It has a limited query language - -## Pros and Cons of the Options - -### Bleve Search - -* Good, because it is written in GoLang and can be bundled into the single oCIS binary -* Good, because it is a lightweight but powerful solution which could fulfill a lot of use cases -* Bad, because we do not know exactly how we can represent shares in the index without duplicating data -* Bad, because it is a single process -* Bad, because the query language is limited - -### Elastic Search - -* Good, because it has become an industry standard -* Good, because it supports a rich query language -* Good, because it has built in cluster support and scales well -* Good, because it has a permission system and supports multiple users and groups to access the same resource -* Bad, because it is a heavy setup and needs extra effort and knowledge - -## Links - -* [Search API](0018-file-search-api.md) -* [Search Query Language](0020-file-search-query-language.md) -* [Bleve Search on GitHub](https://github.com/blevesearch/bleve) -* [ElasticSearch](https://www.elastic.co/elastic-stack/) diff --git a/docs/ocis/adr/0020-file-search-query-language.md b/docs/ocis/adr/0020-file-search-query-language.md deleted file mode 100644 index 372a9065e4..0000000000 --- a/docs/ocis/adr/0020-file-search-query-language.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: "20. File Search Query Language" -date: 2022-06-23T09:00:00+01:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0020-file-search-query-language.md ---- - -* Status: accepted -* Deciders: [@butonic](https://github.com/butonic), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin), [@c0rby](https://github.com/c0rby), [@kulmann](https://github.com/kulmann), [@felix-schwarz](https://github.com/felix-schwarz), [@JammingBen](https://github.com/JammingBen) -* Date: 2023-06-23 - -## Context and Problem Statement - -From the users perspective, the interface to search is just a single form field where the user enters one or more search terms. The minimum expectation is that the search returns file names and links to files that: - -* have a file name that contains at least one of the search terms -* contain at least one of the search terms in the file contents -* have metadata that is equal or contains one of the search terms - -## Decision Drivers - -* The standard user should not be bothered by a query syntax -* The power user should also be able to narrow his search with an efficient and flexible syntax -* We need to consider different backend technologies which we need to access through an abstraction layer -* Using different indexing systems should lead to a slightly different feature set without changing the syntax completely - -## Considered Options - -* [KQL - Keyword Query Language](#keyword-query-language) -* [Simple Query](#simplified-query) -* [Lucene Query Language](#lucene-query-language) -* [Solr Query Language](#solr-query-language) -* [Elasticsearch Query Language](#elasticsearch-query-language) - -## Decision Outcome - -Chosen option: [KQL - Keyword Query Language](#keyword-query-language), because it enables advanced search across all platforms. - -### Positive Consequences - -* We can use the same query language in all clients - -### Negative consequences - -* We need to build and maintain a backend connector - -## Pros and Cons of the Options - -### Keyword Query Language - -The Keyword Query Language (KQL) is used by Microsoft Share Point and other Microsoft Services. It uses very simple query elements, property restrictions and operators. - -* Good, because we can fulfill all our current needs -* Good, because it is very similar to the used query language in iOS -* Good, because it supports date time keywords like "today", "this week" and more -* Good, because it can be easily extended to use "shortcuts" for eg. document types like `:presentation` which combine multiple mime types. -* Good, because it is successfully implemented and used in similar use cases -* Good, because it gives our clients the freedom to always use the same query language across all platforms -* Good, because Microsoft Graph API is using it, we will have an easy transition in the future -* Bad, because we need to build and maintain a connector to different search backends (bleve, elasticsearch or others) - -### Simplified Query - -Implement a very simple search approach: Return all files which contain at least one of the keywords in their name, path, alias or selected metadata. - -* Good, because that covers 80% of the users needs -* Good, because it is very straightforward -* Good, because it is a suitable solution for GA -* Bad, because it is below the industry standard -* Bad, because it only provides one search query - -### Lucene Query Language - -The Lucene Query Parser syntax supports advanced queries like term, phrase, wildcard, fuzzy search, proximity search, regular expressions, boosting, boolean operators and grouping. It is a well known query syntax used by the Apache Lucene Project. Popular Platforms like Wikipedia are using Lucene or Solr, which is the successor of Lucene - -* Good, because it is a well documented and powerful syntax -* Good, because it is very close to the Elasticsearch and the Solr syntax which enhances compatibility -* Bad, because there is no powerful and well tested query parser for golang available -* Bad, because it adds complexity and fulfilling all the different query use-cases can be an "uphill battle" - -### Solr Query Language - -Solr is highly reliable, scalable and fault-tolerant, providing distributed indexing, replication and load-balanced querying, automated failover and recovery, centralized configuration and more. Solr powers the search and navigation features of many of the world's largest internet sites. - -* Good, because it is a well documented and powerful syntax -* Good, because it is very close to the Elasticsearch and the Lucene syntax which enhances compatibility -* Good, because it has a strong community with large resources and knowledge -* Bad, because it adds complexity and fulfilling all the different query use-cases can be an "uphill battle" - -### Elasticsearch Query Language - -Elasticsearch provides a full Query DSL (Domain Specific Language) based on JSON to define queries. Think of the Query DSL as an AST (Abstract Syntax Tree) of queries, consisting of two types of clauses. It is able to combine multiple query types into compound queries. It is also a successor of Solr. - -* Good, because it is a well documented and powerful syntax -* Good, because it is very close to the Elasticsearch and the Solr syntax which enhances compatibility -* Good, because there is a stable and well tested go client which brings a query builder -* Good, because it could be used as the query language which supports different search backends by just implementing what is needed for our use-case -* Bad, because it adds complexity and fulfilling all the different query use-cases can be an "uphill battle" - -## Links - -* [Search API](0018-file-search-api.md) -* [Search Indexing](0019-file-search-index.md) -* [KQL](https://learn.microsoft.com/en-us/sharepoint/dev/general-development/keyword-query-language-kql-syntax-reference) -* [Apache Lucene](https://lucene.apache.org/) -* [Apache Solr](https://solr.apache.org/) -* [Elastic Search](https://solr.apache.org/) -* [Elastic Search for go](https://github.com/elastic/go-elasticsearch) diff --git a/docs/ocis/adr/0021-service-accounts.md b/docs/ocis/adr/0021-service-accounts.md deleted file mode 100644 index 776e6a9cc5..0000000000 --- a/docs/ocis/adr/0021-service-accounts.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: "21. Service accounts" -date: 2023-01-18T16:07:00+01:00 -weight: 21 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0021-service-accounts.md ---- - -* Status: proposed -* Deciders: [@butonic](https://github.com/butonic), [@c0rby](https://github.com/c0rby) -* Date: 2023-01-18 - -## Context and Problem Statement - -There are three levels of security checks in a microservice web application that uses OpenID Connect: -1. **scope claims** limit the possible operations to what the user (or admin on behalf of the organization) consented to -2. **service authorization** limit the possible operations to what specific services are allowed to do, on behalf of users or even without them -3. **permission checks** limit the possible operations to the relationships between subject, permission and resource allow - -This ADR deals with a prerequisite for service authorization: service accounts. - -Some services need access to file content without a user being logged in. We currently pass the owner or manager -of a space in events which allows the search service to impersonate that user to extract metadata from the changed resource. -There are two problems with this: -1. The service could get all permissions of the user and gain write permission -2. There is a race condition where the user in the event might no longer have read permission, causing the index to go stale - -The race condition will become more of an issue when we start working on a workflow engine. - -How can we grant services the least amount of permissions required for their purpose? - -## Decision Drivers - -* It should be possible to represent this as servicePrincipals in the libregraph API, similar to the [MS Graph servicePrincipal](https://learn.microsoft.com/en-us/graph/api/resources/serviceprincipal?view=graph-rest-1.0). -* Services should check permissions using the oCIS permissions or reva auth service, we don't want to introduce a new mechanism for this - -## Considered Options - -* [Service Accounts](#service-accounts) -* [Impersonate Space-Owners](#impersonate-space-owners) - -## Decision Outcome - -Chosen option: [Service Accounts](#service-accounts) - -### Consequences - -* Good, because it allows provisioning permissions for services -* Good, because it uses existing CS3 concepts -* Good, because it uses the existing permissions service -* Good, because it can be mapped to libre graph permissions -* Bad, because we have to make the reva auth manager aware of CS3 [`USER_TYPE_SERVICE`](https://cs3org.github.io/cs3apis/#cs3.identity.user.v1beta1.UserType) -* Bad, because we have to provision and manage service accounts on init -* Bad, because external APIs may need to filter out service accounts -* Bad, because we need to persist service accounts in addition to normal user accounts - -## Pros and Cons of the Options - -### Service Accounts - -Make the reva auth manager and registry aware of CS3 users of type [`USER_TYPE_SERVICE`](https://cs3org.github.io/cs3apis/#cs3.identity.user.v1beta1.UserType). Then we can provision service accounts at oCIS initialization and use the permissions service to check permissions. -When assigning permissions we use the permission constraints to define the scope of permissions, see [Permission Checks](#permission-checks) for more details. - -To authenticate service accounts the static reva auth registry needs to be configured with a new auth provider for type `service`. The actual provider can use a plain JSON file or JSONCS3 that is provisioned once with `ocis init`. TODO Furthermore, the user provider needs to be able to return users for service accounts. - - -* Good, because we could replace machine auth with specific service accounts and no longer have to distribute a shared secret everywhere -* Bad, because we don't know if a there are places in the code that try to look up a user with USER_TYPE_SERVICE at the cs3 users service ... they might not exist there ... or do we have to implement a userregistry, similar to the authregistry? -* Bad, because we have to provision and manage service accounts on init -* Bad, because we have to write code to manage service accounts or at least filter them out in the admin ui - - -### Impersonate Space-Owners - -We could implement a new auth manager that can authenticate space owners, a CS3 user type we introduced for project spaces which 'have no owner', only one or more managers. - -* Good, because it reuses the space owner user type -* Bad, because the space owner always has write permission -* Bad, because we don't know if a there are places in the code that try to look up a user with USER_TYPE_SPACE_OWNER at the cs3 users service ... they might not exist there ... or do we have to implement a userregistry, similar to the authregistry? -* Bad, because it feels like another hack and does not protect against compromised services that try to execute operations that the user did not consent to. - -## Links - -* [MS Graph servicePrincipal](https://learn.microsoft.com/en-us/graph/api/resources/serviceprincipal?view=graph-rest-1.0) -* [reva auth managers](https://reva.link/docs/config/packages/auth/manager/) - lacks docs for `auth_machine`, to be found [in the code](https://github.com/cs3org/reva/blob/edge/pkg/auth/manager/machine/machine.go) - -## Permission checks -When checking permissions we do not check for global permissions but for the concrete permission. Global permissions describe permissions that are used when assigning permissions, e.g. the index service account has the read permission constrained to tenant. The concrete permission check always contains a resource and a specific permission like `Resource.Read` or `Space.Delete`. That we currently check if a user has the `delete-all-spaces` permission is wrong. It should instead check if the user has the permission `Space.Delete` on a specific space. The permissions service can implement the check by taking the permission constraint into account. - -Another example would be a `Resource.Read` check for a specific resource. Normal users like the demo users Einstein and Marie would have the permission `Resource.ReadWrite` with the constraint ALL (which limits them to all files they own and that have been shared with them). The permissions service can return true. Service accounts like the indexer would have `Resource.Read` with the constraint TENANT and thus be granted read access to all resources. - -In the storage drive implementation we can check the ACLs first (which would allow service accounts that are known to the underlying storage system, e.g. EOS to access the resource) and then make a call to the permissions service. At least for the Read Resource permission. Other permission checks can be introduced as needed. - -The permission names and constraints are different from the MS Graph API. Giving permission like [`Files.ReadWrite.All`](https://learn.microsoft.com/en-us/graph/permissions-reference#user-permissions) a different meaning, depending on the type of user (for normal users it means all files they have access to, for service accounts it means all files in the organization) is a source of confusion which only gets worse when there are two different UUIDs for this. diff --git a/docs/ocis/adr/0022-sharing-and-space-management-api.md b/docs/ocis/adr/0022-sharing-and-space-management-api.md deleted file mode 100644 index 4256e2d879..0000000000 --- a/docs/ocis/adr/0022-sharing-and-space-management-api.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: "22. Sharing and Space Management API" -date: 2023-09-08T02:29:00+01:00 -weight: 22 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0022-sharing-and-space-management-api.md ---- - -* Status: accepted -* Deciders: [@JammingBen](https://github.com/JammingBen) [@butonic](https://github.com/butonic) [@theonering](https://github.com/theonering) [@kobergj](https://github.com/kobergj) [@micbar](https://github.com/micbar) -* Date: 2023-08-08 - -Technical Story: [Public issue](https://github.com/owncloud/ocis/issues/6993) - -## Context and Problem Statement - -In the early days of the rewrite of ownCloud it was an important goal to keep all important APIs compatible with ownCloud 10. Infinite Scale embraced that goal until version 1.0.0. - -After that first release, the focus changed. - -Infinite Scale started the spaces feature which brings a whole new set of APIs and concepts. We made the conscious decision to keep the sharing API as it was, live with its shortcomings and create workarounds to support spaces. We have come a long way so far. Now we need to move on. The Web Client has made the decision to drop the support of ownCloud 10 and keep version 7.0 alive for ownCloud 10 to keep the easy migration path intact. - -The desktop and mobile client platforms were suffering from poor support from the server and can now move forward with a new API implementation. By using openApi 3 and all the needed tooling around it developing the LibreGraph specification, documentaion and SDKs, we now feel confident to move on. - -## Decision Drivers - -* The Path based nature of the OCS API lacks spaces support -* The permissions bitmask is no longer working when using sharing roles -* We want to support server announced sharing roles which are different per instance or scope -* We need to get rid of the currently hardcoded sharing roles in our clients -* New sharing roles and permissions are needed to support secure view and other new features -* Space Memberships are not shares and need to have different semantics -* Elevation of permissions in subfolders or full denials should be possible without creating a new share -* Third party integrations need generated SDKs in different languages to speed up the development - -## Considered Options - -* [New OCS Api Version](#new-ocs-api-version) -* [Sharing via LibreGraph](#sharing-via-libregraph) - -## Decision Outcome - -Chosen option: "[LibreGraph](#sharing-via-libregraph)" - -### Positive Consequences: - -* We can create a new clean API which fits the spaces concept -* LibreGraph embraces OData which is a known API pattern -* Sharing will be integrated in the existing SDKs and documentation -* Removing the OCS Api reduces complexity -* Removing the OCS Api makes the clients codebases smaller and removes manually maintained parts of the SDKs -* The extra error handling for the OCS API can be dropped from our clients - -### Negative Consequences: - -* We need to deprecate and remove the OCS API -* Existing third party integrations need to do some refactoring - -## Pros and Cons of the Options - -### New OCS Api Version - -To overcome the limitations of the OCS 2.0 API we could create a new major version with the spaces concept in mind. This would give us the opportunity to create a new openApi Spec. - -* Good, because the workarounds from version 2.0 could be dropped -* Bad, because we would need to deprecate the version 2.0 -* Bad, because we would need to maintain a separate specification / repository -* Bad, because it would create the need to use two different SDKs in our clients -* Bad, because we would need to implement query parameters and filters on our own -* Bad, because sharing information could not be included in the spaces API via queries or filters - -### Sharing via LibreGraph - -Integrate Sharing into the [LibreGraph API](https://github.com/owncloud/libre-graph-api) by using the already existing toolchain and documentation flows. - -* Good, because that reduces the number of SDKs -* Good, because it reduces the number of APIs -* Good, because spaces and shares can be used together in queries and filters -* Good, because we would use the existing OData pattern -* Bad, because we need to deprecate the OCS API - -## Links - -* [LibreGraph API](https://github.com/owncloud/libre-graph-api) -* [OData](https://www.odata.org/documentation/) -* [OpenAPI Standard](https://www.openapis.org/) diff --git a/docs/ocis/adr/0023-index-and-store-metadata.md b/docs/ocis/adr/0023-index-and-store-metadata.md deleted file mode 100644 index e040487911..0000000000 --- a/docs/ocis/adr/0023-index-and-store-metadata.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: "23. Index and store metadata" -date: 2023-10-17T15:15:00+01:00 -weight: 23 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0023-index-and-store-metadata.md ---- - - -* Status: accepted -* Deciders: [@butonic](https://github.com/butonic), [@theonering](https://github.com/dschmidt), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin) -* Date: 2023-10-17 - -## Context and Problem Statement - -ownCloud Infinite Scale is supposed to become a data platform and as such it needs to provide access to metadata. -Currently only metadata common to all file types (filesize, mime-type, ...) is stored in the index and the metadata storage. -We want to make other file type specific metadata available to consumers of our internal and external APIs. -Simple examples would be audio metadata like artist, album and title or exif metadata in images. - -## Decision Drivers - -## Considered Options - -* [Store subset of extracted metadata required for graph api](#store-subset-of-extracted-metadata-required-for-graph-api) -* [Store subset of extracted metadata specified by another standard](#store-subset-of-extracted-metadata-specified-by-another-standard) -* [Store everything from extractors](#store-everything-from-extractors) - -## Decision Outcome - -Chosen option: "[store only subset of extracted metadata required for graph api](#store-subset-of-extracted-metadata-required-for-graph-api)", because Graph API is a simple common denominator and we want to avoid putting the complexity of mapping non-standardized data from potentially different extractors in several areas of the code base. Storage and index keys are determined by facet and property name, e.g. `audio.artist` for the artist in a music file. Storage keys are additionally prefixed with `libre.graph.`, i.e. `libre.graph.audio.artist`. -Handling Graph API specific metadata is a first step towards handling metadata. More generic and extensible handling of arbitrary metadata can be added later. - -### Positive Consequences: - -* Graph API endpoint implementation is trivial -* Documented public api and stored data are the same -* Reasonable complexity for the initial implementation - -### Negative Consequences: - -* Graph API is limited, so not *all* available metadata can be accessed -* Switching the internal format and adding more metadata later will require re-indexing - -## Pros and Cons of the Options - -### Store Subset of Extracted Metadata Required for Graph API - -Use Graph API facets and properties for determining the subset of stored metadata and the storage key. -The index key for the `artist` property of the `audio` facet is `audio.artist`, the storage key is additionally prefixed with `libre.graph.`. - -* Good, because central mapping of values happens consistently and only once in a central place - - it happens in the extractor (integration) which likely knows best how to map metadata to standard properties -* Good, because when multiple extractors share a common set of provided values, applications can rely on the mapping and the complexity is kept low -* Bad, because not all metadata is available, not everything can be searched -* Good, because Graph API already chose a reasonable subset of most interesting properties - -### Store Subset of Extracted Metadata Specified by Another Standard - -There are a bunch of metadata standards but none of them is really universal. There is always something that is only supported in one or the other standard. Tika for example extracts audio metadata using a mixture of Dublin Core and XMP Dynamic Media keys. - -- Bad, because it makes implementing a new extractor integration harder -- Bad, because it makes using the stored data more complicated than a simple standard like discussed above - -### Store Everything from Extractors - -- Good, because all metadata is available and searchable -- Good, because consuming applications can decide how to map data -- Good, because extractor implementation becomes more trivial -- Bad, because all applications become dependent on the extractor and need to handle different extractors on their own - -## Links - -* https://github.com/owncloud/libre-graph-api/pull/120 / https://learn.microsoft.com/de-de/graph/api/resources/audio?view=graph-rest-1.0 -* https://github.com/owncloud/libre-graph-api/pull/122 / https://learn.microsoft.com/en-us/graph/api/resources/photo?view=graph-rest-1.0 -* https://github.com/owncloud/libre-graph-api/pull/123 / https://learn.microsoft.com/en-us/graph/api/resources/geoCoordinates?view=graph-rest-1.0 -* https://developer.adobe.com/xmp/docs/XMPNamespaces/xmpDM/ -* https://www.dublincore.org/schemas/ diff --git a/docs/ocis/adr/0024-msgpack-metadata.md b/docs/ocis/adr/0024-msgpack-metadata.md deleted file mode 100644 index fb046dc687..0000000000 --- a/docs/ocis/adr/0024-msgpack-metadata.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: "24. Messagepack metadata" -date: 2024-02-09T14:57:00+01:00 -weight: 24 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0024-msgpack-metadata.md ---- - - -* Status: accepted -* Deciders: [@butonic](https://github.com/butonic), [@aduffeck](https://github.com/aduffeck), [@micbar](https://github.com/micbar), [@dragotin](https://github.com/dragotin) -* Date: [2023-03-15](https://github.com/cs3org/reva/pull/3711/commits/204253eee9dbb8e7fa93a01f3f94a2d28ce40a06) - -## Context and Problem Statement - -File metadata management is an important aspect for oCIS as a data platform. While using extended attributes to store metadata allows attaching the metadata to the actual file it causes a significant amount of syscalls that outweigh the benefits. Furthermore, filesystems are subject to different limitations in the number of extended attributes or the value size that is available. - -## Decision Drivers - -Performance of reading extended attributes suffers from the syscall overhead when listing and reading all attributes. Getting rid of limitations imposed by the filesystem used to store decomposedfs metadata. - -## Considered Options - -Going back to the original [ADR-0016 Storage for Files Metadata]({{< ref "0016-files-metadata.md" >}}) we decided to use a dedicated file for metadata storage next to the decomposedfs file representing the node. Several options for the data format were considered: - -* Use JSON files to store metadata -* Use INI files to store metadata -* Use msgpack files to store metadata -* Use protobuf messages to store metadata - -## Decision Outcome - -Chosen option: "[msgpack files](#msgpack-files)", because we want to stay with a self describing binary format. This is a performance tradeoff that is faster and more efficient than text based formats and more flexible but less efficient than protobuf. - -Note: directory listings are still read from the storage and remain uncached. - -### Positive Consequences: - -* Way less syscalls -* Node metadata can easily be cached, avoiding all trips to the storage until a file changes. - -### Negative Consequences: - -* We need to migrate existing metadata -* We need to build tooling that allows manipulating metadata similar to `setfattr` and `getfattr`. - -## Pros and Cons of the Options - -### Ini files - -* Good, human readable -* Good, self describing -* Good, widely used and well understood -* Good, suited for key value like content - exactly what we need for extended attributes -* Bad, slower and less efficient than binary formats - -### JSON files - -* Good, human readable -* Good, self describing -* Good, widely used and well understood -* Good, could be used for more than just key value -* Bad, slower and less efficient than binary formats - -### Msgpack files - -* Good, self describing -* Good, efficient because it is binary encoded -* Good, could be used for more than just key value -* Bad, not human readable - requires tooling to manipulate safely - -### protobuf files - -* Good, very efficient because it is binary encoded -* Good, could be used for more than just key value -* Bad, not human readable -* Bad, not self describing - requires tooling to evolve the messages - -## Links - -* supersedes [ADR-0016 Storage for Files Metadata]({{< ref "0016-files-metadata.md" >}}) -* [The need for speed — Experimenting with message serialization](https://medium.com/@hugovs/the-need-for-speed-experimenting-with-message-serialization-93d7562b16e4) \ No newline at end of file diff --git a/docs/ocis/adr/0025-distributed-search-index.md b/docs/ocis/adr/0025-distributed-search-index.md deleted file mode 100644 index 5f257dbdc0..0000000000 --- a/docs/ocis/adr/0025-distributed-search-index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: "25. Distributed Search Index" -date: 2024-02-09T16:27:00+01:00 -weight: 25 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0025-distributed-search-index.md ---- - -* Status: draft -* Deciders: [@butonic](https://github.com/butonic), [@fschade](https://github.com/fschade), [@aduffeck](https://github.com/aduffeck) -* Date: 2024-02-09 - -## Context and Problem Statement - -Search is currently implemented with [blevesearch](https://github.com/blevesearch/bleve), which internally uses bbolt. bbolt writes to a local file, which prevents scaling out the service. - -The initial implementation used a single blevesearch index for all spaces. While this makes querying all spaces easy because the results do not need to be aggregated from multiple indexes, the single node becomes a bottleneck when answering search queries. Furthermore, indexing is also part of the search service and has to share the resources. - -## Decision Drivers - -* Indexing should be decoupled from the search service -* The search service should be able to scale horizontally -* The solution needs to be embeddable in the single binary - -## Considered Options - -* one index per space -* [elasticsearch](https://github.com/elastic/elasticsearch) (java) -* [dgraph](https://github.com/dgraph-io/dgraph) (go) -* [manticore](https://github.com/manticoresoftware/manticoresearch/) (C++) -* [meilisearch](https://github.com/meilisearch/meilisearch) (Rust) - -## Decision Outcome - -Chosen option: *???* - -### Positive Consequences: - -* TODO - -### Negative Consequences: - -* TODO - -## Pros and Cons of the Options - -### one index per space - -Instead of using a single index (current implementation) or a distributed search index like elasticsearch the search service should aggregate queries from dedicated indexes per space. The api to a space index provider should be able to take multiple space ids in the request, similar to how a storage provider can handle multiple spaces. When treating spaces and the corresponding search index to belong together we can also treat them as a single unit for backup and restore. In federated deployments we can send the search queries to all search providers / spaces that the user has access to. - -How a search provider is implemented then depends on the requirements. For a single node deployment bleve might be fine, for a kubernetes deployment a dedicated service might be the better fit. - -### elasticsearch - -* Good, commercial support available at https://www.elastic.co/de/pricing -* Good, industry standard -* Bad, nobody seems to like it -* Bad, not embeddable (Java) - -### dgraph - -* Good, commercial support available at https://dgraph.io/pricing -* Good, embeddable? (go) - TODO verify - -### manticore -* Good, commercial support available at https://manticoresearch.com/services/ -* Bad, not embeddable (C++) - -### meilisearch -* Good, commercial support available at https://www.meilisearch.com/pricing -* Bad, not embeddable (Rust) - -## Links - -* supersedes [ADR-0019 File Search Index]({{< ref "0019-file-search-index.md" >}}) \ No newline at end of file diff --git a/docs/ocis/adr/0026-application-based-user-settings.md b/docs/ocis/adr/0026-application-based-user-settings.md deleted file mode 100644 index 1ed488f4c1..0000000000 --- a/docs/ocis/adr/0026-application-based-user-settings.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: "26. Application based user settings" -date: 2024-02-09T17:30:00+01:00 -weight: 26 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0026-application-based-user-settings.md ---- - -* Status: draft -* Deciders: [@butonic](https://github.com/butonic), [@fschade](https://github.com/fschade), [@kulmann](https://github.com/kulmann) -* Date: 2024-02-09 - -## Context and Problem Statement - -To share user settings across devices applications want to store user specific settings on the server. The ePUB app wants to remember which page the user is on. The iOS app wants to rember search queries. The Caldav app needs a space to store data. - -## Decision Drivers - -## Considered Options - -* OCS provisioning API -* settings service -* libregraph API - -## Decision Outcome - -Chosen option: *???* - -### Positive Consequences: - -* TODO - -### Negative Consequences: - -* TODO - -## Pros and Cons of the Options - -### OCS provisioning API - -Nextcloud added a `/ocs/v2.php/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}` endpoint - -* Bad, legacy API we want to get rid of - -### settings service - -- Bad, yet another API. Always uses POST requests. - -### libregraph API - -The MS Graph API has [a special approot driveItem](https://learn.microsoft.com/en-us/graph/api/drive-get-specialfolder?view=graph-rest-1.0&tabs=http) that apps can use to store arbitrary files. See also: -[Using an App Folder to store user content without access to all files](https://learn.microsoft.com/en-us/onedrive/developer/rest-api/concepts/special-folders-appfolder?view=odsp-graph-online) and a blog post with the section [Store data in the application’s personal folder](https://blog.mastykarz.nl/easiest-store-user-settings-microsoft-365-app/#store-data-in-the-applications-personal-folder). - -It basically uses the `/me/drive/special/approot:/{filename}` endpoint to -```http -PUT https://graph.microsoft.com/v1.0/me/drive/special/approot:/settings.json:/content -content-type: text/plain -authorization: Bearer abc - -{"key": "value"} -``` -or -```http -GET https://graph.microsoft.com/v1.0/me/drive/special/approot:/settings.json:/content -authorization: Bearer abc -``` - -On single page apps you need two requests: -```http -GET https://graph.microsoft.com/v1.0/me/drive/special/approot:/settings.json?select=@microsoft.graph.downloadUrl -authorization: Bearer abc -``` -followed by -```http -GET -``` - -Currently, applications have no dedicated tokens that we could use to derive the `appid` from. All apps should have an `appid` and [be discoverable under](https://learn.microsoft.com/en-us/graph/api/application-list?view=graph-rest-1.0&tabs=http) -```http -GET /applications -``` - -In any case for libregraph we could introduce a `LIBRE_GRAPH_APPID` header to make these requests possible rather soon. - -Then we can decide if we want to store these files in the users personal drive, or if we create a space for every app that then uses the userid as a folder that contains all the files for the user. - -- Good, because clients can remain in libregraph API land -- Bad, we currently have no application tokens - - - -## Links diff --git a/docs/ocis/adr/0027-new-share-jail.md b/docs/ocis/adr/0027-new-share-jail.md deleted file mode 100644 index 1036301cf4..0000000000 --- a/docs/ocis/adr/0027-new-share-jail.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: "27. New Share Jail" -date: 2024-02-21T15:19:00+01:00 -weight: 27 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0027-new-share-jail.md ---- - -* Status: draft -* Deciders: [@butonic](https://github.com/butonic), [@rhafer](https://github.com/rhafer), [@dragotin](https://github.com/dragotin) -* Date: 2024-02-21 - -## Context and Problem Statement - -The oCIS share jail is a space that contains all accepted / synced shares of a user. In contrast to a personal or project space that contains actual resources, the share jail space only contains references pointing to shared resources. The root directory only consists of mountpoints that actually represent resources in other spaces. On the WebDAV API clients expect an `oc:fileid` property to identify resources in other API endpoints, eg. the libregraph `/me/sharedWithMe` endpoint. - -Currently, we construct the `oc:fileid` from the pattern `{shareproviderid}${sharespaceid}!{sharemountid}`. `{shareproviderid}`and `{sharespaceid}` are both hardcoded to `a0ca6a90-a365-4782-871e-d44447bbc668`. The `{sharemountid}` itself uses the pattern `{shared-resource-providerid}:{shared-resource-spaceid}:{shareid}`. - -Since a resource can be shared to the same user in multiple ways (a group share and a user share) we deduplicate the two shares and only show one mountpoint in the share jail root. This is where this solution starts to fall apart: -* When accepting, mounting or syncing a share we implicitly have to accept all shares -* Each share has a different `{shareid}`, so we currently look up the oldest share and use it to build the `oc:fileid` -* Consequently, when the oldest share is revoked the `oc:fileid` changes. - -We need to build the `oc:fileid` from a more stable pattern. - -### Shareid - -The WebDAV PROPFIND response also contains a `oc:shareid` which currently is derived from the path when the spaceid matches the share jail. The jsoncs3 implementation of the share manager currently is the only one using the `{shared-resource-providerid}:{shared-resource-spaceid}:{shareid}` pattern, where `{shareid}` is a uuid that is generated when creating the share. - -Again, the problem is that a resource can be shared multiple times. - -## Decision Drivers - -* We need to change the `oc:fileid` pattern without breaking clients. -* We need to be able to correlate files from WebDAV and the Graph API. - -## Considered Options - -* [Share based id](#share-based-id) -* [Resource based id](#resource-based-id) -* [Permission based id](#permission-based-id) -* [Use graph for file metadata](#use-graph-for-file-metadata) - -## Decision Outcome - -Resource based id: it correctly reflects the semantic meaning of a mount point, by indirectly pointing to the resource, not the share. The permissions on the share have to be checked in the storageprovider itself, anyway. Switching to graph requires more effort and the transition can happen gradually ofter changing the `oc:fileid` pattern in the sharejail. - -### Positive Consequences: - -* We get rid of mixing share ids with fileids, preventing unexpected `oc:fileid` changes. - -### Negative Consequences: - -* We need to teach clients about a new share jail space that uses the new `oc:fileid` pattern. They may need to implement a migration strategy to switch from the old share jail space to a new share jail space by replacing the fileid in their internal database. The might be able to just switch over, because the only `oc:fileid` that changes is the one from the mountpoints. The other nodes in the subtree already use the resourceid of the shared resource. -* Clients relying on `oc:shareid` to correlate share jail entries in PROPFIND responses need to either deal with multiple `oc:shareid` as a resource can be shared multiple times, or we deprecate `oc:shareid` and only use the `oc:fileid`. *jfd: Who is using this? why? Please explain and add to the decision drivers above!* -* The graph api also needs to be able to list entries from the new share jail. *jfd: clients could use a filter to ask for the new share jail id* - -## Pros and Cons of the Options - -### Share based id -Follow the pattern `{shareproviderid}${sharespaceid}!{sharemountid}`, where `{sharemountid}` is `{shared-resource-providerid}:{shared-resource-spaceid}:{shareid}`. -Combined patter `{shareproviderid}${sharespaceid}!{shared-resource-providerid}:{shared-resource-spaceid}:{shareid}`. -`{shareproviderid}` and `{sharespaceid}`are both hardcodet to `a0ca6a90-a365-4782-871e-d44447bbc668` to route all id based requests for mountpoints to the share jail space. - -+ Good, the `{shared-resource-providerid}` and `{shared-resource-spaceid}` are used to shard the shares per space. -- Bad, `oc:fileid` changes if the oldest received share to a resource is revoked. - -### Resource based id -Follow the pattern `{shareproviderid}${sharespaceid}!{shared-resource-providerid}:{shared-resource-spaceid}:{shared-resource-opaqueid}`. -Hardcode `756e6cdf-5630-4b66-9380-55a85188e0f6` as a new `{sharespaceid}` to allow clients to detect the new share jail and change it at their own pace. - -+ Good, stable `oc:fileid` that remains the same, regardless of permission changes. -+ Good, clients can detect the new share jail and deal with it on their terms. - -### Permission based id -Follow the pattern `{shareproviderid}${sharespaceid}!{shared-resource-providerid}:{shared-resource-spaceid}:{shared-resource-opaqueid}:{permission-id}`. - -- Bad, same instability as the share id -- Bad, we don't even have a permission id. We could construct one from the grantee, but this leads nowhere. - - -### Use graph for file metadata -Instead of using WebDAV to correlate files with shares fully embrace libregraph to manage file metadata. -Follow the pattern `{shareproviderid}${sharespaceid}!{shared-resource-providerid}:{shared-resource-spaceid}:{shared-resource-opaqueid}`. -WebDAV can be stripped of any ownCloud specific properties and will only be used for file up and download. - -- Bad, more effort -+ Good, clean way of representing mountpoints and the shared resource in one `driveItem` that can include the resource based id. -+ Good, pagination, sorting and filtering cleanly specified -+ Good, WebDAV can be stripped down. -+ Good, Clients could get rid of WebDAV client and XML libs as all endpoints use JSON (all OCS endpoins return JSON when appending a `format=json` query parameter) - -## Links diff --git a/docs/ocis/adr/0028-activities-service.md b/docs/ocis/adr/0028-activities-service.md deleted file mode 100644 index e507de05da..0000000000 --- a/docs/ocis/adr/0028-activities-service.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: "28. Activity Service" -date: 2024-05-16T15:00:00+01:00 -weight: 28 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: 0028-activities-service.md ---- - -* Status: draft -* Deciders: [@kobergj](https://github.com/kobergj), [@fschade](https://github.com/fschade) -* Date: 2024-05-16 - -## Context and Problem Statement - -The user should be able to see all activities for a resource. -Besides the current resource, the user should also be able to decide if he wants to include child resource activities or not. - -## Decision Drivers - -* The user should be able to see all activities for a resource. -* The user should be able to decide if he wants to include child resource activities. -* Activities should be stored space efficiently. -* Activities should be stored in a way that they can be queried efficiently. -* Activities should stay in place even if the resource is gone. -* Activities reflect the state at a given point in time and not the current state. -* The Service should only store a configurable number of activities per resource. - -## Considered Options - -### Activity store - -* Use a go-micro store to store the individual activities. -* Use a time series database to store the activities. -* Use a graph database to store the activities. -* Use a relational database to store the activities. -* Use the file system to store the activities. - -### Activity format - -* Normalize the activities before storing them. -* Only store relevant data to get the related event from the event-history service when needed, e.g., - ```go - package pseudo_code - - import ( - "time" - ) - - type Activity struct { - ResourceId string - EventID string - Depth int64 - Timestamp time.Time - } - ``` -* Store the activity in a human-readable way e.g. "resource A has been shared with user B." -* Store each activity only on the resource itself. -* Store each activity only on the resource itself and all its parents. - -## Decision Outcome - -* Activity store: - * Use a go-micro store to store the individual activities. -* Activity format: - * Store each activity only on the resource itself and all its parents. - * Only store event ids and get the related event from the event-history service when needed. - -### Positive Consequences: - -* Activity store (go-micro store): - * Reuse existing technology. - * We can use nats-js-kv store which already proved reliable in production. - * No need to introduce any kind of new technology, e.g., a time series database, a relational database. -* Activity Format: - * Having each activity stored on each resource (the resource itself and its parents) - makes it easy to retrieve the timeline of activities for a resource and its children. - * Only storing the event id and getting the related event from the event-history we benefit - from the event-history services capabilities to store and query events. - * Walking the resource tree from the resource to the root is a linear operation and can be done efficiently. - -### Negative Consequences: - -* Activity store: - * Other database types might be more efficient for storing activities. - * Using the go-micro-store only allows storing the activity in a key-value format. -* Activity Format: - * Storing only the event ids and getting the related data from the event-history service when needed - might introduce additional latency when querying activities. - * Adding each event-id to each resource parent leads to a lot of duplicated data. - -## Pros and Cons of the Options - -* Activity store: - * (PRO) Introducing a new database type might be more efficient for storing activities. - * (CON) Introducing a new database type brings extra complexity and maintenance overhead. - * (CON) Using the file system to store the activities might be inefficient and could be problematic especially in a distributed environment. -* Activity format: - * (PRO) Normalizing the activities before storing them might make it easier and more efficient to query them. - * (PRO) Storing each activity only on the resource itself is more space-efficient. - * (CON) Storing each activity only on the resource itself increases the complexity of querying activities. - * (CON) Storing each activity in a human-readable format is not space-efficient. - -## Links - -* [Story](https://github.com/owncloud/ocis/issues/8881) diff --git a/docs/ocis/adr/_index.md b/docs/ocis/adr/_index.md deleted file mode 100644 index 2a9216b29d..0000000000 --- a/docs/ocis/adr/_index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Architecture Decisions" -date: 2021-02-10T20:21:00+01:00 -weight: 15 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/adr -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -oCIS is documenting architecture decisions using [Markdown Architectural Decision Records](https://adr.github.io/madr/) (MADR), following [Documenting Architecture Decisions by Michael Nygard](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions). - -{{< toc >}} - -To manage the records we use [butonic/adr-tools](https://github.com/butonic/adr-tools), a fork of the original [npryce/adr-tools](https://github.com/npryce/adr-tools), based on [a pull request that should have added MADR support](https://github.com/npryce/adr-tools/pull/43). It also supports a YAML header that is used by our Hugo based doc generation \ No newline at end of file diff --git a/docs/ocis/backup.md b/docs/ocis/backup.md deleted file mode 100644 index 64aaf89c7a..0000000000 --- a/docs/ocis/backup.md +++ /dev/null @@ -1,229 +0,0 @@ ---- -title: "Backup Considerations" -date: 2024-05-07T10:31:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis -geekdocFilePath: backup.md ---- - -This small guide aims to shed some light on the internal Infinite Scale data structure. You can refer to it when you are trying to optimize your backups or if you are just curious about how Infinite Scale stores its data. - -Note, as a prerequisite backing up Infinite Scale, the instance has to be fully shut down for the time being. - -## Ocis Data Structure - -Ocis stores its data in a folder that can be configured via the environment variable `OC_BASE_DATA_PATH`. Without further configuration, services derive from that path when they store data, though individual settings for certain data types can be configured. - -The default value for the `OC_BASE_DATA_PATH` variable is `$HOME/.ocis` (or `/var/lib/ocis` when using the docker container. Note: Configuration data is by default stored in `/etc/ocis/` in the container.). - -Inside this folder, Infinite Scale will store all its data in separate subdirectories. That includes metadata, configurations, queues and stores etc. The actual bytes of files (blobs) are handled by a so called blobstore, which also stores here by default. Depending on the used blobstore, the blobs need to be backed up separately, for example if S3 is used. Note: See special case for the `config` folder in a docker container. - -### Base Data Path Overview - -Listing the contents of the folder will return the following: -```bash - ~/.ocis/:tree -L 1 -. -├── config -├── idm -├── idp -├── nats -├── proxy -├── search -├── storage -├── thumbnails -└── web - -10 directories, 0 files -``` - -The following sections describe the content and background of the subdirectories to decide if a backup is required or recommended and its effect when it is not backed up. - -### `config` - -Contains basic Infinite Scale configuration created by `ocis init`(Note: The location of the configuration folder can be specified with the `OC_CONFIG_DIR` environment variable, but for this document we will assume this variable is not set and the default is used.) - -```bash - ~/.ocis/config/:tree -. -└── ocis.yaml - -1 directory, 1 file -``` - -* `ocis.yaml`:\ -BACKUP RECOMMENDED. Holds Infinite Scale configuration data. The contents can vary depending on your environment variables. In general, most of this file can be recreated again by running `ocis init`. This will recreate secrets and certificates. However, if not backed up completely, some fields MUST be copied over from the old config manually to regain data access after a restore: - -| Field Name | Envvar Name | Description | If not backed up | -| --- | --- | --- | --- | -| `idp.ldap.bind_password` | `OC_LDAP_BIND_PASSWORD` | Password for the idp | no logins possible | -| `idm.service_user_passwords.idp_password`| `IDM_IDPSVC_PASSWORD` | Same as above | no logins possible | -| `system_user_id` | `OC_SYSTEM_USER_ID` | The id of storage-system user | no logins possible | -| `idm.service_user_passwords.reva_password`| `IDM_REVASVC_PASSWORD` | The reva password | no logins possible | -| `auth_basic.auth_providers.ldap.bind_password` | `AUTH_BASIC_LDAP_BIND_PASSWORD` | Same as above | no logins possible | -| `users.drivers.ldap.bind_password` | `USERS_LDAP_BIND_PASSWORD` | Same as above | no logins possible | -| `groups.drivers.ldap.bind_password` | `GROUPS_LDAP_BIND_PASSWORD` | Same as above | no logins possible | -| `storage_users.mount_id` | `STORAGE_USERS_MOUNT_ID` | The mountid of the storage_users service | sharing data lost | -| `gateway.storage_registry.storage_users_mount_id` | `GATEWAY_STORAGE_USERS_MOUNT_ID` | Same as above | sharing data lost | - -### `idm` - -Note: This folder will not appear if you use an external idm. Refer to your idms documentation for backup details in this case. - -Contains the data for the internal Infinite Scale identity management. See the [IDM README]({{< ref "../services/idm/_index.md" >}}) for more details. - -```bash - ~/.ocis/idm/:tree -. -├── ldap.crt -├── ldap.key -└── ocis.boltdb - -1 directory, 3 files -``` - -* `ocis.boltdb`:\ -BACKUP REQUIRED. This is the boltdb database that stores user data. Use `IDM_DATABASE_PATH` to specify its path. If not backed up, Infinite Scale will have no users, therefore also all data is lost. -* `ldap.crt`:\ -BACKUP OPTIONAL. This is the certificate for the idm. Use `IDM_LDAPS_CERT` to specify its path. Will be auto-generated if not backed up. -* `ldap.key`:\ -BACKUP OPTIONAL. This is the certificate key for the idm. Use `IDM_LDAPS_KEY` to specify its path. Will be auto-generated if not backed up. - - -### `idp` - -Note: This folder will not appear if you use an external idp. Refer to your idp's documentation for backup details in this case. - -Contains the data for the internal Infinite Scale identity provider. See the [IDP README]({{< ref "../services/idp/_index.md" >}}) for more details. - -```bash - ~/.ocis/idp/:tree -. -├── encryption.key -├── private-key.pem -└── tmp - └── identifier-registration.yaml - -2 directories, 3 files -``` - -* `encryption.key`:\ -BACKUP RECOMMENDED. This is the encryption secret. Use `IDP_ENCRYPTION_SECRET_FILE` to specify its paths. Not backing this up will force users to relogin. -* `private-key.pem`:\ -BACKUP RECOMMENDED. This is the encryption key. Use `IDP_SIGNING_PRIVATE_KEY_FILES` to specify its paths. Not backing this up will force users to relogin. -* `identifier-registration.yml`:\ -BACKUP OPTIONAL. It holds configuration for oidc clients (web, desktop, ios, android). Will be recreated if not backed up. - -### `nats` - -Note: This folder will not appear if you use an external nats installation. In that case, data has to secured in alignment with the external installation. - -Contains nats data for streams and stores. See the [NATS README]({{< ref "../services/nats/_index.md" >}}) for more details. - -```bash - ~/.ocis/nats/:tree -L 1 -. -└── jetstream - -``` - -* `jetstream`:\ -BACKUP RECOMMENDED. This folder contains nats data about streams and key-value stores. Use `NATS_NATS_STORE_DIR` to specify its path. Not backing it up can break history for multiple (non-vital) features such as history or notifications. The Infinite Scale functionality is not impacted if omitted. - -### `proxy` - -Contains proxy service data. See the [PROXY README]({{< ref "../services/proxy/_index.md" >}}) for more details. - -```bash - ~/.ocis/proxy/:tree -. -├── server.crt -└── server.key - -1 directory, 2 files -``` - -* `server.crt`:\ -BACKUP OPTIONAL. This is the certificate for the http services. Use `PROXY_TRANSPORT_TLS_CERT` to specify its path. -* `server.key`:\ -BACKUP OPTIONAL. This is the certificate key for the http services. Use `PROXY_TRANSPORT_TLS_KEY` to specify its path. - -### `search` - -Contains the search index. See the [SEARCH README]({{< ref "../services/search/_index.md" >}}) for more details. - -```bash - ~/.ocis/search/:tree -L 1 -. -└── bleve - -2 directories, 0 files -``` - -* `bleve`:\ -BACKUP RECOMMENDED/OPTIONAL. This contains the search index. Can be specified via `SEARCH_ENGINE_BLEVE_DATA_PATH`. If not backed up, the search index needs to be recreated. This can take a long time depending on the amount of files. - -### `storage` - -Contains Infinite Scale meta (and blob) data, depending on the blobstore. See the [STORAGE-USERS README]({{< ref "../services/storage-users/_index.md" >}}) for more details. - -```bash - ~/.ocis/storage/:tree -L 1 -. -├── metadata -├── ocm -└── users - -4 directories, 0 files -``` - -* `metadata`:\ -BACKUP REQUIRED. Contains system data. Path can be specified via `STORAGE_SYSTEM_OC_ROOT`. Not backing it up will remove shares from the system and will also remove custom settings. -* `ocm`:\ -BACKUP REQUIRED/OMITABLE. Contains ocm share data. When not using ocm sharing, this folder does not need to be backed up. -* `users`:\ -BACKUP REQUIRED. Contains user data. Path can be specified via `STORAGE_USERS_OCIS_ROOT`. Not backing it up will remove all spaces and all files. As result, you will have a configured but empty Infinite Scale instance, which is fully functional accepting new data. Old data is lost. - -### `thumbnails` - -Contains thumbnails data. See the [THUMBNAILS README]({{< ref "../services/thumbnails/_index.md" >}}) for more details. - -```bash - ~/.ocis/thumbnails/:tree -L 1 -. -└── files -``` - -* `files`:\ -OPTIONAL/RECOMMENDED. This folder contains prerendered thumbnails. Can be specified via `THUMBNAILS_FILESYSTEMSTORAGE_ROOT`. If not backed up, thumbnails will be regenerated automatically on access which leads to some load on the thumbnails service. - -### `web` - -Contains web assets such as custom logos, themes etc. See the [WEB README]({{< ref "../services/web/_index.md" >}}) for more details. - -```bash - ~/.ocis/web/:tree -L 1 -. -└── assets - -2 directories, 0 files -``` - -* `assets`:\ -BACKUP RECOMMENDED/OMITABLE. This folder contains custom web assets. Can be specified via `WEB_ASSET_CORE_PATH`. If no custom web assets are used, there is no need for a backup. If those exist but are not backed up, they need to be reuploaded. - -### `external services` - -When using an external idp/idm/nats or blobstore, its data needs to be backed up separately. Refer to your idp/idm/nats/blobstore documentation for backup details. - -## Backup Consistency Command - -Infinite Scale now allows checking an existing backup for consistency. Use the command: -```bash -ocis backup consistency -p "" -``` - -`path-to-base-folder` needs to be replaced with the path to the storage providers base path. Should be same as the `STORAGE_USERS_OCIS_ROOT` - -Use the `-b s3ng` option when using an external (s3) blobstore. Note: When using this flag, the path to the blobstore must be configured via envvars or a yaml file to match the configuration of the original instance. Consistency checks for other blobstores than `ocis` and `s3ng` are not supported at the moment. diff --git a/docs/ocis/config.md b/docs/ocis/config.md deleted file mode 100644 index 05ad081bbb..0000000000 --- a/docs/ocis/config.md +++ /dev/null @@ -1,170 +0,0 @@ ---- -title: "Configuration" -date: "2021-11-09T00:03:16+0100" -weight: 2 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis -geekdocFilePath: config.md ---- - -{{< toc >}} - -## Configuration Framework - -In order to simplify deployments and development the configuration model from oCIS aims to be simple yet flexible. - -## Overview of the approach - -{{< figure src="/ocis/static/ocis-config-redesign.drawio.svg" >}} - -## In-depth configuration - -Since we include a set of predefined extensions within the single binary, configuring an extension can be done in a variety of ways. Since we work with complex types, having as many cli per config value scales poorly, so we limited the options to config files and environment variables. - -The hierarchy is clear enough, leaving us with: - -_(each element above overwrites its precedent)_ - -1. env variables -2. extension config -3. ocis config - -This is manifested in the previous diagram. We can then speak about "configuration file arithmetics", where resulting config transformations happen through a series of steps. An administrator must be aware of these sources, since mis-managing them can be a source of confusion, having undesired transformations on config files believed not to be applied. - -## Flows - -Let's explore the various flows with examples and workflows. - -### Examples - -Let's explore with examples this approach. - -#### Expected loading locations - -- docker images: `/etc/ocis/` -- binary releases: `$HOME/.ocis/config/` - -followed by the `.yaml`, e.g. `proxy.yaml` for the extension configuration. You also can put an `ocis.yaml` config file to the expected loading location to use a single config file. - -You can set another directory as config path in the environment variable `OC_CONFIG_DIR`. It will then pick the same file names, but from the folder you configured. - -#### Only config files - -The following config files are present in the default loading locations: - -_ocis.yaml_ -```yaml -proxy: - http: - addr: localhost:1111 - log: - pretty: false - color: false - level: info -log: - pretty: true - color: true - level: info -``` - -_proxy.yaml_ -```yaml -http: - addr: localhost:3333 -``` - -Note that the extension files will overwrite values from the main `ocis.yaml`, causing `ocis server` to run with the following configuration: - -```yaml -proxy: - http: - addr: localhost:3333 -log: - pretty: true - color: true - level: info -``` - -#### Using ENV variables - -The logging configuration if defined in the main ocis.yaml is inherited by all extensions. It can be, however, overwritten by a single extension file if desired. The same example can be used to demonstrate environment values overwrites. With the same set of config files now we have the following command `PROXY_HTTP_ADDR=localhost:5555 ocis server`, now the resulting config looks like: - -```yaml -proxy: - http: - addr: localhost:5555 -log: - pretty: true - color: true - level: info -``` - -#### Substitute ENV variables in configuration files - -Environment variables can be used in the configurations files and will be replaced by oCIS when loading these. -Default values can be specified after a `|` character - see below. - -```yaml -proxy: - http: - addr: ${PROXY_HTTP_ADDR|localhost:4321} -log: - pretty: true - color: true - level: info -``` - -### Workflows - -Since one can run an extension using the runtime (supervised) or not (unsupervised), we ensure correct behavior in both modes, expecting the same outputs. - -#### Supervised - -You are using the supervised mode whenever you issue the `ocis server` command. We start the runtime on port `9250` (by default) that listens for commands regarding the lifecycle of the supervised extensions. When an extension runs supervised and is killed, the only way to provide / overwrite configuration values will be through an extension config file. This is due to the parent process has already started, and it already has its own environment. - -#### Unsupervised - -All the points from the priority section hold true. An unsupervised extension can be started with the format: `ocis [extension]` i.e: `ocis proxy`. First, `ocis.yaml` is parsed, then `proxy.yaml` followed by environment variables. - -## Shared Values - -When running in supervised mode (`ocis server`) it is beneficial to have common values for logging, so that the log output is correctly formatted, or everything is piped to the same file without duplicating config keys and values all over the place. This is possible using the global `log` config key: - -_ocis.yaml_ -```yaml -log: - level: error - color: true - pretty: true - file: /var/tmp/ocis_output.log -``` - -There is, however, the option for extensions to overwrite this global values by declaring their own logging directives: - -_ocis.yaml_ -```yaml -log: - level: info - color: false - pretty: false -``` - -One can go as far as to make the case of an extension overwriting its shared logging config that received from the main `ocis.yaml` file. Because things can get out of hands pretty fast we recommend not mixing logging configuration values and either use the same global logging values for all extensions. - -{{< hint warning >}} -When overwriting a globally shared logging values, one *MUST* specify all values. -{{< /hint >}} - -### Log config keys - -```yaml -log: - level: [ error | warning | info | debug ] - color: [ true | false ] - pretty: [ true | false ] - file: [ path/to/log/file ] # MUST not be used with pretty = true -``` - -## Default config values (in yaml) - -TBD. Needs to be generated and merged with the env mappings. diff --git a/docs/ocis/deployment/_index.md b/docs/ocis/deployment/_index.md deleted file mode 100644 index 0ddd1a10e9..0000000000 --- a/docs/ocis/deployment/_index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Deployment" -date: 2020-10-01T20:35:00+01:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -{{< toc >}} - -## Deployments scenarios and examples -This section handles deployments and operations for admins and people who are interested in how versatile oCIS is. If you want to just try oCIS you may also follow [Getting started]({{< ref "../getting-started" >}}). - -### Setup oCIS on your server -oCIS deployments are super simple, yet there are many configurations possible for advanced setups. - -- [Basic oCIS setup]({{< ref "basic-remote-setup" >}}) - configure domain, certificates and port -- [oCIS setup with Keycloak as identity provider]({{< ref "ocis_keycloak" >}}) -- [Flexible oCIS setup with WebOffice and Search capabilities]({{< ref "ocis_full" >}}) -- [Parallel deployment of oC10 and oCIS]({{< ref "oc10_ocis_parallel" >}}) -- [oCIS with the Hello extension example]({{< ref "ocis_hello" >}}) - - -## Secure an oCIS instance - -oCIS no longer has any default secrets in versions later than oCIS 1.20.0. Therefore you're no -longer able to start oCIS without generating / setting all needed secrets. - -The recommended way is to use `ocis init` for that. It will generate a secure config file for you. diff --git a/docs/ocis/deployment/basic-remote-setup.md b/docs/ocis/deployment/basic-remote-setup.md deleted file mode 100644 index 310c7619ba..0000000000 --- a/docs/ocis/deployment/basic-remote-setup.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Basic Remote Setup" -date: 2020-02-27T20:35:00+01:00 -weight: 16 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: basic-remote-setup.md ---- - -{{< toc >}} - -The default configuration of the oCIS binary and the `owncloud/ocis` docker image assume, that you access oCIS on `localhost`. This enables you to do quick testing and development without any configuration. - -If you need to access oCIS running in a docker container, on a VM or a remote machine via another hostname than `localhost`, you need to configure this hostname in oCIS. The same applies if you are not using hostnames but instead an IP (e.g. `192.168.178.25`). - -## Start the oCIS fullstack server from binary - -Initialize the oCIS configuration by running `./bin/ocis init`. - -Upon first start of the oCIS fullstack server with `./bin/ocis server` it will generate a directory tree skeleton in `$HOME/.ocis`. If that is already existing it will not be overwritten as it contains all relevant data for oCIS. - -For the following examples you need to have the oCIS binary in your current working directory, we assume it is named `ocis` and it needs to be marked as executable. See [Getting Started]({{< ref "../getting-started/#binaries" >}}) for where to get the binary from. - -### Using automatically generated certificates - -In order to run oCIS with automatically generated and self-signed certificates please execute following command. You need to replace `your-host` with an IP or hostname. Since you have only self-signed certificates you need to have `OC_INSECURE` set to `true`. - -```bash -OC_INSECURE=true \ -PROXY_HTTP_ADDR=0.0.0.0:9200 \ -OC_URL=https://your-host:9200 \ -./ocis server -``` - -### Using already present certificates - -If you have your own certificates already in place, you may want to make oCIS use them: - -```bash -OC_INSECURE=false \ -PROXY_HTTP_ADDR=0.0.0.0:9200 \ -OC_URL=https://your-host:9200 \ -PROXY_TRANSPORT_TLS_KEY=./certs/your-host.key \ -PROXY_TRANSPORT_TLS_CERT=./certs/your-host.crt \ -./ocis server -``` - -If you generated these certificates on your own, you might need to set `OC_INSECURE` to `true`. - -For more configuration options check the configuration section in [oCIS]({{< ref "../config" >}}) and the oCIS services. - -## Start the oCIS fullstack server with Docker Compose - -Please have a look at our other [deployment examples]({{< ref "./" >}}). diff --git a/docs/ocis/deployment/bridge.md b/docs/ocis/deployment/bridge.md deleted file mode 100644 index 9835a936a8..0000000000 --- a/docs/ocis/deployment/bridge.md +++ /dev/null @@ -1,318 +0,0 @@ ---- -title: "Bridge" -date: 2020-02-27T20:35:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: bridge.md ---- - -{{< toc >}} - -We are planning to build a bridge from ownCloud 10 to ocis. The idea is to have a reverse proxy in front of ownCloud 10 that will forward requests to ownCloud 10 or ocis-reva, depending on the migration status of the logged-in user. - -This document is a work in progress of the current setup. - -## Current status - -Using ocis and the ownCloud 10 [graphapi app](https://github.com/owncloud/graphapi/) it is possible today to use an existing owncloud 10 instance as a user backend and storage backend for ocis. - -## How to do it - -### Install the owncloud 10 graphapi app - -In an owncloud 10 apps folder -``` -$ git clone git@github.com:owncloud/graphapi.git -$ cd graphapi -$ composer install -``` - -### Enable the graphapi app - -``` -occ a:e graphapi -``` - -No configuration necessary. You can test with `curl`: -```console -$ curl https://cloud.ocis.test/index.php/apps/graphapi/v1.0/users -u admin -s | jq -Enter host password for user 'admin': -{ - "value": [ - { - "id": "admin", - "displayName": "admin", - "mail": null - }, - { - "id": "demo", - "displayName": "Demo", - "mail": null - }, - ... - - ], - "@odata.nextLink": "https://cloud.ocis.test/apps/graphapi/v1.0/users?$top=10&$skip=10" -} -``` - -{{< hint >}} -The MS graph api actually asks for `Bearer` auth, but in order to check users passwords during an LDAP bind we are exploiting ownClouds authentication implementation that will grant access when `Basic` auth is used. An LDAP Bind you may ask? Read on! -{{< /hint >}} - -### Grab ocis! - -``` -$ git clone git@github.com:owncloud/ocis.git -$ cd ocis -$ make -C ocis build -``` -This should give you an `ocis/bin/ocis` binary. Try listing the help with `ocis/bin/ocis --help`. - -{{< hint >}} -You can check out a custom branch and build a custom binary which can then be used for the steps below. -{{< /hint >}} - -### Start ocis glauth - -We are going to use the built binary and ownCloud 10 graphapi app to turn ownCloud 10 into the datastore for an LDAP proxy. - -#### configure it - -While ocis can be configured using environment variables, e.g. for a docker compose setup we are going to use a more traditional config file here. -Create a config file for ocis in either `/etc/ocis`, `$HOME/.ocis` or `./.config`. You can use `.json`, `.yaml` or `.toml`. I will use toml here, because ... reasons. - -```toml -[glauth.backend] -datastore = "owncloud" # switch to the owncloud datastore -servers = ["https://cloud.ocis.test/apps/graphapi/v1.0"] # the graph api endpoint to connect to -basedn = "dc=ocis,dc=test" # base dn to construct the LDAP dn. The user `admin` will become `cn=admin,dc=ocis,dc=test` -``` - -{{< hint >}} -There is a bug in the config merging for environment variables, cli flags and config files causing log settings not to be picked up from the config file when specifying `--extensions`. That is why I will -* configure most of the config in a file, -* adjust logging using `OC_LOG_*` environment variables and -* specify which extension to run using `ocis/bin/ocis server --extensions "comma, separated, list, of, extensions"`. -{{< /hint >}} - -#### Run it! - -For now, we only start the glauth extension: -```console -$ OC_LOG_PRETTY=true OC_LOG_COLOR=true ocis/bin/ocis server --extensions "glauth" -``` - -#### Check it is up and running - -You should now be able to list accounts from your ownCloud 10 oc_accounts table using: -```console -$ ldapsearch -x -H ldap://127.0.0.1:9125 -b dc=ocis,dc=test -D "cn=admin,dc=ocis,dc=test" -W '(objectclass=posixaccount)' -``` - -Groups should work as well: -```console -$ ldapsearch -x -H ldap://127.0.0.1:9125 -b dc=ocis,dc=test -D "cn=admin,dc=ocis,dc=test" -W '(objectclass=posixgroup)' -``` - -{{< hint >}} -This is currently a readonly implementation and minimal to the use-case of authenticating users with an IDP. -{{< /hint >}} - -### Start ocis storage-gateway, storage-authbasic and storage-userprovider - -We are going to set up reva to authenticate users against our glauth LDAP proxy. This allows us to log in and use the reva cli. The ocis storage-gateway starts the reva gateway which will authenticate basic auth requests using the storage-authbasic service. Furthermore, users have to be available in the storage-userprovider to retrieve displayname, email address and other user metadata. - -To configure LDAP to use our glauth we add this section to the config file: - -```toml -[storage.reva.ldap] -idp = "https://ocis.ocis.test" -basedn = "dc=ocis,dc=test" -binddn = "cn=admin,dc=ocis,dc=test" # an admin user in your oc10 -bindpassword = "secret" -userschema = { uid = "uid", displayname = "givenname" } # TODO make glauth return an ownclouduuid and displayname attribute -``` - -Now we can start all necessary services. - -```console -$ OC_LOG_PRETTY=true OC_LOG_COLOR=true ocis/bin/ocis server --extensions "glauth, storage-gateway, storage-authbasic, storage-userprovider" -``` - - -{{< hint warning >}} -Here I ran out of time. I tried to verify this step with the reva cli: -`cmd/reva/reva -insecure -host localhost:9142` -`login basic` -but it tries to create the user home, which cannot be disabled in a config file: https://github.com/owncloud/ocis/issues/2416#issuecomment-901197053 - -starting `STORAGE_GATEWAY_DISABLE_HOME_CREATION_ON_LOGIN=true OC_LOG_LEVEL=debug OC_LOG_PRETTY=true OC_LOG_COLOR=true ocis/bin/ocis server --extensions "storage-gateway, storage-authbasic, storage-userprovider"` let me login: - -```console -✗ cmd/reva/reva -insecure -host localhost:9142 -reva-cli v1.11.0-27-g95b1f2ee (rev-95b1f2ee) -Please use `exit` or `Ctrl-D` to exit this program. ->> login basic -username: jfd -password: OK ->> whoami -id: username:"jfd" mail:"jfd@butonic.de" display_name:"J\303\266rn" uid_number:99 gid_number:99 ->> exit -``` - -I hope https://github.com/owncloud/ocis/pull/2024 fixes the parsing order of things. - -everything below this is outdated - -... gotta run -{{< /hint >}} - - -### Start ocis storage-userprovider - -```console -ocis/bin/ocis storage-userprovider --ldap-port 19126 --ldap-user-schema-uid uid --ldap-user-schema-displayName givenName --addr :19144 -``` - -TODO clone `git clone git@github.com:cs3org/cs3apis.git` - -query users using [grpcurl](https://github.com/fullstorydev/grpcurl) -```console -grpcurl -import-path ./cs3apis/ -proto ./cs3apis/cs3/identity/user/v1beta1/user_api.proto -plaintext localhost:19144 cs3.identity.user.v1beta1.UserAPI/FindUsers -ERROR: - Code: Unauthenticated - Message: auth: core access token not found -``` - - -### Start ocis idp - -#### Set environment variables - -The built-in [libregraph/lico](https://github.com/libregraph/lico) needs environment variables to configure the LDAP server: -```console -export OC_URL=https://ocis.ocis.test -export IDP_LDAP_URI=ldap://127.0.0.1:9125 -export IDP_LDAP_BASE_DN="dc=ocis,dc=test" -export IDP_LDAP_BIND_DN="cn=admin,dc=ocis,dc=test" -export IDP_LDAP_BIND_PASSWORD="its-a-secret" -export IDP_LDAP_SCOPE=sub -export IDP_LDAP_LOGIN_ATTRIBUTE=uid -export IDP_LDAP_NAME_ATTRIBUTE=givenName -``` -Don't forget to use an existing user with admin permissions (only admins are allowed to list all users via the graph api) and the correct password. - -#### Run it! - -You can now bring up `ocis/bin/ocis idp` with: -```console -$ ocis/bin/ocis idp server --iss http://127.0.0.1:9130 --signing-kid gen1-2020-02-27 -``` - -`ocis/bin/ocis idp` needs to know -- `--iss http://127.0.0.1:9130` the issuer, which must be a reachable http endpoint. For testing an ip works. For openid connect HTTPS is NOT optional. This URL is exposed in the `http://127.0.0.1:9130/.well-known/openid-configuration` endpoint and clients need to be able to connect to it, securely. We will change this when introducing the proxy. -- `--signing-kid gen1-2020-02-27` a signature key id, otherwise the jwks key has no name, which might cause problems with clients. a random key is ok, but it should change when the actual signing key changes. - -{{< hint warning >}} -* TODO: the port in the `--iss` needs to be changed when hiding the idp behind the proxy -* TODO: the signing keys and encryption keys should be precreated so they are reused between restarts. Otherwise all client sessions will become invalid when restarting the IdP. -{{< /hint >}} - - -#### Check it is up and running - -1. Try getting the configuration: -```console -$ curl http://127.0.0.1:9130/.well-known/openid-configuration -``` - -2. Check if the login works at http://127.0.0.1:9130/signin/v1/identifier - -{{< hint >}} -If you later get a `Unable to find a key for (algorithm, kid):PS256, )` Error make sure you did set a `--signing-kid` when starting `ocis/bin/ocis idp` by checking it is present in http://127.0.0.1:9130/konnect/v1/jwks.json -{{< /hint >}} - -### Start ocis proxy - - -{{< hint >}} -Everything below this hint is outdated. Next steps are roughly: -* directly after glauth start the `ocis storage-userporvider`? - - how to verify that works? - - https://github.com/fullstorydev/grpcurl -* start proxy - - the ocis ipd url can be changed to https - - when do we hide oc10 behind ocis? -> advanced bridge at the end? for now run it without touching the existing oc10 instance -* start web - - verify the login works, but how? - - TODO the login works, but then the capabilities requests will fail ... unless we make the proxy answer them by talking to oc10? - -Other ideas: -* the owncloud backend in glauth also works with the user provisioning api ... no changes to a running production instance? db access could be done with a read only account as well... -{{< /hint >}} - - -### Start ocis-web - -#### Run it! - -Point `ocis-web` to your owncloud domain and tell it where to find the openid connect issuing authority: -```console -$ bin/web server --web-config-server https://cloud.example.com --oidc-authority https://192.168.1.100:9130 --oidc-metadata-url https://192.168.1.100:9130/.well-known/openid-configuration --oidc-client-id ocis -``` - -`ocis-web` needs to know -- `--web-config-server https://cloud.example.com` is ownCloud url with webdav and ocs endpoints (oc10 or ocis) -- `--oidc-authority https://192.168.1.100:9130` the openid connect issuing authority, in our case `oidc-idp`, running on port 9130 -- `--oidc-metadata-url https://192.168.1.100:9130/.well-known/openid-configuration` the openid connect configuration endpoint, typically the issuer host with `.well-known/openid-configuration`, but there are cases when another endpoint is used, e.g. ping identity provides multiple endpoints to separate domains -- `--oidc-client-id ocis` the client id we will register later with `ocis-idp` in idp OIDC client settings - -### Patch owncloud - -While the UserSession in ownCloud 10 is currently used to test all available IAuthModule implementations, it immediately logs out the user when an exception occurs. However, existing owncloud 10 instances use the oauth2 app to create Bearer tokens for mobile and desktop clients. - -To give the openidconnect app a chance to verify the tokens we need to change the code a bit. See https://github.com/owncloud/core/pull/37043 for a possible solution. - -> Note: The PR is hot ... as in *younger than this list of steps*. And it messes with authentication. Use with caution. - -### Install the owncloud 10 openidconnect app - -In an owncloud 10 apps folder -``` -$ git clone git@github.com:owncloud/openidconnect.git -$ cd openidconnect -$ composer install -``` - -After enabling the app configure it in `config/oidc.config.php` - -```php -$CONFIG = [ - 'openid-connect' => [ - 'provider-url' => 'https://192.168.1.100:9130', - 'client-id' => 'ocis', - 'loginButtonName' => 'OpenId Connect @ Konnectd', - ], - 'debug' => true, // if using self-signed certificates - // allow the different domains access to the ocs and webdav endpoints: - 'cors.allowed-domains' => [ - 'https://cloud.example.com', - 'http://localhost:9100', - ], -]; -``` - -In the above configuration replace -- `provider-url` with the URL to your `ocis-idp` issuer -- `https://cloud.example.com` with the URL to your ownCloud 10 instance -- `http://localhost:9100` with the URL to your ownCloud Web instance - -> Note: By default the openidconnect app will use the email of the user to match the user from the oidc userinfo endpoint with the ownCloud account. So make sure your users have a unique primary email. - -## Next steps - -Aside from the above todos these are the next steps -- tie it all together behind `ocis-proxy` -- create an `ocis bridge` command that runs all the ocis services in one step with a properly preconfigured idp OIDC client `ocis-idp` for `ownCloud Web` and the owncloud 10 `openidconnect` app, as well as a randomized `--signing-kid`. diff --git a/docs/ocis/deployment/continuous_deployment.md b/docs/ocis/deployment/continuous_deployment.md deleted file mode 100644 index b146f8947c..0000000000 --- a/docs/ocis/deployment/continuous_deployment.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: "Continuous Deployment" -date: 2020-10-12T14:04:00+01:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: continuous_deployment.md ---- - -{{< toc >}} - -We are continuously deploying the following deployment examples. Every example is deployed in two flavors: - -- Master: reflects the current master branch state of oCIS and will be updated with every commit to master -- Rolling: reflects the latest rolling release of oCIS and will be updated with every rolling release -- Production: reflects the latest production release of oCIS and will be updated with every production release - -The configuration for the continuous deployment can be found in the [oCIS repository](https://github.com/owncloud/ocis/tree/master/deployments/continuous-deployment-config). - -# oCIS with Web Office - -This deployment is based on our modular [ocis_full Example](ocis_full.md) and uses the default configuration with Collabora Online as the office suite, traefik reverse proxy, cloudimporter and the inbucket mail catching server to showcase the full feature set of oCIS. - -Credentials: - -- oCIS: see [default demo users]({{< ref "../getting-started#login-to-owncloud-web" >}}) - -## Master - -- oCIS: [ocis.ocis.master.owncloud.works](https://ocis.ocis.master.owncloud.works) -- Mail: [mail.ocis.master.owncloud.works](https://mail.ocis.master.owncloud.works) - -## Rolling Release - -- oCIS: [ocis.ocis.rolling.owncloud.works](https://ocis.ocis.rolling.owncloud.works) -- Mail: [mail.ocis.rolling.owncloud.works](https://mail.ocis.rolling.owncloud.works) - -## Production Release - -- oCIS: [ocis.ocis.production.owncloud.works](https://ocis.ocis.production.owncloud.works) -- Mail: [mail.ocis.production.owncloud.works](https://mail.ocis.production.owncloud.works) - -## Master with OnlyOffice - -This example is using OnlyOffice as the office suite. - -- oCIS: [ocis.ocis-onlyoffice.master.owncloud.works](https://ocis.ocis-onlyoffice.master.owncloud.works) - -## Rolling Release with OnlyOffice - -This example is using OnlyOffice as the office suite. - -- oCIS: [ocis.ocis-onlyoffice.rolling.owncloud.works](https://ocis.ocis-onlyoffice.rolling.owncloud.works) - -# oCIS and ownCloud Web with both most recent development versions - -Credentials: - -- oCIS: see [default demo users]({{< ref "../getting-started#login-to-owncloud-web" >}}) - -## Master branches - -- oCIS: [ocis.ocis-web.master.owncloud.works](https://ocis.ocis-web.master.owncloud.works) - -# oCIS with Keycloak - -Credentials: - -- oCIS: see [default demo users]({{< ref "../getting-started#login-to-owncloud-web" >}}) -- Keycloak: - - username: admin - - password: admin - -## Rolling Release - -- oCIS: [ocis.ocis-keycloak.rolling.owncloud.works](https://ocis.ocis-keycloak.rolling.owncloud.works) -- Keycloak admin access: [keycloak.ocis-keycloak.rolling.owncloud.works](https://keycloak.ocis-keycloak.rolling.owncloud.works) -- Keycloak account management: [keycloak.ocis-keycloak.rolling.owncloud.works/realms/oCIS/account/#/](https://keycloak.ocis-keycloak.rolling.owncloud.works/realms/oCIS/account/#/) - - -# oCIS with S3 storage backend (MinIO) - -This deployment is based on our modular [ocis_full Example](ocis_full.md), see the [oCIS with Web Office](#ocis-with-web-office) description for the feature set. In addition to that, we deployed a MinIO S3 storage backend. oCIS stores the data in the S3 server and the metadata on the local disk by using the `s3ng` storage driver. - -The MinIO server provides a powerful Web UI for browser-based access to the storage which makes it possible to manage the data stored in the S3 server and understand how different policies and configurations affect the data. - -Credentials: - -- oCIS: see [default demo users]({{< ref "../getting-started/demo-users/" >}}) -- MinIO: - - access key: ocis - - secret access key: ocis-secret-key - -## Rolling Release - -- oCIS: [ocis.ocis-s3.rolling.owncloud.works](https://ocis.ocis-s3.rolling.owncloud.works) -- MinIO: [minio.ocis-s3.rolling.owncloud.works](https://minio.ocis-s3.rolling.owncloud.works) -- Mail: [mail.ocis-s3.rolling.owncloud.works](https://mail.ocis-s3.rolling.owncloud.works) - -# oCIS with LDAP for users and groups - -Credentials: - -- oCIS: see [default demo users]({{< ref "../getting-started/demo-users/" >}}) -- LDAP admin: - - username: cn=admin,dc=owncloud,dc=com - - password: admin - -## Rolling Release - -- oCIS: [ocis.ocis-ldap.rolling.owncloud.works](https://ocis.ocis-ldap.rolling.owncloud.works) -- LDAP admin: [ldap.ocis-ldap.rolling.owncloud.works](https://ldap.ocis-ldap.rolling.owncloud.works) - diff --git a/docs/ocis/deployment/kubernetes.md b/docs/ocis/deployment/kubernetes.md deleted file mode 100644 index 4d2b9d7d7b..0000000000 --- a/docs/ocis/deployment/kubernetes.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Kubernetes" -date: 2021-09-23T11:04:00+01:00 -weight: 25 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: kubernetes.md ---- - -{{< toc >}} - -## What is Kubernetes - -Formally described as: - -> Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. - -_[source](https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/)_ - -Without getting too deep in definitions, and for the purpose of compactness, Kubernetes can be summarized as a way of managing containers that run applications to ensure that there is no downtime and an optimal usage of resources. It provides with a framework in which to run distributed systems. - -Kubernetes provides you with: -- **Service discovery and load balancing**: Kubernetes can expose a container using the DNS name or using their own IP address. If traffic to a container is high, Kubernetes is able to load balance and distribute the network traffic so that the deployment is stable. -- **Storage orchestration**: Kubernetes allows you to automatically mount a storage system of your choice, such as local storages, public cloud providers, and more. -- **Automated rollouts and rollbacks**: You can describe the desired state for your deployed containers using Kubernetes, and it can change the actual state to the desired state at a controlled rate. For example, you can automate Kubernetes to create new containers for your deployment, remove existing containers and adopt all their resources to the new container. -- **Automatic bin packing**: You provide Kubernetes with a cluster of nodes that it can use to run containerized tasks. You tell Kubernetes how much CPU and memory (RAM) each container needs. Kubernetes can fit containers onto your nodes to make the best use of your resources. -- **Self-healing**: Kubernetes restarts containers that fail, replaces containers, kills containers that don't respond to your user-defined health check, and doesn't advertise them to clients until they are ready to serve. -- **Secret and configuration management**: Kubernetes lets you store and manage sensitive information, such as passwords, OAuth tokens, and SSH keys. You can deploy and update secrets and application configuration without rebuilding your container images, and without exposing secrets in your stack configuration. - -_[extracted from k8s docs](https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/#why-you-need-kubernetes-and-what-can-it-do)_ - -If that is still too abstract, [here is an ELI5 writeup](https://dev.to/miguelmota/comment/filh). - -### References and further reads - -- [Marcel Wunderlich's](https://github.com/Deaddy) [4 series articles](http://deaddy.net/introduction-to-kubernetes-pt-1.html) on Kubernetes clarifying its declarative nature, deep diving into ingress networking, storage and monitoring. - -### How does oCIS fit in the Kubernetes model - -oCIS was designed with running on Kubernetes in mind. We set up to adopt the [Twelve-Factor App](https://12factor.net/) principles regarding configuration, with almost every aspect of oCIS being modifiable via environment variables. This comes in handy when you especially have a look at how a helm chart's (we will introduce this concept shortly) [list of values](https://github.com/owncloud/ocis-charts/blob/d8735e3222d2050504303851d3461909c86fcc89/ocis/values.yaml) looks like. - -## What is Minikube - -[Minikube](https://minikube.sigs.k8s.io/docs/) lets you run a Kubernetes cluster locally. It is the most approachable way to test a deployment. It requires no extra configuration on any cloud platform, as everything runs on your local machine. For the purpose of these docs, this is the first approach we chose to run oCIS and will develop on how to set it up. - -## What is `kubectl` - -[kubectl](https://kubernetes.io/docs/tasks/tools/) is the command-line tool for Kubernetes. It allows users to run commands against a k8s cluster the user has access to. It supports for having multiple contexts for as many clusters as you have access to. In these docs we will setup 2 contexts, a minikube and a GCP context. - -## What are Helm Charts, and why they are useful for oCIS - -[Helm](https://helm.sh/) is the equivalent of a package manager for Kubernetes. It can be described as a layer on top of how you would write pods, deployments or any other k8s resource declaration. - -### Installing Helm - -[Follow the official installation guide](https://helm.sh/docs/intro/install/). - -## Setting up Minikube - -For a guide on how to set minikube up follow the [official minikube start guide](https://minikube.sigs.k8s.io/docs/start/) for your specific OS. - -## oCIS charts - -We have not yet published the oCIS Helm charts, therefore you need to clone the git repository manually. It currently also does not support to be run on Kind or Minikube clusters. For known issues and planned features, please have a look at the [GitHub issue tracker](https://github.com/owncloud/ocis-charts/issues). - -Configuration options are described [here](https://github.com/owncloud/ocis-charts/tree/master/charts/ocis#configuration). - -### Run oCIS - -1. clone the charts: `git clone https://github.com/owncloud/ocis-charts.git /var/tmp/ocis-charts` -2. cd into the charts root: `cd /var/tmp/ocis-charts/charts/ocis` -3. install the package: `helm install ocis .` (you need to set configuration values in almost all cases) -4. verify the application is running in the cluster: `kubectl get pods` diff --git a/docs/ocis/deployment/monitoring-tracing.md b/docs/ocis/deployment/monitoring-tracing.md deleted file mode 100644 index 83c6241e24..0000000000 --- a/docs/ocis/deployment/monitoring-tracing.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "Monitoring & Tracing" -date: 2020-02-27T20:35:00+01:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: monitoring-tracing.md ---- - -{{< toc >}} - -Monitoring and tracing gives developers and admin insights into a complex system, in this case oCIS. - -If you are a developer and want to trace during developing you should have a look at [example server setup]({{< ref "../development/tracing" >}}). - -This documentation describes how to set up a long-running monitoring & tracing infrastructure for one or multiple oCIS servers or deployments. After reading this guide, you also should know everything needed to integrate oCIS into your existing monitoring and tracing infrastructure. - -# Overview about the proposed solution - -{{< figure src="/ocis/static/monitoring_tracing_overview.drawio.svg" >}} - -## Monitoring & tracing clients - -We assume that you already have oCIS deployed on one or multiple servers by using our deployment examples (see rectangle on the left). On these servers our monitoring & tracing clients, namely Telegraf and Jaeger agent, need to be added. - -Telegraf will collect host metrics (CPU, RAM, network, processes, ...) and docker metrics (per container CPU, RAM, network, ...). Telegraf is also configured to scrape metrics from Prometheus metric endpoints which oCIS exposes, this is done by the Prometheus input plugin . The metrics from oCIS and all other metrics gathered will be exposed with the Prometheus output plugin and can therefore be scraped by our monitoring & tracing server. - -Jaeger agent is being configured as target for traces in oCIS. It then will receive traces from all oCIS services, add some process tags to them and forward them to our Jaeger collector on our monitoring & tracing server. - -For more information and how to deploy it, see [monitoring & tracing client](https://github.com/owncloud-devops/monitoring-tracing-client). - -## Monitoring & tracing server - -A live version of the monitoring and tracing server for our demo instances is available here: [Grafana](https://grafana.infra.owncloud.works), [Prometheus](https://prometheus.infra.owncloud.works) and [Jaeger Query](https://jaeger.infra.owncloud.works). - -The monitoring & tracing server is considered as shared infrastructure and is normally used for different services. This means that oCIS is not the only software whose metrics and traces are available on the monitoring server. It is also possible that data of multiple oCIS instances are available on the monitoring server. - -Metrics are scraped, stored and can be queried with Prometheus. For the visualization of these metrics Grafana is used. Because Prometheus is scraping the metrics from the oCIS server (pull model instead of a push model), the Prometheus server must have access to the exposed endpoint of the Telegraf Prometheus output plugin. - -Jaeger collector receives traces sent by the Jaeger agent on the oCIS servers and persists them in ElasticSearch. From there the user can query and visualize the traces in Jaeger query or in Grafana. Because Jaeger agent is actively sending traces to the monitoring & tracing server, the server must be reachable from the oCIS server. - -For more information and how to deploy it, see [monitoring & tracing server](https://github.com/owncloud-devops/monitoring-tracing-server). diff --git a/docs/ocis/deployment/oc10_ocis_parallel.md b/docs/ocis/deployment/oc10_ocis_parallel.md deleted file mode 100644 index af5e3f2fc1..0000000000 --- a/docs/ocis/deployment/oc10_ocis_parallel.md +++ /dev/null @@ -1,168 +0,0 @@ ---- -title: "Parallel deployment of oC10 and oCIS" -date: 2020-10-12T14:04:00+01:00 -weight: 24 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: oc10_ocis_parallel.md ---- - -{{< toc >}} - -## Overview - -- This setup reflects [stage 6 of the oC10 to oCIS migration plan]({{< ref "migration#stage-6-parallel-deployment" >}}) -- Traefik generating self-signed certificates for local setup or obtaining valid SSL certificates for a server setup -- OpenLDAP server with demo users -- LDAP admin interface to edit users -- Keycloak as OpenID Connect provider in federation with the LDAP server -- ownCloud 10 with MariaDB and Redis - - ownCloud 10 is configured to synchronize users from the LDAP server - - ownCloud 10 is used to use OpenID Connect for authentication with Keycloak -- oCIS running behind Traefik as reverse proxy - - oCIS is using the ownCloudSQL storage driver on the same files and same database as ownCloud 10 - - oCIS is using Keycloak as OpenID Connect provider - - oCIS is using the LDAP server as user backend -- All requests to both oCIS and oC10 are routed through the oCIS proxy and will be routed based on an OIDC claim to one of them. Therefore admins can change on a user basis in the LDAP which backend is used. - -[Find this example on GitHub](https://github.com/owncloud/ocis/tree/master/deployments/examples/oc10_ocis_parallel) - -## Server Deployment - -### Requirements - -- Linux server with docker and docker-compose installed -- four domains set up and pointing to your server - - cloud.\* for serving oCIS - - keycloak.\* for serving Keycloak - - ldap .\* for serving the LDAP management UI - - traefik.\* for serving the Traefik dashboard - -See also [example server setup]({{< ref "preparing_server" >}}) - -### Install this example - -- Clone oCIS repository - - `git clone https://github.com/owncloud/ocis.git` - -- Go to the deployment example - - `cd ocis/deployment/examples/oc10_ocis_parallel` - -- Open the `.env` file in a text editor - The file by default looks like this: - - ```bash - # If you're on a internet facing server please comment out following line. - # It skips certificate validation for various parts of oCIS and is needed if you use self signed certificates. - INSECURE=true - - ### Traefik settings ### - TRAEFIK_LOG_LEVEL= - # Serve Traefik dashboard. Defaults to "false". - TRAEFIK_DASHBOARD= - # Domain of Traefik, where you can find the dashboard. Defaults to "traefik.owncloud.test" - TRAEFIK_DOMAIN= - # Basic authentication for the dashboard. Defaults to user "admin" and password "admin" - TRAEFIK_BASIC_AUTH_USERS= - # Email address for obtaining LetsEncrypt certificates, needs only be changed if this is a public facing server - TRAEFIK_ACME_MAIL= - - ### shared oCIS / oC10 settings ### - # Domain of oCIS / oC10, where you can find the frontend. Defaults to "cloud.owncloud.test" - CLOUD_DOMAIN= - - ### oCIS settings ### - # oCIS version. Defaults to "latest" - OC_DOCKER_TAG= - # JWT secret which is used for the storage provider. Must be changed in order to have a secure oCIS. Defaults to "Pive-Fumkiu4" - OC_JWT_SECRET= - # JWT secret which is used for uploads to create transfer tokens. Must be changed in order to have a secure oCIS. Defaults to "replace-me-with-a-transfer-secret" - STORAGE_TRANSFER_SECRET= - # Machine auth api key secret. Must be changed in order to have a secure oCIS. Defaults to "change-me-please" - OC_MACHINE_AUTH_API_KEY= - - ### oCIS settings ### - # oC10 version. Defaults to "latest" - OC10_DOCKER_TAG= - # client secret which the openidconnect app uses to authenticate to Keycloak. Defaults to "oc10-oidc-secret" - OC10_OIDC_CLIENT_SECRET= - # app which will be shown when opening the ownCloud 10 UI. Defaults to "files" but also could be set to "web" - OWNCLOUD_DEFAULT_APP= - # if set to "false" (default) links will be opened in the classic UI, if set to "true" ownCloud Web is used - OWNCLOUD_WEB_REWRITE_LINKS= - - ### LDAP settings ### - # password for the LDAP admin user "cn=admin,dc=owncloud,dc=com", defaults to "admin" - LDAP_ADMIN_PASSWORD= - # Domain of the LDAP management frontend. Defaults to "ldap.owncloud.test" - LDAP_MANAGER_DOMAIN= - - ### Keycloak ### - # Domain of Keycloak, where you can find the management and authentication frontend. Defaults to "keycloak.owncloud.test" - KEYCLOAK_DOMAIN= - # Realm which to be used with oC10 and oCIS. Defaults to "owncloud" - KEYCLOAK_REALM= - # Admin user login name. Defaults to "admin" - KEYCLOAK_ADMIN_USER= - # Admin user login password. Defaults to "admin" - KEYCLOAK_ADMIN_PASSWORD= - ``` - - You are installing oCIS on a server and Traefik will obtain valid certificates for you so please remove `INSECURE=true` or set it to `false`. - - If you want to use the Traefik dashboard, set TRAEFIK_DASHBOARD to `true` (default is `false` and therefore not active). If you activate it, you must set a domain for the Traefik dashboard in `TRAEFIK_DOMAIN=` e.g. `TRAEFIK_DOMAIN=traefik.owncloud.test`. - - The Traefik dashboard is secured by basic auth. Default credentials are the user `admin` with the password `admin`. To set your own credentials, generate a htpasswd (e.g. by using [an online tool](https://htpasswdgenerator.de/) or a cli tool). - - Traefik will issue certificates with LetsEncrypt and therefore you must set an email address in `TRAEFIK_ACME_MAIL=`. - - By default oCIS will be started in the `latest` version. If you want to start a specific version of oCIS set the version to `OC_DOCKER_TAG=`. Available versions can be found on [Docker Hub](https://hub.docker.com/r/owncloud/ocis/tags?page=1&ordering=last_updated). - - Set your domain for the oC10 and oCIS frontend in `CLOUD_DOMAIN=`, e.g. `CLOUD_DOMAIN=cloud.owncloud.test`. - - By default ownCloud 10 will be started in the `latest` version. If you want to start a specific version of oCIS set the version to `OC10_DOCKER_TAG=`. Available versions can be found on [Docker Hub](https://hub.docker.com/r/owncloud/ocis/tags?page=1&ordering=last_updated). - - You can switch the default application of ownCloud 10 by setting`OWNCLOUD_DEFAULT_APP=files` in oder to have the classic UI as frontend, which is also the default. If you prefer ownCloud Web as the default application in ownCloud 10 just set `OWNCLOUD_DEFAULT_APP=web`. - - In oder to change the default link open action which defaults to the classic UI (`OWNCLOUD_WEB_REWRITE_LINKS=false`) you can set it to `OWNCLOUD_WEB_REWRITE_LINKS=true`. This will lead to links being opened in ownCloud Web. - - The OpenLDAP server in this example deployment has an admin users, which is also used as bind user in order to keep these examples simple. You can change the default password "admin" to a different one by setting it to `LDAP_ADMIN_PASSWORD=...`. - - Set your domain for the LDAP manager UI in `LDAP_MANAGER_DOMAIN=`, e.g. `ldap.owncloud.test`. - - Set your domain for the Keycloak administration panel and authentication endpoints to `KEYCLOAK_DOMAIN=` e.g. `KEYCLOAK_DOMAIN=keycloak.owncloud.test`. - - Changing the used Keycloak realm can be done by setting `KEYCLOAK_REALM=`. This defaults to the ownCloud realm `KEYCLOAK_REALM=owncloud`. The ownCloud realm will be automatically imported on startup and includes our demo users. - - You probably should secure your Keycloak admin account by setting `KEYCLOAK_ADMIN_USER=` and `KEYCLOAK_ADMIN_PASSWORD=` to values other than `admin`. - - Now you have configured everything and can save the file. - -- Start the docker stack - - `docker-compose up -d` - -- You now can visit the cloud, oC10 or oCIS depending on the user configuration. Marie defaults to oC10 and Richard and Einstein default to oCIS, but you can change the ownCloud selector at any time in the LDAP management UI. - -## Local setup - -For a more simple local ocis setup see [Getting started]({{< ref "../getting-started" >}}) - -This docker stack can also be run locally. One downside is that Traefik can not obtain valid SSL certificates and therefore will create self-signed ones. This means that your browser will show scary warnings. Another downside is that you can not point DNS entries to your localhost. So you have to add static host entries to your computer. - -On Linux and macOS you can add them to your `/etc/hosts` file and on Windows to `C:\Windows\System32\Drivers\etc\hosts` file like this: - -``` -127.0.0.1 cloud.owncloud.test -127.0.0.1 keycloak.owncloud.test -127.0.0.1 ldap.owncloud.test -127.0.0.1 traefik.owncloud.test -``` - -After that you're ready to start the application stack: - -`docker-compose up -d` - -You now can visit the cloud, oC10 or oCIS depending on the user configuration. Marie defaults to oC10 and Richard and Einstein default to oCIS, but you can change the ownCloud selector at any time in the LDAP management UI. diff --git a/docs/ocis/deployment/ocis_and_wopi_drawio.svg b/docs/ocis/deployment/ocis_and_wopi_drawio.svg deleted file mode 100644 index 1e1ac8008c..0000000000 --- a/docs/ocis/deployment/ocis_and_wopi_drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
cs3api
cs3api
app registry
app registry
/app/list
/app/open
/app/list...
cs3api
/listapps
/openapp
cs3api...
frontend
frontend
cs3api
/registerapp
cs3api...
GET /hosting/discovery 
GET /hosting/discovery 
/iop/open...
/iop/open...
app provider
(per web office)
app provider...
graph
webdav
ocs
graph...
/space1/foo.docx
/space1/foo.docx
User
User
/space2/bar.docx
/space2/bar.docx
fileid c
fileid c
Web Office
Web Office
Web Office
Web Office
Web Office
Web Office
cs3org/wopiserver
cs3org/wopiserver
cs3org/wopiserver
cs3org/wopiserver
wopi
wopi
fileid a
fileid a
fileid b
fileid b
User
User
Collabora:
for collaborative edit sessions
a sticky route by fileid
(from wopiSrc) is needed

OnlyOffice:
automatic handling
Collabora:...
inter services communication
inter services communication
all outside communication via the proxy service (api gateway)
all outside communication via the proxy service (api gat...
1
1
2
2
8
8
9
9
6
6
4
4
3
3
7
7
19
19
20
20
13
13
11
11
10
10
12
12
17
17
15
15
18
18
14
14
16
16
21
21
5
5
office application
office application
https://office-application.owncloud.test
https://office-application.owncloud....
https://ocis.owncloud.test
https://ocis.owncloud.test
wopi server
wopi server
ocis
ocis
reverse proxy
reverse proxy
User
User
wopi -> general.wopiurl
address an office application can reach the wopi server
wopi -> general.wopiurl...
reverse proxy
reverse proxy
https://wopiserver.owncloud.test
https://wopiserver.owncloud.test
APP_PROVIDER_DRIVER: wopi
  # for display purposes only
  APP_PROVIDER_WOPI_APP_NAME: Office-Application
  # address of the office application server
  APP_PROVIDER_WOPI_APP_URL: https://office-application.owncloud.test
  # where can the app provider reach the wopiserver
  APP_PROVIDER_WOPI_WOPI_SERVER_EXTERNAL_URL: https://wopiserver.owncloud.test
  #  the base URL to access ocis (global OC_URL, or overwritten by the below)
  APP_PROVIDER_WOPI_FOLDER_URL_BASE_URL: https://ocis.owncloud.test
APP_PROVIDER_DRIVER: wopi...
wopi -> ocis_wopi/config/wopiserver/wopiserver.conf.dist
wopi -> ocis_wopi/config/wopiserver/wopiserver.conf.dist
a. Open oC web
b. List space
c. Select file
d. Open selected file via office app
e. oC Web opens office url with token in an iframe
a. Open oC web...
a. load:    /app/list => display available office apps
a+b+c                   => obtain file id
e. call:     /app/open
    return: office url to open:
a. load:    /app/list => display available of...
https://office-application.owncloud.test/xyz?
wopiSrc=https://wopiserver.owncloud.test/wopi/xxx/file-id-123

Token management is for security reasons not part of the URL
https://office-application.owncloud.test/xyz?wopiSrc=https:...
reverse proxy
reverse proxy
wopi -> cs3.revagateway
(cs3 api gateway)
wopi -> cs3.revagateway...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/ocis/deployment/ocis_full.md b/docs/ocis/deployment/ocis_full.md deleted file mode 100644 index 88b4851d6d..0000000000 --- a/docs/ocis/deployment/ocis_full.md +++ /dev/null @@ -1,415 +0,0 @@ ---- -title: "Full modular oCIS with WebOffice" -date: 2024-06-25T00:00:00+01:00 -weight: 24 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: opencloud_full.md ---- - -{{< toc >}} - -## Overview - -* oCIS, the collaboration service, Collabora or OnlyOffice running behind Traefik as reverse proxy -* Collabora or OnlyOffice enable you to edit office documents in your browser -* The collaboration server acts as a bridge to make the oCIS storage accessible to Collabora and OnlyOffice -* Traefik generating self-signed certificates for local setup or obtaining valid SSL certificates for a server setup -* The whole deployment acts as a modular toolkit to use different flavors of office suites and ocis features - -[Find this example on GitHub](https://github.com/owncloud/ocis/tree/master/deployments/examples/ocis_full) - -## Easy Default - -The Infinite Scale Team and product management are providing a default setup for oCIS. - -### Goal: - - provide a good starting point for a production deployment - - minimal effort to get started with an opinionated setup - - keep it adjustable it to your needs. - -### Default Components - -- Infinite Scale -- Full Text Search -- Collabora Online Web Office -- Prepared for LetsEncrypt SSL certificates via Traefik Reverse Proxy - -### Optional Components - -- ClamAV Virusscanner -- Cloud Importer (Experimental) -- OnlyOffice as an alternative to Collabora -- S3 Storage config to connect to an S3 storage backend -- S3 Minio Server as a local S3 storage backend for debugging and development - -### Important Note - -If you deviate from the configuration setup and let the `collaboration` service run in its own container, you MUST -ensure the ocis configuration is shared as shown in the example deployment. This is because secrets generated -must be accessible for all services. - -## Server Deployment - -### Requirements - -* Linux server with docker and docker-compose installed -* Three domains set up and pointing to your server - * ocis.* for serving oCIS - * collabora.* for serving Collabora - * onlyoffice.* for serving OnlyOffice - * wopiserver.* for serving the WOPI server - * traefik.* for serving the Traefik dashboard - * companion.* for serving the uppy companion app - -See also [example server setup]({{< ref "preparing_server" >}}) - -### Install oCIS and Traefik - -* Clone oCIS repository - - `git clone https://github.com/owncloud/ocis.git --depth 1` - -* Go to the deployment example - - `cd ocis/deployments/examples/ocis_full` - -* Open the `.env` file in a text editor. - - The file by default looks like this: - - ```shell {linenos=table,hl_lines=[8,24,48,50,135,138]} - ## Basic Settings ## - # Define the docker compose log driver used. - # Defaults to local - LOG_DRIVER= - # If you're on an internet facing server, comment out following line. - # It skips certificate validation for various parts of Infinite Scale and is - # needed when self signed certificates are used. - INSECURE=true - - - ## Traefik Settings ## - # Note: Traefik is always enabled and can't be disabled. - # Serve Traefik dashboard. - # Defaults to "false". - TRAEFIK_DASHBOARD= - # Domain of Traefik, where you can find the dashboard. - # Defaults to "traefik.owncloud.test" - TRAEFIK_DOMAIN= - # Basic authentication for the traefik dashboard. - # Defaults to user "admin" and password "admin" (written as: "admin:admin"). - TRAEFIK_BASIC_AUTH_USERS= - # Email address for obtaining LetsEncrypt certificates. - # Needs only be changed if this is a public facing server. - TRAEFIK_ACME_MAIL= - # Set to the following for testing to check the certificate process: - # "https://acme-staging-v02.api.letsencrypt.org/directory" - # With staging configured, there will be an SSL error in the browser. - # When certificates are displayed and are emitted by # "Fake LE Intermediate X1", - # the process went well and the envvar can be reset to empty to get valid certificates. - TRAEFIK_ACME_CASERVER= - - - ## Infinite Scale Settings ## - # Beside Traefik, this service must stay enabled. - # Disable only for testing purposes. - # Note: the leading colon is required to enable the service. - OCIS=:ocis.yml - # The oCIS container image. - # For production releases: "owncloud/ocis" - # For rolling releases: "owncloud/ocis-rolling" - # Defaults to production if not set otherwise - OC_DOCKER_IMAGE=owncloud/ocis-rolling - # The oCIS container version. - # Defaults to "latest" and points to the latest stable tag. - OC_DOCKER_TAG= - # Domain of oCIS, where you can find the frontend. - # Defaults to "ocis.owncloud.test" - OC_DOMAIN= - # oCIS admin user password. Defaults to "admin". - ADMIN_PASSWORD= - # Demo users should not be created on a production instance, - # because their passwords are public. Defaults to "false". - # Also see: https://doc.owncloud.com/ocis/latest/deployment/general/general-info.html#demo-users-and-groups - DEMO_USERS= - # Define the oCIS loglevel used. - # For more details see: - # https://doc.owncloud.com/ocis/latest/deployment/services/env-vars-special-scope.html - LOG_LEVEL= - # Define the kind of logging. - # The default log can be read by machines. - # Set this to true to make the log human readable. - # LOG_PRETTY=true - # - # Define the oCIS storage location. Set the paths for config and data to a local path. - # Note that especially the data directory can grow big. - # Leaving it default stores data in docker internal volumes. - # For more details see: - # https://doc.owncloud.com/ocis/next/deployment/general/general-info.html#default-paths - # OC_CONFIG_DIR=/your/local/ocis/config - # OC_DATA_DIR=/your/local/ocis/data - - # S3 Storage configuration - optional - # Infinite Scale supports S3 storage as primary storage. - # Per default, S3 storage is disabled and the local filesystem is used. - # To enable S3 storage, uncomment the following line and configure the S3 storage. - # For more details see: - # https://doc.owncloud.com/ocis/next/deployment/storage/s3.html - # Note: the leading colon is required to enable the service. - #S3NG=:s3ng.yml - # Configure the S3 storage endpoint. Defaults to "http://minio:9000" for testing purposes. - S3NG_ENDPOINT= - # S3 region. Defaults to "default". - S3NG_REGION= - # S3 access key. Defaults to "ocis" - S3NG_ACCESS_KEY= - # S3 secret. Defaults to "ocis-secret-key" - S3NG_SECRET_KEY= - # S3 bucket. Defaults to "ocis" - S3NG_BUCKET= - # - # For testing purposes, add local minio S3 storage to the docker-compose file. - # The leading colon is required to enable the service. - #S3NG_MINIO=:minio.yml - # Minio domain. Defaults to "minio.owncloud.test". - MINIO_DOMAIN= - - # Define SMPT settings if you would like to send Infinite Scale email notifications. - # For more details see: - # https://doc.owncloud.com/ocis/latest/deployment/services/s-list/notifications.html - # NOTE: when configuring Inbucket, these settings have no effect, see inbucket.yml for details. - # SMTP host to connect to. - SMTP_HOST= - # Port of the SMTP host to connect to. - SMTP_PORT= - # An eMail address that is used for sending Infinite Scale notification eMails - # like "ocis notifications ". - SMTP_SENDER= - # Username for the SMTP host to connect to. - SMTP_USERNAME= - # Password for the SMTP host to connect to. - SMTP_PASSWORD= - # Authentication method for the SMTP communication. - SMTP_AUTHENTICATION= - # Allow insecure connections to the SMTP server. Defaults to false. - SMTP_INSECURE= - - - ## Default Enabled Services ## - - ### Apache Tika Content Analysis Toolkit ### - # Tika (search) is enabled by default, comment if not required. - # Note: the leading colon is required to enable the service. - TIKA=:tika.yml - # Set the desired docker image tag or digest. - # Defaults to "latest" - TIKA_IMAGE= - - - ### Collabora Settings ### - # Collabora web office is default enabled, comment if not required. - # Note: the leading colon is required to enable the service. - COLLABORA=:collabora.yml - # Domain of Collabora, where you can find the frontend. - # Defaults to "collabora.owncloud.test" - COLLABORA_DOMAIN= - # Domain of the wopiserver which handles OnlyOffice. - # Defaults to "wopiserver.owncloud.test" - WOPISERVER_DOMAIN= - # Admin user for Collabora. - # Defaults to "admin". - # Collabora Admin Panel URL: - # https://{COLLABORA_DOMAIN}/browser/dist/admin/admin.html - COLLABORA_ADMIN_USER= - # Admin password for Collabora. - # Defaults to "admin". - COLLABORA_ADMIN_PASSWORD= - # Set to true to enable SSL for Collabora Online. Default is true if not specified. - COLLABORA_SSL_ENABLE=false - # If you're on an internet-facing server, enable SSL verification for Collabora Online. - # Please comment out the following line: - COLLABORA_SSL_VERIFICATION=false - ... - ``` - #### Reverse Proxy and SSL - - {{< hint type=important >}} - **Domains and SSL**\ - Though it may sound strange, most of the setups are failing due to a misconfiguration regarding domains and SSL. Please make sure that you have set up the domains correctly and that they are pointing to your server. Also, make sure that you have set up the email address for the LetsEncrypt certificates in `TRAEFIK_ACME_MAIL=`. - {{< /hint >}} - - You are installing oCIS on a server and Traefik will obtain valid certificates for you so please remove `INSECURE=true` or set it to `false`. - - Traefik will issue certificates with LetsEncrypt and therefore you must set an email address in `TRAEFIK_ACME_MAIL=`. - - #### Infinite Scale Release and Version - By default oCIS will be started in the `latest` rolling version. Please note that this deployment does currently not work with the 5.x productions releases. - The oCIS "collaboration" service, which is required by this deployment, is not part of the 5.x releases. - - If you want to use a specific version of oCIS, set the version to a dedicated tag like `OC_DOCKER_TAG=6.3.0`. The minimal required oCIS Version to run this deployment is 6.3.0. Available production versions can be found on [Docker Hub Production](https://hub.docker.com/r/owncloud/ocis/tags?page=1&ordering=last_updated) and available rolling releases can be found on [Docker Hub Rolling](https://hub.docker.com/r/owncloud/ocis-rolling/tags?page=1&ordering=last_updated) - - {{< hint type=info title="oCIS Releases" >}} - You can read more about the different oCIS releases in the [oCIS Release Lifecycle](../release_roadmap.md). - {{< /hint >}} - - Set your domain for the oCIS frontend in `OC_DOMAIN=`, e.g. `OC_DOMAIN=ocis.owncloud.test`. - - Set the initial admin user password in `ADMIN_PASSWORD=`, it defaults to `admin`. - - Web Office needs a public domain for the WOPI server to be set in `WOPISERVER_DOMAIN=`, where the office suite can work on the files via the WOPI protocol. - - Now it's time to set up Collabora and you need to configure the domain of Collabora in `COLLABORA_DOMAIN=`. - - If you want to use the Collabora admin panel you need to set the username and password for the administrator in `COLLABORA_ADMIN_USER=` and `COLLABORA_ADMIN_PASSWORD=`. - -* Start the docker stack - - `docker-compose up -d` - -* You now can visit oCIS and are able to open an office document in your browser. You may need to wait some minutes until all services are fully ready, so make sure that you try to reload the pages from time to time. - -## Local Setup - -This docker stack can also be run locally. One downside is that Traefik can not obtain valid SSL certificates and therefore will create self-signed ones. This means that your browser will show scary warnings. Another downside is that you can not point DNS entries to your localhost. So you have to add static host entries to your computer. - -On Linux and macOS you can add them to your `/etc/hosts` file and on Windows to `C:\Windows\System32\Drivers\etc\hosts` file like this: - -``` -127.0.0.1 ocis.owncloud.test -127.0.0.1 traefik.owncloud.test -127.0.0.1 collabora.owncloud.test -127.0.0.1 onlyoffice.owncloud.test -127.0.0.1 wopiserver.owncloud.test -127.0.0.1 mail.owncloud.test -127.0.0.1 companion.owncloud.test -127.0.0.1 minio.owncloud.test -``` - -After that, you're ready to start the application stack: - -`docker-compose pull && docker-compose up -d` - -Open https://collabora.owncloud.test in your browser and accept the invalid certificate warning. - -Open https://ocis.owncloud.test in your browser and accept the invalid certificate warning. You are now able to open an office document in your browser. You may need to wait some minutes until all services are fully ready, so make sure that you try to reload the pages from time to time. - -## Additional services - -### Clamav Virusscanner - -You can add a Clamav Virusscanner to the stack. The service is disabled by default. To enable it, uncomment the `CLAMAV` line in the `.env` file. - -```shell {linenos=table,hl_lines=[3]} -## Clamav Settings ## -# The leading colon is required to enable the service. -CLAMAV=:clamav.yml -``` - -After enabling that service, you can add the service to the stack with `docker-compose up -d` again. - -### Traefik Dashboard - -If you want to use the Traefik dashboard, set TRAEFIK_DASHBOARD to `true` (default is `false` and therefore not active). If you activate it, you must set a domain for the Traefik dashboard in `TRAEFIK_DOMAIN=` e.g. `TRAEFIK_DOMAIN=traefik.owncloud.test`. - -The Traefik dashboard is secured by basic auth. Default credentials are the user `admin` with the password `admin`. To set your own credentials, generate a htpasswd (e.g. by using [an online tool](https://htpasswdgenerator.de/) or a cli tool). - -```shell {linenos=table,hl_lines=[4,7,10]} -### Traefik Settings ### -# Serve Traefik dashboard. -# Defaults to "false". -TRAEFIK_DASHBOARD=true -# Domain of Traefik, where you can find the dashboard. -# Defaults to "traefik.owncloud.test" -TRAEFIK_DOMAIN= -# Basic authentication for the traefik dashboard. -# Defaults to user "admin" and password "admin" (written as: "admin:admin"). -TRAEFIK_BASIC_AUTH_USERS= -``` -### Cloud Importer - -Cloud importer can provide an Upload Interface to your oCIS instance. It is a separate service that can be enabled in the `.env` file. - -```shell {linenos=table,hl_lines=[3]} -## Uppy Companion Settings ## -# The leading colon is required to enable the service. -CLOUD_IMPORTER=:cloudimporter.yml -## The docker image to be used for uppy companion. -# owncloud has built a container with public link import support. -COMPANION_IMAGE= -# Domain of Uppy Companion. Defaults to "companion.owncloud.test". -COMPANION_DOMAIN= -# Provider settings, see https://uppy.io/docs/companion/#provideroptions for reference. -# Empty by default, which disables providers. -COMPANION_ONEDRIVE_KEY= -COMPANION_ONEDRIVE_SECRET= -``` - -After Enabling that servive by uncommenting the `CLOUD_IMPORTER` line, you can add the service to the stack with `docker-compose up -d` again. - -### S3 Storage - -You can use an S3 compatible Storage as the primary data store. The metadatata of the files will still be stored on the local filesystem. - -{{}} -The endpoint, region and keys for your S3 Server need to be provided by the service or company who operates it. Normally you can get these via web portal. -{{}} - -```shell {linenos=table,hl_lines=[8,10,12,14,16,18]} -# S3 Storage configuration - optional -# Infinite Scale supports S3 storage as primary storage. -# Per default, S3 storage is disabled and the local filesystem is used. -# To enable S3 storage, uncomment the following line and configure the S3 storage. -# For more details see: -# https://doc.owncloud.com/ocis/next/deployment/storage/s3.html -# Note: the leading colon is required to enable the service. -# S3NG=:s3ng.yml -# Configure the S3 storage endpoint. Defaults to "http://minio:9000" for testing purposes. -S3NG_ENDPOINT= -# S3 region. Defaults to "default". -S3NG_REGION= -# S3 access key. Defaults to "ocis" -S3NG_ACCESS_KEY= -# S3 secret. Defaults to "ocis-secret-key" -S3NG_SECRET_KEY= -# S3 bucket. Defaults to "ocis" -S3NG_BUCKET= -``` - -#### Use a Local Minio S3 Storage Backend - -For testing purposes, you can use a local minio S3 storage backend. To enable it, uncomment the `S3NG_MINIO` line in the `.env` file. - -The frontend for the minio server is available at `http://minio.owncloud.test` and the access key is `ocis` and the secret key is `ocis-secret`. - -## Local Setup for Web Development - -In case you want to run ownCloud Web from a development branch together with this deployment example (e.g. for feature development for the app provider frontend) you can use this deployment example with the local setup and some additional steps as described below. - -1. Clone the [ownCloud Web repository](https://github.com/owncloud/web) on your development machine. -2. Run `pnpm i && pnpm build:w` for `web`, so that it creates and continuously updates the `dist` folder for web. -3. Add the dist folder as read only volume to `volumes` section of the `ocis` service in the `docker-compose.yml` file: - ```yaml - - /your/local/path/to/web/dist/:/web/dist:ro - ``` - Make sure to point to the `dist` folder inside your local copy of the web repository. -4. Set the oCIS environment variables `WEB_ASSET_CORE_PATH` and `WEB_ASSET_APPS_PATH` in the `environment` section of the `ocis` service, so that it uses your mounted dist folder for the web assets, instead of the assets that are embedded into oCIS. - ```yaml - WEB_ASSET_CORE_PATH: "/web/dist" - WEB_ASSET_APPS_PATH: "/web/dist" - ``` -5. Start the deployment example as described above in the `Local setup` section. - -For app provider frontend development in `web` you can find the source code in `web/packages/web-app-external`. Some parts of the integration live in `web/packages/web-app-files`. - -## Using Podman - -Podman doesn't have a "local" log driver. Also it's docker-compatibility socket does live in a different location, especially when running a rootless podman. - -Using the following settings you can run the deployment with a recent podman version: - -```bash -LOG_DRIVER=journald \ -DOCKER_SOCKET_PATH=/run/user/1000/podman/podman.sock \ -podman compose start -``` diff --git a/docs/ocis/deployment/ocis_hello.md b/docs/ocis/deployment/ocis_hello.md deleted file mode 100644 index 58797eae61..0000000000 --- a/docs/ocis/deployment/ocis_hello.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: "oCIS with Hello extension" -date: 2020-10-12T14:04:00+01:00 -weight: 24 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: ocis_hello.md ---- - -{{< toc >}} - -## Overview - -- oCIS running behind Traefik as reverse proxy -- oCIS Hello extension runs beside the main oCIS stack and providing the Hello functionality -- Traefik generating self-signed certificates for local setup or obtaining valid SSL certificates for a server setup - -[Find this example on GitHub](https://github.com/owncloud/ocis/tree/master/deployments/examples/ocis_hello) - -The docker stack consists of 3 containers. One of them is Traefik, a proxy which is terminating SSL and forwards the requests to oCIS in the internal docker network. - -The oCIS Hello extension is running in another container and enables you to use its functionality from within ownCloud Web. - -## Server Deployment - -### Requirements - -- Linux server with docker and docker-compose installed -- two domains set up and pointing to your server - - ocis.\* for serving oCIS - - traefik.\* for serving the Traefik dashboard - -See also [example server setup]({{< ref "preparing_server" >}}) - -### Install oCIS and Traefik - -- Clone oCIS repository - - `git clone https://github.com/owncloud/ocis.git` - -- Go to the deployment example - - `cd ocis/deployment/examples/ocis_hello` - -- Open the `.env` file in a text editor. - - The file by default looks like this: - - ```bash - # If you're on a internet facing server please comment out following line. - # It skips certificate validation for various parts of oCIS and is needed if you use self signed certificates. - INSECURE=true - - ### Traefik settings ### - # Serve Traefik dashboard. Defaults to "false". - TRAEFIK_DASHBOARD= - # Domain of Traefik, where you can find the dashboard. Defaults to "traefik.owncloud.test" - TRAEFIK_DOMAIN= - # Basic authentication for the dashboard. Defaults to user "admin" and password "admin" - TRAEFIK_BASIC_AUTH_USERS= - # Email address for obtaining LetsEncrypt certificates, needs only be changed if this is a public facing server - TRAEFIK_ACME_MAIL= - - ### oCIS settings ### - # oCIS version. Defaults to "latest" - OC_DOCKER_TAG= - # Domain of oCIS, where you can find the frontend. Defaults to "ocis.owncloud.test" - OC_DOMAIN= - # oCIS admin user password. Defaults to "admin". - ADMIN_PASSWORD= - # The demo users should not be created on a production instance - # because their passwords are public. Defaults to "false". - DEMO_USERS= - - ### oCIS Hello settings ### - # oCIS Hello version. Defaults to "latest" - OC_HELLO_DOCKER_TAG= - ``` - - You are installing oCIS on a server and Traefik will obtain valid certificates for you so please remove `INSECURE=true` or set it to `false`. - - If you want to use the Traefik dashboard, set TRAEFIK_DASHBOARD to `true` (default is `false` and therefore not active). If you activate it, you must set a domain for the Traefik dashboard in `TRAEFIK_DOMAIN=` e.g. `TRAEFIK_DOMAIN=traefik.owncloud.test`. - - The Traefik dashboard is secured by basic auth. Default credentials are the user `admin` with the password `admin`. To set your own credentials, generate a htpasswd (e.g. by using [an online tool](https://htpasswdgenerator.de/) or a cli tool). - - Traefik will issue certificates with LetsEncrypt and therefore you must set an email address in `TRAEFIK_ACME_MAIL=`. - - By default oCIS will be started in the `latest` version. If you want to start a specific version of oCIS set the version to `OC_DOCKER_TAG=`. Available versions can be found on [Docker Hub](https://hub.docker.com/r/owncloud/ocis/tags?page=1&ordering=last_updated). - - Set your domain for the oCIS frontend in `OC_DOMAIN=`, e.g. `OC_DOMAIN=ocis.owncloud.test`. - - Set the initial admin user password in `ADMIN_PASSWORD=`, it defaults to `admin`. - - By default the oCIS Hello extension will be started in the `latest` version. If you want to start a specific version of oCIS Hello set the version to `OC_HELLO_DOCKER_TAG=`. Available versions can be found on [Docker Hub](https://hub.docker.com/r/owncloud/ocis-hello/tags?page=1&ordering=last_updated). - - Now you have configured everything and can save the file. - -- Start the docker stack - - `docker-compose up -d` - -- You now can visit oCIS and are able to switch to the Hello extension by using the application switcher on the top right corner of ownCloud Web. You may need to wait some minutes until all services are fully ready, so make sure that you try to reload the pages from time to time. - -## Local setup - -For a more simple local ocis setup see [Getting started]({{< ref "../getting-started" >}}) - -This docker stack can also be run locally. One downside is that Traefik can not obtain valid SSL certificates and therefore will create self-signed ones. This means that your browser will show scary warnings. Another downside is that you can not point DNS entries to your localhost. So you have to add static host entries to your computer. - -On Linux and macOS you can add them to your `/etc/hosts` file and on Windows to `C:\Windows\System32\Drivers\etc\hosts` file like this: - -``` -127.0.0.1 ocis.owncloud.test -127.0.0.1 traefik.owncloud.test -``` - -After that you're ready to start the application stack: - -`docker-compose up -d` - -Open https://ocis.owncloud.test in your browser and accept the invalid certificate warning. You are now able to switch to the Hello extension by using the application switcher on the top right corner of ownCloud Web. You may need to wait some minutes until all services are fully ready, so make sure that you try to reload the pages from time to time. diff --git a/docs/ocis/deployment/ocis_keycloak.md b/docs/ocis/deployment/ocis_keycloak.md deleted file mode 100644 index 10b0455fb4..0000000000 --- a/docs/ocis/deployment/ocis_keycloak.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -title: "oCIS with Keycloak" -date: 2020-10-12T14:04:00+01:00 -weight: 24 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: ocis_keycloak.md ---- - -{{< toc >}} - -## Overview - -* oCIS and Keycloak running behind Traefik as reverse proxy -* Keycloak acting as the IDP for oCIS -* Traefik generating self-signed certificates for local setup or obtaining valid SSL certificates for a server setup - -[Find this example on GitHub](https://github.com/owncloud/ocis/tree/master/deployments/examples/ocis_keycloak) - -The docker stack consists 4 containers. One of them is Traefik, a proxy which is terminating ssl and forwards the requests to oCIS in the internal docker network. It -is also responsible for redirecting requests on the OIDC discovery endpoints (e.g. `.well-known/openid-configuration`) to the correct destination in Keycloak. - -Keycloak add two containers: Keycloak itself and a PostgreSQL as database. Keycloak will be configured as oCIS' IDP instead of the internal IDP [LibreGraph Connect]({{< ref "../../services/idp" >}}) - -The other container is oCIS itself, running all services in one container. In this example oCIS uses the [oCIS storage driver]({{< ref "../storage/storagedrivers" >}}) - -## Server Deployment - -### Requirements - -* Linux server with docker and docker-compose installed -* Three domains set up and pointing to your server - - ocis.* for serving oCIS - - keycloak.* for serving Keycloak - - traefik.* for serving the Traefik dashboard - -See also [example server setup]({{< ref "preparing_server" >}}) - - -### Install oCIS and Traefik - -* Clone oCIS repository - - `git clone https://github.com/owncloud/ocis.git` - -* Go to the deployment example - - `cd ocis/deployments/examples/ocis_keycloak` - -* Open the `.env` file in a text editor. - - The file by default looks like this: - - ```bash - # If you're on a internet facing server please comment out following line. - # It skips certificate validation for various parts of oCIS and is needed if you use self signed certificates. - INSECURE=true - - ### Traefik settings ### - # Serve Traefik dashboard. Defaults to "false". - TRAEFIK_DASHBOARD= - # Domain of Traefik, where you can find the dashboard. Defaults to "traefik.owncloud.test" - TRAEFIK_DOMAIN= - # Basic authentication for the dashboard. Defaults to user "admin" and password "admin" - TRAEFIK_BASIC_AUTH_USERS= - # Email address for obtaining LetsEncrypt certificates, needs only be changed if this is a public facing server - TRAEFIK_ACME_MAIL= - - ### oCIS settings ### - # oCIS version. Defaults to "latest" - OC_DOCKER_TAG= - # Domain of oCIS, where you can find the frontend. Defaults to "ocis.owncloud.test" - OC_DOMAIN= - # ownCloud Web openid connect client id. Defaults to "ocis-web" - OC_OIDC_CLIENT_ID= - - ### Keycloak ### - # Domain of Keycloak, where you can find the management and authentication frontend. Defaults to "keycloak.owncloud.test" - KEYCLOAK_DOMAIN= - # Realm which to be used with oCIS. Defaults to "oCIS" - KEYCLOAK_REALM= - # Admin user login name. Defaults to "admin" - KEYCLOAK_ADMIN_USER= - # Admin user login password. Defaults to "admin" - KEYCLOAK_ADMIN_PASSWORD= - - ``` - - You are installing oCIS on a server and Traefik will obtain valid certificates for you so please remove `INSECURE=true` or set it to `false`. - - If you want to use the Traefik dashboard, set TRAEFIK_DASHBOARD to `true` (default is `false` and therefore not active). If you activate it, you must set a domain for the Traefik dashboard in `TRAEFIK_DOMAIN=` e.g. `TRAEFIK_DOMAIN=traefik.owncloud.test`. - - The Traefik dashboard is secured by basic auth. Default credentials are the user `admin` with the password `admin`. To set your own credentials, generate a htpasswd (e.g. by using [an online tool](https://htpasswdgenerator.de/) or a cli tool). - - Traefik will issue certificates with LetsEncrypt and therefore you must set an email address in `TRAEFIK_ACME_MAIL=`. - - By default oCIS will be started in the `latest` version. If you want to start a specific version of oCIS set the version to `OC_DOCKER_TAG=`. Available versions can be found on [Docker Hub](https://hub.docker.com/r/owncloud/ocis/tags?page=1&ordering=last_updated). - - Set your domain for the oCIS frontend in `OC_DOMAIN=`, e.g. `OC_DOMAIN=ocis.owncloud.test`. - - If you want to change the OIDC client id of th ownCloud Web frontend, you can do this by setting the name to `OC_OIDC_CLIENT_ID=`. - - Set your domain for the Keycloak administration panel and authentication endpoints to `KEYCLOAK_DOMAIN=` e.g. `KEYCLOAK_DOMAIN=keycloak.owncloud.test`. - - Changing the used Keycloak realm can be done by setting `KEYCLOAK_REALM=`. This defaults to the oCIS realm `KEYCLOAK_REALM=oCIS`. The oCIS realm will be automatically imported on startup and includes our demo users. - - You probably should secure your Keycloak admin account by setting `KEYCLOAK_ADMIN_USER=` and `KEYCLOAK_ADMIN_PASSWORD=` to values other than `admin`. - - Now you have configured everything and can save the file. - -* Start the docker stack - - `docker-compose up -d` - -* You now can visit oCIS, Keycloak and Traefik dashboard on your configured domains. You may need to wait some minutes until all services are fully ready, so make sure that you try to reload the pages from time to time. - -## Local setup -For a more simple local ocis setup see [Getting started]({{< ref "../getting-started" >}}) - -This docker stack can also be run locally. One downside is that Traefik can not obtain valid SSL certificates and therefore will create self-signed ones. This means that your browser will show scary warnings. Another downside is that you can not point DNS entries to your localhost. So you have to add static host entries to your computer. - -On Linux and macOS you can add them to your `/etc/hosts` file and on Windows to `C:\Windows\System32\Drivers\etc\hosts` file like this: - -``` -127.0.0.1 ocis.owncloud.test -127.0.0.1 traefik.owncloud.test -127.0.0.1 keycloak.owncloud.test -``` - -After that you're ready to start the application stack: - -`docker-compose up -d` - -Open https://keycloak.owncloud.test in your browser and accept the invalid certificate warning. - -Open https://ocis.owncloud.test in your browser and accept the invalid certificate warning. You now can login to oCIS with the demo users. You may need to wait some minutes until all services are fully ready, so make sure that you try to reload the pages from time to time. diff --git a/docs/ocis/deployment/ocis_ldap.md b/docs/ocis/deployment/ocis_ldap.md deleted file mode 100644 index a0378f2e22..0000000000 --- a/docs/ocis/deployment/ocis_ldap.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: "oCIS with LDAP" -date: 2020-10-12T14:04:00+01:00 -weight: 24 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: ocis_ldap.md ---- - - -{{< toc >}} - -## Overview - -- Traefik generating self-signed certificates for local setup or obtaining valid SSL certificates for a server setup -- OpenLDAP server with demo users -- LDAP admin interface to edit users -- oCIS running behind Traefik as reverse proxy - - oCIS is using the LDAP server as user backend - -[Find this example on GitHub](https://github.com/owncloud/ocis/tree/master/deployments/examples/ocis_ldap) - -## Server Deployment - -### Requirements - -- Linux server with docker and docker-compose installed -- four domains set up and pointing to your server - - ocis.\* for serving oCIS - - ldap .\* for serving the LDAP management UI - - traefik.\* for serving the Traefik dashboard - -See also [example server setup]({{< ref "preparing_server" >}}) - -### Install this example - -- Clone oCIS repository - - `git clone https://github.com/owncloud/ocis.git` - -- Go to the deployment example - - `cd ocis/deployment/examples/ocis_ldap` - -- Open the `.env` file in a text editor. - - The file by default looks like this: - - ```bash - # If you're on a internet facing server please comment out following line. - # It skips certificate validation for various parts of oCIS and is needed if you use self signed certificates. - INSECURE=true - - ### Traefik settings ### - # Serve Traefik dashboard. Defaults to "false". - TRAEFIK_DASHBOARD= - # Domain of Traefik, where you can find the dashboard. Defaults to "traefik.owncloud.test" - TRAEFIK_DOMAIN= - # Basic authentication for the dashboard. Defaults to user "admin" and password "admin" - TRAEFIK_BASIC_AUTH_USERS= - # Email address for obtaining LetsEncrypt certificates, needs only be changed if this is a public facing server - TRAEFIK_ACME_MAIL= - - ### oCIS settings ### - # oCIS version. Defaults to "latest" - OC_DOCKER_TAG= - # Domain of oCIS, where you can find the frontend. Defaults to "ocis.owncloud.test" - OC_DOMAIN= - # JWT secret which is used for the storage provider. Must be changed in order to have a secure oCIS. Defaults to "Pive-Fumkiu4" - OC_JWT_SECRET= - # JWT secret which is used for uploads to create transfer tokens. Must be changed in order to have a secure oCIS. Defaults to "replace-me-with-a-transfer-secret" - STORAGE_TRANSFER_SECRET= - # Machine auth api key secret. Must be changed in order to have a secure oCIS. Defaults to "change-me-please" - OC_MACHINE_AUTH_API_KEY= - - ### LDAP server settings ### - # Password of LDAP user "cn=admin,dc=owncloud,dc=com". Defaults to "admin" - LDAP_ADMIN_PASSWORD= - - ### LDAP manager settings ### - # Domain of LDAP manager. Defaults to "ldap.owncloud.test" - LDAP_MANAGER_DOMAIN= - ``` - - You are installing oCIS on a server and Traefik will obtain valid certificates for you so please remove `INSECURE=true` or set it to `false`. - - If you want to use the Traefik dashboard, set TRAEFIK_DASHBOARD to `true` (default is `false` and therefore not active). If you activate it, you must set a domain for the Traefik dashboard in `TRAEFIK_DOMAIN=` e.g. `TRAEFIK_DOMAIN=traefik.owncloud.test`. - - The Traefik dashboard is secured by basic auth. Default credentials are the user `admin` with the password `admin`. To set your own credentials, generate a htpasswd (e.g. by using [an online tool](https://htpasswdgenerator.de/) or a cli tool). - - Traefik will issue certificates with LetsEncrypt and therefore you must set an email address in `TRAEFIK_ACME_MAIL=`. - - By default oCIS will be started in the `latest` version. If you want to start a specific version of oCIS set the version to `OC_DOCKER_TAG=`. Available versions can be found on [Docker Hub](https://hub.docker.com/r/owncloud/ocis/tags?page=1&ordering=last_updated). - - Set your domain for the oCIS frontend in `OC_DOMAIN=`, e.g. `OC_DOMAIN=cloud.owncloud.test`. - - The OpenLDAP server in this example deployment has an admin users, which is also used as bind user in order to keep these examples simple. You can change the default password "admin" to a different one by setting it to `LDAP_ADMIN_PASSWORD=...`. - - Set your domain for the LDAP manager UI in `LDAP_MANAGER_DOMAIN=`, e.g. `ldap.owncloud.test`. - - Grant the oCIS Admin role to the admin user from your LDAP in `OC_ADMIN_USER_ID:`. You need to enter the uuid of LDAP user. - - {{< hint type=tip title=Encoding >}} - In the .ldif file in this example, the admin user id is base64 encoded. You need to decode it to make it work. - {{< /hint >}} - - Now you have configured everything and can save the file. - -- Start the docker stack - - `docker-compose up -d` - -- You now can visit oCIS and Traefik dashboard on your configured domains. You may need to wait some minutes until all services are fully ready, so make sure that you try to reload the pages from time to time. - -## Local setup - -For a more simple local ocis setup see [Getting started]({{< ref "../getting-started" >}}) - -This docker stack can also be run locally. One downside is that Traefik can not obtain valid SSL certificates and therefore will create self-signed ones. This means that your browser will show scary warnings. Another downside is that you can not point DNS entries to your localhost. So you have to add static host entries to your computer. - -On Linux and macOS you can add them to your `/etc/hosts` file and on Windows to `C:\Windows\System32\Drivers\etc\hosts` file like this: - -``` -127.0.0.1 cloud.owncloud.test -127.0.0.1 keycloak.owncloud.test -127.0.0.1 ldap.owncloud.test -127.0.0.1 traefik.owncloud.test -``` - -After that you're ready to start the application stack: - -`docker-compose up -d` - -Open https://ocis.owncloud.test in your browser and accept the invalid certificate warning. You now can login to oCIS with the default users, which also can be found here: [Getting started]({{< ref "../getting-started#login-to-ocis-web" >}}). You may need to wait some minutes until all services are fully ready, so make sure that you try to reload the pages from time to time. diff --git a/docs/ocis/deployment/preparing_server.md b/docs/ocis/deployment/preparing_server.md deleted file mode 100644 index bd4806b168..0000000000 --- a/docs/ocis/deployment/preparing_server.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: "Preparing a server" -date: 2020-10-12T14:04:00+01:00 -weight: 100 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: preparing_server.md ---- - -{{< toc >}} - - -## Example for Hetzner Cloud -* create server on Hetzner Cloud. Set labels "owner" and "for". Example for hcloud cli: -`hcloud server create --type cx21 --image ubuntu-20.04 --ssh-key admin --name ocis-server --label owner=admin --label for=testing` - -* Configure DNS A-records for needed domains pointing on the servers ip address, for example in CloudFlare - -* Access server via ssh as root - -* Create a new user - - `$ adduser --disabled-password --gecos "" admin` - -* Add user to sudo group - - `$ usermod -aG sudo admin` - -* Install docker - - ``` - apt update - apt install docker.io - ``` - -* Add user to docker group - - `usermod -aG docker admin` - -* Install docker-compose via - - `curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose` - - (docker compose version 1.27.4 as of today) -* Make docker-compose executable - - `chmod +x /usr/local/bin/docker-compose` - - -* Add users pub key to - ``` - mkdir /home/admin/.ssh - echo "" >> /home/admin/.ssh/authorized_keys - chown admin:admin -R /home/admin/.ssh - ``` - -* Secure ssh daemon by editing `/etc/ssh/sshd_config` - ``` - PermitRootLogin no - ChallengeResponseAuthentication no - PasswordAuthentication no - UsePAM no - ``` - -* restart sshd server to apply settings `systemctl restart sshd` - -* Login as the user you created diff --git a/docs/ocis/deployment/systemd.md b/docs/ocis/deployment/systemd.md deleted file mode 100644 index 50aef61293..0000000000 --- a/docs/ocis/deployment/systemd.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: "Systemd service" -date: 2020-09-27T06:00:00+01:00 -weight: 16 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: systemd.md ---- - -{{< toc >}} - -## Install the oCIS binary - -Download the oCIS binary of your preferred version and for your CPU architecture and operating system from [download.owncloud.com](https://download.owncloud.com/ocis/ocis). - -Rename the downloaded binary to `ocis` and move it to `/usr/bin/`. As a next step, you need to mark it as executable with `chmod +x /usr/bin/ocis`. - -When you now run `ocis help` on your command line, you should see the available options for the oCIS command. - -## Systemd service definition - -Create the Systemd service definition for oCIS in the file `/etc/systemd/system/ocis.service` with following content: - -```systemd -[Unit] -Description=OCIS server - -[Service] -Type=simple -User=root -Group=root -EnvironmentFile=/etc/ocis/ocis.env -ExecStart=ocis server -Restart=always - -[Install] -WantedBy=multi-user.target -``` - -{{< hint warning >}} -For reasons of simplicity we are using the root user and group to run oCIS which is not recommended. Please use a non-root user in production environments and modify the oCIS service definition accordingly. -{{< /hint >}} - -In the service definition we referenced `/etc/ocis/ocis.env` as our file containing environment variables for the oCIS process. -In order to create the file we need first to create the folder `/etc/ocis/` and then we can add the actual `/etc/ocis/ocis.env` with following content: - -```bash -OC_URL=https://some-hostname-or-ip:9200 -PROXY_HTTP_ADDR=0.0.0.0:9200 -OC_INSECURE=false - -OC_LOG_LEVEL=error - -OC_CONFIG_DIR=/etc/ocis -OC_BASE_DATA_PATH=/var/lib/ocis -``` - -Since we set `OC_CONFIG_DIR` to `/etc/ocis` you can also place configuration files in this directory. - -Please change your `OC_URL` in order to reflect your actual deployment. If you are using self-signed certificates you need to set `OC_INSECURE=true` in `/etc/ocis/ocis.env`. - -oCIS will store all data in `/var/lib/ocis`, because we configured it so by setting `OC_BASE_DATA_PATH`. Therefore you need to create that directory and make it accessible to the user, you use to start oCIS. - -## Starting the oCIS service - -Initialize the oCIS configuration by running `ocis init --config-path /etc/ocis`. - -You can enable oCIS now by running `systemctl enable --now ocis`. It will ensure that oCIS also is restarted after a reboot of the host. - -If you need to restart oCIS because of configuration changes in `/etc/ocis/ocis.env`, run `systemctl restart ocis`. - -You can have a look at the logs of oCIS by issuing `journalctl -f -u ocis`. diff --git a/docs/ocis/deployment/ubernauten.md b/docs/ocis/deployment/ubernauten.md deleted file mode 100644 index 7fb8fd3188..0000000000 --- a/docs/ocis/deployment/ubernauten.md +++ /dev/null @@ -1,144 +0,0 @@ ---- -title: "Installing ownCloud Infinite Scale at Ubernauten" - -date: 2023-12-04T14:04:00+01:00 -weight: 100 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/deployment -geekdocFilePath: ubernauten.md ---- - -{{< toc >}} - -## Uberspace and ownCloud Infinite Scale in 50 seconds - -This howto shows how to set up ownCloud Infinite Scale for a quick test. For convenience, we will use the free service from the Ubernauten -- Join us here: [Uberspace Registration Page](https://dashboard.uberspace.de/register?lang=en). They offer free of charge (for the first month) web hosting. - -In this documentation, we are assuming you already have an account there and it is configured for SSH access. This guide is using "ocis.uber.space" as a domain at Uberspace, version 4.0.3 of Infinite Scale and the local user "owncloud". Make sure you adapt the example code and scripts mentioned in this page to your needs Both username and domain will be set when you sign in to Uberspace. - -Installing ownCloud Infinite Scale on Ubernauten is pretty straigt-forward, you can do it in three steps that take less than a minute: Here's a short video that shows how fast the whole process actually is - thanks to Infinite Scale's cloud native architecture. [ownCloud Infinite Scale in 50 seconds](/ocis/deployment/ubernauten_media/001-OCIS-in-50-seconds-2023-10-17.mkv) - -### Three Steps to your Infinite UberSpace - -* Download the Infinite Scale binary and make it executable -``` -curl https://download.owncloud.com/ocis/ocis/stable/4.0.3/ocis-4.0.3-linux-amd64 --output ocis -chmod +x ocis -``` - -* Set some environment variables related to Uberspace (**Make sure you fill in YOUR domain!**) -``` -uberspace web backend set / --http --port 9200 -export OC_URL=https://ocis.uber.space -export PROXY_TLS=false -export PROXY_HTTP_ADDR=0.0.0.0:9200 -export PROXY_LOG_LEVEL=debug -``` - -* Start the `ocis` binary, first with the parameter `init` for initial configuration. This will also give you your unique login password for the user `admin`. Once finished, call `ocis start`: -``` -./ocis init -./ocis server -``` -Wait a few seconds, now you can visit the url of your uberspace server and login: - -{{< figure src="/ocis/deployment/ubernauten_media/login.png" width="70%" height="auto" >}} - -To make it easier (and faster), here's the commands in a script called `ocis.install`: - -``` -#!/bin/bash -# This file is named ocis.install -# It downloads ocis, configures the environment varibles and starts -# ownCloud Infinite Scale on a ubernauten account. You can run it in your home directory - -curl https://download.owncloud.com/ocis/ocis/stable/4.0.3/ocis-4.0.3-linux-amd64 --output ocis -chmod +x ocis -uberspace web backend set / --http --port 9200 -export OC_URL=https://ocis.uber.space -export PROXY_TLS=false -export PROXY_HTTP_ADDR=0.0.0.0:9200 -export PROXY_LOG_LEVEL=debug -./ocis init -./ocis server -``` - -### Service Management with Supervisord - -If you want `ocis` to run continuously, you need to configure `supervisord` (http://supervisord.org) which is the tool Uberspace is using for service management. - -You can start and stop services with `supervisorctl`, it will (re)read configuration files it finds in your home directory, under `etc/services.d/`, in `.ini` files. The content of these files is very simple, you only have to enter three lines, here is the example for Infinite Scale in `/home/owncloud/etc/services.d/ocis.ini`. - -``` -[program:ocis] -command="/home/owncloud/ocis.start" -startsecs=60 -``` - -`ocis.start` is a script that combines all of the commands above except for the download of the ocis binary. It looks like this: - -``` -#!/bin/bash -# This file is named ocis.start. -# It sets environment variables needed for uber.space needed for Infinite Scale -/usr/bin/uberspace web backend set / --http --port 9200 & -export OC_URL=https://ocis.uber.space -export PROXY_TLS=false -export PROXY_HTTP_ADDR=0.0.0.0:9200 -export PROXY_LOG_LEVEL=debug -/home/owncloud/ocis server -``` - -There are four supervisorctl commands that you will find useful (many more can be found in its documentation). You can use `supervisorctl status` to check which services managed by supervisorctl are running, a `supervisorctl reread` will be necessary after you changed the `ini` files, an `update` is applying changes, and `supervisorctl stop` will stop a running service: - -``` -[owncloud@ocis ~]$ supervisorctl status -ocis RUNNING pid 9813, uptime 0:01:40 -[owncloud@ocis ~]$ supervisorctl reread -No config updates to processes -[owncloud@ocis ~]$ supervisorctl update -``` -You can find all information on Supervisord and `supervisorctl` on its website: [Running Supervisord](http://supervisord.org/running.html). - -### Updating ownCloud Infinite Scale - -Updating the ocis binary is simple: When a new version comes to life, just download the new `ocis` binary from the download server, replacing the old `ocis` executable on your uberspace server. - -Make a backup of your data and make sure you have read and understood the release notes of your new version , especially the "breaking changes" section before starting the binary. - -Don't worry, you can always go back to the older version you had installed, there's a long list of older versions available for download. - -Mind that if you want to re-configure, re-install or start a new version of ocis, make sure you have stopped supervisorctl from restarting ocis. Enter `supervisorctl stop ocis`, followed by a `killall -9 ocis` to make sure no ocis version is still running. - -### Wiping and Clean Restart from Scratch - -This little script is removing your ocis installation (and **all of your data!**), replacing it with a new, clean ocis installation. Be careful and only use it for testing purposes. Specify your desired ocis version in the curl command. - -``` -#!/bin/bash -# This file is named ocis.reinstall -# It deletes the old ocis installation, fetches a new binary and starts ocis. -rm -rf .ocis -curl https://download.owncloud.com/ocis/ocis/stable/4.0.3/ocis-4.0.3-linux-amd64 --output ocis -chmod +x ocis -uberspace web backend set / --http --port 9200 -export OC_URL=https://ocis.uber.space -export PROXY_TLS=false -export PROXY_HTTP_ADDR=0.0.0.0:9200 -export PROXY_LOG_LEVEL=debug -./ocis init -./ocis server -``` - -### Troubleshooting - -* SSL/TLS Certificates: Every Uberspace comes with its own HTTPS certificate via Let's Encrypt. See the [Uberspace - HTTPS](https://manual.uberspace.de/web-https/) documentation for more details. - -* Error message about `jwt_secret`: If you get the following error message, then you probably forgot to run the `ocis init` command. If `ocis server` find an configuration hasn't been set up, it will complain like this: -``` -[owncloud@ocis ~]$ ./ocis server -The jwt_secret has not been set properly in your config for ocis. -Make sure your /home/mfeilner/.ocis/config config contains the proper values -(e.g. by running ocis init or setting it manually in the config/corresponding -environment variable). -``` diff --git a/docs/ocis/deployment/ubernauten_media/001-OCIS-in-50-seconds-2023-10-17.mkv b/docs/ocis/deployment/ubernauten_media/001-OCIS-in-50-seconds-2023-10-17.mkv deleted file mode 100644 index 189a5479cffe10757d9d93904b981f3c75746ac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2613167 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

s5z+4`|JlhJArHT%4Z=DFlhe;^%9;2F_FOQPX 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
-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Ǝ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%0DD>yi$0?Wd^TmBCl%sO?<&wxXYNBrJuZ=Vv zXV|Owog_Jjn5a-0U97kMhzD7BF5v{E;O9i1`oJr1-zp=zieXjdwxt-WIze$P zJxIWzBFJNg%xKxK$2%K2i>4`Q@To+2L-HMmp1X3XVfw)`22R{j*z-}o6-K0Qgwz~5 zy1cnDIHx3+-=*8otimf^ui4T9`i}qlpm@jU10(@txnSGFoX_HS?9(U}JmT1yH9hQ} zB@t;k$1l^(>I@kfU>Z|PDPk>}h^Ouov6F&~m%A7@0Uz&C(k~23nw!$sb?20K5Z|F^ zWNtjnpm3|WzvNyab!$77q&bsY`Hi6UiXvkAhmqblOCUUW|ABqIwIC9wUi%Sn_vo9^ zH1w>MsDC_ldPNcUJLx0do$YYp({FgQeUUUvDV||6onxQ!YVDncq&mVO3x-jAv_%4N zk4bfec=*(KTzI04d4-g4PjSTn?StJ_#Yd3<-f8LfQovJLVqh+$In(?{J5SP|nqYy1 zwbL#|r8h4m2|k`eMLYo$j4*A}j-3kkDNG^~u`>Bi4v~Q>u(mi&r!e61qa7I1F)pgh zOR@~S>I|Aya#-4sNRsMMf}5x+FY7Q>W-YA~uA8BR+Yanjq|c7ud%xeS2DQ1W(5`s> zz*i-pcec~ex+#)_kt}#LLNjId?A2n)@F@Ba0#Szy3F73Jr+r-w=z^jwzE@)KAYi;+ z^j$2*&`9@Uy{kaBVrdBWyED3uW)%PStTmo=G=TA4>{yn+1uT(Nl$udd^-^|%Qf@t5 z|JyOc?7$($<$k5^yCUgJOP{_TviXpvAqs69I@*=5Zt{<69GgGb@DGjwNGF(^^uJ4-#~94@Exlv0Xn?R7ja(x>vr=w& zv&ncANP)wUCV-k!{!E<9A2XS(JBIJh?l$lg@$(;>Cq7u~hvF^KUIbDDlVt16jIBy` z)&%xTzxLaQl@Rov{xIFNm7rBXI5Fr{DyC;|EISIcn+yt^DU@#7p8prGB^(^%v#%h} zpWga%4DXrBzFHPLEc^ctSb~dfcCE&z@^EK!pR52N(-o&lnddTC^MXzXR*u_u3~vnt z02(+H?10CbMh%^dh8b}s^+U1-M!JvpQS>`o9(#e%EZG4CPgR9e5ko(>>Fd2aYw!2q zOm*Z+^e+@B_6IBaaU4K4U~c1oM#%uTNsEP1w^)LNhz1RL#=gc!7kuLlaEP@v2o?D!vc=KTjr zk$)B2Ql!)@bu|~P&%vk~gUrM8 zj<_%?-JFRAEACS+2!B2daqj%vLg1g$X@$Mmn$Z7x1tQd@s>VmnF+x#-_gg#tFx=^2CaI2L|o8X zRhMT**+$olsdArV{V#!s^;$BxY*%i5oyH{7sw1w+y8I9PGafg8KAuq+F1&ctvm&;x z7v(3CqH*bJ-@#1Xjpr@|8)y<6B%hnwwbx^$w1Umf3K7wkMN#zPl0m+s7g{ht(`D&g z=S5Se#`qSQYbW8gfrIv&l5e<#F}xdGmL^8Ncm9;x+8tp$oTGO(5)R?1opP=k0^R-* z9XA{X<0ek?$h6_B_qDky^lJlNp{!>U)@cl5VKo{raG+HF`^k0m133QkVEZ3_amW(; zUGx=_kxNE09H!rG;@q)l`>v0Yu2yd*<{>m!fYF7Z)^@$^aPj9Lqg^!e zFS{Imnj#Nh&dlXWO|jg(j3%3Pkh2Zl>fxYYYxcOQIGPDNxuUE}bh>qnh^ocX4DglL z%G;MZ@APj=oFGA-wesNsX0(R=wS%9<{|{pTnO2uOD7SI_!V38kN)5$?$*!4g-vU|B zyc${fq(an%E2)!b54aUaZ}xyz7Wi(H>7Ee{fwIaqtKudzZtd5nGeqzrcN}wnNgr>;kv!NwEoWOY5yjL;2Z?bm$V(A(W0So z!#Kr)-lIak9gZ;?HtH+L+KRaH=A%(0iF;4atn+!u2=m&XxN&o{+d7OxXa7{y>!xvU ze$R*tCB=dP+wE+oeF3k?F)rvm2@_JW#2vf|IAWp9lc?^z=kWbPpAM)uPtwlnzE>#o zQ{S2Ga*mg(eGS4pDprWds*iKU_g>J+s zz((rkwO@=8YJG-P>O$}bETxm@ZqYP(b#YGu^7m`LQJrWRMte!;Fmhy@G}Pe~*%RbH z^*`3b^~r@Rzw`4$)B!=%p+$zrt5xgsXRA2E3I*MdeY+w8nR{$DPIi8PTE1%N7xk_< zx3F0JvN!)WA?5iHDNgQmp z?})p#tKn_+%>nSjmG6%F^eRhIG_;U}r(3qST;C0hQ(L0M2n#r;N+BL8cODx>f2C}hw`hUCnEXu+IzGB+NPg8b+u5Nq=%*jlP)6}Zj zshm#qteC%RXe@iCiik6h<0c2g^*)ddu&UBky3QJbZCN$KG<+ekbfGQ^Hv*|afr{{# z3>Y_L8LDbI+eD5pp=5yzmfgT=YRMt}*jB*CrSK=3qLF|oH$63L+9`-sCt)Ll;gH1R z-7vuyQ_7{>!|HYt*_=dH0{0gpheFDFV2=^}zJx_wzJq{dtB9bqU#S<#=7>FeD* zs66lAl4p4cR=HP*9L>=LB`*VKZ2Hr=ec9yz&rRu0G^42-$fCOx$6l2vxosBhi?0)b zpOkLwM;|N0HpH3kU(`3wPe2pGCt2x=x8>s^G@0kYeo}cb@I^j!52KJZdJ51xjL{oX ze7$9)x{)HKc9%)mX%6*j_O&hYJ3S5XgfhS2$_q|~4ZjkuGyHP#RM=-_7kkdgkrQ%O z?@9{4Hk2(1s(7O5Ly>11@`2u8^AiY{Y9~4ljMrB34N&|MDLV{nu}@ZGMGW_Bk-C=5 z&xu3*CkQ;Tn}XRnIP6>R5q;@J#Sb}=b|mUvX4eC`7QLdfPF8eqUsc(u7Kbjb_6Kz> zf?Nn+ucL%YNaOu&Bf%XjKc_s5^(|b|>fTi)+#out_cP2&CJMpmExz46Td%|o zoTn`#08u&!&P|?VS#|w;6&|V3e}QrqA`y9KqMH ztA-B>-yR1Xf-x34EX!f*_}t`d$%w$ull<{U+>w0D4^7(DfTT{e$M zj`suIpzCc{t0#g8Lpu1ukjdID!NX^Noe@jOp`c}A;RZ5z*SwataY|=>&L*wVbvh|S zb-{0Xt{~*A1z4I&e(_SD=gaBK!_Ghwo@^Z06pqW%P49buA&&Rh!|ApKN+M zXoi!_oo%LW{Eq4v2qM79z|qMV3atb?!b^RIk2Mx?(}Rr@mc$S&<+P+=FG1VS&^3v3@JGWReJHs z2ArFLQgB-L8IPhalnx7lUz7Z<4T^n%7ws0Aev~u3t2QAqcLW-wvofsGz4E7cA<}}r z=I2rewZR7~Uz`X6L7a=qs!CAFeX8w>q#igB!6-8r*V&R$b_)s14mpU}DIX<(=aO^! zJ&eFAE>GLE zl={8=9TS~mWRL~fHcq^JZ@>dX3_o)Cw`@1&UHz7c@9i z`6~INIG@ukulTd-hd9zZdwWw*a#2i3P`XDP)0iU4d7T`jEeXJj#y6R@;Tl%-M_IcF}LEw_2%Gn&}9@=n$ zx~Kq-78aoo4qdP}Yg-a(;~?u}Qrutcl9L=%D+R1T%^da7yL<AMT`WanCr%3?c4aV(krkLF$d;t!p+p){hoU9H_nTdF-SvrmixBJw0=N!`fmcWJV=u(Sj5; z#P|~*CB1gP*-QmMmc%;M-$7_c`j9-3QtD&JUoH3N{q;nyAm-cRH?KT}#k$ z-cAwj0{Q|(r=3)lukY(VoR=NFRvG|LnVuvZYMVjAhh45#EYp~kf z4u=vGFRxmxqO3@THNs;pU~4C|RH`?OssENnYt$(C>qvO%l=Fc$-Y9{m4NSH^e0xfm zMnA3zM4;f4we~3y83=jwjxRqA%%|&e1__HGNPRfwoJLriF%w-iL)YO5uh_lv_>e2s{|7pqX5{XTh^J;j{=sus zDaIeiO9|6AUa==x>9mK~{OX3}pI=S#(SvsN zC)Vv@`@mF}vjrKbDieUOx$P%g}_gwIZ!9j9@E2#=rCmrO+OD#?@Dner5r~GG&+rQHf zptv%kP!$2jF?_M~oF>Ay2M8z4ol97QDtP~lHCK|vyQuisJkb#JpcRaNWeGqwFW)}? zw~E&4V7mJcrR7N&pG7@)t_2uNvr5t?O% z3EQA^mUa&W8|z4SzPfexZr*G~W~tOcoch(Y;wU=#`$C_FXlab4KNSRxJq1*{Fv%&N zV-fRaHPjUC9%~8QBKD&Zdi7opr6Y~g4l4m>5v?4^+v%RFfYuuJyEN}`02f-J0Xgd; zyS~C^SX{x#ifrR?X)W#*x{wBwJVpw0G$MtWY{>|fO8U?z7U9J?Z94MVA( zIDK4D?_$LEEIAez4Txev+>4<*cS|ZXD9{0*A0>TJod5JPJxpn+Yhwn z-TF&gwU`w8YT4cD#l`P4N{!#egUR~!mP4G8{jKX|^0`<`PqMN16!Hs$HBtl?%Z@$x z(f3!OV6s0r)z9|;_){?S{GXr@Q6Mda?{Sh~=5E<%cg{yz?-wsZ;NZfa)85jy#x7bR zNgn#LB3;DtL}kUmZkm_oeBnD^3aetNu^z`x-|ypXgO$EhwieKU5fY^7cU;eCd7__K zE~T*-3Z(dOe+%!AzFof!f3EKrF9^RFa8i4&N`6hm(`5n6LOtOrrZj0JFh_4R?xlNr zL<^Uvn)fNjzy_vHk5aae93J)qa((6|118&Nfs%t8of_c&#lvkQ-y;pwTna= z=cy<2XkGNO)b_Cqr6ls z3R()*;DuOcRAd=^d4`w)%RclfXG1vjf{d7coNAEbS(gYSb({&|6yK0hnLnRGw)yge9ZdW;qwt!hjFdv z0H9zxRuS?5i9eroiN)mA+mQ`i66@;WMIc1S z=dmk?zfFQXbuzO}M}it_{?`1Gk13Q?^@l+IaT27gVCL8VR>%doyR9N^%M}fkZ-L6b zK&fAQAk7;R*cebD!(>qc>Pi}lu}hCPk$2}4r&8#u)aI|?w)ZX!>X^i5zl>$mQN#aD z+uW2SB{uo#-+X$J1;kuWLkA{*u8;Zw<*9mzX7CBs*~pRynn8q-}-Rhp16ID{$MoM+A1Q= zP(gz^jRg-~Z6QbtFJl|LT980Mbn!Y)E@AJ{2RZvaDR|pkpa?RgHWn)bfe3^>t@nd*JE*Ju4Qp z6lu2KTZqavOThMBX(s$b{27@3j3;2@QMPXgh($!t$Xf$9;yEtBYR~TFD;AGlM~N@`cN~_x%0l6oC~y*L_0jtD;B^9*p5$L3%}=V&c~%ODU1Z zxz1wM1);|Hw*$h~ms8)HVKk0@TxFS&)K1x1UWK9Z$63++Tf*dgz9l^UBL-`-_+8LM z!g1AYtB|XE@(*Q7@P)WOt5)9LCT2zt)wQ|)3pf_xUJ`-%L80s<+D#qvF=`rcI4*s9 z^9ASz?b@~82TROA5`x|?6Hlz5kFQvrc#9HSTp|~!&*$dC>jZ0jef_xB+**n>sQ$nQ z#IxK27~*=}@F(~kXcXoH>)mdrP?H+$j4M2nsUfo*1aYgbjhqr@_Mvd^HR$0#HAPyp z#KL6ZdHW_Zq4BhnMKd1EiRc|J(FM>Q74hr!aMPEgyz*OEz^t32mg}k`Y?GeV?6;K6 zGxn`7Jz5Jx1=m#dt7T;Wjs>(k#cBUypmpqh z%X7#@Gr7%iDGt>uW@T~2-bVhy-y?wPe1)Lv9}_4Y7Hih} zfC*!ZcG7z!%z>`boJ8R)#me4P`JoxGGMQs0c(KigoY^wmkn>m+Zr{jef0p5-o=yB3 z=vP}kP2CwR@Wbha)XhE0^kuzYI~Yu8V3ZB@P>|OjQz`DJyrQ2-dtmIBUrJZukeg*} z{|buIGSU1%+?jl&F2d2C^I#7@e+u;^EX_%54&Q#Zw=Y^bK`%*y&rSIu6VKmwWUKEp zWh8R{sU>cqaDpi^pr8O}DkRMnQ;?5DxZDif^yqDEMW9gNfDhW{yy?1Y+q>cfbcf&g zZRQdJRdEn3IX{dn^1P6IH=Rw)8|!~bWqDqI?4=}{4no>!gC%OSG944z+cJ$#XB(dO zkoNmI<;7Ch|L)bTt@l9B2#(7*3%ESf*DKUMr2+?a_v6Z=O|A!_V#mP+B7c_meISw* zs&b%oZQH7;bF8$96LVHbxb^^EfEvhRNtGDlZNHM4-N!B#Y(^#1WMO2(LxG5*u!f78 zu1%b(>;!t4Xhk5_8cd)N}}`m+hrI zN)l_!5A!P0r&Wh+(t$m3K1}gK(e1H~ztIjbF|x3(U*E#h2@hAA-sD#))Elhmfb3zo z+Ts{=3_|(FP&W5URdX{A!ze<-!wsyTQIum2GI5%KoLedxwyqC~xo~k5^JfGJ!UzPn z@<($vcqZ@6{pcus#VF{2iF~6+VHtJ2WDd6ZMcmT`E-VW5!0E;6lS9Br!EhPhYWrX3 zryzr(i<1NRi?A;~?g+dNokau=DG?yC4K*^kvbf9k>URY^~-GK2IK|iuGIPa5u&PR5G>TI z0%&>;GND*b81r=@`bI_J%3Hsw-JyZVh11?p$ugKMrC;?UP99=`Pd;2dGNr?q=oy%o zsa&DprB1XFO4hbw1?bgfvtczdpTF4-ljv)@6IjVnVYQIIY%*r^4p8EB{FnUpE*d2q z-#)JsHhm{V6<63>w7C0CCCE0;Gl$NMXlZYU1_R^1TN`FEl-76(Z4s7+ZKNGOKwrW; zQN6IiR+S1f_d{uF;uEbrza$x*sk|UHay`;C*S#+RtqOaQP$VbnwsAX_ysAnEhKDk; zfOVtD)RGt@R|37jQ&0jgYpgo~y%d8sk({{8A`-7W%Z-mcPCtolWA5pVKNzD>tG{0T zUUo>u5NB6h-PVB3YHWR$OuVWH-xB`>b;%8Ui$e=Y9VYMK7_@B#3;&2=K>35u{sdM) zK!Q0q|2a#xk2~VIjZ=z{hx1V&LyWHg|D0a78$soy)<$og&}?F2yd9JX>SmIYev}Ln zo+L@L|FZ_z&u`BWNQrao_J<)*ySMA~xzk;r(tcmBOht*t3jbOR_6Q`v1%OQW58$DG z-!RN_rnSgcD<*Q**pAfSCz3q3>baKzQ%h?4kFm&*4Ck(n3jD_bJ)CAC*e`w;?@{E@ z)~O`4ELoh_q7tYt-{DDS(JlXPjC`1N@N3N4IX`Sh0rg->r&&P%STcBSc=ZZ_{}y*G ztQdbpqEu>=(+C`(m$=>9`z?;Hg8409^NddpPqGn%HDj((>$`neUYRw1x%zqgxg$L zO}I+Uggnh0E_vbx^uq{Lmjm0W$h8zi&&5@MN|UioZDT{q*f5`D7X913Q)0xhRvDZY z*XAFr?@%br5Kf)Urp}o#TlY$)Q@~cxRcnx?LB7o)pw2Lf@^u&Kj!ykVC!GZklGR)H^h=-kK$`#+Unb zQv!Jkr8ch+Na~o$;Rk7;#DxNx{@}Ggivb`JFo*j;q#|C`K#5T|oZmr z{c8-!EDkaZpg~Hd*I59Xfk*%jf@9C31prX@OTKveD;bX%;d+VQ^$KSS9?W=ISxty2 z#}7clL^zK_+-P)ArCDZ{?Tn zLq=PjmgykI=6a1T!^<_+A!?rc5&LudMj2aRR;8U-eLcrgszmbVccncJR4u4q>0PY` z!Soi${XpcvHt=6B9FDaz`{koGseEKXsIS&VY~=7geQ|X!+MV~n4r?-&qB_2*l#$v4 zm z^i}XR1aDSz)5@}|7QGd0q)rqy`L;VlV& z=7(E%R5Dz5EDVzW{awQGZpK-iAxh*4vvke8f`Mf0i6jMqBXQU>3iWj&Gtf)jP^8{V z>RPxdpl&lzv}SdK#tk?f=d*Q6gQw-z?-MEyo468|7})UuM%khs%l|%Ez<|=mS-)tv zBI*z*K6Ajx zY|~(3(fzf@w{y5-dc4o*VKX;A>`O^4Bs|xF-9`$O1Af2B=_PDi93m|9F06eRY}*Ek z_nI{&vbFK(N+zNA{K0VY)<`em`~T7^jg#w*KoHwRkXokGOZGSIGWAZYf1pq0owFU2 zC#gbezq>-DV_w;Q*FaPC)~fWBwwwIg#rj<7`OD#3h8PhVV1>os_K>@zo)}RQAMZL| zLabimpKVI*$RL`kRjf+OqQ6WkAyVBmbCY?ZXed?eo2 zFvN$G$#+9%VS>33v*)Bcm%(3gfygR?$%gfWtz(w5U=9g>@8Ov7`yg>s+iihYECK=m z=VVe1@CqXK4*5?PV++YU!a1XHTGpYZ758tlWI#|Y0QA_mLPH;&Hi}l8tC71+XEGc9 zhYDm{yOxMUd{pOw`j?o=>42zQ?c3$b;DwIHfbvYHi_)IyGl1%NlozUphuk;6F-!7d zOl=pp69FLs?zvf&Judy&6msqA zE}?-qstEN^DYKVH+GPW48eBP~qk}oHzny6CE=OLEaMDGXwZBr^FqiR)pCRJx`DoUD zq$@4EchU%#Zjz(8CxP~pVsAVZ6c5v#kb?p1u#F+ma3V+7vh#pFo{%YjH;hCF8pkv? z6dsd0rB(P5_q+cA*N%M<`Wec!jP25i}PgDDgpM0 zPg*9rZLY!{fm_{~K4p`PBZ80{gqW_oE3{mRNYPW@J#{@K9*EE1n0>uk^b>T*=HYB6 z2>3q9OxsZ+vUrU(t(V85eJs@@DT!~o-9#bYk-!skg%~9vsYCGE@?47My{H$*4NL`Q z6p?fK%MEu(BNcZiW^J!i%LRUvOjRD7uH#U@Q}ITp1GSGu(xw)#GY3Yt~cRO!;c8IgUS%M|hHSDIYGR409| zVf%Hic84`?9%yw#8?1$ilg`<|0gTm^0De6{qMU609i7>n^f(|4+9R~ylQ(LNzNvXs zE-&2^1O0s3-#)P-g{&x0!OuV1}-IOq5Z;RqnL zpM*%Hnl<8?PS6>%l{=&nx_WX|X=kU490|~qa_NPGku`g3egt*J=og1IQ?u7aHXDEB za!+X?2MoK=j}la*7@nOwXwt*BZVzaL<{a@m%RQ32&M%THXW(*%?1ta@r0oJc))obf z0dl#sRt$gIWOK}^FwM4p8uUj+5#w%391a(LIjWads&2C#FIhk6KVJKcKL%wvRqAX$ zJMrRBVBL>Hd!!;w>6&i8-qGKqQ@jyCn8B@P!%-A(#Yt?yKJdOHxC zP2&xBsW45qUe+;d*QU1*;_bra15G?9e`R?{{ki@^IIIEF)Vm~~{fp^ivgGY9l@~b2 z7g4l?_v{7FHB+q&2C%D^cKmCQtvIL;IH8C$8Qynz#0%X?R$WrtXs#(ZjvB3m7xu!R zRf=)n6(HiLMTXgN?4&RJgjrLDg4fS%yB(@V-Rng~s&jhEr&FRkWeb9y{SA zxD=*9{s?9BcoIUSb+VOs&JkkjhxH~ z3+Nv=uS2T8+Rk|_cB|L9MrKoK>RFOfK!4n(LR|wSdy%75M`rNStNP?~RqQ0nt`8(3 zp0!RX?OZ8p5W!?q`@n3!MPzatx$30hJqn$@GYYO6;*#Ch|o2NXz8b-+ahBlcVf ze9#8lE7;+5kCXj9^^gmrU~|-Q!&?wI5w={rhSSqp2{JCsSI*UG{U;366AwpHPS;RC zRaGVU)b?Bq7O~nunzTu{?$M$14pr)YjTX-cI%Fqz1O?YJBQ}r0D&q7D-ge;grg7L zGyIhnuB_TPEyZ9B#Zjx6mvCSMYJck=)7GT^9Xw*H^ssS;4@lLf0@mPEFfY;rEsBMcQXjf*qsN z*5#y2wASyi@)~P7zB5MXt<~eky`y&4KmK&v4Xmln;WuR{YoAQ|@+3Bdg#z#X5G+4) z3~&#a_>CPK~QtH^~C2jBY;6Xje1F$RdAc)j~`gGW+2$`yrJ?J<3O2rclQif3=D) z84LV-HvSc^{`V`f-veZ2IZ|5>69Ve5dLmu4#h{9sQiihGOLF%VbZ&$1X0eh`KSCBcz{Pcm8}R;K ze}StX(HT5{2)Cb?2SfwRG5DWvzb(Xd9(EP(%&U@F8XPMk4}Sz};yj;}{o74-%)5(> z8Rn`@Msoi{Fdc=9o9=RlY5fEUU>ef~qo>y5`*oy|Rf<@CMaV*#&Cu*t(^^ znZT2Ru*pwne5ahd&hLNs80C*C1!ld%7ONkekfg5^2H%$0$#H29;UK}ZVnk4Woe-7_%149(}D)W-qrJl;JWHhbg z_?~{Tqw@qlf3!@pl1U5QI z1aVX%`|IOr48LodXwk7|@#C|4E3jIuO02S3&nUT&HU?ShMx3)%K&epPZ=eQODg$j` zCOk@+sYP*|A@`=6+&@|6=C=}*ldd9^V!`0K02G!7V8Y&?T#@>|BKqh`oeizvCry=J zEsG2?l+t%785Js2uk6~o+!{EVT;56b5gCGtDaxJ%4w&YEg9X_w@|BB$9xP~;@D!q- z83o^R8|Ybp5({X_J#nYr1i>|SLHNZTsIQf+=(>f4fGi)`BVm#1@G(Fw_o{760R|DooeuK3D>2J6jsTJQg z7Cs!0haO?8`HS>>6R``2G7G~5)6OIXCY)7=I|(4CHd&D1h&LNO^x6}t3RQhz@;s!W z&8QwaW7_e>qL2ZJj6QEooRy16 zGsa3Q;3bY$SP+#MVS#+j!T&qK(xrZg=w|hodtBlX2ihSu)eS1+Z`+me8nT&3H8OKY z$qon08_(e4Pry@}E5v$E{a#Ud3p~=KvnQtfIVXs9r#;P-hiN`aC_q#&DKmLojGh(^ zKIq#1eP#i^*fz__Q`vx1NX!2BrzfbC3+05(2LYXm&5wh^4^WpN=d9E^RFXU0QB%74 zR|k{=OvmGM2wSOnIF`}4J%f4Tw&OJ6XL`NpKLM}}8hf|^xzXkFlx*J+)KhjyDmH~e zw*XgN7e8cLe@RH%h#Ffld#hlaU>2^>AKohE@!ywp=58s*qntSZik>m5)HPe?pQPKn zCh^DXn5&Z#uMeyk@Vt8s({8yLBpIpe=9gxRYq$GYal>vH@qb(OgpIm6_yU9ltrl)% zh32eU)>7KA>c=JoQn7H;&`NIMlReknI!|mxF0J=!1EXKya`^qUtUgJ*;AHq*`v+AH zHfqk3?=}o>{qjG^^)v=R0(j0eGBkPeI(86d)%MhqyWa~lLm%&CYR6fF%ZVRdobdl8 zD)nue8$Pr>*5=CpotlQMizX33?-Q?5P!?lJvFxx23oArHO?Dw9@FD*FVC5}m@v3!WKuJyECl^p}u!?l}7bD%@D66LI zG!|R?N3_d|l_;6v6j``8#`pdGrc41?{k0GUDdFd#xW7G*ASDTOGti+o(R?Ofl&+~1 zM0JVB7v;ZSzx=LNPwB-xV<}tPq5zUy@7&|b>-tN3TBo^6Q+#hVM4#t3C6KdHuh%(v zWs15qPDD~{r50#WljKJ<{XpmySS8fru8aNWCxfY^3CUbr6R|HmsZ%Rvw=L^Qik(f$ z>Ru{gO}-s*?Xo_L&p`eh_1V2Uw+F@r-}i#WIbn0g_<7FGFY0aYqg72UyU1GoAgMP%W-x;Qf#1egJMB;$m&@+NB0(bVDtwo1%(i7@w zlYaz(S8(P$P+RW6qWPKpG?7;|5;D8jC8S*EEDmtoF2a`A<#yMcpHjS!Yd9L{*g**X zWd@)r2xs*U1iV&%%&G3tBHH1iXLM^qo~!FQP=2gbQ&3h_)2jLCv-e@1 z*mt*XBzHOi$cO~W0efe-&f^93b>Tio#PjW=Q8afm`lJ^Ski)w|k$xQ9>;iXNe}ywT z1$gHADMk>O-Cih`H1C<$@%zZri->m2T|IY{ z_5mxZ-DL{Oj({n>{$Y~~KM&5Ckk(B)a2~0W{~BUPmM;vrPkWeSfgNpExC+?k06!&T z0D9E1fzU6POwjS=s8J439 zR~%0$*QG!zhIN@W%qVIbvDeH@cer2Ms3pOhbNxl4#}{&ub~6RH>kctvWGG~sE!^16 z|4cyJ@17WIn;2Xs3vjRKIsHj!I$HIK8>@MB_`6Lr_nLYJn#JQ@3%d_RG#}3;?;rq} zt!IauN>r5^bNp#(V=~tp@A8c|%SOd4!4U8S09C*H ztdH%t`oc(@ERZ*&Kw!}jPz)&1l^9iY>xd^M{o)aHY?WRJrY)B#~oa*BbW&DO56hppxI^HA~ zlOBgR#4sY0>TUx*pT&_rRN*W92wE)K(qbymP#+%S@;m}qcR~Zt4QmxsV&z?HxtT`R zX)~TFzERa@*1OW(S4?GA!~BxqZhkN}uV4*yD+CR?J$EvqW8%kdKXo&%fQ_Y#oWhoy z3nLcO%32!Dn2Tj+0K@P^kF3ydenEqlVR*A;%z52i`f18&n+rjzmpA7gOT2nb{Y18r z-nkEBWJAy1qHDO&bO#$LX>O0;Ul!W7!4L=hPxAvg95Lm9ASW&MG~y7ikcVI41YW5$ zaC~V@so3%PJ4j7n1n#r@GlCr3V)p_qi@LnanX36oBQ)5CA1j4085Q*L@q34seg zStynJZMtopgeTYLei1fYg>^KLQ7xr0N5}SNk`ETgZ_+o!c|u{KKU~OvG3tf1pexjT zFE_3xyZ}OX8T$cq04W~diA`i70cKN7@oKfFTekqh?#?i{VB$tWu}bC4X#8aoi-TioIAwdKc><+_G~H_ zG}NZ={#v(h4tSGo)XyWPzfTC4j!OSj(B+uWtY?!23($WheHxfY^9!QfO}1un$Da1L zQKYbP7l}Tz5zU$b_qv}jf!^I{^jUI5+gTW*Nwy<@)Ou3_h#EL7l|AkbPTOU^-ah9r zX_#O~xxTp=9`BOiGTu-~ffd96+vEi1~06YweyW^X!$_gK*1>|H0 z1v%HQl$VC=7<{Y*H$a7-Iw&JM#M;$*6lRx9Ii?fQx9;>TY=~1%>0?2+)Snt~@a4yC z^KhkZjP7=KiJL@X&)m!uHvG|=%`=01mW0_S;UKFkNE!4yVfg*kq4= zWz2OAtoy!iUy2RfUL|hA?Mc_9V=$Op72j@(2T6ZF;cWG@x=ix==%j0sF9J{YHA-vJ zVq%~9i$MqLpTomhKpSO$Fi?Bs&K-gRj^LN_fACc>-T3+yff@+gY;xJnQk@AHW7N4a zjMBY-i%7&Z*Fd^=XA404kfVQHe3x<@EVk)@%ym}EK z3G}U$Pr%9W^ahj#wrPa$%6)NwdwX!#KnCzX&K8YQph(2fZ|zv!JBbgQ{=(%f&KYuv z<6MabWg`^>#a0CFF|J4?!B;O%R|x*V$8l4ne|=~U*^cEwQc}I=v@*z&82@OPJ_=U0 zKjlVC*C5~(_82=ZEjzHf&M2-clz)yLaW}QeNVQ35!##eu2=Cl}iUcbuqNFOub;Jv&O(Xhpb~18l;dM`o?~jP1{2@Zq zQk|tL)spIF4$Tz5;1!w)#{@M#36Kqh`qckvfsr6AN>nUwWNz4fu2Kn8WoMv`fq?IwYXOK9kND4h1* zcIvmcK3ROjj;SfEywoWTBsKs$uaOtD2=`C>B)%ybGmK2xw2l0%%)Pqg@FRouqBLrj~^;4rjo@vc6X$n&5qj^>yGfZkFe1I5orrj695;xMp z7uP)+8tz&GV#+n>s#ggjM}1QU@iJW976xcl#-JTMC2O#DxGndcTl4FGVsTRgWrHQ6 zhc9p9Wd47a28t2@&hi~T8K}Si{@AU44?sM^Xw5NY3RCd@MbHM01?Us?17RGJauy2( zZa%#F%#wIF)6DFjFl!nhJiX^gLV~b>t3p9>e~6z`Y=Hm6-a7_K7IoXAnPuCyx@=c< z8C|w*+qP|Xsmr#yY#Uuxmu=npaPB?#oVYh$ym&v~uZ&!ok$dJ`d+jyHoO6u<6aeNH z|HE(AHA2z4RD&nlDG0y1ipCq2iT(bDesUlTLwN6qwbt?4IJeYn+`*bM=>&3P(_9H> z19W0w)?W)#7ao9SBw-rA!iwMCB@N92n5B}aolHP|=etrDy5D*SJ$3xolYR9YP1_mN z9YL?k57R1O6&1e+!EOIxZiGtoQ`ifOTK3n@(=*CeuLaE}%`ujSs;~=ipQIXIXgk2V zQc4bU&nv|v)+geSDJiBh8sADwqnb-0+(MO9n zsYItO$o)nv^q{uGt}s)nHBAAaI-CwsQ!@ryn*)fnyQl<<3njb)pbNh|3FY)9KKdVt zuX#pMC}@i4b}Kt4WDfAT0blj^c4Hn!o__zxQF<+(t|qkFeAOT#*sJqlHQkZw;=Po{3G2tsHH7gV9`X8g7H-k z!8fqr@@-<3w|PcGTdtNVaD>?Ty6HaiI;6x}jCir(J_rk`#TDGoWfauvqB>f-P(l*a z{2x9O{_@Qsc)L;@Wt(GH=NFoSUE_kshdfT->#5RdBI(4RQ%dK(a zX~2NBORiCLjSFpjkIr5$P95>Sd+?O&OGQTT|BJg)OW2Ds18h@_#7Q2d$kW!z32{!!~WN;pEVuA4waSND%|9kfs<6% zO8LT1Yu+iuW3p&$EnX&w0hISP0_fwne@vcc9Xn<-Z0Dp`sMuyMj4$yQ`WTR484Z& z1n_@J4cMyvgma33pfZ$U&_c>CdZ4_CipQ-*K0@-6j}zH~o&7pU8N}@AgV?emi2vQg zP|#E~b&UP^i0ED*=8F^zfbi zcWNEbz4nbu_kg#_2QUBu?EIifw>Y*m2=xRrQb%J&o$z7*b3}v>8UZx#-OYRBtVE+D;M7TCLs1Cm1Ozl9^1xGgg z_;n_rHDa5h1Gst~3cGA;Mcq)ajtNAMBn%7NsF=djd#b!Zk_c!KIav6JU-LWF=|Ym8 ziS=rp_L6|@XjPLRg@ZDc5KXX${bb0D^gvzzUJe$6)=2haYr4{xi=Hs+2NrZ!EHvJS z!B}~UwU1S-=lQni(SaZBr1o65mL?U`;zHMwwKC_>;_J1$-rTy_v;i(;Ne5qVv<-a? zwff|8(h!Xoim+5N#0?F zc@Ma!5#~|(ncWm7-q)|F4KJ@UKY+{MYPklKDfZ93WbH( z;%Cp9o>7boUFqQ*0qr=xP@(BQ#gOhq*;nOA{>Tut=;yLTR#1yi9T}%39Z;H5MICL~ zyH=sw&xMzIZme`=Z`Dtq&40HFXh6o|H$ejp@hRBi+GIiBO9&#(j#x?J-RTjs+Gu{H z_Wj5%WSqFvK{Fp0V}L^10sp)_ph7_W8KL#_Cq)~_2J8);agveGu9yHEa|MQ5K2x;` zbajp$W06!9wzIGCkkAo#szc!(`Mv`z#Nf3l>%alTg$r#xny5`z><{b6P`Ye`#5) z2xA#7KI=w`^_@aZ-3RH@{h$Q)TbgeBm7Yvh*?TJt2a9zdYAl_>C8YiqajMGjZTA(H zni>2ZX~*TOcJ>84tu7-lg2D*N21^ga5}OR``oE-3&WIOT6npDlTWR{0NGP%I>U@zrAo*|d!NkijsQ{DLY zN_=v}&cW~DT{#U(TPEu3mP&MaFj2aaC^OiV>2M+MW~@Z0Cv~S|gd8zC6l@4CSyavu zo+QU+=huB&M1Snt7%Xb|62J?Ecp#~`37 zQBFg6=+BXzWc+A)6IXAY5s^$L(WdOqD*h{l!PA!KODi-o^hqegx9SKOp2QpG6Nt!1 z>oKxhAj#WfD;ZxPAXQ*+K3`Ln;-RJF-Ikp`rTvH*Jj{_UI8qOQSZthWXEV#fq`gsG zQgt$iN!?(l(38yU$>z+Og!bxDE8&6`5a4?3h#%aUcT|(@$`HP z_Qn{2-ZwmW+53Ly^Mq14+sJl02*ufwvX)15kvriJwzCPRArdaC=6obnjqKKeJfZ5m za=$swj%)c=C`=Uqtq=Ixn27$N?}|?M)od3*9TVLz2)=Va@h}~b`ga&AbkHC9Oes$g z>KhVft-~%#u#ZsF@CLP+*5hAe(xDs)=m`=VDe$NH8zhX0!`VHag?`;-eWA!*HxP|7 zOtb?AXk?PdD0=dllHU?L>(6Ue&!VC)IIB{dLW*QIBnaKt?Kvyk`D!ztnL)pweV5C- zdk5`pMbf-voZAj63->nP9weIt^ljjo+Pkl>|FXXL9^lLZQ9D#I-s$smlj%e|WEZq3 zm9!`~_8tFZD}54OgJgB(Qp5eapWA;h&xL)Rs;l*#k9f2hRvF%qx$MVo?*_t%IdyExfi=z5xaI|H0Lvg~j1vB=Gt;@@czuf=7MhF0?sN2oE zLq5MGjSkW%`6B(uli*tXMJhp7 zc=W?TC}7A5O9<%*4W;=ktwh&lvwg2?Bb++ zYNZk+V(?&0%2Gyx3B!Qy!a4p<`5bIqc0EfD%J)=J)+%k>EXN~~F)m=_t46;s2kV$> zsYUd0!F*FeU0%qg|3QJ#xH;70PR7t0rY>QYL~Qb!s4P9myU6ME7r;_h)7uqhpc#kZ zEFr6}}&ySrd78B?Fmp$y6J5$f1Ausn{sG+X4s{22wdx!nRT zhl6&21e!Z|i8b*-?5%_C2l%P8gIOcqFj!J1;@BRIXfj|Y#3{;|Khsd@?AU>=i*sH) zog?GnlnR?B+rUEm%GWQq9WKs`HOR^S@q}TsVaG7?E|8j#fswUrX4~3oyGz%_ z1?0x21E9amUxQPiYqn0TZR(D~$R=9ZM_;e3(G=6c-v`PjtLasvKGLb`cz;2g3Wu%Q zd_5Wd_eKe(47?QoEkNkM$FVMO=thSIi7F;}UK?0*I)+n$sPxSs5m8W_sdVwsug;M- z0~I}T*KbT-43wFFRHM}zvytIhwnb&x3cJr+MdO-4(*u%rxR+`54jY#ATd0%*7^I&# zM1(BmTT`dqUlvEXDs_JAHjfmM0&+h6wz9plskM_8%2ww<*g0f53~Rz^fc>M0}!Bnwja3}hW5XV*!*{VnJEJp#sK zCQtT+vS4^;pwBWf)CIOY$hL45kg2QBlJJ77;Cnm59urS)P$(W407La<4W#EkMQgtv zpP&GY$qI!K3ESo1X|@|YF7^iV@x5nONZ7*thcwPUx421Tga2+N&^;hfi5lGx%q)P) zH;;h#Tca8E-+al8@I{PycHuKScCxc<;m#`v5cj?Y){T<-6`p0j&JvbUsE|vL2_;_A zq!Jc1J+-!u55LD^JOR{?zbzPYu-wR^5cQYE)g_JpzMzQL$IH;z5j>6%|BqNt=M?ar zyI2jbR;9Y=uG*=BAZyp+K(PP<()obGuqMr@Oqa-C3ILirJo~td(c$IF+@DathbqlK z?h4|+rJrS+z;(s(W@%?VIGe)E+E-X(=g7i90x@X4BzErzR;I^C@c$dxXY zl2KtWN{1GL%zSpHDi?=22H>&X(v!~?t>&h~9T3|;3e9rU{{)fKnuARzR4y?6xaAGGzhlzQ{-a>%Pv)&t4l-ET$9n(;zk zspSFu%<{N;-&;h>A1AA>cLIIoRj`0DNuyew?DY92kE$QopS--bnIWw*xe4vA_2~@h$m*aiv)7CsW~X%U_hcV!Lbw z=7JYG=-AjvohFqTKd`$NZ{(g1*6RGF?5sMH<}yINy%h+|=HuGBvc>V9k5?>#SFoOe zxk+WyXmjqiiDri6^xrQ`I$ViKEQ2GT1B|Jek=*mePW)gvsL73Lm+Y9pD@YS;iGt2< zQ%?zMiYkb|k?QJ!4X~BUV}2zU(LR2JkdN0eDy`-lL>0}-Sp!>$mngc(mWn&A@iW}Z z(5VW~JTjoaU4-anQS#(UW?QuyRZOzOpM%lbq?3VxK~Gha;cm?!1OzNEXuOJ#ti|~u zp=2cMvlW8f;&a%XS-`ZG%gQb7K3(K8=vVn`ZxCwNAY;A%QEnuG^!XQYE?LD8FN;d` zmJ?KWskOM)1kav%FhH6cg6VhY-pnNUjR}>Pi%F$KA#POZcN9ZX9F=xs2ejwgbtlEz zG)st$#JNp(64s(-${cq@wgld;{!#%EF$|rJwzE7ZX0Ai+ybqrxu=pwUS_EuS9s7cu zHRg9$8;Rz*-7T;OZ(sOEV9R~*X3)WRfOAf~Nn7oP6ZazyJtqc;hio|I!f;N9Zzb3N4joO|EC+H0J z6TaXO)_}s^-h)c_)Xa)DJA~MEmwpFA%!wM*4bm{7LP!JYx5Vn4hW0Zoa`g zs%9AhAtzBr6Nwuv62u@bS5DD=nBTdw9X9?&JKN72n*f~a02_- z4%jE}-&S(gV$M7q3st9I^q?qGs&RV+Mm%Ca(}OO}I1}4n<)~>CdS3Jl2VjE?LfF@| zKQ9}|p_UdS3Q+ZYi5m`(xEB=37!1pvxDEUH_fiM3f4OnC!T$YSAhS#Fz5Pr`FxhzA zZ5z!X@N@dlHkl41<;1$U>3&}8bsep^7b;MmFa2dep_Lc7r?6h!dowF$l!i!riCkEIuF7b^2MB1P);LaYVc7q7k-Doj8>wXE^>VS78Rt~j^I z%3#Frozz+q+J~y+Bf|jefaNNwOAo}TPUOT>8LQ*-2#FRORii+K?}Q^gVqCL(Q-cqt zgxprzt$#m{@Ag1$oOuT?0F2iYE>Qv_$+ms{HAmtx2*h>=#+r4V=LSlpvLWGelLilc z_Er||I`bsGA_BS9b>8>$jR zmQCUOiEl!AFi$G;YXmNpLV`QSSS+rIcMgVMt|$c&R`HZc*D7q0^dU)7!MWxAvSlFLBPOjIgUM&7Vh}1C=RM-_y&9qH5B5w=T)^6`hil9@ zE9w}<8D*7l^$Dl~Cqz43U(NBRcCnKPl}86-LIool$d2LlS_47c{F0W+zU4c(9$`FT ztR-SyHm!cpL+3*D&8??OS7NwD6_s@<;c|TZ_zjBSa8>(pW|z)FvHW9i&N(Go{AP_*{k^|?CJjh8dp>JCwv`4j{+BOWC9 zO?m0eXHA5DPpAPnOM26@PY}aZ_+2gl`tWNL28#bfll7kOm%_y6x(G9W~wO9v0V2_$Lx=osAO zKfXXnn}d;a#z7I3i^`Cqv+EKD_eBEb>$dlDr|7+4wkYb!Cb#2>Gis|gFL-b9{q~6q ze@ysfPBgz`Fj?+k;+FNdWV05c10*C7YZjtc|KI)JcPFyrq26e$0K3?IkR$rtlV}C- z)LEC>?KGmfJFhd$F1B+>#i8n_RH0^#>|7sh)~C_XMkV&$qqvc?$#22*(sYaC z&+fY$P1r$4e@YFVM*A8k6UFAdpBoSQGDOA9mcW%snRvr(`R;-Cmx0&pPr0?L9-~O`BU%ez z)Ef}ZzX~P)1i(~(SqHuFPvOb`a}Wsd|8M?-+?jzwR3=3_Au|!u16fDQoRpJx*koi% zsVE}$oIZO<(mBj~Jb(I(#4Owj5;Z3fc#iEpg5j~Oz)Z_;TdaU4W3u?so%0e)k&|0R zzk@*)eq`}9!SWRxma4uJHWHA&RH+`@eSDECjKYONYdhD!9J(RT{BX)--2h@2>QR$! zt(-gnem2}CXMpypPlaOXc2g6Nb zg8w;$Y#8$uC&vYp=}>OjYo8D)ngM#X;?}3y()|N00%>#Use1sg?dFT2U!@KwT<^y6 zoV~b?i47&GDQV=L8e2oDlc!^U&JEKqd)NxQv6}jPsbtDq_%ETh6~$e**rmh!Z?wP?3PnTtgsyFev-lz^T22;ynHRk zE6shFP^c$q)Bv78r9e45F6(&jQJ`;a0N)2rEAmR{-@`t;@8myVZ_OX*3Jt8(5eAcR z7j;#VIS+dd2NU6AriTRk%Y-n}NE-3M?dbXJK|3$W4>5zF-?0zSSO|@90GoJV%zNFP zLe3Qw(uJdX?}0CJ!RtUvFTXcbc=&85f9YZ@VRw-Nf1PC0k%z(D^`-M%2d^bQ!bdwV zK)c^Cma^n)OKH}J{FPx|6E*!tDoz({aj9bBqf2IycJN+&&LI+ao4={HUSmbYkj{&J z<|Ewk&=$xFkld}TxJ8`VpwSq2>OHe3K&A_;wB42w!jf$RH;y~S+Z*>OSWb)MNo#BtXeR3p#&Z-*)D+DOVK1ob`rW>bH~aK7K94;W`uWEU7x6V z=O0ZuP{qABAOJZZ3o!!D#zaw?Kcw-7drtR0i>_Y?7n@QvC%fPG6+mCaL!e`+iUEmLMvkQVymh?;Y#W#muXc1yk2Me7}x|SjMq$P^}1#-zZuA#^G zsWMGFBw;f!EUbQ4qaPv5vwS-Dd^`TPpzKDJ6atTa%5cO95&Y3{$4I6#ddnBAUXdx! z$yagT!I3N{chqqwekp5_t=UL(l5}PTci>7cPvcXox!4ik(Dbzcy<+CorZxs*lm-28 zhx}k9NeHQrD3(FqO09l5-Qzrfz;CUl`;o$Mbp0UQN$5IqItIap$Oug77gs_ z`L%NrNv+XPT{$VAFh_?y{=s^P4HK( z8e28d7sM42Xw1SVbb8~mDMQ%AhFB|I`RAfz6yn3C5v2fhvqCwi-Q-2h^>T^=V3M^p zN(FwZ7j2yJXBQGYXO`#0;nNtuxXbf#strLPUQ zD^Uf200d$3BjyNLXGH=;CjxKGft0(%2Vh|n{(T^|)qT@!nLc)!{o5GwY>|`%s-l%- zTU#(>T-Ej*Yq}9H2~x*5=`D&>ON-~9a=LxRN;auQgWMr9lqI~#Swqf}iw7c#G5quS zUQZO9Nl67Le>?^DpCKaf-jf>`CqS155X>7^_Vra~Cb6yR!jA3m7FTc9?U` zzld67qZEGeHbhYn4dj}F5df`lw^Z0J3GTz>zEYbiMFn%$`2jSBwqQ2fKSh85wuiG} zFo*f%MdbR?3i4+jP>QwbEPgE0-6paOhSbt@yUeeu6MLFZ-*%$Y$l9rzkWtd*fb>3e zzxDl%Z9o3hsz-YqFOobQRW@KJ>VqG(2~-vYoP4!R&zHlsie`EqJz|R+ruf8OOqdGi z^(J`YAf6LVOdQTMaRmu(Da2rSKh#cTvX{<7C&f2 z63-+U9AJ`*xl*4`;-eV}dROeGb}qFz*v+IMk;`$XN;xYlTvol`b61WxXyhk~MBQUK;Y z_|<;`Kllwrod`N_W_Q}e%mog{zcs}d0SncXq7TNTNsK~be6^Nbpfa%oszKlprA|M^ zmqbqFh`p@tBX4M>2GqIneZvl^!o&0Ban#@zG4PD-pQu0SQ#JkRK&aa*DOa3o(lJ+i z;q81cv!a|5WfrqS<8>F0F^Q$A$24qbd9Xc}>UZ&E=sNgSQQXJco2a{)@tq}2r&lpO zB#Tpu%oH9614)kdL{*sOl=c_N3ab9qRxI6uRaE_SHR{t7oTPDu@|BXjJbIOv*6Y*6haAr zvHA+{Kw$ovR!=-aG?ZbXEt6kFoC4@y==AKW*X$rW_;puT>mJ zA{G< zfcc|E{LHYZW+$w_YLsbLv_-(mVTF8pYynLqpPmCwu_)NEsR`?4uZ;_-4f~{jO5s5r!H|N@O9{BU}^p6n)Y0 zR6r&lR;!0#dsN3gKc<-EOxKp^`k|w`3}KJ~A+I|00XmnEAE%GLly1gkZ7W!AAs7c$fV}6dGCT9P+QiKS(_@FxYR%0g#RH z{^~b00e$Cy_~681x!B5J5{x$n=qk^MouCl_JFd>OmJiC;nabJ#m@jAp0F?e)RQCUo z5zxx$Ry0rf2cv^0u`;Iy2KA;pb47a2jIu&$kuSxnuy`kNmk~V=JKMEE|2P?Cku}0;Y6}2R``r;gnV~|g0MXA(_b*PiY8|VG#z7d`B4zp{vNi7#=noPq z?kInVJry{WI0hnM{?k>DTPuKNyHE!^0G8#;VtnL(O3zAu0$@X~jv&*UyKBT8QuIHBzY&bH{?>~~W2?b&UiKfQt=UDW?JoD_)$Y3?TN`kFt zZn=c;(xb%NtDksEBRHu%(WeKjCn4t4AW93BQxJ3?ZE~M)s=JuYITHd)GCMYF`=1$Y zfvo=dCpyH=Naj=q(mRb_g%}VF%HAa9(=X0y`OO?vr6|P{-ExjOnVz>pGY+w8_dSZe zw`Sv~bEn1V^rm{}4|IQ>QJSoTH)Cx<@tpt|XUO2A;y=LMlIUW(x*t%x^6%d{)7+O@YF=P{jBG}pdQ{m~;{ z55hd-3GALT{d)i>M`Tta*jTFH{pQC$4R<(}{mN_#MwOWPbNxIP>q&bV8S(`ZbfG}# zYqG)SP_~L0ZaNH%NhkZ0SOR6FnaK&(tT~KqC$;y|*tHxr(YI_`pZzpzYD)eSEKK5$ zCNU8yw-NV!5v4e1^`)tRO)|^I+m({m;S>(kH!GBok$y^G+Uw2~*L`>pOwv!bcnUpC zgEGhQnT9Fyd$K_`CW46N!)ZeKtjA~-rYBawGf$8xQ$0plYDam~VcA7MJrjjcFpM{Q zkx%w#8Trdc+V~YAysLurO|R=|FXee}$LbUJqugiZ^D?vvg6cK8OgzpYl``n%CkuQz z{O2;tuLW4&i)bxy+PMoe9%mS>m0{dnr0uRjSe|Bb(LY0euo+lseULe1nV>?O@J*26 zORuA+%4ak4Kw3WR9~^^`=9Dax@?_!YW<}bXQl&FYP!kY}YnxBrj;J9FX_nc|I$23= z*6ML`PW{h^jrSuNK=}K^*IJ$^vG7fKXiVNaI<=pF2Y_~}IFS|ECzUsk6Ko-_P3uq+ zRzE-t`|7=rsrQ)n_WGPNbcJX!ZAi?dBW`r&ymQPCsm5SMX*qw-9^&V;jDr?-h08|AE3HhWt@ zHKVuMoF-eZws;XZa56jC-|27BzL6^O$sZ+eBG?Mf8wDX2ln2G5oJ2}p(r4#8 z0a#Gy>co*GulA;R%|m_hEyV~vjg|!+?r>S!8i=nrALizyMIQMT;SKpvcV(kO_7$#L zgvAdWZ8a#UuA(9k#-Qi`OAmKs5BOsqm5sEP7)m-?z<+N#-9H_zQEzCsdz1hjOl>yc z%HTW_DWPvS*pBnf&~tq3*Q#3g>StFDpQ5#883NLm3!P#tGiz+DC9`kn zianq@!w`&MGc{#AV8t;R>v=o!e)<^~h#&`d2K`E`3-thDRIe(h+RYeRBx>`LlOvk+ zoadz8?t585;R~Pgn`!#f+yHdjj14EHpq|VnDtIorUXwp?Q%D09vSxT4ny}Anw!TTv z>%2ev_nwrD5o(z5=jUNSlJw)8$0pz1*YP(+b(!)-1$b(9Ux`i_zOPCnTxUGVe)_QJ zSLM)e!B+p4bq5s_S@}7~ewQbUd$(sOdO%VcgkHLN#$b12LDvp)AZ$<_FUDyrU5J1s zz~Ohg$Jna*ZJBcBxAp$x0abR|k|;LDvpz8r4HDh}jG-T3e$YQ?n4e?l#A#mbx;V=E zG$!_bX@MTtG#x1963c%35FD8`YUP#pEo=k}!La#NxAwD@<^rF`g6I^lW#?JB=cz3| zf_12YL%>Jm`Mk_mUe6~*^2VCML_H&L7jmqI-`ALMzLYLn;P2<;{!YP}FP)Dnh_pZo zp6A~id9SXCynK50HO$wbsbZA{lj;~5; tnwr#bV1`4andyDLhltTTD-yLfO_xF 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

!}yrIJ?>pK^3}!f+jbXPSiH_UzYu@ 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

*>^@4f_ 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

MWc^X& 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

;^$woU~T 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 z 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

6`3X` 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

!#Rp$CeGJfeh(RRnfK*S=;&~-! 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

8Xk=?H?iMdLQVFeB9LN2CBTqWO~H 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%0DYUhpi{ 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

nHJ{b(;dw1PINdeCWqYfbceswP>F` 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

%<_{}c^&Rk#hO^-4K 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Ëo{9cZC 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%0A60KDSj6=#`l^mXXh=Yo19Wez2-K)wC4e{9I3+ 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 z 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

crEsT1a8GZk2l*!oM*i8 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

AKAh96A1mMM;r8JFRC5Ww z?gKq|$H6rJWmDIZ9pJrd@L(C-H7;gCEquHY2h>x`fh@^-wT(!d9DSyqExAB4SR1l5%i$LnK3{uR+epe_U>>>+>zmv|D1m=r)R2()~-q z!TJs_GzjGZfn*=KKT71RjHzrxgeL#x8YsF(v@ytdf%1-Lnf)p}vUY}P7W*p>Ye}8ckztg~eo~bR zX?f--Dy4jOBaW(3j_qgkw4el`(Fah~sFsV+$*|??(Ju?Q>vzuiz-9i)N7KBZC=1)N|4X`gAo0mIJQ-ke;8 z)U!u|E>nsEzhPk1K*wqqGQ@8S8*H8ZzRu-=xLu|s*@fsM`Vg(hIRo`A_$8=HXnBUQ<&5eEJsJO!b{~>+t{DE{UMRVB>-O&F;5busyKdAuo(A}o!`)?j8FXW%yIINmq3Yr?JM4+P${|0O_3v$or|`=s#1Ef zN&6RJjG2kASpY@HA>U-`iUP7x+jOaPm)wAKW^=EMTaeUc+~PMO7*x*hCNb(bxlMfh zC{P=`?NS7~>~-3T5rbSCAAQW#nqXb$j{5Hp6px-+P3g{Y<)itZg9v~-D^wTB6tzL` zU&RW`9O&i(u}->($Gt6rtf!knQ%z@7D5MEGuf%cD(PaQu8P92SksShJkQ9f-@Oc<` zPeQXku%RWro>kw}OhVV5wfmenW*2gnHFBX9HL~ugw6y5lsekib_*g`fUMjT70>hrDko2xlQK1`1jnWSzRW8@=H&hY4(5rWnOj_7CiX){Ak3l z%GvI!6(sJ>#gbMpP?rw7_?5K?IHc<~*RlMMz}zXa({3?MTCmT*So1{h&dG2RSFFc& zQowQ724HnA)2~l&op%LVg{R4d+m_l8G9MXyN=hi34>N{Vm{Xto3|p1;w3h*aN5an?+n~)<#j);|j(Jr@c{OT!_Pfc1Y-zF!1sxjfL1*TAyY_$ogl$O*`#`G$ z4ZgS2D+CJb^j{clzu;?vb_r){c516v?XgAw{I7G#eLv6t%>`>U2*GAFXwGus zz#GwO8#?)y1o8~&gp;Yea5ke$u)8+=juC^$pKkEPm0@GEi)0Xt8XSrX6RSXoiHLFU zEm8Y*cazIT7`WrYrH<@6Su=#rI|HOaAm*FJH7(;m66hTfTPNI$C`_lgmaKWm-A>4@ zjDzA!g+E>YdUnFN@{)0w&Ca*xlw;>Pp{_}F*G)aHPAgm1eH2?X1m})>VDKpy*E@w) zu=qz%oZYyndkWksW|h-Au_7zqNS*;{jh?0^+g-y|WmfGb?;(p>LZdv(kpZh!$NcA@ zX}(eWq>zn#H%hp^&ao}KX6aO_WP#1pUSuX=`E zWE6H2KeYmz&r2MqtMJ99G?*uR2f zembFgf7%ZG(k`&y*LYRVgC-!ItB}isEii#->x%1NQI1a4-=05^7V{n+sS=YnMS*wo z_5tqL#Nus+=EmTD`6}Xz%zI(%Al3%ky*zF@;MlcR&#0WGEbl~kOfx1ZaJEEom#iccfq0Tjv|67zDF_k)tfayrT& zRt&Q70Av5Vw8*y-yuyaUA-jLv%CdJSh75m+*_y~BWlBHXqxxc%h8`mc!}}uH!t1HN zEOlfh;^A6MS%>~dYkoXZ-Wfa8_wwHn%Te*%i4khSZ0d*L3fyv*$4@wx4^Hc%#Rwg* zpcZ7{g92ypC#dl)*t{a_CBgzT3b%}Ts#43p+m4!Lf*Fz8{`SmQ6#OmAs?>M?p(28s zsN-Ot(|CAh3*zlpix>6 zY?2ulo0N6h`I1W=W%_>KXNvH^X(a6Vo8x0M)={T3Q25m0lY)1vCCV1rr@7zBj&cZF+tY2mQ%*C>^j{M7V zbJu}2eP(B|?O4YB4c@c1zON+Wnwcr^GD|LoGbmj(Uut6jfz87O$55p)=}T(LuV{fT z=i$|ON@Fkz!#gqGL<+X~g2AMh6~!k;>!OszTxOrn5#Mu6T@Ehmbn>FB#-emvaJB%# z_#%QrGM&$g#EC!vlNGV50xZ-x7!e_`Msi?hyiTr>g@`TKs?x?~Of|2of%3ZaOl1N_ z!ok=yJGT{B*8 z%cF9CDOY&PMoTUJ{%z_mE(KPP)t0E?ss^2a$GW2|uPMzThGXetRU(dWHI~+FOk<8G z)|c5apv)FrNvtN6gnFXftO||KZv~_bl0J|ESIX{uLLm|QV5G!)qC!k%wy)V#G9#{j zuA!(0!NwCnq$VBCb40*&w2XJQGN~ zN{hRkA~q+o0Nv0#zPY>587J|K9mg+PKB-QpY0ne|vTM4J?lY1HPqV7!dE~Sg+%rI+8CyTIR3O&a32*#trP^ z_xkrw)QKS$UADk=1}(=<{+R!T+-d0GHVJP~N472sKG!m)Z%vCXv^DDCsZ$HCBvZ+g z`}Yo1GRKTYjVROR&ggA;XA0ui_b@?u+Iyn;?u_lJ*6D?L$HeFx_;jBt}fI}xD`yaD{YbVKAto=2KJJ|v@1M9ELgq$K}T|C~qb>)9Jl z)+ieoW4cUvoUixQacJ>Q#k?V!J-iCvKnXZSdRZ3y3DlqhLbrNoY=B*25U<&7D+u6W z3Z~F6h}M?#*Xnn)@8xF9AL&xJ$tpp>SFK?Rl`7#bLrjCMu?-HN9?}pa&bAOZ%QMMO zdLzAdlVSNwwB`0?(nLfAK%{M^Z~|?G+m3XZ1RX#1T@NpJa55!=?{CpR-C)tER`l`y zRVzXRoSET{eymPp9n`2L`h`&hO944tWi}L9LD-T{jKgaoAT`4 zwVIO4ZK$;WrA`f@!oWD&Ycr(OQ#8Kzg_ zXPg`2-Q_mMNp><8UCXklT)>L&a(65?UIT)&pH^+a_P3wEQcb~tubx@8#8HJ-nU*ED zYrOR6*o?>`tk!Ak)D)Z=h`ls9IB~7xBjF`Q?6Ee^O$}3%d@Lo#v&cT_UdFr)_dwRj zDT#_$3|kcA$AOr~oDP z9Z*(=2TAWmlrENc0}t$PD8BPeil(O~;g=QP z^!CY+oN|ulZC*R7wV`?mVsG~&;U!^YT5d?c@DkX*u>2x@ovhZHM_8@3XHmG8V!hy-JL{o^ma$p>zLzWFGqZ}W;F z*bszZtqF*t3pTfg50|)D0hGUKkSou1XkT_NA>9K{PQvM!qvQ}n#Ma!H>u!q)d>Vh& zC++`%E%z2Ib%$rm)TUiu8WdU^aUaDQtY4fz@w-(L5nwwcG1BX*a`$ILTT%@L&s0<*6QP%kL{nF$hq3!Cw^aD2d-K@)ReN3VXC2hZl%$I@$;9bq`viE zs*wcx9s`ejV6A{pomR{-@-Tn(@1Hwjr-Mm%H>%aGCiL1HVX98FM{wr?FI(1&qjz4>8nC7^~DF%7vOeQAL-(L9*Iie1PrH;XL$ApC<6W=W%0N6ey ziK2gVkP+Xond@r?MNuJPFTXLJTV0*yP$zT$cy$IaDL{24kNit^6T#SHxhD!~oFR>? zg$qRO{&wE^bqVL2#;-;~@<{2YUkb(fw zoDz;`c`9&beu13v#Ogy=8|n0vZ3RmUOE1>Dg3?m5?pQf(k^ ztaUOUXgzz<)Q-?GN;w*4h%<*gbS{@JGyXAbooXSyJQ5fHhwwH$4P3}c{^21<#b7C{ zVn3jup6owyfz1Xd92#T6c}kDdnS8INnVl6|X>^;b|5%5aGyf+;MLm68uRaccW{j(~ zClO>>VYNXHX}cFiJ@-JARt)R3Izxp{tg0estS9frHl8oP2Ga_FWCNSHcm7r2qV`V# zkE?#zT0DwhLs$Vj)9Mpd0uOvbn+XfaG;H|GlDUgcg7n?SH~&E|Y4-XY_%IbaT=#^q z0*~JkKEz3|0%|P7!X)b;mLFwybkY_!cGVg(`W+{Nor{ATZB!@tZcQDg8ovXmO|Yrz z!oklm%T6{pfwPY42-m0X6r0X!weQTvxTqSoXkNisw`)W^{ zXkua}X%N@oMk-gpv?wZ zUy^G)NdZ;pq+)J8yG|^5!Iv=~W^nDQBt6uic)~haRp~DQPNVOOHlRQQ39TNZLa~Ph zH-Ua@xcN@aBhyn*b^ZseG^=htYkwXr6GX?l+CKM^ z`}A`?S_TsA;KWl*R>F6CtTD=VdZj%+CR|5m`_&OZfO}gS#+yS1?LSF6yLjvXHXtAd zTM~%jP9{`dm$F+MJ_kG@4#5m+119nRv1xH$8X@Ed#q{j?nTP2LsECb<2&xkV4@X^D znTIhWiZ?{+4?Y9&z&m*cCqXVwaiK+YcF1J1aTp)J5Yka|5$^@VvFTx7I+Bd7E*k~G zbn1pN>_`DBst&AC|7dKBLn2o&7ZoK=r)rI!!=~NNriZ^EJ-#mx7fO48z%_H8`#eq_ z6yA`Rg~lvyP#o6&o7!iL)BEC!(oq~HLQiBRZyi7S$<9Ln2T{H}@+bXHA7vCkL3 z?=G)|v6i*2L?*j<6GX8q(d=5qHAKF|beM#e-Pj?*8)K)8}Xp#-%IAgMqKTc0~8XID-IToKG$I44JVf(o}28>!i;5kAIyt# z1G1KK*q*YBlBJlO5LnysbG)=1rf`?U$O+-SmmbAy_dX<8{yGmEy!qD6XtG@TRZ2i4 z8ueE@`zJW6?MKxt@Od5cz}#vyV2+Ds>zkQ&+o9;tbMM@&QHIY4yzOszDoa)Ttv4vW zQqnyZwGI_?^rjGjLzOhAYoa>?U69Yh4CT%g-M%bZ6ryRN#K*#ZrD`1*i1o7P|2_EkZMDocaJNUu?WQT|NGpYNKQy zfohUtxp~h}E7Tzg#!*P}v((T9z91Z+8S?#;Z`NOC4f23=66{-_u^$@?>-WK zm_e31YRco7=z6bZ;prrldR^fIicSgB!`e~zMn zG3qBQ^wxj!&`=9DB~30{|Df=_z=~nVZMZ7QjkbUOGHCn$k%U}doVjAm6dXS_B0<6b z4~kCh4^(Fl1quh+SV_{>yuEEn7_k)6qRg3Fpw`N*sq6eOoo7;*dzya39Y z$gE+CpTtm?M9RC-kl74#7~oJxV6e^nMwvsSC+A##Mx_<@6ZHtTp$zQTEZzx3u|H>u z$28YqqvtvN=704z&VQ6D=x}~HZmg|41tLA8QYU?2h%8M;ei!ZH!EJI+lIqb&qX~*? z5zIPk!!rxfM@TV6NC5D^&##r=qpE4jxp%tOQ}#5#ofI? zOMq`{bdW-P%cgr&|K6j2v=AO2HTnv?7l8kAkH0eG$nehsX@mO2q!_$2a_CUi$O$@H zNC4|c71~B~R+V^-qLiQxF!V7HW6@`|8%eYQlZ^7Ejc*FpG&1z|W8sD5J!dY~2uc~v z6zVRr(3MiGqEL|fOquLj@*5lur1u&M7f=0LPoS7JLcl)cFXQ?oRv`~s5cNEYt1r5I zbtB32wgJ+lqJBg&G3Yi3$a~;h>i%2Lj#a_Y)KAYwfhPbB#pVdaOtEx--!1DnnGXcu zj&hNzWi-gkE<4SoG~1voCFJ8Lf~>*BtgAlIdhhO&m0wuB8&p?v;K6LShcKHqv!& z@oQrX3_E7PL#h24m@HWP;#%KUW5^D8WQ#gb$4)S!yyjAbbHu37!|7z6&BU!H6mS8! zP1X*)xN@j7U7%H96q$*0z)kC22i-g4ZVAt9ybz70h`rsztGvZ3Y8o}$6T1CAWwi1| ziHa@I!97Rib92_>J+4LMNX}~Gap?qZPV(PWCK;8pECQ}p!}>r%$k1UC^MPGC-fLNixhXbo$rhpI5$vxK{Fk=!=!NODpmu#X!n3$=#{l33&jQQIfTl*TH|7^oew zsJD)Zx7^C79x%6d-i$v%eKnT}Gvsm9808INB|xs`vSg^4^8ji7Z3{_$z@c#i5fn2i zf8#J5pZ~;cs>HGnus03~2PZYfbjp%oT+OMZ zSUAknG?F<%Q5cXmvz@6^{0m7k`{r4GjV!#?;E#zKRGVtX(YisH78bwQQc&*s$v{Gb$LGff~9`+uH)66 z0c?KJetHY|)_xyT9!b`Gspv`W991=ye2!;icu0Z;OiynYzRXS=)V`LGRwBs| z4DSrij}cM@5gfPV1`rKsX-eExuF=DXw=rHmhDQbtsds#Luvd}EZY)_5r?|ZJbAGPU z>$=TKsUV4g-`hDj@Wa=*VaX^*@8l3O6}@%~B)xn^56_2nS{(JU`NjE_3oJtWahX}q zF)aS}_o0L9%%xBqS$*NME%dUJDx|$-bRDshF1ojwnVBhOh?zMtGcz-D%*@Qp3^6k^ z$IOl~W@dWMnKO6JnVI$8UF-eXyO&z}BvqB9YIW-?!-kH=*ai*m64r8gip4gFnKIe9 zgoJ%ppC1@Orjjyw+`rE_))h0!0Psx@HNXz?%s#lk9*m1QaX>YscLAN z@Uf7Cwi28?ah3-?Ik>q>=`0Vc|9<4vIKF+2)`|A6d3N!tHsBHpmXpeslJ35$p!|r_cw8?Hm$OTGj?Md^8Nbx3n*Vy zd0zAQ&t#O*hz(Ovn`m#rcvfchr#b9)z&I~MEv*k#QO@hw>D`|!OS&1lgr|9e!$FG% z*LGKXBG5%Svnq=vZY3zUbcGh?s+FSo~chR9uK2IrvYBAUfe z1Fl6WsYOdch~z%oqi#YP2?R=%A3X?++eABVFq|&I@cT&tJt`ravfZa0*?62I_i=G| z7*Q&Vj*LT>mRURc^HvKm!5Hai=+*>g$s}G*)NeHlucISd=S5_4aVczTX&PHOFuH6W zwFkhvCaYG$f?;xwZ`hzeb5QAZjrZZ2N>6g(|HMrn7)iJ~l1T~q2tK3iDTlf7?@{%hNcSC_dv_IiZ(ssZ(n1^ zr8im}Esb>@Gp6|y{t;;@VCOyZR_>fMkqQ5biI(*uBSqS`&8b~VhyOq-m&ih#$^lGw zP#hHEn5iAltdQHP!k8hwfX-sZR<`9c3LTba{Zfh@O9k;&+p=mx-ZQlm;H$l;M3QnA zUrQ?ofiHDmj@rc!yr4|tO@Zt2<~5BRNh|`uX@6PhAe2DItwDK z>t&spI*bZd{jkZjHzx~3%lV*ya7HtSg%&5M?ZEP<=?wjTffnT2Bs42`L#>fLQbvs} zr#*u6r_)9Mr^jf1z4mH3OfBz20=3G2ql_?>c(fpMy@1b>kz-j;=9V5KO_UI-3D zJC8xi128XJTQAp4T%roF%YK#$Sza!*9dOlli7aq`B3w0Tofm@g9T^&XJx*H3nEHnG za=v`@w4#}Zn%YR0tc*C{6PNMP%8dKQaRraHIW^$vTJxHQbSv&wZ9&%ZgU=f`muMe(9zt31ek>{L8=AQB~C6^{y+Bu~?IQ6IW_AG8&N^lZhw*O3F z_@ma#!`i$$H?qFLj*Zh%RH5=T_t2}(JnW8MTy8pqmp2%nICT$kVLNl^)no;K_SWXg zR}+=yL?c3Rzr8$|sku3Uy4Hm|KX*D4l+hOWZh=zHp!bgWAS`32%6Gh^+HV~|2gMnm zGJS9M4Ra8)@Y0oJuRgLkk(L>q0#}C7`AAjYRQx|3S7!!`5#vhjhZK=W4#a;4pa5_=Xc&;SFNl&i!%UU?vUU z`EWV2!Nsoks8)@}`Fu^Y)rIy`gIis^mR`C=zV@q!s*BWoN(y=1CPL{>*(A z4X~dT?^(D7qF1pjjdxS-8;tmN3t&0J2C`q=-s4H92ZCy3I|Wx+b?3lNos!ACQ8zN_{k zal`0@dm4XKd}$iaC+sgQ$lCe^VWwRTk3UtqC^+BcvQx8*KN$$Ig;5Hc9XF+~!$LKO ze(LAl9n#|Qm7lLHDKeHnxXcWR5^N&P-(wdrP;q(PkR8(m!F04$6hx|!4p$Gs*DM-_ zYI_1|&pR+<4~t?=veYG&?(bb5?1_)_O-PEym9kAg!*Xkh@G;@TY^+?P(;Vk|X?!xW z8Zmxx10TO1NMRWS^I4`;sEqzivp5$hSdF#XXHyo8g5-^>P1MD9OTCGv@|yEI?dV0$ z!Fx)Nz{e=&jU-&2S!zeF7!R>j22A!@qFjOL37f+Y;e<|%ISuQLo3Yn=eNMTRiyO7~ z=j@)b)CF_AOVFWg)ECe)AMY}Brkm%;O{*T%WW%)m21KznH;XB^jfNH^`2*h4+ji7z z2_mViE_2-)?6#3vNwly&7R^^(9yNX6b0WVikd)O@4`8m|3%S%#jH( zcWb0)C}QU6$s`q*KWxBql2zr33bcB>9Vvf-N`*}SsP#!mBNH~N41I5luNBFK7G4q_ zmR2a*aYz&agS&gdRZoE(8w5z1$`-t!Ri-xgPW6@Hw-#rlDo6hHgzZP8C-rY$C(zK& z$W{DMmXSmOL~eIYyuY#69#$jGN6!6yk)>=>V`qHU2MEKbmhr3DIaT07(1Alek~>(E zuK0ZJ#DM{m*=S4bEoj)xJNpXEe++M%SHwG!l4IaEd*XG#Z6dn*BXi?Cm0S>z(8{Bl z-#X&!a%RyPzKk=%(eCOoIESu2+CPGa^jr&v*fmt=p3Ath!2IN+I-6U}^$52#rn{Qg zB@ zHM27~{$r=Ww{|v?rZmC@Q%6KJ&iN6(9E{%D+~s>b*%3^5@{O-DW^dT&fgR1Hr?syf zw6X`6!o%)ST^cFZn$%d8IzbV=oYtpIb1B*VK3|x68wl7fP*S zrXhf^1!d4?W}&_M0-j*URZxnwf)uiaG&$|=Fqsy8hf1 zL7rp-rMB`6{NfLDn$?G0e`~k!7a}1)qQ)4;3y`sb>UDsm!|l~M&4!L8e3Ppk$%nW2 z;<@#UCu>>%`;EDvsue=Vj(|h9OX*{EXV730A*0ZEu$%GTqVa+}sN92IkEUN6BBwCt z709^XM&9YA#z9#V#&tOkBY*QDu91?_1Nh=@JN(O~n`Pz){_LED?M*044Q^u3$E-fM zVE>N`Qa+MKmRuGAHeBsQefzsac9WL%=ItKf#$;eMK=>{BE z;TItbm0=&RUyUOxZVcENSDv_xiwv9{}vB&HP?h%Z*mzd66)h_oXNSXG)0pV#){@8hxdrpiS8o{(A_>-yuEI9b9<^+nqVWaq{@HTsWF!??;WP5zC(T%Y!foIgNkdwV z92&p3s3x|2 zE~e6kr#VacWBoTD!_Ag(H&ehKHr|={1RK`G-ggqsbw2$1ZRiSNO+N!uDhM3IB}!FuabwvIq;^9P>ZVskDkE7cE>OhyWe110 z`IE*V!=KUDQ}JzkzdwrZ7?xbon!6|c9FIxUR1ZV z`(Cm3g+%m-diDY#{^Y);F-7GhdT)1*~5A>!}rTJ%${=EuFTX+dr$UL)YIUX<#c+CE5%D~=#m~6Q-fxto>>F?+i}CDl7IA_Q zA!p(Uut1EhX09cZl5C0QPcnMb8M{OJL94}hgUyB0%wX;kR4wA{CDmFkes8gL>Ms7K zlu&)tS|`Lo){2EDtv>&~v$(r#u@x$fLzmaHnJGQxtG?QGi0U4N^ec(ym;Nm{6}O_+ zl5!7HR4G`6!AC2k69)we=@99V?7N;>|1~h8sM;yClZV|e93y_$po?^q9CfB1d=P9a ziCL6^bTpWivSySJ8HeXmfp?l>DuIh)Tz4g2vpBmt#p%W4#dSW@t^DaS{O(tghMr@s z#Hgy%)1Jdo;XPkS@p-fF#xWN|9Yx-^Ai?}IwD|969-kxf_3~9eZtCO3Kr!jeBpDXI zJS;HLS8ey9Ip7cenk^En!aZFcDl$3qjR>=s_;D3iqvPx5)=`P!EKl9BO>=TBbJ@g5 zB55KQb)D`uF0EZwB~04r|dRoK=L4_`&omA~jCj_ILkYgF>Ge7eqwD?L$$LQn51K04@o z(k%Nz7!3bMJTzTYh}imIuVXFI1W)2-L0S#z8SqVMlZJT=d|a_sdtTb8!5N^@ekceNKIRqA^KZ88Du?xYmCu1~rVrB_;E zC&x~OJd@tw{GOs>4LJ&y$N;svnXya^S))U|Ncm{nu-i)=Dy7m(>`16QMN=#$4Gvcs zAGb7jfyz?>dl1%iGkk_0ZIoV5niVcX#j@UmkD^=ObjZ3vF8jXzRRXIKq&z1-NcxOkd>`! zAnA3Dcw|L8hKO?3S7RsH2^j2ecQkfofjeGl{wv9i=IN1?eKx*25$DZqxy6!o_{S8& zLr81yVFRn$L%|9*{KscL0&Yzwu*&gp1{l?SGoy?elVdOTxepLI=hU8SL&<@^kY)`q}kCz&}Ct}bGqV_exnCm{9XpEoi6jXAnDf~V;qv>E(9CyYbdyb;XWuAHJC9xG*N z{49;0g=*Vka0gDxEsj3a-dsv5^Rs;y3b zKQuhm+zQ!E=cST?RWAF$38`4|2NQq!N)+nw5v6razxRH--5lmgq0q8YGqYpthnL(P@hSGp^*Px_zTc0|# zGX3m@H=%OJ>bKW|vVLYR!;Crt2OU=F!)Jc>yX6xtaccxOUwW@_x>w%xj6O`p+QMt^ zaalA|KEu|MR3T7y3b`KgA0|H3xr=u{cq|{oHjeXDm0e5SW2jZ z9LDoa4R`RFMEUu#CI72~09-*l^oDm`12-wE93W%&*v7zDHK?2^f;)h#UVNkXB;3Jq z1kW*TjLQtf_0XkB>O>8{BR#6=YcmZCVKYu*O28gh{^T#M>0v^A`79>KHJmaHRYv(6 zB{kCt6ISPt%9uae-d6LvH!TBK5(pb#=R*}Ia{%I?y4nj=$#sQJn*uKyb?Ily=^N~euq)O|S;#nc1hHgIK^3-i6MM`KFK5TYbEzPJ|Gja8NP`l4`?$`Lr!t zw%POs`ObhCVmYr?jCEpL#&ba|eizrda(7aIQdS55Bxr|>J{cj{8r1)TpRX-!bcRDP zOBe?HBmLy!#M3f0!M9ksT7yb3sr?izWb$;9{GBYJql%p<`cCfA%T2UgInT|cqo%UreDzM;2+RKbiwQXZtViqL?Ei|Iux zps?nLoOJWqlI6)t>wNuCh3J=T6}({EE~G{FKtlr@3!>2Hs}|A%5YRHINZ0FJ;bKfU z83GZn0&|OYNn1=!a+W`CBzD3%_jpOXONel)TPsO#Q?CUCR-G{?qEBrDZQc1}o$F#UR&~MiU#Uw$7U|eEsljD|A5vJHun1OM>j+e?;8Vo5z6%hvYn_sO|#gtJFsC=1ziaKDO6j#+MD^ELA_ z?<_X*k-rDk{cSVk|!E~{h_8$y}cB)8cmrjLH z0!#_|UEgd+{@us3PHuLOVcJYLAxECuc;OB1ST&uF_*2C8V`RR$H*cI=v_LNA6lX$| z9uZlpu%=l86BX2=40*N^TCBxRCR{=MR6a~v&x--lv*DQRlKnjy`AH614SI}X2Tk~C zWqo$5=~Hdh<0IILrC)rkevKDxBQcE2I8hH4A1HA0yxL2^~XFzF`nWR^nhra$9 z2wnSXa_w_8l+ci%y@DHfJINzN7o)RWiXtWD^JOE5vL%ABFqn!IDwznbx+y0XP$pPK zbkrJ{K~S!bWk&Q>k&i&h#IWL*eu~Kk-p^o1M#9HB$wm@#idB&4QS$f?{>i5g&(j(KY!Bm2y2wGd7JloLJZs$(LAg zhvZH}glbR_M^XMpZ{5?A_r6!!n%X2LBC<~29S+5Mi}{3Z^=Mm{qtRZq=HBZqFj#5< zPN+mvt_(`M3Kyjvt_4jQQpJ%_!v?$er%wh2l^B%;vp{~ufIY^Y$P72^v_o&=M>2b& zopRJzqVrnTpq$tyi_W$lgV+4X6w$TXHy+}(es3;XyCA;ki=9E)L}&ewuM*$G+!Vn~ zc?OhKpdwXQ$#)0Lu6(mRLS1*-Z-~o&{}PA*7ph<t~61?G1|F&eq2yQnVE_n5A-0{IKPQ94K_Fpb1V92fY>!( zZ}!K6QQq4)_DMMdXza&FbJ&QjP=Q^4rXaZb{Op3gpXh>D;I<7i9ZFfZFO?ddTk^~Gc#+% z+YLv~W!d4f?@}TdRRu;K@N}+<2KV*_=0V?NtZT9xwbznZN8;I6zK|MS+zw#c+<;>E*T8y zW`1@QC#NQt3B7N}@_Rz{W3mWiImg&5Y%J!8$Ir_S8P zv%iToE8hSxX-}^_1@gI_@Yh*G?P`BAPF5At!S&gCh$iCpr!Wbe424wrni*G~0K$g@ zrcHO3@FmnG;HtAAx9I>~Wg)n3sn9NmX(`;c0+&5^ah|8oo}3TA*K41Ih4va3d7e5n zA*?_SafGZ;ab7YWaQ##JhQcC?Sh@37^iL1nbj@$E5HUY}YcGe^DBI^B-}G2~$nwab zvuGKK*0OOu`A2MiypL87GK=lRGxd7@iM3C)Sv5OL?=jrg^9|xXPq`p^zUe0uAC07a zP5?p8n9w0KQv+ET2Uz$zojz@UB2j>!C!i%_2uSFYRVLgZ2l%U7aC%;hY5MM?d zzqIm^#{sIdqiqjgV$(Rv+YYN4g;11@TVFP zSHNdMkI#@vW9hy`XZ#-1%>~&%W-LU1>uyb2;OV5-_63?suMHgw@c~1F7{-W!oY|;^gJwGfpUO070-dc-Z*$@9 z^N=bj3@hHU-66$7t8d-%n`e5ZVmvxxDFo}gRRkB-C?47hUH3cNz=du^V+CZQwGVBc z;4IL*T(^8FS#PBFqVJt|#H#$?yA5NnRy3V?TtBoD7Hr~PzWCL>-Tpwq zC1#7GdktmP^Z1xEM8@FRc|7AQfAjItgpRiD=>vNMykco1u}E-%mk(Es83*e%*PF2>PP{2I|A)+h zjY9FfjwdMoRQeddUQ(*>I@Q;6qwrW3)&5<5pBluzDtPvT2>8?+zyX*O|Ig z4OFyAv+#L8e~5YX%7sB2loW#8&*GruoUP+hEJ|MT)mz~&HaFTH_)xjx%_H<2WIYjY zG(s0Oc2i%&&a(emQ;?}RB=4O)cj!D|**#D)!Hl$jJVJbS?O}O2N_T}||2127@sy1!8=`3K zlc-!RqVXh+tPX?_z>V2mj}Es+?LKH{ovo3^8V&V+0IxX0n}US!24vTJV(%@r*3-L; zNbaGt`0>4%$j?t8Fm)9UUUGWn37mbAFu#X0a7cUthqM4ZK}L(l7lGMgFxOJ+PX4?h zC?JEKcA_En8E%5lR@eM(c2|z7*k;XO6%WsXLImpcX)7QzL)DwyO+_Kbl22|`sk&}IXS`qExVHDWPv5q`^7bki} z{%c7qC1=w#UvC-_;G-TLHcZ6LT`S*E)LnuO>UL;@*OS74&dB#jcKR76fds{xFwRc2 zvDm{+%8A1ySRn$laCpZ5V+y{ikyT+)ZpJv|tgwvzID{-riVB}H9bUI>ShCQB+Dr4x zHvmL!vNL>uu?g5+`0Mlsydz|c6G`5>%y0s){LHO$uQxB#ocukHn(aryGzLp413D+$ zaa5l?_VEHFq|J+wb}Kd%Qjfnrnz!}$(rf@0VUgi!uj5!zmHLOeiZuC;K=TjTG7sU> zjX~MYu<8WEX`Eo55J{s$G;eoV(O*6bt@m#(H!P# zRKJW%@!(E=%KAB_ZN+naW(rR`%{ydjC{@9slol7#rA(# zItZE>^xrFibOyN$G*hQntuE-Wz9u_AExJEDXsyt>dn%rV$(NBz z;L}a&f$9cQO2%y=R%N_a$q@k*bmKch(&AtbjsE752C%l1%395wB^FO(D5E>w89vWX z*C&r*e`tNNLR(vPw1td+D>xNRBY@DYlq!Rc?_*( zlLE~7&mISF=CWq1j+g;+ph_EsGO@ZVXXxBitZ>hNb?~#DKzCau-+xO1fUg%!`2F2+ z002aQIg9^&5`3W3NXGI7fSn+MzzPVo{d?Je2EBe*<{_ zOQte^JapzyGyp5}n%_^9ww`~x`>#3waShZh5K{Dmy#53O`7W5T@pl3PiHvw4s=J?v z8Cr3s-Ph8cY^^{HLoR;|0POsh(k3r?*XKp1aaE&{(R&sj3X+bS55$(ukwuR0nk)r@ zo>i*XnUN z;tPB|{GI6@YI{E#ynqpC0M&T=Z6jYq~ZFc)_64q;0vI_NWnW7n+%8T<`y_1@3s|Q(N;adr1 zUad=CWp*bOXlv@lAY-mc;-6U-^x@-u(zH%)ZRw{Bcq@+GI4*)G`yx=jVR*@Sl<+nB za$r6Jz@K~>Rc3ar(n8g{>%T>XPFaz`yGqHQcPKbGpO*2aXVC(OK;6)PF*bMGZ^s)Q zl=#9mB+u)d3jE&6QLqb8EWvpELu;NWlEfk9ByHKf&a?J-QEl}?DVh8<3H)7)9_GIc z-8&wK!AecxU2QS$uys%qu(ei+f!J)g7v!=!U&q5jm&Ki;CviulTGQ7-hZK<7P`y;a27p$5&W*f zxF)v$-$&Db-TjOTDVX91<@yN-j1f!+vP$U!0DfB>jb124qC?ruJ>ZM@Y@k!;*h4S)M|;P0&1T~wv@Eg@$m~p7L%TN!SWELc@8z&ZjUaF z8C7Vb&+B_2>*V6bj`b*;NJ!!d!UI}n62wK)l6pM}xE77C#Wp8`@?AXZ-hpD6H_WTd z1|i;l_Q=Ax5`+(il8SzXr>x^>7k+I5#m*iAaW9CDyG@x_V!BrFpQlX3hnFQ^6WFJI z0c|{RsSLc$)TKKXzr4Kfy4F^dsGdX)h|s3(8Q(AhXd*xE0(m+R+eOq^(*RKIoBj35 z$l1D3Uua?(5L57EbzIw!N=tAoVyZ$$Ek=$9rSdaakj8w!e^k>ZDaT!200jUbiZodI zu)i?yy+6eVtO8GY72^3Dn`96NG(gfJ720-2P=;%p{Uh&+wN5u4v#U$sKgG;yv=R_S z{OMdmo3PcKsa6Po}*E3w}_npNauU3ug2G zhi!t#=q0||0e}R<9W`bG{---J`kN2YlScq*l_WN$toHv4=095r?fw@|<)3f@{|;BZP6TF+Eb)DQ`TrIUtg}F% z!w>59FJ6OS`se4gpXLa8@?_e=)OoxP3es%sB>szaN_^AoERUBs1}e}h61}ebE*-{C zs-i&7&+}K@KCNeE}Y@KwV>Oq^G? ztyf~XU^RbJ%N4zgS4jN!d|Wf#o~%@taSxe;2VWmtOAIaX8<7Ax{|34?DJ`NX3ZEf& z^eV&t4o&iCr-0G^x~I1MN;&>D_2EQ0tm>=DUa%TEYSNj|4k@7NJ1p7tYaG0qfo9QX zz(=V{7c&TYUEp^ouf!&%At-pH#g;AyA1%P}5i_$?%3RYyKObT!rq zn8_5e8jTVD!`H@Mw#SOQZ>17E9j@rFy+Y2ZCwv9F&GK#w8IU~1#!Zd5W9%~6LTGyI z2S|f`&=4J_F^|8gvZkPuSe|cwA>mOT_LR!d)T5wc3=g5W{f(diZN$@FMAKOF@uzZcQp_HPpEVm#T%rrj-)WpW;vjOFHyyT!;_~7F zcK)G;Bw-pTG$5Sd$c6|p78`JpW=BQ7}=p0XvukkuYWzV2>0+_zSC)Wg2 z{M^rW@I8!?RH1jeBaBeY&;>5NZ%cJ=9;yG70IB<24F8+O^AZ=_`9bslwRLO3?2`Z2 zQ3$Om_l74EJJSPD&BYZglLeWgDL|)nTU}YXav5<_{|PUge)Vq^pjbH`*YCF?NdH^v z-zI=Je6IM=1b?gjT=9qg*CA#lT~vW@d3(w`&46P~^DDXdU{=GL)>IE}?(0YGS zC4ku@|0}9(dx$S0c{rKFzhj}V6P18?d?WMy_hcB!0^@W)7|2gV@_51Y$^YC700koa zqR8{ib&xOHn#+Xv(@sYxUia1&N6h?Qz2zczusMMC>R%&Sr|&@)@zq-b zqCcU(yCaiFB;hp+Ac);X_P!*?o9HgAVjQDBL)B^9i=yGOSZ6VSUe=z0z3iAHdUy_l zc?(UdDiR-u^n2_Ak+%l`IA5Jp6D1utN+ktp+%=EyrKcuJ=YxZ zv95jITQp4GPb0pwn_}-^aN}=If;Q??j4DrZ-i55F+2QZM6 zS+_%TyA}MZG*=6O=D*o{CW%iO4+@mcFkMnw(#9Che%FE3XX0&L#+&R|(~1vRDXm;6 zqs2+%#$X0%@-8^ti#yY^Zqv03E&EAWhf&$}`G$ADIH{%(q^GLoSqBBZaQDlN!fEAi z7P(9A4C0hvMid*+v^e}?dc9iN`(BK&t;%L9o77r*uzqMo7L{7h*=r=1u9f|~G`iN- zQ{l-}+qIp=J4F}r3@Ne)E59#BPA`$Clc%KpjFXG8Xf)rm@rx+YEF-y!5W;3;bQ=5I zwEOp>;voAyF+eM4Rr6wj&7fLz3#_j2M!w+UbjQwZ=Nf*W682eg^m*pBgdd(H>C`bt zE;H<<+*(L#X16}C2Gy$;+!HK{OG?X;RYbX`mACH(k9tG<0clozPBQ^bbN|(HQIN3c z8CWeqIXR@}R={r$9{?xNbzpscL{gebic~WtOSR#!yPo5R2mSXajw&hqo(9;{2cwhVzkRLdP2RUV`|`H84;w; z5Si8`5)afZ zHEh}h2v##O!2ZfR|4Dp*{$u+UUCQ!Zb%Q4M^2^83V|;!UFI<|2m=B%U8)9VEoY`6o zQF7;I61N;G8Y?zf#67Ry$G;ax3s&NOHVG!WD;i-&v!d{mln^U;=`al z@cgl4M1lFyaG4p!fnGE`%pMZH+t-yRjv1&}=y1~KSePYjit)R)PXeBHM~{1-fNgIw zY8<;eiHyjpmugVSId6{2x-UL|n!YRS+IWD%%_zP%`M}d;PoZPvrT^&g;8?3!z$-RC z+?$D^E4@Te+|LyF^<8oXYg5UAKHu6&`VJ$$Kb0%y0J_ zF(J4Z`haMj+HIr3tB)p_{%JXVVh(mxc%PPr2QGQk6)a%~g8)WS^P`SZEvBha0eh ztG5t0DE2@Ymum%NlbsX`g@FAjhWl94>8WCdHVV0-TrAT)3$Z`S{uxz7awURDK!=r72&HNF;ER*x#7e(w7e3+!}|Dk5EU^5G8H z=tMBSFGEi^G<3zF*w=*->MQ7$p*xXMBqhrUFG$PQq)TQW?&LQe;l4xEMrPBFznnT= zBU-OiUQj9F9VO&~^dqglmG(qd{y3>o~s zVTzs7fZMN-y;C|?YkCE|caoeH=9V`HFQ`2W+soZ(h(Ql1%6MD`L48%#MGazHo~>ZY zn<7U$e9(hwTNQ9CVg#dw=P35i7;BSJeNMxVkdvpEY_=&f*VoZA3(A}}c+ucnVz~0w z3{me{eiS)@q?@o-Ej@lc^vLWq%P*)U0V*9b-M_@`6SU z|8S`KmHjj}`lsN77g(2I8D;yn8RB<^TnmYfufih3<+bRD9njQANqXdbL1M^3bf==k zV^m9RY|5hB#AYIRjM+4(2hQ}&d?(N81`#b{yUDj}x|JUi&2Y=$%^Et2uUrNV<{CZj zuGNLBhWv(*SO@?xr5i-alGcgenJ4p}t0A&HefjYZ+O_rAkga(f{eu!5oes9C*n_J*bW^W623aK)%PMLO~_vF9p8@+Y>m31+Pu+Pd541p zA5TrE!=1EWMqNZ51&QXX_VhZ1v(LNpn3r$t5Ritka(lu311wJl%eFpC2=2&IuN^nE z`xmG+K$WX)WO*0Ahtxg!B@oHR?eL48n0hotj6DooB%v`?)vf8vafy7bjrx;l>5AD( zpO25Mlpjo7~A@Yw!W zrZpQzkyo=YTZ5N%)HhlHB%M?7bk^im=U8?Z224(B(6`-th1Ipt^IVwmdR7D2nPBB6 zPR~~;(8R1(xOHpEF{}gr)0A@b>R85hHnLun90vA^ka+il+q_Gtgk9f^YY-MxDbRy7 z{L6eyL*H+k99-;2GM9{Wr(E_TrK&cGXx=v>SESv!sy$x_`*w07RdsD*c9_lgNm6XE zjrPqI@ZVXMubu2uJ)E&i%gKc>*MX2+?eppNE81$aiV>30B7RR;8F&H)LO+feQ7N-n zI}^y;vN16-HQQS`cs>AZt2dEGv14&3SkN3OX04Wj*r)BHu1C~M`Q?Kwr68-f^P$`9 z?Dn;Luix;WI*v`q7}eSs`|RqHcd`3rNi%4%Ne5 z0>xoGmwC9p%j|H=!}r7OJ?p7MNL{3FprK%c|E`fq4WeGuk1sY38%^<4@Sr&d)F?N-jU)6C zmgjOH+U@Wc8ID?b$wUNB7nXzP>*5i8l=&=Wwn$6Dn5svE90@wGJjv%6KTI6Wd!24L zZuUAEwarX&WiNFe+FzQ7d#gKpTFB=X^g$A8`)r|5Z!Lwvyu6nBn;}R^+ymKkF$_J7 zg8?Dbf=8d{#ngzIPlDAk!N~XnMxKuPlCR&ayzuWHOD`olepo1#hM!Q}H(z{_Z%n=! zDW_>m`+V{r8l7XgYuS|8gDcMjgxt@`KK>yxhd$VDSv9`0HjB&Tvx-dNMjcV&BgkpD zF2Pu<{66t(Wd`_M!#A_<(I49W$#-+UAQn40wc4nexb5`J0hOzK?!@bjQ$fps5Q&1n z7W`S$`dHFzJuTRIF+{I|j1zs?3(%UmXglw1M z?fkZI%_a7^{to#N9QXjc!%Ibf7c6=~ElHCFnIHI#6#gDUGFRcS+%VHTzQYhv`d3?i z;5-H)n+83NSY&DDX=Sk>#adD6SdocvMcnzuHv#`ox*oB*I!u(LNxGNp_~fE%Ozf#0 zkv1%C$ZiTMuBQK|wzB}MYTNhrT7YzScSv_P2uPQNNOwrLNOy;HBa#Br-K|JV2}p{B zboaNGa_+r*pMCB*_k;aB`|)9oy?9ykH)FhOjxood>BfQh%vjmd;zwxoKJnPh4*zQV zBa_NaHgS8yYW%p?OT<|`2@=NG(?E)mlS_tBDX7(ORQ_DU*< zxsB|d9m3(+Yl0KS(T@YhcUDf{I}+A}TPCOT)o!N_cTEnhij##X6!3<~y$J^%7&A}C z4>2z>kw)^r$y@A$Acmbo){1vlVti9$P$v$_gF0;+KT?>3|H|M@M_Y%B;~G}W9+E%p zS=h_kpr5VIlL%ghOlNUlxExM&9}y5iVx6rA1ZUg9b3r~I_A%4(7VW`sM>s4(uwkL4 zy{H`_2%&x9Ta}``z-#)B)PyL%HU_xmbS1yiX93FfD|Ec)Zr&1dzldK z`W)?)k1hB`)98y&H;F!u&;0|iJfzs;0<4j(g+*x2zahF}PMT95**zZ!7MxRTHTvv# z+&9G@qPg0+fWM;289z;iiBj9B2BV!aZSo;E{Y&Aa!Hjv6PrEm1+rqa}Lyof_`OoG! z!@e!3N#@y$5R>t4y0|#;Hh(eeZ`b7_+SHIv!F$ZHnB2pcy7PVIEzXax!!sKuUb_bb zjn_?eYahkUo(uqIC$A_&F#^MqgL)IFMp;fdTGz3=uQ0mtgSbDJIUK{y3!-xzx|@u; ze!Kb-{K~IA00+xbpQtdK@Mq<~T&Rf`H`bvpC%yEn#4VFQ%38?&YRlM#AFbp!F>c7W{oeV zpt346PDQ$W!$kGTul8kfO-PH2mfhFyU-0ca)}W1BZ{Z)|H+wY9lcmSYkSkkI2y*N8 zKs^i43bt~N+I0<fMWgSH>{P*O>VxkyVl^B3NnapMQ=cu)o%B zwAy9I_TuFazqDfwc*05t(2| zP3Fs48HAi!Sn}l_Y|(?SSZ}(Juhw39J+EGxBe-hYk28dZ$)mrmM)vwJCGK^1g<-M(* zEM(r|;@Aq#{TL?^($i7IjQ0qCVf=D9zKgp;sECwsh%0ZNaCt{7o#*w4Twm&iQ<&8I zX#$@;4aZk-QKG5K;hTVv<_b%w>&M37BRnO8BR{TAUmha9wd-3Ommy{_MN<&R2Gv0* z6@TZ>>=EGTVOiPJC>{#i`&w|N+@JaxNj@b9u}=5Pf~gb68%qu@@!~KQSkKET#~020 z)+gqt^6i#yaKC9(p%4XFm8UP2VBk!I6C!B2PP?O@Q53Wv(+$0X^hU$KCbm!9_-r z@D12DAE7@z*ucvnEJ1SY|E&Uj)0SKDddb~zq%d2|-BOk5Eog*$7kLLU((mz)PJ=|H zo1Bl>{ZdXQHtEDDE8XRMKjq5yNo(B;O4M}7`Q`jPApBr`$>w;38I$nhWFV1^D!$sN zlGrFw83vMvVrBDNPe64!b6m4%r~Gu&ZO4=le{3##wtBg+rPn*p*zx$;u`@D&AK-EXFKjuRw;1PE$bmv%vQV zCf*^A0ncl}n!}zWJ+b+lHU7_uVc&9dPd2J&G%ckB8e(~ks3d)W7_SyBNFT} z2Vm|JnaeP@P$`VRq0ppf-W#j%0=w~=3#E}dp?x{ivQ#2DTM;)2bm2n^JLe z8L`krY7F&+EBe46lyrczZkKl&P%NUI*wiE$>ai^jAIM}hDZ`irm4~aj7xdHa^bt=P z3yO8zz)Es)9mVpnll;W{Y=ribFR9ul-CR<}OS(G@WKo+bS=pc?aa?9}JV ze!L0fgx#mcTB+e~WO$S4tBoIS-FFkZ1WT^*$cL@ZI(~#;Dg+lR$=kA$rS5kgD!@gbKEoZVz4kw&mA~1^z5}T2v_C06(-BKsw37I zCifH(ka?sT6#(m2ZyF)>;I`mXj2&KQh&} zUMFJ@|FaFQFBxyT z7L4h50_*FeV7t5-ebCJI>+3cM_`ifEx!NCe95@hMln1TSID9vRMH^F9So=A%;4U@6GFJ7=zPY+0+?)*l}I)EC5;~P z8o@cVc_;XDs9M`#F7IjryNVeK{EKQ5Edrd^z12q;FVfv8Lsqlv!=j=~#J$zSEoY!d zJ5HlT&Xr!xZL74CFyksf_a@Qe(5v#EtoO7~*W>tM!>EPMnE}^A`5Jc-uS&*Xy*3^} zZC!WxEmS*Gp=Nzf@^ocEj+v;ju#%atKe08%uL$jfeqvvt4z*`)WE_y|Nq$@cL3z^FrL&)KGJ=EAJN-EeNPlCi^Uu}M=jMRB6Q5Lvq&738g z_?1I7*(a8`+#c2{)0#;^1pUU;iz!BZcz5}WUk$3n0DGYub|lG@*}~~=p`gp>uU+(! z0>p*M68m{6xxOpDNknmSuXkL1Z_;{28!ilIK0pcHQD z9Bqg6&mHPlS3Kg9Q3Jv^Pva>Obq7nA4Ts(I+9fq+Px-HZh?`T5Q<6cFmRQBKG z%bUhFNb;$|H|j0m5ijyuxx9~u1#EBC(3k{Zh7eTcRPE5X8K)e8Azq_ujF6|z@XS^4sUxz`y*kvx!L(}{I(;*+D92Gi!H&c&I;N;&SO@jV7^AK96c(if~7g__^DkQ-?qPee(oaL?mED(;e)Lr&j)||Bmm&#aY9QlMHBLmEKy{E zRgq7Zo-J0f3l}8YlZ2=OA(T z3i?C2u#lK~8t+^7+e4;u-7YBGf~5+05%{a%G`)0=!`pIC|6pM}879x&yeB!ciARkH z!F12hW_xmNhXxIMK zau#HXDQPaR`!l-)vROVY1njw7s7ke!w65>E)jwU{0Y2+ger7MJMZW8Wj2K!Yk;`0HZ^~(H(D^Ak{vkozU_=uZVf(2e3yQ2IQ z2W`nXhAzI(MXPD0O~Q|pQ4P?WUF-1$&=Kp^A)=mWrnSi?-|)4%l~9BeBw>jXA+h(# zW?~LhyP#px=%bn;X=0L&eygp;f3}asc5*9US=e~9$IJ4v$5>mbG@sWD*xXc=5ZCj9 zJ2zZE05;d4!8pEAYPEZqb{kmH6_fNGMaa2!URJkwe8^Ju5&-aG*#o&hw;`zWZgUCYQ(4N-Y+E5`!>GG7F}0Thdeo)G6&v_KK7`2Q?4|m`GL3y zz9Lm=+AsBe<56ZYBQc6dER5s|+jqv65{lpgp?Uidh`8QbZ43q;n zXuWmmVS+$?1-izmGNpG?TPHVNOVME>fSJQir;4wf-g9qt>>!a!6D3xVCw0RYf@ht) zr7fOWuO224ne7%{=}`ZN<` zYI~97ynL-HXbpj*ea8CXp~};T*{0i+D-lv?gfRhMLJ`q=TY(nXn|}{8%w~i(&#NKJI4l zVBd1}Sf#2zcyKNN18wEmR6-OEbEZEY#dB%zS|~x@v9j(TH8ofk$u79NF{*sZCXYo* z0|VVEYs4pPPW739#Y5aNVHESpa|0%&mV+UV|1o zuUY!Tn=vX~tyLKSX0Ib$2mIUnYHd-b_@j)HIJNP$kyiTgX z8cwahQ~`Dkwl|Ort`pJ%-(o) z{p#EhZU+{RDwj_*J=Lw%vJ?IBEF)^Jai@PWoH9h9cH4L}ZMBth_Ln?_Xy}5Nf;m4K zea}f8<)5HZT4|;k9pZ^gtrPOhQ>^SWqA+f!tc1h6FV~rQ7}Q79wgU<_{b9&IagTkA zZ4m)2u*0Tcv0BJD;eQkBB0PExRF5~Ff1Gj*@b2>M2LgItEQsWAz6x&V3Chg%AU$QI zx>139i7?qCLfXXanuB_c_L-M`%3Rz$U(N%~v%)*%X^<{no5I$T*yfX*NSVb;n3#@g zVGp0U4&KGXj=n9i*OW7GL_Ym9PhwpwCcSFDM1AicAPYR^xt#?qiP-TNwI(<)oh7vE z;G4YVo=TN^AFT%8@EY};g?tMaG2JTipVlI(6L{MOD78hpF=~m^G&T1TYSAmj-M+RT z$IB6^j9R5dbXf9M+KPB3gy7OA_CNo3CmDod?zS)dW6(JUFcHmS`p3l(K%=nH4n9Az z%8*3(WG@h@l>n&RUfk-zzFjnMs}fHV${tVYjOCNlqTrCt8^9db5~MJhJ%RW)r!)Ww zw1g79FT4!s&jBfbS&Dyoz0+@;p>7gNI6756%N5a_s}6Drm#JIk_dy5^g;&Kq$#Z5# zHvPo?B+*jC8nyd$h;aGipBHQ@9NqsmCe%7a{cfUm151az=52v6{VVdJ~T+0 z^+#`U8Ja}o3<)H4FRvnGRQ%a!b=F z^d#arH++G6C_86Y6p<(w+03w1AN8EP-c@``_sPPS^PzNO<@j*{<8k8`{X#q%ZL@IvH*63vw zK>1SkF+7BiFIc_uoWJ~>n)GRqBCP&GvmmBgK)}jfptm}j;%G=MA{-^qdgVBXo&Fdl z?D_h6hR$tt`&sv3{_CX1i|QwFt`XU5dOtgO@#RZZN>^*JEl~zTx=`DZal3v7ig~HR z4RJ=45^x+Pi5E9yx>$QNmKb3f*S*@hux^P`7}QdI@5NL*m8pUI?j!tJdR7$A{s|VS zo{lp9bT)|}>M_RvHQQ#Qc8D$#TBH0E=bKrTZPRlv+h?V9ar?O=7H^rKsee*aR%OIr z!N)F>odvQ4tDxig4j;MCi*Q>~+t7)+A>i~-#4TSK2!7q%4g3D0k$L^bcBJoIOF^Sp z6&g`km!$i9efZ{5EnfsIfzVI>(>B;lfk&Kz*R_TzG<#p`*F-VpZc3Cvr_dj#mH+uA zXwJNth%bB@XlFw3h^9I4vflpsl|Of9BC#eY$_SjhVnbEk?N`1v%r1!&(-tk26SH|xmPsP55uJtqbM^qUbqc2tWMGEnEt ze7f0WFh<263(b`X9-UM$EyZSMXGs$oHeGI*qMJJlej@@VbCAJD8`?VfkxJ6|@u3~` z@KXt9D9%f56U(|{>M7+_q`5jl=K{7zRx@kMK$ChokE49o32^3hxoR43zco;4Q9FL= zPoT=_kM`57V?L9?afc6VEr6|_BZ6derhI^g7iOz{?fIns4}vt4kv6iUL=Sa2jfL@79DUxEizW(?Uxpes zht{4kiMxM>UgYE9$)x6EXtSb2Na!7^mSIX^?Tfok7*fi|1uarTOcFh!g-d z=0zZzJ<&!(rRLWr z;BgT+G@&BK= z=0l4Z=PcXeK@Op^flbN_B#hL+K+A(j7(tzSp7Q}UjVz*cCCk_*)Ul_?N43n~w`&hB zXq-g*0W(4`FV~q~>JZntHoAP$C!s*YTjY&; zdR7)AvT)STSfG6I$)g~Hf&2UHr&A-tbO@Qr>mLpd#>Izd4Tz4ADw zD7s)~Q!1jtQzv;XQYfB|#Y6@#uwD_BQ0sJal4JaI_A~+;R=4~0wav(1?TKHf1LRt+ zsHZQ23wU=pi>B4%{;T63eEEelI%g$=JG+CyVG6)HI!f3}adNlSX)l6X@uv4v_~s$L z2UiU5SG=a9=>RHc_`}B>OX04W7SjysL?_qTVswPRRbesU)YN7SX=26+w)OX#{>l)w zcq=y$uO61^_4$%+@)*UIofbvr!#+}*E zW3r$6sXqh^^qo%XEI)Uqqydw+{720e3K66WL4c;*~@&wTv1(88TaT zn7vDhJY}seCNr$_huIUU^vi8eZ5u=H)^R8P9$EOU6|~{+LDHz`*rlcA8ZKU=D@KxS zupJ0lWVlqfQ!}qLu5s077hyJxXn152|GXn$adSn*eG%Bf`SXirO-i5%djH`)|NHVPJLs-v+k)L7(z3aSGBuNS&%_Mfo_H+?a!eu(|Wbm(#eTo^QY5LJL;gp1i z3bf9=W)iQN-PF8@TuTyy=>VxgfB;^5HvckWZ?EOcsdEGAbsQ{|i1OinE{#xB`|N{t zpv^Puy*x-+`NQOcra+74N!AQRg(}VP_v^13_TkVdbXwMRn#B7F4QYC>&75(sX(Jkp zN>vc2uQ-FgwBV+Q5%zl1A+PTc=;gwXynWNJ(T5YITN7H7$yObS^&y5-!?LR|zu*t? z{I-Hh&fu)$#_+yE(Vn7= z3RyJVF5L`w2Q{YVT1BxqCtJMu(3hRYep+?>#4+!b8yapR@(U9d{phN0i~LoMCuq?Y z5=DI;-ZgEZfjp|yfVwSo~?_CBZ!}?sZ`Z|n62~}9h zoq`CJ4qKCLb9n>c#}QB7Ds6sPa$b<%CgexC~ee7*SH4*u5{D%l4|axBRA+|^N(xb=$y1VJ@pjjOO^ zO?-iXhT*>V+H6ySL%TtdY7~0M3h`XKk$CL0Wkd*`W72q$(xi3@*s}OIbW5LIS{Q`a zEWY|c_e;zcZ8{<8wLFoxY>iUavifJPf%auFIfruSop~C#h2;t(1wE&83)^WKmgmrq zs89&%(-5B<+*s!cTTVj|PbFEEibZ$!RCA$UGnVR(QH#RYR@rtP&MAMf)ojrrPx%a6 zsF8ZHeB+2`kQ)9OqTI|wSmPr2qu8b-U+pbd$q#F+ftM$H^c2Xc?^E>Q4$;bx75|VL(4OXBwCJfT(}w_ge+(YBK3A007XdU#1pv|lGkO2bx$^5u15JRB2@$@KVxOZ( z?Y6ik7UZC(ntP6yG~EN^l8L=?Bz7DSz5leX(aJOTkS3tC`}OU9vv%VTJhz3&b{DEP zB&3$J_Yqv<46@yEF&a!vTM>B@I*~Xh5Na;vdoo_4IBY6)y5C*U(2U?YAe~`zF2fdL zeRO6=X?u|%XzZe{VlRAGEswtyG_Z=q>0|BMwU6w*Or&bDmdW{A^%?JUGBOCEHw45k-YMY-+ zRCy{-C%a>P78PrlU+naF@skw5psQ_j^vBFnd~-kgB76l!1`q{i^8Y81feuoL&ZK&h z4h`Htun0k-p5%+@1CAfG<_GD&JhygDOiB${-UmCIaFx{eSjXy#&U-!8;|tt|@b$49 zFY`f{v~>}qPMoevt~^s`M`y}Hdt6N9PBY8@r4i+azBi}VMTq4!MJuc#y|vdR^7R;T z5@i<`qqk>+UQA#X+VUZ(gZu2Mmxu!s^82RJM;RM2S4qyrK!ayD-2hah2m=fkKk|=H zZaY*~@yK#Be_#L?bxjYa2RndnTBk#t4fl9@*E zo6A>Bp6Pm?`HT3ovaR#4`@LhpmX@{*v+4wD$+!E03T*r2pR+kYC63A6{Pi zfYy&d6aw#L(E1U&|8>9XAMgC%E=T`(&mVx8XrLSTh=gDuX#EJ!|L~~!1L8LqbORp* z(z^qB-vi{ED-z?21PvyIh^89<%Y!dI|D{(ErTsfos6yU>vMpMJs42O&ktxxap)ra> zX5sDGQX+H?ZC3BnZmygW84O=fzkSKwtC#CPlkzw~seEdGMZWz%%pGC?oO&1d6M<6q zdw|rzt9Bs11p`5;=iDQ#U#YL&fpYHw@&zq)gcJ@2DT}5S{>#vPenkfAP4!M>|G78) z%R>zQDJVUpr(iTFz1{~%4}8ob(SU)V^uFI?qrvGRS>Azu+yewo4;ge`|4Q%YzfbQk zUF5IRlLn_Z1V&4VX2CyHdL>{WXvmKCUKBT)% zdUaqRD7}h%Y&3YaBIJuZ(7(8=^_S<U%H< z)aU+d%l7&I>~m4g!RQC{L{up-@Bus#HS7*_KTn+TMPmVjKX?&2lPEO6)^Atd=D-D4s>7NL+1yBKVJQw_fWovz6=IFfbU^Y-huArdnDqu&IUJa0dSEiZ9n`L>_B}m82c;D zhxfnR7BKn&{qHs%4156pyIr^g-PivBfndgWv`O zAHe@0-0wj5^*=~bFz9dbKZtoS8kF8c`5#0x82AAG2XT7`y08C1f(A@~rT6gn`yh?L zXi$0&<$sW(VBiDzA7sEC=wAK@@;xYeFbH()J-qKhu7lAJ=zEZTVBiDz9u%k=&M(k? zeGjS}4EkGq56T*hen8)Yk^=)D!1th{??CtUy+@p2(BI;FP={dj1Nt7+C>RJz@4mkG z2=fkfU*CJw1P1*rzW2xtj0UCmP`>v_0}Ols-+PpD2fDBCL5qMve~a%ux(1^k(DxqA zfq@U;d(b3zp!@nBbPpKxxA@-gqJ|IXd(Z~IH~QY=yT8h0f_6jJeSPnDov**e_kI^7 zdqCg&RY@JZ(f1wSg`vIM4fplE-xZxe={>yf!9;>T;{*EMuOgD*^zJ*p`@8NI2y|cH zgH;1>;@{$XzY8Tjpzpzes)>NFd-opS{aqOf1iG*9{VodhxA@-g!bK10d%xwrM_^*y-ncj-O+`0npj z3m(w-;C_uGfHwNR^Z9-+?f?Sa*Y|!cKJfSW-tT9wAJF%Hl^X(|x%ZvV2QLjiWI&+% z`JUwI?VzZS^bzEJIQdM@UTFIt?#*Ru9FM_0wz05wycv zr&Teeu9CWw4~1(G0WgtW2Npkc9TVNImTF+$huV%@CJoq>3IHGw(t`&fmwi5QJp%qr z5b_QO)P8D89ldN=c8U5D4S?d?>>QWk$6#fKw2s-dPL92pXfkpCmi;XmEgi~wq~4iT z8r=+3!J?(jojxgK1v@%xvS$+e(%B%1AIPli;SpX+s=U=u>pf_31xtf&PlxJ{ z{8|C6kEH^c^sgArjnQ_{eMY0s3mu{^t8V18nlWD#9S(21Y<5RE8N0C+U7a$bI zm*_48zEaJcXqz-M+KP9wnu$wO#C)*1HhWs)t?1?vz3&z4@Syj8qL03idM2=^h>)%- z7>5^&50NlP^#k+WO?N6c)DcS~&!+XfRE2Rf?LFJAh_7$cDr8*9^~aNir31 z(qc8xQw-DES+roER2_bILW6h6+T@bWUQ(LukS7r<5Zf^N3PkGux%Z@;o}V)tEqh%m zAqWDJ5!;>owvZUH>Rmqlr>b0U>EO5d#Ww7a}wW%5m(U8#iUV!xG*#Ib}yu3g7Vh<of)6w>gmF0Eoc?^$y_0#01L$s)=6Jdzs;&k(D&rdvx^1j_s^@iAX$$|Iog9y>T zyoL+9E-}}uN33gptLkeg7bi_GSd^(PnZXf-I1Pb!JEFbw422Qb7GDXMevWXAMXr+A zl7gDKBR$;!ndV}ZH*Q~a!#$H|D$gS!wX%pL5{HvDC{gwj(fLR0EwW?esKG>vg7Qma z^Y|avrXo%@((voji9AFOuop#pr5Ll$p9c{rsPjnDea#GTmWJ1!h_eI?`=G?)UwKX1 zYl)Pg~)3~=|fz6>nNw{OMpt`>I+l6dB4VC34PG?C*V^whYbcPR(`sJ4QKY= zg$Ux>@jNNmcQci<0X^aMk%waBGeB2(AYkn6BR#k|b`71H*mtS9eAnCDB1*dgCm&hg zmBx~|S@F}J4?fb52upk&AIH?UZ@tRaJ0?%w;VN)x&bFJHo|xSW|NLmMNPP7}t$a|c znQ$pe3xjB~O3GT)uyaEEpslJDsr-T!(5dAhilM&T`y?!Azt~E95UqCr*~lQmKvEe(6lnWN+LBG|Y1vhfg`gK5jIN;9YRZ%`koF-IGTiK2Kop#UM z6VkeEkfKSTNWPe1b_6^R4JY6^&K26YOz<8tTB)xF1-dmGs&kNT-Nh<18U4)d2OI02Vq-3_HB(t|7n%y1@A2RNfvOUZ_`;Wh zyU?e1)6MrI)j$Ku|9A^@mgXXYihaF|IqZKo{@4Hgiyuf>LGvzuEdm1mR&(F^=D(g~ z2ZQJ(yf?fY6n9N&O?OTB#F%$Y gWjuFH6tJy#P5t6`O;lWMcTEF%cTLpLh@htb2c~8(8~^|S diff --git a/docs/ocis/deployment/ubernauten_media/login.png b/docs/ocis/deployment/ubernauten_media/login.png deleted file mode 100644 index de76db6881082bf153885935bbd945cc330a4448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214000 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 -If you would like -to access oCIS remotely please refer to the [Basic Remote Setup]({{< ref "../deployment/basic-remote-setup" >}}) section. - -## additional tips -- to allow basic auth (e.g. to easily access oCIS using curl commands) you have to set `PROXY_ENABLE_BASIC_AUTH=true` environment variable -- if you cannot use real SSL Certificates set `OC_INSECURE=true` as environment variable - - -# Testplan - -## user / groups from LDAP - -Prerequisite: -- connect ocis to your preferred LDAP server -- create users and groups in LDAP -- start ocis with basic auth - -documentation resources: - - [configure ocis with LDAP](https://owncloud.dev/ocis/deployment/ocis_ldap/) - - [sharing API is compatible to ownCloud 10](https://doc.owncloud.com/server/10.9/developer_manual/core/apis/ocs-share-api.html) - - [webDav operations](#webdav) - -| Test Case | Expected Result | Comment | -|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|---------| -| share file / folder to a group | member of the group can access shared item | | -| share file / folder to a group, remove member from group in LDAP | removed member should not have access to the shared item | | -| share file / folder to a group with different permissions, as receiver try to violate the permissions | receiver should not be able to violate the permissions | | -| try to login with wrong credentials | login should not be possible | | -| set a quota in LDAP, upload files till the quota is exceeded | upload should work till quota is full, uploads should not work when quota is full | | -| try to access files / folders of other users | access should not be possible | | -| try to share with non-existing users and groups | sharing should not be possible | | -| try to share with user/groups-names that contain special characters | sharing should be possible, access shares with that user does not create any problems | | - -## other sharing - -should be tried in various ways and in different environments - -documentation resources: -- [sharing API is compatible to ownCloud 10](https://doc.owncloud.com/server/10.9/developer_manual/core/apis/ocs-share-api.html) -- [webDav operations](#webdav) - -| Test Case | Expected Result | Comment | -|---------------------------------------------------------------------------------------|-----------------------------------------------------------------------|-----------------------------------------------------------| -| share a file/folder with the same name from different users | receiver can accept and access both file/folders and distinguish them | | -| share a file/folder with the same name but different permissions from different users | receiver can access both file/folders according to the permissions | | -| share a file/folder with the same name but different locations from one user | receiver can accept and access both file/folders and distinguish them | | -| share a file/folder back to the sharer | sharing back should not be possible | | -| re-share a file/folder with different permissions | sharing with lower permissions is possible, but not with higher | | -| decline received share | shared resource should not be shown to the receiver | | - - -## parallel deployment - -- [configure ocis with LDAP](https://owncloud.dev/ocis/deployment/ocis_ldap/) -- [setup oC10 and ocis in parallel](https://owncloud.dev/ocis/deployment/oc10_ocis_parallel/) -- create users and groups in LDAP - -documentation resources: -- [sharing API is compatible to ownCloud 10](https://doc.owncloud.com/server/10.9/developer_manual/core/apis/ocs-share-api.html) - -| Test Case | Expected Result | Comment | -|------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------|---------| -| share file / folder to a group in one implementation (use different permissions), access the items with the other implementation, try to violate the permissions | receiver should not be able to violate the permissions | | -| share file / folder to a group, remove member from group in LDAP, try to access items with the removed member from both implementations | removed member should not have access to the shared item | | - -## Spaces - -Prerequisite: -- start ocis with basic auth -- variable declaration, for curl examples: -```shell -SERVER_URI=https://localhost:9200 -GRAPH_API_PATH=graph/v1.0 -SHARE_API_PATH=ocs/v2.php/apps/files_sharing/api/v1/shares -USER=admin -PASSWORD=admin -``` -- create a new user `curl -k -u $USER:$PASSWORD "$SERVER_URI/$GRAPH_API_PATH/users" -X POST -d'{"displayName":"Example User","mail":"example@example.org","onPremisesSamAccountName":"example","passwordProfile":{"password":"ThePassword"}}'` -- give the user the "Space Admin" role - 1. get the id of the user: `curl -k -u $USER:$PASSWORD $SERVER_URI/$GRAPH_API_PATH/users/ | jq '.id'` - 2. assign role user to role: `curl -k -u $USER:$PASSWORD $SERVER_URI/api/v0/settings/assignments-add -d'{"account_uuid":"","role_id":"2aadd357-682c-406b-8874-293091995fdd"}` -- create a space: `curl -k -u $USER:$PASSWORD "$SERVER_URI/$GRAPH_API_PATH/drives" -X POST -d'{"Name":"Space for finance","driveType":"project", "description":"we need some space"}'` -- list spaces: `curl -k -u $USER:$PASSWORD $SERVER_URI/$GRAPH_API_PATH/me/drives` -- disable a space: `curl -k -u $USER:$PASSWORD $SERVER_URI/$GRAPH_API_PATH/drives/ -X DELETE` -- delete a space: `curl -k -u $USER:$PASSWORD $SERVER_URI/$GRAPH_API_PATH/drives/ -X DELETE -H'Purge: T'` -- restore a space: `curl -k -u $USER:$PASSWORD $SERVER_URI/$GRAPH_API_PATH/drives/ -X PATCH -d"{}" -H"Restore: true"` -- rename the space: `curl -k -u $USER:$PASSWORD $SERVER_URI/$GRAPH_API_PATH/drives/ -X PATCH -d'{"name":"नेपालि नाम"}'` -- change description of the space: `curl -k -u $USER:$PASSWORD $SERVER_URI/$GRAPH_API_PATH/drives/ -X PATCH -d'{"description":"this contains important data"}'` -- change quota of the space `curl -k -u $USER:$PASSWORD $SERVER_URI/$GRAPH_API_PATH/drives/ -X PATCH -d'{"quota":{"total":}}'` -- change image of space: - 1. upload an image file to the `.spaces` folder: `curl -k -u $USER:$PASSWORD https://localhost:9200/dav/spaces//.space/ -T -v` - 2. note the id provided in the `Oc-Fileid` header - 3. set the image as "special-folder": `curl -k -u $USER:$PASSWORD $SERVER_URI/$GRAPH_API_PATH/drives/ -X PATCH -d'{"special":[{"specialFolder":{"name":"image"},"id":""}]}'` -- share a space: `curl -k -u $USER:$PASSWORD $SERVER_URI/$SHARE_API_PATH -d'space_ref=&shareType=7&shareWith=&role='` - - Roles: - - viewer - - editor - - manager -- share a resource within a space `curl -k -u $USER:$PASSWORD $SERVER_URI/$SHARE_API_PATH -d'shareType=0&shareWith=&space_ref=%2F&permissions=` - - possible permissions - - 1 = read - - 2 = update - - 4 = create - - 8 = delete - - 15 = read/write - - 16 = share - - 31 = All permissions -- WebDAV - - root: `https:///dav/spaces/` - - [example commands for operations](#webdav) - -| Test Case | Expected Result | Comment | -|-------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|---------| -| create a space | space should exist | | -| create a space with special characters as a name & description | space should exist | | -| create a space, delete the space | space should not exist | | -| create a space, share the space with a user | space should be accessible | | -| create a space, share the space with a group | space should be accessible, space content is shared among all users | | -| create a space, share the space with a group, disable the space | space should not be accessible | | -| create a space, share the space with a user, disable the space, restore the space | space should be accessible | | -| create a space, disable the space, delete the space, restore the space | it should not be possible to restore the space | | -| create a space, disable the space, try to share the space | sharing the space should not be possible | | -| create a space, try to delete the space | it should not be possible to delete an enabled space | | -| create & share a space with a group with viewer role, do CRUD file/folder operations with WebDAV | space content is readable but neither space not content should not be writable | | -| create & share a space with a group with editor role, do CRUD file/folder operations with WebDAV | space and content should be writable | | -| create a space, try CRUD file/folder operations with WebDAV on the space with a user that its not shared with | space and content should not be accessible | | -| create a space with a quota, share the space, upload files till the quota is exceeded | upload should work till quota is full, uploads should not work when quota is full | | -| share file/folders from inside a space (see other sharing section) | sharing works and obeys the permissions | | -| create a space, rename the space | new name should be displayed in API calls and web | | -| create a space, change description of the space | new description should be displayed in API calls and web | | -| create a space, set quota, change quota of the space | new quota is obeyed | | -| create a space, set quota, change quota of the space to a value that is lower than the sum of data already stored | new quota is obeyed, new files cannot be uploaded | | -| try the various space operations with invalid data | good error output, server does not crash | | -| try the various space operations without the correct permissions | operations are not possible without sufficient permissions | | -| try the various space operations on personal and virtual spaces | server should not crash, good error responses | | -| try the various space operations sending invalid data (invalid numbers, wrong types, invalid JSON, etc.) | server should not crash, good error responses | | - - -## Web - -Prerequisite: -- [connect ocis to your preferred LDAP server](https://owncloud.dev/ocis/deployment/ocis_ldap/) -- create users and groups in LDAP -- Use your preferred browser (Firefox 94-96, Chrome 92-97, Opera 81-82, Edge 96-97, Safari 14-15) to access the built-in webUI (by default: https://localhost:9200) - -| Test Case | Expected Result | Comment | -|--------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|---------| -| Login with the created user | User logs in. | | -| Create a text file. | Text editor can open, file is saved. | | -| Create a text file with special characters as name | file is created if the name is legal otherwise an error is displayed | | -| Modify a text file. | File can be modified, no problems found. | | -| Rename a file. | File is renamed. | | -| Upload a file. | File is uploaded, no problems found. | | -| Upload multiple files at once. | Files are uploaded, no problems found. | | -| delete all content of a folder at once. | Folder is cleaned, items are visible in the trashbin | | -| Overwrite a file by uploading a new version. | File is uploaded and overwritten, file versions are displayed | | -| Overwrite a file by uploading a new version, restore the original version. | File is restored correctly | | -| upload a huge file | File is uploaded, no problems found. | | -| upload a huge file, cancel the upload, restart the upload | Upload continues at the position where it was cancelled, file is uploaded completely. | | -| Remove a file. | File is removed correctly, it appears in the trashbin. | | -| Restore the deleted file from trashbin | File is restored correctly | | -| Remove multiple files that have the same name but are located in different folders | Files are removed correctly, they appear in the trashbin. | | -| Restore some of the deleted files from trashbin | Files are restored correctly in the correct folders. | | -| Restore some of the deleted files from trashbin, but delete the original containing folder before | Files are restored correctly | | -| Clean files from the trashbin | files are permanently deleted | | -| Create a lot of files, delete a lot of files, empty the trashbin | trashbin is cleaned | | -| Move a file inside a folder. | There are not problems on the process. | | -| Move a file inside a folder that already contains a file with the same name | File is not moved, content in the destination is not overwritten | | -| Create a folder. | Folder is created, no MKCOL problems appear. | | -| Create a folder with special characters as name | Folder is created if the name is legal otherwise an error is displayed | | -| Create a folder with a name of an already existing file/folder | Folder is not created, an error is displayed | | -| Create a folder with a lot of subfolders, use special characters in the name | Folder is created, no MKCOL problems appear. | | -| Delete a folder. | Folder is removed. | | -| Move a folder inside another. | No problems while moving the folder. | | -| open images in mediaviewer | files are displayed correctly. | | -| open videos in mediaviewer | files are displayed correctly. | | -| switch through videos and images in mediaviewer | files are displayed correctly. | | -| Share a file by public link. | Link is created and can be accessed. | | -| Share a folder by public link. | Link is created and can be accessed. | | -| Share a file with another user. | It is shared correctly. | | -| Share a folder with another user. | It is shared correctly. | | -| Share a file with a group. | It is shared correctly. | | -| Share a folder with a group. | It is shared correctly. | | -| Share a folder with userB giving edit permissions. As userB do CRUD operations on items inside the received folder | userB doesn't find any problem while interacting with files. | | -| Use your mobile device to access the UI | All elements reachable | | -| do tests mentioned in the [spaces](#spaces) section using the web-UI | | | - -## Desktop Client - -Prerequisite: -- [install the desktop client on your preferred OS](https://owncloud.com/desktop-app/) -- start ocis -- connect a new account in the desktop client to ocis e.g. `https://localhost:9200` if you are running the server and the client on the same machine -- accept the self-signed certificate -- you will be redirected to the browser, accept the certificate there also -- login as any user -- allow the "ownCloud desktop app" to access ocis -- select a folder to sync - -| Test Case | Expected Result | Comment | -|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|---------| -| Set up two clients with the same user. Change files, add some, delete some, move some, create folders. | Changes sync properly in both clients without errors. | | -| Share a file using contextual menu with userB. | Option to share appears in the contextual menu and file is correctly shared. | | - - -## Mobile Clients (iOS || Android) - -Prerequisite: -- [install the ownCloud app on your mobile](https://owncloud.com/mobile-apps/) -- start oCIS as described in [Basic Remote Setup]({{< ref "../deployment/basic-remote-setup" >}}) -- connect a new account in the mobile client to ocis -- accept the self-signed certificate -- you will be redirected to the browser, accept the certificate there also -- login as any user -- allow the mobile app to access ocis - - -| Test Case | Expected Result | Comment | -|-----------------------------------------------|------------------------------------------|---------| -| Connect to server, see files, download one. | No problems while downloading. | | -| Upload a file using mobile client. | No problems while uploading. | | -| Share a file with userB using mobile client. | File is correctly shared. | | - -## other WebDAV clients - -Prerequisite: -- start ocis with basic auth - -| Test Case | Expected Result | Comment | -|---------------------------------------------------------------|-------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------| -| use ocis as webDAV external storage in ownCloud 10 | resource access works | | -| access webDAV with your file-manager | that will not give you a good UX, but ocis should not crash | Urls: https://\/remote.php/webdav & https://\/remote.php/dav/files/\ | -| access webDAV with the "remote-files" function of LibreOffice | files are accessible and can be written back | | - -# Tips for testing - -## WebDav -WebDav is accessible under different path -- old: https://\/remote.php/webdav -- new: https://\/remote.php/dav/files/\ -- spaces: https://\/dav/spaces/\ - -WebDav specifications can be found on http://webdav.org/ - -here some general WebDav request examples: - -variable declaration: -```shell -SERVER_URI=https://localhost:9200 -API_PATH=remote.php/webdav -USER=admin -PASSWORD=admin -``` -- list content of root folder: `curl -k -u $USER:$PASSWORD "$SERVER_URI/$API_PATH/" -X PROPFIND` -- list content of sub-folder: `curl -k -u $USER:$PASSWORD "$SERVER_URI/$API_PATH/f1" -X PROPFIND` -- create a folder: `curl -k -u $USER:$PASSWORD "$SERVER_URI/$API_PATH/folder" -X MKCOL` -- delete a resource: `curl -k -u $USER:$PASSWORD "$SERVER_URI/$API_PATH/folder" -X DELETE` -- rename / move a resource: `curl -k -u $USER:$PASSWORD "$SERVER_URI/$API_PATH/folder" -X MOVE -H "Destination: $SERVER_URI/$API_PATH/renamed"` -- copy a resource: `curl -k -u $USER:$PASSWORD "$SERVER_URI/$API_PATH/folder" -X COPY -H "Destination: $SERVER_URI/$API_PATH/folder-copy"` - -## decode HTTPS traffic with wireshark -To decode the HTTPS traffic we need the keys that were used to encrypt the traffic. Those keys are kept secret by the clients, but we can request the clients to save them in a specific file, so that wireshark can use them to decrypt the traffic again. - -1. create key file: `touch /tmp/sslkey.log` -2. start wireshark -3. set log filename - - navigate to Edit=>Preferences=>Protocols=>TLS - - in the field `(Pre)-Master-Secret log filename` enter `/tmp/sslkey.log` -4. decode as HTTP - - navigate to Analyze=>Decode As... - - click the + button - - set Field: `TLS Port; Value=9200; Type: Integer, base 10; Default (none); Current HTTP` (adjust the port if you are using another one than 9200) -5. start recording - - use `port 9200` as capture filter to only record ocis packages - - use `http` as display filter to see only decoded traffic -6. run test-software with `SSLKEYLOGFILE=/tmp/sslkey.log` as env. variable e.g. - - curl: `SSLKEYLOGFILE=/tmp/sslkey.log curl -k -u admin:admin https://localhost:9200/ocs/v1.php/cloud/users` - - Browser: `SSLKEYLOGFILE=/tmp/sslkey.log firefox` - - LibreOffice: `SSLKEYLOGFILE=/tmp/sslkey.log libreoffice` - - acceptance tests: `SSLKEYLOGFILE=/tmp/sslkey.log make test-acceptance-api ...` - -## format output -- piping **xml** results to `xmllint` gives you nice formats. E.g. `curl -k --user marie:radioactivity "https://localhost:9200/ocs/v1.php/apps/files_sharing/api/v1/shares" | xmllint --format -` -- piping **json** results to `jq` gives you nice formats. E.g. `curl -k --user marie:radioactivity "https://localhost:9200/ocs/v1.php/apps/files_sharing/api/v1/shares?format=json" | jq` - -## create edge cases -- [Big List of Naughty Strings](https://github.com/minimaxir/big-list-of-naughty-strings) diff --git a/docs/ocis/development/build-docs.md b/docs/ocis/development/build-docs.md deleted file mode 100644 index 44624b234c..0000000000 --- a/docs/ocis/development/build-docs.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: "Documentation" -date: 2020-07-27T08:39:38+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development -geekdocFilePath: build-docs.md ---- - -{{< toc >}} - -## Build the documentation - -{{< hint info >}} -For building the documentation you need to have Make and Go 1.14 or higher installed. -{{< /hint >}} - -Just run `make -C docs docs-serve` from within the root level of the oCIS git repository. This will make documentation available on [localhost:1313](http://localhost:1313) and also do a hot reload if you change something in the (non autogenerated) documentation files. - -Note that you may get files changed reported like `env_vars.yaml` by just running the make command. You can discard any of these as they come from an internal helper process step necessary. To take care on those changed files, see the [Docs Helpers](https://github.com/owncloud/ocis/tree/master/docs/helpers) readme. - -## Add changes to the documentation - -Please keep this documentation in sync with the oCIS source code. - -Changes on the documentation are automatically applied to [this site]({{< ref "../" >}}) when merged to the master branch. diff --git a/docs/ocis/development/build.md b/docs/ocis/development/build.md deleted file mode 100644 index e78409335f..0000000000 --- a/docs/ocis/development/build.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: "Build" -date: 2020-02-27T20:35:00+01:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development -geekdocFilePath: build.md ---- - -{{< toc >}} - -## Build requirements - -see [Development - Getting Started]({{< ref "getting-started/#requirements">}}) - -## Get the sources - -{{< highlight txt >}} -git clone https://github.com/owncloud/ocis.git -cd ocis -{{< / highlight >}} - -## Build the oCIS binary - -You only need to run following command if you have changed protobuf definitions or the frontend part in one of the extensions. Run the command in the root directory of the repository. Otherwise you can skip this step and proceed to build the oCIS binary. -This will usually modify multiple `embed.go` files because we embed the frontend build output in these `embed.go` files and a timestamp will be updated and also minor differences are expected between different Node.js versions. - -{{< highlight txt >}} -make generate -{{< / highlight >}} - -The next step is to build the actual oCIS binary. Therefore you need to navigate to the subdirectory `ocis` and start the build process. - -{{< highlight txt >}} -cd ocis -make build -{{< / highlight >}} - -After the build process finished, you can find the binary within the `bin/` folder (in `ocis/bin` relative to the oCIS repository root folder). - -Try to run it: `./bin/ocis h` - -## Build a local oCIS docker image - -If you are developing and want to run your local changes in a docker or docker-compose setup, you have to build an image locally. - -Therefore run following commands in the root of the oCIS repository: - -{{< highlight txt >}} -docker build -t owncloud/ocis:dev . -{{< / highlight >}} - -Then you can test as usual via - -{{< highlight txt >}} -docker run --rm -ti owncloud/ocis:dev -{{< / highlight >}} diff --git a/docs/ocis/development/continuous-integration.md b/docs/ocis/development/continuous-integration.md deleted file mode 100644 index b5907d7cdc..0000000000 --- a/docs/ocis/development/continuous-integration.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Continuous Integration" -date: 2020-10-01T20:35:00+01:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development -geekdocFilePath: continuous-integration.md ---- - -{{< toc >}} - -oCIS uses [DRONE](https://www.drone.io/) as CI system. You can find the pipeline logs [here](https://drone.owncloud.com/owncloud/ocis) or in your PR. - -## Concepts - -The pipeline is defined in [Starlark](https://github.com/bazelbuild/starlark) and transformed to YAML upon pipeline run. This enables us to do a highly dynamic and non repeating pipeline configuration. We enforce Starlark format guidelines with Bazel Buildifier. You can format the .drone.star file by running `make ci-format`. - -Upon running the pipeline, your branch gets merged to the master branch. This ensures that we always test your changeset if as it was applied to the master of oCIS. Please note that this does not apply to the pipeline definition (`.drone.star`). - -## Things done in CI - -- static code analysis -- linting -- running UI tests -- running ownCloud 10 test suite against oCIS -- build and release docker images -- build and release binaries -- build and release documentation - -## Flags in commit message and PR title - -You may add flags to your commit message or PR title in order to speed up pipeline runs and take load from the CI runners. - -- `[CI SKIP]`: no CI is run on the commit or PR - -- `[full-ci]`: deactivates the fail early mechanism and runs all available test (as default only smoke tests are run) - -### Knowledge base - -- My pipeline fails because some CI related files or commands are missing. - - Please make sure to rebase your branch onto the latest master of oCIS. It could be that the pipeline definition (`.drone.star`) was changed on the master branch. This is the only file, that will not be auto merged to master upon pipeline run. So things could be out of sync. - -- How can I see the YAML drone pipeline definition? - - In order to see the Yaml pipeline definition you can use the drone-cli to convert the Starlark file. - - ``` - drone starlark - ``` - - {{< hint info >}} - If you experience a `"build" struct has no .title attribute` you need a newer version of drone-cli. - - You currently need to build it yourself from this [source code](https://github.com/drone/drone-cli). If you are not using master as source, please ensure that this [PR](https://github.com/drone/drone-cli/pull/175) is included. - {{< /hint >}} diff --git a/docs/ocis/development/debugging.md b/docs/ocis/development/debugging.md deleted file mode 100644 index dd2ac7477a..0000000000 --- a/docs/ocis/development/debugging.md +++ /dev/null @@ -1,272 +0,0 @@ ---- -title: "Debugging" -date: 2020-03-19T08:21:00+01:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development -geekdocFilePath: debugging.md ---- - -{{< toc >}} - -## Debugging - -As a single binary for easy deployment running `ocis server` just forks itself to start all the services, which makes debugging those processes a little harder. - -Ultimately, we want to be able to stop a single service using e.g. `ocis kill web` so that you can start the service you want to debug in debug mode. We need to [change the way we fork processes](https://github.com/owncloud/ocis/issues/77) though, otherwise the runtime will automatically restart a service if killed. - -### Start ocis - -For debugging there are two workflows that work well, depending on your preferences. - -#### Use the debug binary and attach to the process as needed - -Run the debug binary with `OC_LOG_LEVEL=debug bin/ocis-debug server` and then find the service you want to debug using: - -```console -# ps ax | grep ocis -12837 pts/1 Sl+ 0:00 bin/ocis-debug server -12845 pts/1 Sl 0:00 bin/ocis-debug graph -12847 pts/1 Sl 0:00 bin/ocis-debug reva-auth-bearer -12849 pts/1 Sl 0:00 bin/ocis-debug ocs -12850 pts/1 Sl 0:00 bin/ocis-debug reva-storage-oc-data -12863 pts/1 Sl 0:00 bin/ocis-debug webdav -12874 pts/1 Sl 0:00 bin/ocis-debug reva-frontend -12897 pts/1 Sl 0:00 bin/ocis-debug reva-sharing -12905 pts/1 Sl 0:00 bin/ocis-debug reva-gateway -12912 pts/1 Sl 0:00 bin/ocis-debug reva-storage-home -12920 pts/1 Sl 0:00 bin/ocis-debug reva-users -12929 pts/1 Sl 0:00 bin/ocis-debug glauth -12940 pts/1 Sl 0:00 bin/ocis-debug reva-storage-home-data -12948 pts/1 Sl 0:00 bin/ocis-debug idp -12952 pts/1 Sl 0:00 bin/ocis-debug proxy -12961 pts/1 Sl 0:00 bin/ocis-debug thumbnails -12971 pts/1 Sl 0:00 bin/ocis-debug reva-storage-oc -12981 pts/1 Sl 0:00 bin/ocis-debug web -12993 pts/1 Sl 0:00 bin/ocis-debug api -12998 pts/1 Sl 0:00 bin/ocis-debug registry -13004 pts/1 Sl 0:00 bin/ocis-debug web -13015 pts/1 Sl 0:00 bin/ocis-debug reva-auth-basic -``` - -Then you can set a breakpoint in the service you need and attach to the process via processid. To debug the `reva-sharing` service the VS Code `launch.json` would look like this: - -```json -{ - "version": "0.2.0", - "configurations": [ - { - "name": "ocis attach", - "type": "go", - "request": "attach", - "mode": "local", - "processId": 12897 - } - ] -} -``` - -#### Start all services independently to replace one of them with a debug process - -1. You can use this `./ocis.sh` script to start all services independently, so they don't get restarted by the runtime when you kill them: - -```bash -#/bin/sh -LOG_LEVEL="debug" - -bin/ocis --log-level=$LOG_LEVEL micro & - -bin/ocis --log-level=$LOG_LEVEL glauth & -bin/ocis --log-level=$LOG_LEVEL graph & -#bin/ocis --log-level=$LOG_LEVEL hello & -bin/ocis --log-level=$LOG_LEVEL idp & -#bin/ocis --log-level=$LOG_LEVEL ocs & -bin/ocis --log-level=$LOG_LEVEL web & -bin/ocis --log-level=$LOG_LEVEL reva-auth-basic & -bin/ocis --log-level=$LOG_LEVEL reva-auth-bearer & -bin/ocis --log-level=$LOG_LEVEL reva-frontend & -bin/ocis --log-level=$LOG_LEVEL reva-gateway & -bin/ocis --log-level=$LOG_LEVEL reva-sharing & -bin/ocis --log-level=$LOG_LEVEL reva-storage-home & -bin/ocis --log-level=$LOG_LEVEL reva-storage-home-data & -bin/ocis --log-level=$LOG_LEVEL reva-storage-oc & -bin/ocis --log-level=$LOG_LEVEL reva-storage-oc-data & -bin/ocis --log-level=$LOG_LEVEL reva-storage-root & -bin/ocis --log-level=$LOG_LEVEL reva-users & -#bin/ocis --log-level=$LOG_LEVEL webdav - -bin/ocis --log-level=$LOG_LEVEL proxy & -``` - -2. Get the list of running processes: - -```console -# ps ax | grep ocis -12837 pts/1 Sl+ 0:00 bin/ocis-debug server -12845 pts/1 Sl 0:00 bin/ocis-debug graph -12847 pts/1 Sl 0:00 bin/ocis-debug reva-auth-bearer -12849 pts/1 Sl 0:00 bin/ocis-debug ocs -12850 pts/1 Sl 0:00 bin/ocis-debug reva-storage-oc-data -12863 pts/1 Sl 0:00 bin/ocis-debug webdav -12874 pts/1 Sl 0:00 bin/ocis-debug reva-frontend -12897 pts/1 Sl 0:00 bin/ocis-debug reva-sharing -12905 pts/1 Sl 0:00 bin/ocis-debug reva-gateway -12912 pts/1 Sl 0:00 bin/ocis-debug reva-storage-home -12920 pts/1 Sl 0:00 bin/ocis-debug reva-users -12929 pts/1 Sl 0:00 bin/ocis-debug glauth -12940 pts/1 Sl 0:00 bin/ocis-debug reva-storage-home-data -12948 pts/1 Sl 0:00 bin/ocis-debug idp -12952 pts/1 Sl 0:00 bin/ocis-debug proxy -12961 pts/1 Sl 0:00 bin/ocis-debug thumbnails -12971 pts/1 Sl 0:00 bin/ocis-debug reva-storage-oc -12981 pts/1 Sl 0:00 bin/ocis-debug web -12993 pts/1 Sl 0:00 bin/ocis-debug api -12998 pts/1 Sl 0:00 bin/ocis-debug registry -13004 pts/1 Sl 0:00 bin/ocis-debug web -13015 pts/1 Sl 0:00 bin/ocis-debug reva-auth-basic -``` - -3. Kill the service you want to start in debug mode: - -```console -# kill 17628 -``` - -4. Start the service you are interested in debug mode. When using make to build the binary there is already a `bin/ocis-debug` binary for you. When running an IDE tell it which service to start by providing the corresponding sub command, e.g. `bin\ocis-debug reva-frontend`. - -### Debugging the ocis in a docker container - -Remote debugging is the debug mode commonly used to work with a debugger and target running on a remote machine or a container for example a wopi stack `deployments/examples/ocis_full/docker-compose.yml`. Docker compose lets us define a compose application model through multiple compose files. When doing so, compose follows certain rules to merge compose files. See [Merge and override](https://docs.docker.com/compose/compose-file/13-merge/) in the Compose Specification. Based on this rules, we added the extra files `deployments/examples/ocis_full/debug-ocis.yml`, `deployments/examples/ocis_full/debug-collaboration-collabora.yml`, `deployments/examples/ocis_full/debug-collaboration-onlyoffice.yml` that overwrites the `command` attribute and extends the `ports` attribute. -Below we describe the steps how to build the image, run the docker-compose and connect via remote debugger. -1. Build the image: -```bash -cd github.com/owncloud/ocis/ocis -make debug-docker -``` -2. Change the tag label: -```bash -export OC_DOCKER_TAG=debug -``` -3. Run docker compose -Building the docker compose command depends on what you want to debug, for example `ocis` and `collaboration` with the `collabora` supports. -```bash -docker compose -f docker-compose.yml -f ocis.yml -f collabora.yml -f debug-ocis.yml -f debug-collaboration-collabora.yml up -d -``` -4. Connect to remote `delve` -* For the VS Code add the configuration to the `.vscode/launch.json` [https://github.com/golang/vscode-go/wiki/debugging#remote-debugging](https://github.com/golang/vscode-go/wiki/debugging#remote-debugging) -```json - { - "name": "Debug remote ocis :40000", - "type": "go", - "request": "attach", - "mode": "remote", - "port": 40000, - "host": "localhost", // optional - "trace": "verbose", // optional - "showLog": true // optional -}, -{ - "name": "Debug remote collaboration collabora :40001", - "type": "go", - "request": "attach", - "mode": "remote", - "port": 40001, - "host": "localhost", // optional - "trace": "verbose", // optional - "showLog": true // optional -}, -{ - "name": "Debug remote collaboration onlyoffice :40002", - "type": "go", - "request": "attach", - "mode": "remote", - "port": 40002, - "host": "localhost", // optional - "trace": "verbose", // optional - "showLog": true // optional -}, -``` -* For the Jetbrains Goland add the configuration following the docs [https://www.jetbrains.com/help/go/go-remote.html](https://www.jetbrains.com/help/go/go-remote.html) - - -### Gather error messages - -We recommend you collect all related information in a single file or in a GitHub issue. Let us start with an error that pops up in the Web UI: - -> Error while sharing. -> error sending a grpc stat request - -This popped up when I tried to add `marie` as a collaborator in ownCloud Web. That triggers a request to the server which I copied as curl. We can strip a lot of headers and the gist of it is: - -```console -# curl 'https://localhost:9200/ocs/v1.php/apps/files_sharing/api/v1/shares' -d 'shareType=0&shareWith=marie&path=%2FNeuer+Ordner&permissions=1' -u einstein:relativity -k -v | xmllint -format - -[... headers ...] - - - - error - 998 - error sending a grpc stat request - - -``` - -{{< hint info >}} -The username and password only work when basic auth is available. Otherwise you have to obtain a bearer token, e.g. by grabbing it from the browser. -{{< /hint >}} -{{< hint danger >}} -TODO add ocis cli tool to obtain a bearer token. -{{< /hint >}} - -We also have a few interesting log entries: - -``` -0:43PM INF home/jfd/go/pkg/mod/github.com/cs3org/reva@v0.0.2-0.20200318111623-a2f97d4aa741/internal/grpc/interceptors/log/log.go:69 > unary code=OK end="18/Mar/2020:22:43:40 +0100" from=tcp://[::1]:44078 pid=17836 pkg=rgrpc start="18/Mar/2020:22:43:40 +0100" time_ns=95841 traceid=b4eb9a9f45921f7d3632523ca32a42b0 uri=/cs3.storage.registry.v1beta1.RegistryAPI/GetStorageProvider user-agent=grpc-go/1.26.0 -10:43PM ERR home/jfd/go/pkg/mod/github.com/cs3org/reva@v0.0.2-0.20200318111623-a2f97d4aa741/internal/grpc/interceptors/log/log.go:69 > unary code=Unknown end="18/Mar/2020:22:43:40 +0100" from=tcp://[::1]:43910 pid=17836 pkg=rgrpc start="18/Mar/2020:22:43:40 +0100" time_ns=586115 traceid=b4eb9a9f45921f7d3632523ca32a42b0 uri=/cs3.gateway.v1beta1.GatewayAPI/Stat user-agent=grpc-go/1.26.0 -10:43PM ERR home/jfd/go/pkg/mod/github.com/cs3org/reva@v0.0.2-0.20200318111623-a2f97d4aa741/internal/http/services/owncloud/ocs/reqres.go:94 > error sending a grpc stat request error="rpc error: code = Unknown desc = gateway: error calling Stat: rpc error: code = Unavailable desc = connection error: desc = \"transport: Error while dialing dial tcp [::1]:9152: connect: connection refused\"" pid=17832 pkg=rhttp traceid=b4eb9a9f45921f7d3632523ca32a42b0 -``` - -{{< hint danger >}} -TODO return the trace id in the response so we can correlate easier. For reva tracked in https://github.com/cs3org/reva/issues/587 -{{< /hint >}} - -The last line gives us a hint where the log message originated: `.../github.com/cs3org/reva@v0.0.2-0.20200318111623-a2f97d4aa741/internal/http/services/owncloud/ocs/reqres.go:94`. Which looks like this: - -```go -89: // WriteOCSResponse handles writing ocs responses in json and xml -90: func WriteOCSResponse(w http.ResponseWriter, r *http.Request, res *Response, err error) { -91: var encoded []byte -92: -93: if err != nil { -94: appctx.GetLogger(r.Context()).Error().Err(err).Msg(res.OCS.Meta.Message) -95: } -``` - -Ok, so this seems to be a convenience method that is called from multiple places and also handles errors. Unfortunately, this hides the actual source of the error. We could set a breakpoint in line 94 and reproduce the problem, which can be a lot harder than just clicking the share button or sending a curl request again. So let us see what else the log tells us. - -The previous line tells us that a Stat request failed: `uri=/cs3.gateway.v1beta1.GatewayAPI/Stat`. This time the line is written by the grpc log interceptor. What else is there? - -The first line tells us that looking up the responsible storage provider seems to have succeeded: `uri=/cs3.storage.registry.v1beta1.RegistryAPI/GetStorageProvider`. - -At this point it your familiarity with the codebase starts to become a factor. If you are new you should probably go back to setting a break point on the log line and check the stack trace. - -Debug wherever the call trace leads you to ... good luck! - -### Managing dependencies and testing changes - -You can either run and manage the services independently, or you can update the `go.mod` file and replace dependencies with your local version. - -To debug the reva frontend we need to add two replacements: - -``` -// use the local ocis-reva repo -replace github.com/owncloud/ocis-reva => ../ocis-reva -// also use the local reva repo -replace github.com/cs3org/reva => ../reva -``` - -{{< hint info >}} -The username and password only work when basic auth is available. Otherwise you have to obtain a bearer token, e.g. by grabbing it from the browser. -{{< /hint >}} - -Rebuild ocis to make sure the dependency is used. It should be sufficient to just restart the service you want to debug. diff --git a/docs/ocis/development/envvars.md b/docs/ocis/development/envvars.md deleted file mode 100644 index c401b370d8..0000000000 --- a/docs/ocis/development/envvars.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Environment Variables" -date: 2024-08-22T15:41:00+01:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development -geekdocFilePath: envvars.md ---- - -Environment variables are an essential part of configuring services. - -If you are going to create new ones or deprecate existing ones, you must read the [Envvar Naming Scope]({{< ref "services/general-info/envvar-scopes.md" >}}) and the -[Deprecating Variables]({{< ref "services/general-info/deprecating-variables.md" >}}) documentation for more details first before doing so. diff --git a/docs/ocis/development/extensions.md b/docs/ocis/development/extensions.md deleted file mode 100644 index 9c07fa9775..0000000000 --- a/docs/ocis/development/extensions.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: "Extensions" -date: 2020-02-27T20:35:00+01:00 -weight: 40 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development -geekdocFilePath: extensions.md ---- - -oCIS is all about files, sync and share - but most of the time there is more you want to do with your files, e.g. having a different view on your photo collection or editing your offices files in an online file editor. ownCloud 10 faced the same problem and solved it with `applications`, which can extend the functionality of ownCloud 10 in a wide range. Since oCIS is different in its architecture compared to ownCloud 10, we had to come up with a similar (yet slightly different) solution. To extend the functionality of oCIS, you can write or install `extensions`. An extension is basically any running code which integrates into oCIS and provides functionality to oCIS and its users. Because extensions are just microservices providing an API, you can technically choose any programming language you like - a huge improvement to ownCloud 10, where it was nearly impossible to use a different programming language than PHP. - -We will now introduce you to the oCIS extension system and show you how you can create a custom extension yourself. - -## Extension examples - -Technically every service in oCIS is an extension, even if oCIS would not really work without some of them. Therefore, you can draw inspiration from any of the plenty of extensions in the [oCIS monorepo](https://github.com/owncloud/ocis). - -Besides these "default" extensions in the oCIS monorepo, there are two more extensions you should be aware of: - -- [Hello](https://github.com/owncloud/ocis-hello) -- [WOPI server](https://github.com/owncloud/ocis-wopiserver) - -Differences between the extensions maintained inside the oCIS monorepo and the ones maintained in their own repository are: - -- extensions inside the [oCIS monorepo](https://github.com/owncloud/ocis) are all written in Go, whereas other extensions may choose the programming language freely -- extensions inside the oCIS monorepo heavily share tooling to reduce maintenance efforts, whereas other extensions may use different tooling (e.g. a different CI system) -- extensions inside the oCIS monorepo will be all build into one binary and started with the `ocis server` command. All other extensions must be started individually besides oCIS. - - -For quickstart purposes we also offer a [template project](https://github.com/owncloud/boilr-ocis-extension) which can be used to generate all the boilerplate code for you. But you also can decide to use your own project layout or even a different programming language. - - -## Integration into oCIS - -Depending on the functionality of your extension, you might need to integrate with one or multiple of the components of oCIS mentioned below. - -### ownCloud Web - -If your extension is not just doing something in the background, you will need a UI in order to allow the user to interact with your extension. You could just provide your own web frontend for that purpose, but for a better user experience you can easily integrate into the web frontend of oCIS, the new [ownCloud Web](https://github.com/owncloud/web). - -ownCloud Web allows you to write an extension for itself and therefore offers a seamless user experience. Upon login, the user will be able to use the application switcher to switch between the files view, settings and other available and installed extensions, yours included. Furthermore it is also possible to register your extension for different file actions. As an example, you could offer your extension to the user for creating and editing office documents. The user will then be able to create or open a file with your application directly from the files view. How to provide create an extension for ownCloud Web can be seen best in [the Hello extension](https://github.com/owncloud/ocis-hello/blob/master/ui/app.js), whereas plain file handling without any web frontend is available in the [WOPI server extension](https://github.com/owncloud/ocis-wopiserver/blob/master/ui/app.js). - -To make ownCloud Web pick up your extension, you need to activate it in the configuration like seen in the [Hello extension](https://owncloud.dev/extensions/ocis_hello/running/#configure-and-start-ocis). - -For a consistent look and feel, ownCloud Web uses an external design library, the [ownCloud design system](https://github.com/owncloud/owncloud-design-system). Since its classes and components are available through the wrapping `web runtime`, we highly recommend you to leverage it in your extension as well. - -### Settings - -An extension likely has some behaviour which the user can configure. Fundamental configuration will often be done by administrators during deployment, via configuration files or by setting environment variables. But for other settings, which are supposed to change more often or which are even user specific, this is not a viable way. Therefore you need to offer the users a UI where they can configure your extension to their liking. Because implementing something like this is a repetitive task among extensions, oCIS already offers the settings extensions which does that for your extension. Your extension just needs to register settings bundles, respective permissions and finally read the current values from the settings service. You can read more on that on the [settings extension]({{< ref "../../services/settings" >}}) and see how [oCIS Hello uses these settings](https://owncloud.dev/extensions/ocis_hello/settings/). - -### Proxy - -The Proxy is an API gateway and acts as the single connection point where all external request from users and devices need to pass through. - -To make sure that requests can reach your extension's API, you need to register one or multiple endpoints at the proxy. The registration is an easy task and can be seen best on the [oCIS Hello example](https://owncloud.dev/extensions/ocis_hello/running/#configure-and-start-ocis). - -As files in ownCloud must always stay private (unless you share them with your friends or coworkers), requests to oCIS have an authenticated user context. This user context is also available to your extension and can be used to interact with the user's files. How to get the user context and authentication can be seen on the [oCIS Hello example](https://owncloud.dev/extensions/ocis_hello/settings/#account-uuid). - -### Storage - -oCIS leverages the CS3 APIs and [CS3 REVA](https://github.com/cs3org/reva) as a storage system because it offers a very flexible setup and supports a variety of storage backends like EOS, S3 and of course your local hard drive. REVA makes it easy to support more storage backends as needed. - -If you need to interact with files directly, you have the full power of the [CS3 APIs](https://cs3org.github.io/cs3apis/) in your hand. With the user context and the user's authentication token, which your extensions gets from the proxy, your extension can make these request in behalf of the user. - -If your extension needs to store persistent data which is not supposed to live in the user's home folder, there is also a so-called metadata storage, intended for exactly that purpose. You should always use the metadata storage in favor of the local filesystem for persistent files, because your extension will then automatically use the storage backend the oCIS admin decides to use. For a temporary cache it is perfectly fine to use the local filesystem. diff --git a/docs/ocis/development/getting-started.md b/docs/ocis/development/getting-started.md deleted file mode 100644 index 367c779185..0000000000 --- a/docs/ocis/development/getting-started.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: "Getting Started" -date: 2020-07-07T20:35:00+01:00 -weight: 15 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development -geekdocFilePath: getting-started.md ---- - -{{< toc >}} - -## Requirements - -We want contribution to oCIS and the creation of extensions to be as easy as possible. -So we are trying to reflect this in the tooling. It should be kept simple and quick to be set up. - -Besides standard development tools like git and a text editor, you need the following software for development: - -- Go >= v1.22 ([install instructions](https://golang.org/doc/install)) -- pnpm ([install instructions](https://pnpm.io/installation)) -- docker ([install instructions](https://docs.docker.com/get-docker/)) -- docker-compose ([install instructions](https://docs.docker.com/compose/install/)) - -If you find tools needed besides the mentioned above, please feel free to open an issue or open a PR. - -## Repository structure - -oCIS consists of multiple microservices, also called extensions. We started by having standalone repositories for each of them, but quickly noticed that this adds a time-consuming overhead for developers. So we ended up with a monorepo housing all the extensions in one repository. - -Each extension lives in a subfolder (e.g. `accounts` or `settings`) within this repository as an independent Go module, following the [golang-standard project-layout](https://github.com/golang-standards/project-layout). They have common Makefile targets and can be used to change, build and run individual extensions. This allows us to version and release each extension independently. - -The `ocis` folder contains our [go-micro](https://github.com/asim/go-micro/) and [suture](https://github.com/thejerf/suture) based runtime. It is used to import all extensions and implements commands to manage them, similar to a small orchestrator. With the resulting oCIS binary you can start single extensions or even all extensions at the same time. - -The `docs` folder contains the source for the [oCIS documentation]({{< ref "../" >}}). - -The `deployments` folder contains documented deployment configurations and templates. On a single node, running a single ocis runtime is a resource efficient way to deploy ocis. For multiple nodes docker compose or helm charts for kubernetes examples can be found here. - -The `scripts` folder contains scripts to perform various build, install, analysis, etc. operations. - -## Starting points - -Depending on what you want to develop there are different starting points. These will be described below. - -### Developing oCIS - -If you want to contribute to oCIS: - -- see [contribution guidelines](https://github.com/owncloud/ocis#contributing) -- make sure the tooling is set up by [building oCIS]({{< ref "build" >}}) and [building the docs]({{< ref "build-docs" >}}) -- create or pick an [open issue](https://github.com/owncloud/ocis/issues) to develop on and mention in the issue that you are working on it -- open a PR and get things done - -### Developing extensions - -If you want to develop an extension, start here: [Extensions]({{< ref "extensions">}}) diff --git a/docs/ocis/development/profiling.md b/docs/ocis/development/profiling.md deleted file mode 100644 index 47a19431c9..0000000000 --- a/docs/ocis/development/profiling.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: "Profiling" -date: 2021-08-24T12:32:20+01:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development -geekdocFilePath: profiling.md ---- - -{{< toc >}} - -# 0. Prerequisites - -- Go development kit of a [supported version](https://golang.org/doc/devel/release.html#policy). - Follow [these instructions](http://golang.org/doc/code.html) to install the - go tool and set up GOPATH. -- Graphviz: http://www.graphviz.org/. Used to generate graphic visualizations of profiles, which this example setup does. - -The only way to enable the profiler currently is to explicitly select which areas to collect samples for. In order to do this, the following steps have to be followed. - -## 1. Clone Reva - -Reva is the reference implementation of the CS3 APIs that we use for our daily business between oCIS and its storages. It is in charge of accessing the storage, as well as managing shares. Because of this fact, the examples will modify code in this dependency. You can think of Reva as the framework we use in order to interface with different storage providers. - -`git clone github.com/cs3org/reva` - -## 2. Patch reva with the area that you want sampled. - -For the purposes of these docs let's use the WebDAV `PROPFIND` path. This patch is needed in order to have the WebDAV process reporting profiling traces to the `pprof`. - -```diff -diff --git a/internal/http/services/owncloud/ocdav/propfind.go b/internal/http/services/owncloud/ocdav/propfind.go -index 0e9c99be..f271572f 100644 ---- a/internal/http/services/owncloud/ocdav/propfind.go -+++ b/internal/http/services/owncloud/ocdav/propfind.go -@@ -32,6 +32,8 @@ import ( - "strings" - "time" - -+ _ "net/http/pprof" -+ - userv1beta1 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" - rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" - link "github.com/cs3org/go-cs3apis/cs3/sharing/link/v1beta1" -@@ -311,6 +313,12 @@ func requiresExplicitFetching(n *xml.Name) bool { - return true - } - -+func init() { -+ go func() { -+ http.ListenAndServe(":1234", nil) -+ }() -+} -+ - // from https://github.com/golang/net/blob/e514e69ffb8bc3c76a71ae40de0118d794855992/webdav/xml.go#L178-L205 - func readPropfind(r io.Reader) (pf propfindXML, status int, err error) { - c := countingReader{r: r} -``` - -The previous patch will: - -1. import `net/http/pprof`, which will register debug handlers in `DefaultServeMux`. -2. define a `init()` function that starts an HTTP server with the previously registered handlers. - -With everything running one should have access to http://localhost:1234/debug/pprof/ - -## 3. Replace reva in oCIS go.mod with local version and build a new binary - -In Go, the `go.mod` file controls the dependencies of your module. Because we patched an external library, Go provides with a mechanism to overwrite an existing dependency with one on your local machine, which we previously installed. - -```diff -diff --git a/go.mod b/go.mod -index 131d14d7b..9668c38e4 100644 ---- a/go.mod -+++ b/go.mod -@@ -78,6 +78,7 @@ require ( - - replace ( - github.com/crewjam/saml => github.com/crewjam/saml v0.4.5 -+ github.com/cs3org/reva => path/to/your/reva - go.etcd.io/etcd/api/v3 => go.etcd.io/etcd/api/v3 v3.0.0-20210204162551-dae29bb719dd - go.etcd.io/etcd/pkg/v3 => go.etcd.io/etcd/pkg/v3 v3.0.0-20210204162551-dae29bb719dd - ) -``` - -Make sure to replace `github.com/cs3org/reva => path/to/your/reva` with the correct location of your reva. - -## 4. Build a new ocis binary - -Using the new dependency with the pprof patch. - -From owncloud/ocis root: - -```console -$ cd ocis -$ make clean build -``` - -## 5. Start oCIS server - -From owncloud/ocis root: - -```console -$ ocis/bin/ocis server -``` - -## 6. Run `pprof` - -[Pprof](https://github.com/google/pprof) is a tool developed at Google. It is a tool for visualization and analysis of profiling data. It will take the reported profiled data from our server, and represent it in a meaningful manner. - -### Install pprof - -If `pprof` is not installed make sure to get it; one way of installing it is using the Go tools: - -```console -$ go get -u github.com/google/pprof -``` - -### Collecting samples - -Collect 30 seconds of samples: - -```console -$ pprof -web http://:1234/debug/pprof/profile\?seconds\=30 -``` - -Once the collection is done a browser tab will open with the result `svg`, looking similar to this: - -![img](https://i.imgur.com/vo0EbcX.jpg) - -For references on how to interpret this graph, [continue reading here](https://github.com/google/pprof/blob/master/doc/README.md#interpreting-the-callgraph). - -## Room for improvement - -Because these docs are intended to be read by developers they are quite technical in content. Requiring the user to alter the code. This is done so that we do not include, or assume, third party dependencies such as Graphviz in our binary, making it heavier. Having said this, the profiler is only meant to be used in development - -## References - -- https://medium.com/swlh/go-profile-your-code-like-a-master-1505be38fdba -- https://dave.cheney.net/2013/07/07/introducing-profile-super-simple-profiling-for-go-programs diff --git a/docs/ocis/development/tracing.md b/docs/ocis/development/tracing.md deleted file mode 100644 index 82e13806ad..0000000000 --- a/docs/ocis/development/tracing.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: "Tracing" -date: 2020-05-13T12:09:00+01:00 -weight: 55 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development -geekdocFilePath: tracing.md ---- - -{{< toc >}} - -By default, we use [Jaeger](https://www.jaegertracing.io) for request tracing within oCIS. You can follow these steps -to get started: - -1. Start Jaeger by using the all-in-one docker image: - ```console - docker run -d --name jaeger \ - -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \ - -p 5775:5775/udp \ - -p 6831:6831/udp \ - -p 6832:6832/udp \ - -p 5778:5778 \ - -p 16686:16686 \ - -p 14268:14268 \ - -p 14250:14250 \ - -p 9411:9411 \ - jaegertracing/all-in-one:1.17 - ``` -2. Every single oCIS service has its own environment variables for enabling and configuring tracing. - 1. You can enable and configure tracing on each service individually. For example, enable tracing - in Reva when starting the oCIS single binary like this: - ```console - REVA_TRACING_ENABLED=true \ - REVA_TRACING_ENDPOINT=localhost:6831 \ - REVA_TRACING_COLLECTOR=http://localhost:14268/api/traces \ - ./bin/ocis server - ``` - 2. Enabling and configuring tracing on oCIS itself will forward the configuration to all services: - ```console - OC_TRACING_ENABLED=true \ - OC_TRACING_ENDPOINT=localhost:6831 \ - OC_TRACING_COLLECTOR=http://localhost:14268/api/traces \ - ./bin/ocis server - ``` - If you want to set individual tracing configuration for each service, make sure to set - `OC_TRACING_ENABLED=false`. -3. Make the actual request that you want to trace. -4. Open up the [Jaeger UI](http://localhost:16686) to analyze request traces. - -For more information on Jaeger, please refer to their [Documentation](https://www.jaegertracing.io/docs/1.17/). diff --git a/docs/ocis/development/unit-testing/_index.md b/docs/ocis/development/unit-testing/_index.md deleted file mode 100644 index 48d7215b50..0000000000 --- a/docs/ocis/development/unit-testing/_index.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: "Unit Testing" -date: 2024-04-25T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development/unit-testing -geekdocFilePath: _index.md ---- - -{{< toc >}} - -Go is a statically typed language, which makes it easy to write unit tests. The Go standard library provides a `testing` package that allows you to write tests for your code. The testing package provides a framework for writing tests, and the `go test` command runs the tests. Other than that there are a lot of libraries and tools available to make testing easier. - -- [Testify](https://github.com/stretchr/testify) - A toolkit with common assertions and mocks that plays nicely with the standard library. -- [Ginkgo](https://onsi.github.io/ginkgo/) - A BDD-style testing framework for Go. -- [Gomega](https://onsi.github.io/gomega/) - A matcher/assertion library for Ginkgo. -- [GoDog](https://github.com/cucumber/godog) - A Behavior-Driven Development framework for Go which uses Gherkin. - -In oCIS we generally use [Ginkgo](https://onsi.github.io/ginkgo/) framework for testing. To keep things consistent, we would encourage you to use the same. In some cases, where you feel the need for a more verbose or more "code oriented" approach, you can also use the testing package from the standard library without ginkgo. - -## 1 Ginkgo - -Using a framework like [Ginkgo](https://onsi.github.io/ginkgo/) brings many advantages. - -### Pros - -- Provides a BDD-style syntax which makes it easier to write reusable and understandable tests -- Together with [Gomega](https://onsi.github.io/gomega/) it provides a powerful and expressive framework with assertions in a natural language -- Natural Language Format empowers testing in a way that resembles user interactions with the system -- In the context of microservices it is particularly well suited to test individual services and the interactions between them -- Offers support for asynchronous testing which makes it easier to test code that involves concurrency -- Nested and structured containers and setup capabilities make it easy to organize tests and adhere to the DRY principle -- Provides helpful error messages to identify and fix issues -- Very usable for Test Driven Development following the ["Red, Green, Cleanup, Repeat"](https://en.wikipedia.org/wiki/Test-driven_development) workflow. - -### Cons - -- Sometimes it can be difficult to get started with -- Asynchronous behaviour brings more complexity to tests. -- Not compatible with broadly known `testify` package - -### Example - -As you can see, **Ginkgo** and **Gomega** together provide the foundation to write understandable and maintainable tests which can mimic user interaction and the interactions between microservices. - -```go -Describe("Public Share Provider", func() { - Context("When the user has no share permission", func() { - BeforeEach(func() { - // downgrade user permissions to have no share permission - resourcePermissions.AddGrant = false - }) - It("should return grpc invalid argument", func() { - req := &link.CreatePublicShareRequest{} - - res, err := provider.CreatePublicShare(ctx, req) - Expect(err).ToNot(HaveOccurred()) - Expect(res.GetStatus().GetCode()).To(Equal(rpc.Code_CODE_INVALID_ARGUMENT)) - Expect(res.GetStatus().GetMessage()).To(Equal("no share permission")) - }) -}) -``` - -### How to use it in oCIS - -{{< button relref="testing-ginkgo" size="large" >}}{{< icon "gdoc_arrow_right_alt" >}} Read more{{< /button >}} - -## 2 Testing Package - -For smaller straight-forward tests of some packages it might feel more natural to use the testing package that comes with the go standard library. - -### Pros - -- Straightforward approach -- Naming conventions -- Built-in tooling - -### Cons - -- Difficult to reuse code in larger and more complex packages -- Difficult to create clean and isolated setups for the test steps -- No natural language resemblance - - -### How to use it in ocis - -{{< button relref="testing-pkg" size="large" >}}{{< icon "gdoc_arrow_right_alt" >}} Read more{{< /button >}} diff --git a/docs/ocis/development/unit-testing/testing-ginkgo.md b/docs/ocis/development/unit-testing/testing-ginkgo.md deleted file mode 100644 index 2d5455394f..0000000000 --- a/docs/ocis/development/unit-testing/testing-ginkgo.md +++ /dev/null @@ -1,395 +0,0 @@ ---- -title: "Testing with Ginkgo" -date: 2024-04-25T00:00:00+00:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development/unit-testing -geekdocFilePath: testing-ginkgo.md - ---- - -{{< toc >}} - -In this section we try to enable developers to write tests in oCIS using Ginkgo and Gomega and explain how to mock other microservices to also cover some integration tests. The full documentation of the tools can be found on the [Ginkgo](https://onsi.github.io/ginkgo/) and [Gomega](https://onsi.github.io/gomega/) websites. - -{{% hint type=tip icon=gdoc_link title="Reading the documentation" %}} -This page provides only a basic introduction to get started with Ginkgo and Gomega. For more detailed information, please refer to the official documentation. - -**Useful Links:** - -- [Ginkgo](https://onsi.github.io/ginkgo/) -- [Gomega](https://onsi.github.io/gomega/) -- [Mockery](https://vektra.github.io/mockery/latest/) - -{{% /hint %}} - -## Prerequisites - -To use Ginkgo, you need to install the Ginkgo CLI. You can install it using the following command: - -```bash -go install github.com/onsi/ginkgo/v2/ginkgo -go get github.com/onsi/gomega/... -``` - -## Getting Started - -Navigate to the directory where you want to write your tests and run the following command: - -### Bootstrap - -```bash -cd ocis/ocis-pkg/config/parser -ginkgo bootstrap -Generating ginkgo test suite bootstrap for parser in: - parser_suite_test.go - -``` - -This command creates a `parser_suite_test.go` file in the parser directory. This file contains the test suite for the parser package. - -```go -package parser_test - -import ( - "testing" - - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" -) - -func TestParser(t *testing.T) { - RegisterFailHandler(Fail) - RunSpecs(t, "Parser Suite") -} -``` - -Ginkgo defaults to setting up the suite as a `*_test` package to encourage you to only test the external behavior of your package, not its internal implementation details. - -After the package `parser_test` declaration we import the ginkgo and gomega packages into the test's top-level namespace by performing a `.` dot-import. Since Ginkgo and Gomega are DSLs (Domain-specific Languages) this makes the tests more natural to read. If you prefer, you can avoid the dot-import via `ginkgo bootstrap --nodot`. Throughout this documentation we'll assume dot-imports. - -With the bootstrap complete, you can now run your tests using the `ginkgo` command: - -```bash -ginkgo - -Running Suite: Parser Suite - /ocis/ocis-pkg/config/parser -=============================================================================================== -Random Seed: 1714076559 - -Will run 0 of 0 specs - -Ran 0 of 0 Specs in 0.000 seconds -SUCCESS! -- 0 Passed | 0 Failed | 0 Pending | 0 Skipped -PASS - -Ginkgo ran 1 suite in 7.0058606s -Test Suite Passed -``` - -Under the hood, ginkgo is simply calling `go test`. While you can run `go test` instead of the ginkgo CLI, Ginkgo has several capabilities that can only be accessed via `ginkgo`. We generally recommend users embrace the ginkgo CLI and treat it as a first-class member of their testing toolchain. - -### Adding Specs to the Suite - -```bash -ginkgo generate parser -Generating ginkgo test for Parser in:  ✔  7s  22:22:46  - parser_test.go -``` - -This will generate a `parser_test.go` file in the parser directory. This file contains the test suite for the parser package. - -```go -package parser_test - -import ( - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - - "github.com/owncloud/ocis/v2/ocis-pkg/config/parser" -) - -var _ = Describe("Parser", func() { - -}) -``` - -## Writing Specs - -### Describe - -The `Describe` block is used to describe the behavior of a particular component of your code. It is a way to group together related specs. The `Describe` block takes a string and a function. The string is a description of the component you are describing, and the function contains the specs that describe the behavior of that component. - -```go -var _ = Describe("Parser", func() { - // Specs go here -}) -``` - -### Context - -The `Context` block is used to further describe the behavior of a component. It is a way to group together related specs within a `Describe` block. The `Context` block takes a string and a function. The string is a description of the context you are describing, and the function contains the specs that describe the behavior of that context. - -```go -var _ = Describe("Parser", func() { - Context("when the input is valid", func() { - // Specs go here - }) -}) -``` - -### It - -The `It` block is used to describe a single spec. It takes a string and a function. The string is a description of the behavior you are specifying, and the function contains the code that exercises that behavior. - -```go -var _ = Describe("Parser", func() { - Context("when the input is valid", func() { - It("parses the input", func() { - // Spec code goes here - }) - }) -}) -``` - -### Expect - -The `Expect` function is used to make assertions in your specs. It takes a value and returns an `*Expectation`. You can then chain methods on the `*Expectation` to make assertions about the value. - -```go -var _ = Describe("Parser", func() { - Context("when the input is valid", func() { - It("parses the input", func() { - result := parser.Parse("valid input") - Expect(result).To(Equal("expected output")) - }) - }) -}) -``` - -### BeforeEach - -The `BeforeEach` block is used to run a setup function before each spec in a `Describe` or `Context` block. It takes a function that contains the setup code. - -```go -package parser_test - -import ( - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - "github.com/owncloud/ocis/v2/ocis-pkg/config" - - p "github.com/owncloud/ocis/v2/ocis-pkg/config/parser" -) - -var _ = Describe("Parser", func() { - var c *config.Config - - BeforeEach(func() { - c = config.DefaultConfig() - }) - - Context("when the input is valid", func() { - It("parses the input", func() { - err := p.ParseConfig(c, false) - Expect(err).ToNot(HaveOccurred()) - Expect(c.Commons.OcisURL).To(Equal("https://localhost:9200")) - }) - }) -}) -``` - -Let us take a closer look at the code above: - -We are following the recommended practise on variables to **"declare in container nodes"** and **"initialize in setup nodes"**. This is why we are declaring the `c` variable at the top of the `Describe` block and initializing it in the `BeforeEach` block. This is important to get isolated test steps which can be run in any order and even in parallel. - -Let us take a look at a bad example where we are polluting the spec by not following this recommended practise: - -```go -package parser_test - -import ( - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - "github.com/owncloud/ocis/v2/ocis-pkg/config" - - p "github.com/owncloud/ocis/v2/ocis-pkg/config/parser" -) - - -var _ = Describe("Parser", func() { - c := config.DefaultConfig() - - Context("when the defaults are applied", func() { - It("fails to parse the input", func() { - c.TokenManager.JWTSecret = "" // bam! we have changed the closure variable and it will never be reset - err := p.ParseConfig(c, false) - Expect(err).To(HaveOccurred()) - }) - It("parses the input", func() { - err := p.ParseConfig(c, false) - Expect(err).ToNot(HaveOccurred()) - Expect(c.Commons.OcisURL).To(Equal("https://localhost:9200")) - }) - }) -}) -``` - -{{% hint type="warning" title="Specs MUST be clean and independent"%}} -Always **declare variables in the container node**(which are basically `Describe()` and `Context()`) - -and **initialize your variables in the setup nodes.** (which are basically `BeforeEach()` and `JustBeforeEach()`). - -This will ensure that your specs are clean and independent of each other. -{{% /hint %}} - -### Focused Specs - -You can focus on a single spec by adding an `F` in front of the `It` block. This will run only the focused spec. - -```go -var _ = Describe("Parser", func() { - Context("when the input is valid", func() { - FIt("parses the input", func() { - result := parser.Parse("valid input") - Expect(result).To(Equal("expected output")) - }) - }) -}) -``` - -### Pending Specs - -You can mark a spec as pending by adding a `P` in front of the `It` block. This will skip the spec. - -```go -var _ = Describe("Parser", func() { - Context("when the input is valid", func() { - PIt("parses the input", func() { - result := parser.Parse("valid input") - Expect(result).To(Equal("expected output")) - }) - }) -}) -``` - -### Test Driven Development - -You can run the tests in watch mode to follow a test-driven development approach. This will run the tests every time you save a file. - -```bash -ginkgo watch -``` - -## Mocking - -In oCIS, we use the `mockery` tool to generate mocks for interfaces. [Mockery](https://vektra.github.io/mockery/latest/) is a simple tool that generates mock implementations of Go interfaces. It is useful for writing tests against interfaces instead of concrete types. We can use it to mock requests to other microservices to cover some integration tests. We should already have a number of mocks in the project. The mocks are configured on the packages level in the `.mockery.yaml` files. - -**Example file:** - -```yaml -with-expecter: true -filename: "{{.InterfaceName | snakecase }}.go" -dir: "{{.PackageName}}/mocks" -mockname: "{{.InterfaceName}}" -outpkg: "mocks" -packages: - github.com/owncloud/ocis/v2/ocis-pkg/oidc: - interfaces: - OIDCClient: -``` - -We should add missing mocks to this file and define the interfaces we want to mock. After that, we can generate the mocks by running `mockery` in the repo, it will find all the `.mockery.yaml` files and generate the mocks for the interfaces defined in them. - -Our mocks are generated with the setting `with-expecter: true`. This allows us to use type-safe methods to generate the call expectations by simply calling `EXPECT()` on the mock object. - -{{% hint type="tip" title="Type safe mock identifiers" %}} -By using `EXPECT()` on the mock object, we can work with type-safe methods to generate the call expectations. -{{% /hint %}} - -**Example of a mocked gateway client** - -In our oCIS services we need to use a gateway pool selector to get the gateway client. - -We should always use the constructor on a new mock like `gatewayClient = cs3mocks.NewGatewayAPIClient(GinkgoT())`. This brings us two advantages: - -- The `AssertExpectations` method is registered to be called at the end of the tests via `t.Cleanup()` method. -- The `testing.TB` interface is registered on the `mock.Mock` so that tests don't panic when a call on the mock is unexpected. - -```go -package publicshareprovider_test - -import ( - "context" - "time" - - - "github.com/opencloud-eu/reva/v2/pkg/rgrpc/todo/pool" - cs3mocks "github.com/opencloud-eu/reva/v2/tests/cs3mocks/mocks" - . "github.com/onsi/ginkgo/v2" - . "github.com/onsi/gomega" - "google.golang.org/grpc" -) - -var _ = Describe("PublicShareProvider", func() { - // declare in container nodes - var ( - gatewayClient *cs3mocks.GatewayAPIClient - gatewaySelector pool.Selector - ) - - BeforeEach(func() { - // initialize in setup nodes - pool.RemoveSelector("GatewaySelector" + "any") - // create a new mock client - gatewayClient = cs3mocks.NewGatewayAPIClient(GinkgoT()) - gatewaySelector = pool.GetSelector[gateway.GatewayAPIClient]( - "GatewaySelector", - "any", - func(cc *grpc.ClientConn) gateway.GatewayAPIClient { - return gatewayClient - }, - ) - }) - Context("The user has the permission to create public shares", func() { - BeforeEeach(func() { - // set up the mock - // this is implicitly creating the expectation that it will be called Once() - // this will throw an error if the method is not called - gatewayClient. - EXPECT(). - CheckPermission( - mock.Anything, - mock.Anything, - ). - Return(checkPermissionResponse, nil) - }) - It("should return a public share", func() { - // call the method - req := &link.CreatePublicShareRequest{ - ResourceInfo: &providerpb.ResourceInfo{ - Owner: &userpb.UserId{ - OpaqueId: "alice", - }, - Path: "./NewFolder/file.txt", - }, - Grant: &link.Grant{ - Permissions: &link.PublicSharePermissions{ - Permissions: linkPermissions, - }, - Password: "SecretPassw0rd!", - }, - Description: "test", - } - res, err := provider.CreatePublicShare(ctx, req) - Expect(err).ToNot(HaveOccurred()) - Expect(res.GetStatus().GetCode()).To(Equal(rpc.Code_CODE_OK)) - Expect(res.GetShare()).To(Equal(createdLink)) - }) - }) -}) -``` - -{{% hint type="tip" title="Mocking in oCIS" %}} -Use the constructor on new mocks to register the `AssertExpectations` method to be called at the end of the tests via the `t.Cleanup()` method. -{{% /hint %}} diff --git a/docs/ocis/development/unit-testing/testing-pkg.md b/docs/ocis/development/unit-testing/testing-pkg.md deleted file mode 100644 index 81ce85905e..0000000000 --- a/docs/ocis/development/unit-testing/testing-pkg.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: "Standard Library Testing" -date: 2024-04-25T00:00:00+00:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/development/unit-testing -geekdocFilePath: testing-pkg.md - ---- - -## Using the standard library - -To write a unit test for your package, create a file with the `_test.go` suffix. For example, if you have a package `foo` with a file `foo.go`, you can create a file `foo_test.go` in the same directory. The test file should have the same package name as the package being tested. By doing this, you can access all exported and unexported identifiers of the package. It is a good practice to keep the test file in the same package as the code being tested. - -### Simple Example - -We are using an oversimplified example from [FooBarQuix](https://codingdojo.org/kata/FooBarQix/) to demonstrate how to use the `testing` package. - -```go -package divide - -import "strconv" - -// If the number is divisible by 3, write "Yes" otherwise, the number -func IsDivisible(input int) string { - if (input % 3) == 0 { - return "Yes" - } - return strconv.Itoa(input) -} -``` - -To test the `IsDivisible` function, create a file `divide_test.go` in the same directory as `divide.go`. The test file should have the same package name as the package being tested. - -A test function in Go starts with `Test` and takes `*testing.T` as the only parameter. In most cases, you will name the unit test `Test[NameOfFunction]`. The testing package provides tools to interact with the test workflow, such as `t.Errorf`, which indicates that the test failed by displaying an error message on the console. - -The test function for the `IsDivisible` function could look like this - -```go -package divide - -import "testing" - -func TestDivide3(t *testing.T) { - result := IsDivisible(3) - if result != "Yes" { - t.Errorf("Result was incorrect, got: %s, want: %s.", result, "Yes") - } -} -``` - -To run the test, use the `go test` command in the directory where the test file is located. - -### Use a helper package for assertions - -You could make the test more readable by using testify. The `assert` package provides a lot of helper functions to make the test more readable. - -```go -package divide - -import ( - "testing" - "github.com/stretchr/testify/assert" -) - -func TestDivide3(t *testing.T) { - result := IsDivisible(3) - assert.Equal(t, "Yes", result) -} -``` - -### Table Driven Example - -Write Table Driven Tests to test multiple inputs. - -```go -package divide - -import ( - "testing" - "github.com/stretchr/testify/assert" -) - - -func TestIsDivisibleTableDriven(t *testing.T) { - // Defining the columns of the table - var tests = []struct { - name string - input int - want string - }{ - // the table itself - {"9 should be Yes", 9, "Yes"}, - {"3 should be Yes", 3, "Yes"}, - {"1 is not Yes", 1, "1"}, - {"0 should be Yes", 0, "Yes"}, - } - - // The execution loop - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - answer := IsDivisible(tt.input) - assert.Equal(t, tt.want, answer) - }) - } -} -``` - -A table-driven test starts by defining the input structure. This can be seen like defining the columns of the table. Each row of the table lists a test case to execute. Once the table is defined, the execution loop can be created. - -The execution loop calls `t.Run()`, which defines a subtest. In our example each row of the table defines a subtest named `[NameOfTheFuction]/[NameOfTheSubTest]`. - -This way of writing tests is very popular, and considered the canonical way to write unit tests in Go. diff --git a/docs/ocis/flow-docs/_index.md b/docs/ocis/flow-docs/_index.md deleted file mode 100644 index f7033802e7..0000000000 --- a/docs/ocis/flow-docs/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Flow documentation" -date: 2020-10-01T20:35:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/flow-docs -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- diff --git a/docs/ocis/flow-docs/login-flow.md b/docs/ocis/flow-docs/login-flow.md deleted file mode 100644 index 68143b3328..0000000000 --- a/docs/ocis/flow-docs/login-flow.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: "Login Flow" -date: 2020-05-04T20:47:00+01:00 -weight: 43 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/flow-docs -geekdocFilePath: login-flow.md ---- - - -## Login Flow - -The following sequence diagram describes the [openid connect auth code flow](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth). The eight numbered steps and notes correspond to the [openid connect auth code flow steps](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowSteps). Example requests are based on the spec as well: - -{{< mermaid class="text-center">}} -sequenceDiagram - %% we have comments!! \o/ - %% this documents the login workflow - %% examples taken from the oidc spec https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth - %% TODO add PKCE, see https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce#use-pkce-to-make-your-apps-more-secure - participant user as User - participant client as Client - participant proxy as ocis-proxy - participant idp as IdP - participant idm as LibreIDM - participant ldap as External User Directory - - user->>+client: What is the content of my home? - client->>+proxy: PROPFIND no (or expired) auth - Note over client,proxy: ocis needs to know the IdP that is used to authenticate users. The proxy will redirect unauthenticated requests to that IdP. - proxy-->>-client: 401 Unauthorized - client->>+proxy: 1. The client starts a new openIDConnect Flow - Note over client, proxy: GET /.well-known/openid-configuration - proxy-->>-client: Return openidConnect configuration for the IdP - client-->>client: 2. Client prepares an Authentication Request containing the desired request parameters and generates the code challenge (PKCE). - client->>+idp: 3. Client sends the request and the code challenge to the Authorization Server. - Note over client, idp: GET /authorize? flow=oidc&response_type=code &scope=openid%20profile%20email &code_challenge=Y2SGoq9vtAp7YAavTaO0B550H_Rsj9DypiL7xZuFjOE &code_challenge_method=S25&client_id=s6BhdRkqt3 &state=af0ifjsldkj &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb HTTP/1.1 Host: server.example.com - Note over user, idp: 3. Authorization Server Authenticates the End-User. - alt all users managed by idp/ocis idm - idp->>+idm: LDAP query/bind - idm-->>-idp: LDAP result - Note over idp,ldap: In case users are managed in an external ldap they have to be autoprovisioned in the ocis IdM when they are loggin in. - else all users authenticated by an external idp - idp->>+ldap: Lookup of the user in the directory - ldap-->>-idp: Lookup result - end - idp-->>-user: Idp presents the user an authentication prompt. - user->>+idp: 5. User authenticates and gives consent. - idp-->>-client: 6. Authorization Server sends the End-User back to the Client with an Authorization Code. - Note over client, idp: HTTP/1.1 302 Found Location: https://client.example.org/cb? code=SplxlOBeZQQYbYS6WxSbIA&state=af0ifjsldkj - client->>+idp: 7. Client requests a response using the Authorization Code and the code verifier at the Token Endpoint. - Note over client, idp: POST /token HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri=https%3A%2F%2Fclient.example.org &code_verifier=a98ccbe253754259963e6e2b67b5a044929446d7a15046cc8e3194022ad061d9d667dce91876418d9e6fe9f54819332e - idp->>+idp: 8. IdP checks the code verifier (PKCE) - idp-->>-client: 9. Client receives a response that contains an ID Token and Access Token in the response body. If offline access is requested, the client also receives a refresh token. - Note over client, idp: HTTP/1.1 200 OK Content-Type: application/json Cache-Control: no-store Pragma: no-cache { "access_token": "SlAV32hkKG", "token_type": "Bearer", "refresh_token": "8xLOxBtZp8", "expires_in": 3600, "id_token": "a ... b.c ... d.e ... f" // must be a JWT } - client-->>client: 10. Client validates the ID token and retrieves the End-User's Subject Identifier. - client->>+proxy: PROPFIND With access token - proxy-->>-client: 207 Multi-Status - client-->>-user: List of Files X, Y, Z ... -{{< /mermaid >}} diff --git a/docs/ocis/flow-docs/public-upload-flow.md b/docs/ocis/flow-docs/public-upload-flow.md deleted file mode 100644 index ae9a5d025a..0000000000 --- a/docs/ocis/flow-docs/public-upload-flow.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "Public upload Flow" -date: 2020-07-27T14:16:00+01:00 -weight: 47 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/flow-docs -geekdocFilePath: public-upload-flow.md ---- - - -## Public Upload flow - -The following diagram describes the flow of requests: - -{{< figure src="/ocis/static/tus-public-upload.svg" >}} diff --git a/docs/ocis/flow-docs/request-flow.md b/docs/ocis/flow-docs/request-flow.md deleted file mode 100644 index 02e3e78163..0000000000 --- a/docs/ocis/flow-docs/request-flow.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: "Request Flow" -date: 2020-04-27T16:07:00+01:00 -weight: 45 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/flow-docs -geekdocFilePath: request-flow.md ---- - - -## Request Flow - -The following sequence diagram describes the general request flow. It shows where account provisioning and token minting are happening: - -{{< mermaid class="text-center">}} -sequenceDiagram - %% we have comments!! \o/ - participant user as User - participant client as Client - participant proxy as ocis-proxy - participant idp as IdP - participant accounts as ocis-accounts - participant ldap as corporate LDAP server - - user->>+client: What is the content of my home? - - client->>+proxy: PROPFIND Bearer auth using oidc auth token - Note over client,proxy: What is in a bearer token? The spec recommends opaque tokens. Treat it as random byte noise. - Note over client,proxy: the proxy MUST authenticate users using ocis-accounts because it needs to decide where to send the request - %% Mention introspection endpoint for opaque tokens - %% idp uses jwt, so we can save a request - %% either way the token can be used to look up the sub and iss of the user - - %% or is token check enough? - proxy->>+idp: GET /userinfo - alt userinfo succeeds - - idp-->>proxy: 200 OK - Note over proxy,accounts: Content-Type: application/json{"sub": "248289761001","name": "Jane Doe","given_name": "Jane","family_name": "Doe","preferred_username": "j.doe","email": "janedoe@example.com","picture": "http://example.com/janedoe/me.jpg"} - %% see: https://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse - - else userinfo fails - - idp-->>-proxy: 401 Unauthorized - Note over proxy,accounts: WWW-Authenticate: error="invalid_token",error_description="The Access Token expired" - - proxy-->>client: 401 Unauthorized or 302 Found with redirect to idp - Note over client: start at login flow or refresh the token - - end - - proxy->>+accounts: TODO API call to exchange sub@iss with account UUID - Note over proxy,accounts: does not autoprovision users. They are explicitly provisioned later. - - alt account exists or has been migrated - - accounts-->>proxy: existing account UUID - else account does not exist - - opt oc10 endpoint is configured - Note over proxy,oc10: Check if user exists in oc10 - proxy->>+oc10: GET /apps/graphapi/v1.0/users/<uuid> - opt user exists in oc10 - oc10-->>-proxy: 200 - %% TODO auth using internal token - proxy->>+oc10: PROPFIND - Note over proxy,oc10: forward existing bearer auth - oc10-->>-proxy: Multistatus response - proxy-->>client: Multistatus response - client-->>user: List of Files X, Y, Z ... - end - end - - Note over proxy,accounts: provision a new account including displayname, email and sub@iss TODO only if the user is allowed to login, based on group membership in the ldap server - proxy->>proxy: generate new uuid - proxy->>+accounts: TODO create account with new generated uuid - accounts-->>-proxy: OK / error - - else account has been disabled - - accounts-->>-proxy: account is disabled - proxy-->>client: 401 Unauthorized or 302 Found with redirect to idp - Note over client: start at login flow or refresh the token - - end - proxy->>proxy: store uuid in context - - %% what if oc10 does not support a certain request / API - - proxy->>proxy: mint an internal jwt that includes the UUID and username using revas `x-access-token` header - proxy->>+reva: PROPFIND Token auth using internal JWT - reva-->>-proxy: Multistatus response - proxy-->>-client: Multistatus response - - client-->>-user: List of Files X, Y, Z ... -{{< /mermaid >}} diff --git a/docs/ocis/getting-started/_index.md b/docs/ocis/getting-started/_index.md deleted file mode 100644 index 4a86e675e7..0000000000 --- a/docs/ocis/getting-started/_index.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: "Getting Started" -date: 2020-02-27T20:35:00+01:00 -weight: 0 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/getting-started -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -{{< toc >}} - -## oCIS online demo - -We have an oCIS demo instance running on [ocis.owncloud.com](https://ocis.owncloud.com) where you can get a first impression of it. - -We also have some more variations of oCIS running and [continuously deployed]({{< ref "../deployment/continuous_deployment" >}}) to reflect different scenarios in that oCIS might be used. - -## Run oCIS - -We are distributing oCIS as binaries and Docker images. - -{{< hint warning >}} -The examples in this document assume that oCIS is accessed from the same host as it is running on (`localhost`). If you would like -to access oCIS remotely please refer to the [Basic Remote Setup]({{< ref "../deployment/basic-remote-setup" >}}) section. Especially -to the notes about setting the `PROXY_HTTP_ADDR` and `OC_URL` environment variables. -{{< /hint >}} - -You can find more deployment examples in the [deployment section]({{< ref "../deployment" >}}). - -### Binaries - -You can find the latest official release of oCIS at [our download mirror](https://download.owncloud.com/ocis/ocis/stable/) or on [GitHub](https://github.com/owncloud/ocis/releases). -The latest build from the master branch can be found at [our download mirrors daily section](https://download.owncloud.com/ocis/ocis/daily/). Pre-Releases are available at [our download mirrors testing section](https://download.owncloud.com/ocis/ocis/testing/). - -To run oCIS as binary you need to download it first and then run the following commands. -For this example, assuming version 2.0.0-beta.5 of oCIS running on a Linux AMD64 host: - -```console -# download -curl https://download.owncloud.com/ocis/ocis/testing/2.0.0-beta.5/ocis-2.0.0-beta.5-linux-amd64 --output ocis - -# make binary executable -chmod +x ocis - -# initialize a minimal oCIS configuration -./ocis init - -# run with demo users -IDM_CREATE_DEMO_USERS=true ./ocis server -``` - -The default primary storage location is `~/.ocis` or `/var/lib/ocis` depending on the packaging format and your operating system user. You can change that value by configuration. - -{{< hint info >}} -When you're using oCIS with self-signed certificates, you need to answer the question for certificate checking with "yes" or set the environment variable `OC_INSECURE=true`, in order to make oCIS work. -{{< /hint >}} - -{{< hint warning >}} -oCIS by default relies on Multicast DNS (mDNS), usually via avahi-daemon. If your system has a firewall, make sure mDNS is allowed in your active zone. -{{< /hint >}} - -{{< hint warning >}} - -#### Open Files on macOS - -The start command `./ocis server` starts a runtime which runs all oCIS services in one process. On MacOS we have very low limits for open files. oCIS needs more than the default 256. Please raise the limit to 1024 by typing `ulimit -n 1024` within the same cli session where you start ocis from. -{{< /hint >}} - -### Docker - -Docker images for oCIS are available on [Docker Hub](https://hub.docker.com/r/owncloud/ocis). - -The `latest` tag always reflects the current master branch. - -```console -docker pull owncloud/ocis -docker run --rm -it -v ocis-config:/etc/ocis owncloud/ocis init -docker run --rm -p 9200:9200 -v ocis-config:/etc/ocis -v ocis-data:/var/lib/ocis -e IDM_CREATE_DEMO_USERS=true owncloud/ocis -``` - -{{< hint info >}} -When you're using oCIS with self-signed certificates, you need to set the environment variable `OC_INSECURE=true`, in order to make oCIS work. -{{< /hint >}} - -{{< hint warming >}} -When you're creating the [demo users]({{< ref "./demo-users" >}}) by setting `IDM_CREATE_DEMO_USERS=true`, you need to be sure that this instance is not used in production because the passwords are public. -{{< /hint >}} - -{{< hint warning >}} -We are using named volumes for the oCIS configuration and oCIS data in the above example (`-v ocis-config:/etc/ocis -v ocis-data:/var/lib/ocis`). You could instead also use host bind-mounts instead, eg. `-v /some/host/dir:/var/lib/ocis`. - -You cannot use bind mounts on MacOS, since extended attributes are not supported ([owncloud/ocis#182](https://github.com/owncloud/ocis/issues/182), [moby/moby#1070](https://github.com/moby/moby/issues/1070)). -{{< /hint >}} - -## Usage - -### Login to ownCloud Web - -Open [https://localhost:9200](https://localhost:9200) and [login using one of the demo accounts]({{< ref "./demo-users" >}}). - -### Basic Management Commands - -The oCIS single binary contains multiple extensions and the `ocis` command helps you to manage them. You already used `ocis server` to run all available extensions in the [Run oCIS]({{< ref "#run-ocis" >}}) section. We now will show you some more management commands, which you may also explore by typing `ocis --help` or going to the [docs]({{< ref "../config" >}}). - -To initialize the oCIS configuration: - -{{< highlight txt >}} -ocis init -{{< / highlight >}} - -To start oCIS server: - -{{< highlight txt >}} -ocis server -{{< / highlight >}} - -The list command prints all running oCIS services. -{{< highlight txt >}} -ocis list -{{< / highlight >}} - -The version command prints the version of your installed oCIS. -{{< highlight txt >}} -ocis --version -{{< / highlight >}} - -The health command is used to execute a health check, if the exit code equals zero the service should be up and running, if the exit code is greater than zero the service is not in a healthy state. Generally this command is used within our Docker containers, it could also be used within Kubernetes. - -{{< highlight txt >}} -ocis health --help -{{< / highlight >}} diff --git a/docs/ocis/getting-started/demo-users.md b/docs/ocis/getting-started/demo-users.md deleted file mode 100644 index 89edea3c99..0000000000 --- a/docs/ocis/getting-started/demo-users.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "Demo Users" -date: 2020-02-27T20:35:00+01:00 -weight: 0 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/getting-started -geekdocFilePath: demo-users.md ---- - -oCIS has the option to create demo users during the first startup. These enable you to do quick testing and developing. - -{{< hint info >}} -To create the demo users, run the initial setup step with an additional environment variable. -`IDM_CREATE_DEMO_USERS=true ./bin/ocis server` will generate the demo users listed in the table below. By default, it only generates the admin and one user for IDP and Reva respectively. -{{< /hint >}} - -Following users are available in the demo set: - -| username | password | email | role | groups | -| --------- | ----------------------------------------- | --------------------- | ----------- | ----------------------------------------------------------------------- | -| admin | admin or the one generated by `ocis init` | admin@example.org | admin | users | -| einstein | relativity | einstein@example.org | user | users, philosophy-haters, physics-lovers, sailing-lovers, violin-haters | -| marie | radioactivity | marie@example.org | user | users, physics-lovers, polonium-lovers, radium-lovers | -| moss | vista | moss@example.org | space admin | users | -| richard | superfluidity | richard@example.org | user | users, philosophy-haters, physics-lovers, quantum-lovers | -| katherine | gemini | katherine@example.org | space admin | users, sailing-lovers, physics-lovers, quantum-lovers | - -You may also want to run oCIS with only your custom users by [deleting the demo users]({{< ref "../deployment#delete-demo-users" >}}). diff --git a/docs/ocis/guides/_index.md b/docs/ocis/guides/_index.md deleted file mode 100644 index ae989fa82a..0000000000 --- a/docs/ocis/guides/_index.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: "Guides" -date: 2022-06-14T16:00:00+02:00 -weight: 8 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/guides -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -{{< toc >}} - -## Step-by-step Guides - -These guides should extend the generic documentation and help admins to learn Infinite Scale through digestable "hands-on" sessions. - -### Available Guides - -oCIS deployments are super simple, yet there are many configurations possible for advanced setups. - -- {{< icon "docker" >}} [Discover oCIS with Docker]({{< ref "ocis-local-docker" >}}) - configure domain, certificates and port -- {{< icon "person-walking-luggage" >}} [Migrate data to Infinite Scale]({{< ref "migrate-data-rclone" >}}) diff --git a/docs/ocis/guides/migrate-data-rclone.md b/docs/ocis/guides/migrate-data-rclone.md deleted file mode 100644 index 7f1a14be51..0000000000 --- a/docs/ocis/guides/migrate-data-rclone.md +++ /dev/null @@ -1,103 +0,0 @@ - ---- -title: "Migrate Data using rclone" -date: 2020-06-12T14:35:00+01:00 -weight: 8 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/guides -geekdocFilePath: migrate-data-rclone.md -geekdocCollapseSection: true ---- - -People keep asking on how to migrate data from other cloud storage to Infinite Scale. - -There are too many cloud variants and use cases out there to have a migration path for all at hand, but let's see what we can start with: There is the famous Swiss army knife for clouds called rclone available. - -The awesome rclone tool makes it easy to migrate data from one installation to another on a user per user base. A very good first step. - -This article explains by the example of Nextcloud how you would migrate your data from an running NC to Infinite Scale. A prerequisite is that you have Infinite Scale already set up and running on a different domain. - -{{< hint warning >}} -Be prepared that migration can take some time. Also, check the size of your data. This example was around 1.5 GiB of data, that obviously went fast. - -And of course: Have a backup! Even if this method only reads from the source, you never know. -{{< /hint >}} - -## Install rclone - -Check the [rclone website on how to install](https://rclone.org/install/) rclone. - -## Create Users - -First, decide on a user that you want to migrate. To create the user on Infinite Scale, log in as an admin user and create the desired user. Create and set groups accordingly. - -For the next step, you need the user credentials on both the source- and the destination cloud. - -## Configure rclone Remotes - -To be able to address the clouds in rclone, you need to configure so called _remotes_. It is nothing else than a shortcut for the combination of -- which kind of cloud are you talking to -- the URL -- the username -- the password, if one is set - -You need to add a configuration for both the source cloud (Nextcloud) and the target (Infinite Scale). As both talk WebDAV, the [rclone manual page](https://rclone.org/webdav/) is accurate to follow. - -For both, use an URL in the form of `https://my.host.de/remote.php/webdav`. - -Once that is finished, the command `rclone config show` should give output similar to this: - -```bash -[:~/] ± rclone config show - -[NCoC] -type = webdav -url = https://nc.this.de/remote.php/webdav -vendor = nextcloud -user = wilma -pass = zfdsaiewrafdskfjdasfxdasffdafdsafas - -[ocis] -type = webdav -url = https://infinitescale.works/remote.php/webdav -vendor = owncloud -user = wilma -pass = cdsfasrefdsadaGkxTXjksfpqQFI5nQawqs - -``` - -Now, for example the directories on the Nextcloud root can be checked with `rclone lsd NCoC:/`. - -## Copy Data - -To migrate the data, rclone provides the command `copy`. It transfers data from one remote to the other. Use the following command example to transfer the entire cloud data from Nextcloud to Infinite Scale: -``` -rclone copy NCoC:/ ocis:/ --no-check-certificate -P -``` -The --no-check-certificate can and should be skipped if your clouds have proper certificates. The `-P` however, provides you with interesting statistics about the copy progress. -Once you are finished, this might be the result: -``` -[:~/] $ rclone copy NCoC:/ ocis:/ --no-check-certificate -P -Transferred: 1.228 GiB / 1.228 GiB, 100%, 10.170 MiB/s, ETA 0s -Transferred: 411 / 411, 100% -Elapsed time: 2m19.3s -``` - -Note that while testing this, occasionally the Nextcloud was returning a `404 not found` for some files. While the reason for that was not completely clear, it does not matter, because the rclone command can be repeated. It is clever enough to only copy what has changed! - -## Enjoy! - -All done! Now you have your data on Infinite Scale. - -Obviously this method has a few downsides, such as: -- This migration requires a little of "quiet time" for migrating data. -- It is a user by user method where provisioning of users has to be done manually. -- Only data is migrated, and there is probably a data size limit in real life using this way. -- Private- and public shares are not migrated -- The trashbin, versions, comments and favorites are not migrated - -These are shortcomings but this is a good first step to start investigating. The other parts will be sorted as we move along. - ---- -To improve this guide, you are welcome to file an issue or even send a pull request. See the [getting started guide](https://owncloud.dev/ocis/development/build-docs/) how easy it is to build the documentation. - diff --git a/docs/ocis/guides/ocis-and-containers.md b/docs/ocis/guides/ocis-and-containers.md deleted file mode 100644 index 6ae7ce5d50..0000000000 --- a/docs/ocis/guides/ocis-and-containers.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "oCIS and Containers" -date: 2022-06-14T16:00:00+02:00 -weight: 5 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/guides -geekdocFilePath: ocis-and-containers.md -geekdocCollapseSection: true ---- - -## Cloud Native - -Why do we recommend to work with containers? - -{{< columns >}} - -### {{< icon "scale-balanced" >}}   Lightweight - -Containers are more lightweight than VMs. It is easier to work with shared volumes and networks because they are isolated from the host system. -<---> - -### {{< icon "shield-halved" >}}   Dependencies - -The container images have all dependencies installed and the maintainer takes care for keeping them up-to-date. - -<---> - -### {{< icon "gauge-high" >}}   Scaling - -In addition to that, containers help with scaling. You can run multiple instances of one container and distribute them across hosts. - -{{< /columns >}} - -## Docker compose - -For oCIS deployments you often need multiple services. These services need to share resources like volumes and networks. If you do not use any orchestration tool, you would end up writing bash scripts to create and update containers and volumes and connect them via networks. This is what orchestration tools like docker compose can do for you. You define a service mesh using .yaml files and the tool tries to run and maintain that. You gain more value and a version history by using a version control system. Your deployment configuration is fully written down as a spec and you will never touch any system directly and change the config manually. - -## Kubernetes - -Containers are also used in [kubernetes](https://kubernetes.io/). Kubernetes is part of a huge ecosystem and is founded on best-of-breed practises to orchestrate large scale container applications and services. - -## oCIS and Containers - -oCIS was developed as microservices. We do not scale the whole system as a monolith but we scale the individual services. diff --git a/docs/ocis/guides/ocis-local-docker.md b/docs/ocis/guides/ocis-local-docker.md deleted file mode 100644 index 9580873383..0000000000 --- a/docs/ocis/guides/ocis-local-docker.md +++ /dev/null @@ -1,319 +0,0 @@ ---- -title: "Discover oCIS with Docker" -date: 2022-06-14T16:00:00+02:00 -weight: 8 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/guides -geekdocFilePath: ocis-local-docker.md -geekdocCollapseSection: true ---- - -{{< toc >}} - -## Prerequisites - -- Local docker installation (e.g. Docker for Desktop) -- Check [oCIS and Containers]({{< ref "ocis-and-containers" >}}) - -## Start oCIS with docker compose - -### Create the project - -Use the following skeleton as a docker-compose.yml: - -```bash -mkdir simple-ocis && \ -cd simple-ocis && \ -touch docker-compose.yml -``` - -Copy the following file content into `docker-compose.yml` and save it. - -```yaml -version: "3.7" - -services: - ocis: - image: owncloud/ocis:latest - environment: - # INSECURE: needed if oCIS / Traefik is using self generated certificates - OC_INSECURE: "true" - - # OC_URL: the external domain / ip address of oCIS (with protocol, must always be https) - OC_URL: "https://localhost:9200" - - # OC_LOG_LEVEL: error / info / ... / debug - OC_LOG_LEVEL: info -``` - -### Initialize - -Run ocis init to create a config - -```bash -docker run --rm -it -v $(pwd):/etc/ocis/ owncloud/ocis:latest init -``` - -You will get the following output: - -```txt {hl_lines=[9]} -Do you want to configure Infinite Scale with certificate checking disabled? - This is not recommended for public instances! [yes | no = default] yes - -========================================= - generated OCIS Config -========================================= - configpath : /etc/ocis/ocis.yaml - user : admin - password : t3p4N0jJ47LbhpQ04s9W%u1$d2uE3Y.3 -``` - -Check your local folder. We just generated a default ocis configuration file with random passwords and secrets. - -```bash -ls # list the current folder -docker-compose.yml ocis.yaml # ocis.yaml has been generated -``` - -Run `cat ocis.yaml` - -```yaml {linenos=table,hl_lines=[19]} -token_manager: - jwt_secret: X35rffWpS9BR.=^#LDt&z3ykYOd7h@w* -machine_auth_api_key: -0$4ieu5+t6HD6Ui^0PpKU6B0qxisv.m -system_user_api_key: oVxICwMR9YcKXTau+@pqKZ0EO-OHz8sF -transfer_secret: e%3Sda=WFBuy&ztBUmriAbBR$i2CmaDv -system_user_id: b7d976a1-7300-4db7-82df-13502d6b5e18 -admin_user_id: c59a6ae9-5f5e-4eef-b82e-0e5c34f93e52 -graph: - spaces: - insecure: false - identity: - ldap: - bind_password: wElKpGjeH0d.E4moXh=.dc@s2CtB0vy% -idp: - ldap: - bind_password: Ft2$2%#=6Mi22@.YPkhh-c6Kj=3xBZAb -idm: - service_user_passwords: - admin_password: t3p4N0jJ47LbhpQ04s9W%u1$d2uE3Y.3 - idm_password: wElKpGjeH0d.E4moXh=.dc@s2CtB0vy% - reva_password: pJAdZ2fU!SFKgcdDPRW%ruIiNM6GnN1D - idp_password: Ft2$2%#=6Mi22@.YPkhh-c6Kj=3xBZAb -proxy: - insecure_backends: false -frontend: - archiver: - insecure: false -auth_basic: - auth_providers: - ldap: - bind_password: pJAdZ2fU!SFKgcdDPRW%ruIiNM6GnN1D -auth_bearer: - auth_providers: - oidc: - insecure: false -users: - drivers: - ldap: - bind_password: pJAdZ2fU!SFKgcdDPRW%ruIiNM6GnN1D -groups: - drivers: - ldap: - bind_password: pJAdZ2fU!SFKgcdDPRW%ruIiNM6GnN1D -storage_system: - data_provider_insecure: false -storage_users: - data_provider_insecure: false -ocdav: - insecure: false -thumbnails: - thumbnail: - transfer_secret: z-E%G8MTeFpuT-ez2o8BjfnG1Jl2yLLm - webdav_allow_insecure: false - cs3_allow_insecure: false -``` - -{{< hint type=tip title="Admin password" >}} -**Password initialisation**\ -During the run of `./ocis init`, the password for the `admin` user has been set to a random string. - -You can override that later by setting `IDM_ADMIN_PASSWORD=secret`. The ENV variable setting always overrides the config file. -{{< /hint >}} - -### Mount the config file - -Add the config file as a bind mount. - -```yaml - volumes: - # mount the ocis config file inside the container - - "./ocis.yaml:/etc/ocis/ocis.yaml" -``` - -### Apply the changes - -```bash -docker compose up -d -``` - -The service should be running. - -```bash -docker compose ps -NAME COMMAND SERVICE STATUS PORTS -simple-ocis-ocis-1 "/usr/bin/ocis server" ocis running 9200/tcp -``` - -### Open the port 9200 to the outside - -```yaml -ports: - - 9200:9200 -``` - -Add a port mapping to your docker compose file and run `docker compose up -d` again. You should now be able to access and log in. You will get a warning from your browser that the connection is not safe because we are using a self-signed certificate. Accept this warning message to continue. Use the user `admin` and the password which has been initialized before. - -Congratulations! You have successfully set up a simple Infinite Scale locally. - -{{< hint type=tip title="Docker Compose Helps you" >}} -**docker compose up**\ -You do not need to shut down your service to apply changes from the docker-compose.yml file. Running `docker compose up -d` again is enough. Docker compose always tries to bring all services to the desired state. - -**docker compose ps**\ -This gives you a status of the services of the project. - -**docker compose exec \ \**\ -This command is handy to run specific commands inside your service. Try `docker compose exec ocis ocis version`. -{{< /hint >}} - -### Persist data, restart and logging - -The key to a successful container setup is the persistence of the application data to make the data survive a re-boot. Docker normally uses [volumes](https://docs.docker.com/storage/volumes/) for this purpose. A volume can either be a "named volume" which are completely managed by docker and have many advantages (see the linked docker documentation), or "bind mounts" which are using the directory structure and OS of the host system. In our example we already use a bind mount for the config file. We will now add a named volume for the oCIS data directory. - -This is the way we should configure the ocis service: - -```yaml - volumes: - # mount the ocis config file inside the container - - "./ocis.yaml:/etc/ocis/ocis.yaml" - # short syntax for using a named volume - # in the form : - # use a named volume for the ocis data directory - - "ocis-data:/var/lib/ocis" - # or the more verbose syntax - #- type: volume - # source: ocis-data # name of the volume - # target: /var/lib/ocis # the mount path inside the container -``` - -The docker-compose.yml needs to declare the named volumes globally, add this at the bottom of the file: - -```yaml -# https://docs.docker.com/compose/compose-file/compose-file-v3/#volumes -# this declares the named volume with all default settings -# you can also see the volume when running `docker volume list` -volumes: - ocis-data: -``` - -Now let us configure the restart policy and the logging settings for the ocis service: - -```yaml - # https://docs.docker.com/compose/compose-file/compose-file-v3/#restart - restart: always # or on-failure / unless-stopped - - # https://docs.docker.com/config/containers/logging/configure/ - # https://docs.docker.com/compose/compose-file/compose-file-v3/#logging - # the default log driver does no log rotation - # you can switch to the "local" log driver which does rotation by default - logging: - driver: local - # otherwise you could specify log rotation explicitly - # driver: "json-file" # this is the default driver - # options: - # max-size: "200k" # limit the size of the log file - # max-file: "10" # limit the count of the log files -``` - -Apply your changes! Just run `docker compose up -d` again. - -Now you have an oCIS which will survive reboots, restart automatically and has log rotation by default. - -Access the logs via `docker compose logs -f` and do some actions in the frontend to see the effect. Create data by uploading files and adding more users. Then run `docker compose down` to shut oCIS down. Start it again `docker compose up -d`, log in again and check that your data has survived the reboot. - -### Pin the oCIS version - -Last but not least, it is never a good idea to use the `latest` docker tag. Pin your container image to a released version. - -```yaml - image: owncloud/ocis:latest@sha256:5ce3d5f9da017d6760934448eb207fbaab9ceaf0171b4122e791e292f7c86c97 - # the latest tag is not recommended, because you don't know which version you'll get - # but even if you use `owncloud/ocis:1.16.0` you cannot be sure that you'll get - # the exact same image if you pull it at a later point in time (because docker image tags are not immutable). - # To be 100% that you always get the same image, you can pin the digest (hash) of the - # image. If you do a `docker pull owncloud/ocis:latest`, it also will also show you the digest. - # see also https://docs.docker.com/engine/reference/commandline/images/#list-image-digests -``` - -## Wrapping up - -If you have completed this guide, your docker-compose.yml should look like the following example: - -{{< expand "Solution" "..." >}} -```yaml -version: "3.7" - -services: - ocis: - image: owncloud/ocis:latest@sha256:5ce3d5f9da017d6760934448eb207fbaab9ceaf0171b4122e791e292f7c86c97 - # the latest tag is not recommended, because you don't know which version you'll get - # but even if you use `owncloud/ocis:1.16.0` you cannot be sure that you'll get - # the exact same image if you pull it at a later point in time (because docker image tags are not immutable). - # To be 100% that you always get the same image, you can pin the digest (hash) of the - # image. If you do a `docker pull owncloud/ocis:latest`, it also will also show you the digest. - # see also https://docs.docker.com/engine/reference/commandline/images/#list-image-digests - environment: - # INSECURE: needed if oCIS / Traefik is using self generated certificates - OC_INSECURE: "true" - - # OC_URL: the external domain / ip address of oCIS (with protocol, must always be https) - OC_URL: "https://localhost:9200" - - # OC_LOG_LEVEL: error / info / ... / debug - OC_LOG_LEVEL: info - volumes: - # mount the ocis config file inside the container - - "./ocis.yaml:/etc/ocis/ocis.yaml" - # short syntax for using a named volume - # in the form : - # use a named volume for the ocis data directory - - "ocis-data:/var/lib/ocis" - # or the more verbose syntax - #- type: volume - # source: ocis-data # name of the volume - # target: /var/lib/ocis # the mount path inside the container - ports: - - 9200:9200 - # https://docs.docker.com/compose/compose-file/compose-file-v3/#restart - restart: always # or on-failure / unless-stopped - - # https://docs.docker.com/config/containers/logging/configure/ - # https://docs.docker.com/compose/compose-file/compose-file-v3/#logging - # the default log driver does no log rotation - # you can switch to the "local" log driver which does rotation by default - logging: - driver: local - # otherwise you could specify log rotation explicitly - # driver: "json-file" # this is the default driver - # options: - # max-size: "200k" # limit the size of the log file - # max-file: "10" # limit the count of the log files - -# https://docs.docker.com/compose/compose-file/compose-file-v3/#volumes -# this declares the named volume with all default settings -# you can also see the volume when running `docker volume list` -volumes: - ocis-data: -``` -{{< /expand >}} diff --git a/docs/ocis/identity-provider/_index.md b/docs/ocis/identity-provider/_index.md deleted file mode 100644 index fa9733d1e9..0000000000 --- a/docs/ocis/identity-provider/_index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Identity Provider" -date: 2023-05-03T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/identity-provider -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## Overview - -oCIS provides out of the box a minimal OpenID Connect provider via the [IDP service](../../services/idp/) and a minimal LDAP service via the [IDM service](../../services/idm/). Both services are limited in the provided functionality, see the [admin documentation](https://doc.owncloud.com/ocis/next/deployment/services/s-list/idp.html) for details, and can be used for small environments like up to a few hundred users. For enterprise environments, it is highly recommended using enterprise grade external software like KeyCloak plus openLDAP or MS ADFS with Active Directory, which can be configured in the respective service. Entrada ID (formerly Azure AD) is in preparation, but not yet released or documented and might need some small fixes, and for certain functions a LDAP/AD connection. diff --git a/docs/ocis/identity-provider/ldap-active-directory.md b/docs/ocis/identity-provider/ldap-active-directory.md deleted file mode 100644 index 8248aca5e9..0000000000 --- a/docs/ocis/identity-provider/ldap-active-directory.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: "LDAP - Active Directory" -date: 2023-05-03T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/identity-provider -geekdocFilePath: ldap-active-directory.md -geekdocCollapseSection: true ---- - -## Overview - -oCIS can be configured using Active Directory as identity provider. - -## Configuration Example - -This configuration is an _example_ for using Samba4 AD as well as a Windows Server 2022 as the LDAP backend for oCIS. It is intended as guideline and first starting point. - -```text -OC_LDAP_URI=ldaps://xxxxxxxxx -OC_LDAP_INSECURE="true" -OC_LDAP_BIND_DN="cn=administrator,cn=users,xxxxxxxxxx" -OC_LDAP_BIND_PASSWORD=xxxxxxx -OC_LDAP_DISABLE_USER_MECHANISM="none" -OC_LDAP_GROUP_BASE_DN="dc=owncloud,dc=test" -OC_LDAP_GROUP_OBJECTCLASS="group" -OC_LDAP_GROUP_SCHEMA_ID="objectGUID" -OC_LDAP_GROUP_SCHEMA_ID_IS_OCTETSTRING="true" -OC_LDAP_GROUP_SCHEMA_GROUPNAME="cn" -OC_LDAP_USER_BASE_DN="dc=owncloud,dc=test" -OC_LDAP_USER_OBJECTCLASS="user" -OC_LDAP_USER_SCHEMA_ID="objectGUID" -OC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING="true" -OC_LDAP_USER_SCHEMA_USERNAME="sAMAccountName" -OC_LDAP_LOGIN_ATTRIBUTES="sAMAccountName" -IDP_LDAP_LOGIN_ATTRIBUTE="sAMAccountName" -IDP_LDAP_UUID_ATTRIBUTE="objectGUID" -IDP_LDAP_UUID_ATTRIBUTE_TYPE=binary -GRAPH_LDAP_SERVER_WRITE_ENABLED="false" -OC_EXCLUDE_RUN_SERVICES=idm -OC_ADMIN_USER_ID="" -``` diff --git a/docs/ocis/identity-provider/oidc.md b/docs/ocis/identity-provider/oidc.md deleted file mode 100644 index 85004c603f..0000000000 --- a/docs/ocis/identity-provider/oidc.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: "OIDC" -date: 2023-10-10T00:00:00+00:00 -weight: 21 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/identity-provider -geekdocFilePath: oidc.md -geekdocCollapseSection: true ---- - -Infinite Scale has implemented OpenID Connect (OIDC) for authentication. -OIDC defines a discovery mechanism, called OpenID Connect Discovery, -where an OpenID server publishes its metadata at a well-known URL, typically: - -`https://ocis.test/.well-known/openid-configuration` - -This URL returns a JSON listing of the OpenID/OAuth endpoints, supported scopes and claims, public keys used to sign the tokens, and other details. -The clients can use this information to construct a request to the OpenID server. -The field names and values are defined in the [OpenID Connect Discovery Specification](https://openid.net/specs/openid-connect-discovery-1_0.html). -Here is an example of data returned: -```json -{ - "issuer": "https://ocis.test", - "authorization_endpoint": "https://ocis.test/signin/v1/identifier/_/authorize", - "token_endpoint": "https://ocis.test/konnect/v1/token", - "userinfo_endpoint": "https://ocis.test/konnect/v1/userinfo", - "end_session_endpoint": "https://ocis.test/signin/v1/identifier/_/endsession", - "check_session_iframe": "https://ocis.test/konnect/v1/session/check-session.html", - "jwks_uri": "https://ocis.test/konnect/v1/jwks.json", - "scopes_supported": [ - "openid", - "offline_access", - "profile", - "email", - "LibgreGraph.UUID", - "LibreGraph.RawSub" - ], - "response_types_supported": [ - "id_token token", - "id_token", - "code id_token", - "code id_token token" - ], - "subject_types_supported": [ - "public" - ], - "id_token_signing_alg_values_supported": [ - "RS256", - "RS384", - "RS512", - "PS256", - "PS384", - "PS512" - ], - "userinfo_signing_alg_values_supported": [ - "RS256", - "RS384", - "RS512", - "PS256", - "PS384", - "PS512" - ], - "request_object_signing_alg_values_supported": [ - "ES256", - "ES384", - "ES512", - "RS256", - "RS384", - "RS512", - "PS256", - "PS384", - "PS512", - "none", - "EdDSA" - ], - "token_endpoint_auth_methods_supported": [ - "client_secret_basic", - "none" - ], - "token_endpoint_auth_signing_alg_values_supported": [ - "RS256", - "RS384", - "RS512", - "PS256", - "PS384", - "PS512" - ], - "claims_parameter_supported": true, - "claims_supported": [ - "iss", - "sub", - "aud", - "exp", - "iat", - "name", - "family_name", - "given_name", - "email", - "email_verified" - ], - "request_parameter_supported": true, - "request_uri_parameter_supported": false -} -``` - -Refer to the [Authorization](https://owncloud.dev/apis/http/authorization) section for example usages and details. diff --git a/docs/ocis/license.md b/docs/ocis/license.md deleted file mode 100644 index bd98bc9947..0000000000 --- a/docs/ocis/license.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "License" -date: 2020-02-27T20:35:00+01:00 -weight: 100 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis -geekdocFilePath: license.md ---- - -The source code of the project is licensed under the [Apache 2.0](https://github.com/owncloud/ocis/blob/master/LICENSE) license. For the license of the used libraries you have to check the respective sources. - -Stable, supported binary builds of ownCloud Infinite Scale that will be distributed by ownCloud GmbH are covered by a non OSS Freemium License [EULA](https://owncloud.com/license-owncloud-infinite-scale/). This protects additional efforts that ownCloud GmbH is putting into these builds. - -Since the source code of Infinite Scale is available under free licenses, the free usage can, should and will not be limited in general. diff --git a/docs/ocis/metrics.md b/docs/ocis/metrics.md deleted file mode 100644 index 8612bc9b7f..0000000000 --- a/docs/ocis/metrics.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: "Metrics" -date: 2020-05-04T20:47:00+01:00 -weight: 43 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis -geekdocFilePath: metrics.md ---- - - -## Metrics - -This service provides some [Prometheus](https://prometheus.io/) metrics through the debug endpoint, you can optionally secure the metrics endpoint by some random token, which has to be configured either through the flag `--debug-token` or the environment variable `OC_DEBUG_TOKEN` mentioned above. By default, the metrics endpoint is bound to `http://0.0.0.0:8001/metrics`. - -go_gc_duration_seconds -: A summary of the GC invocation durations - -go_gc_duration_seconds_sum -: A summary of the GC invocation durations - -go_gc_duration_seconds_count -: A summary of the GC invocation durations - -go_goroutines -: Number of goroutines that currently exist - -go_info -: Information about the Go environment - -go_memstats_alloc_bytes -: Number of bytes allocated and still in use - -go_memstats_alloc_bytes_total -: Total number of bytes allocated, even if freed - -go_memstats_buck_hash_sys_bytes -: Number of bytes used by the profiling bucket hash table - -go_memstats_frees_total -: Total number of frees - -go_memstats_gc_cpu_fraction -: The fraction of this program's available CPU time used by the GC since the program started - -go_memstats_gc_sys_bytes -: Number of bytes used for garbage collection system metadata - -go_memstats_heap_alloc_bytes -: Number of heap bytes allocated and still in use - -go_memstats_heap_idle_bytes -: Number of heap bytes waiting to be used - -go_memstats_heap_inuse_bytes -: Number of heap bytes that are in use - -go_memstats_heap_objects -: Number of allocated objects - -go_memstats_heap_released_bytes -: Number of heap bytes released to OS - -go_memstats_heap_sys_bytes -: Number of heap bytes obtained from system - -go_memstats_last_gc_time_seconds -: Number of seconds since 1970 of last garbage collection - -go_memstats_lookups_total -: Total number of pointer lookups - -go_memstats_mallocs_total -: Total number of mallocs - -go_memstats_mcache_inuse_bytes -: Number of bytes in use by mcache structures - -go_memstats_mcache_sys_bytes -: Number of bytes used for mcache structures obtained from system - -go_memstats_mspan_inuse_bytes -: Number of bytes in use by mspan structures - -go_memstats_mspan_sys_bytes -: Number of bytes used for mspan structures obtained from system - -go_memstats_next_gc_bytes -: Number of heap bytes when next garbage collection will take place - -go_memstats_other_sys_bytes -: Number of bytes used for other system allocations - -go_memstats_stack_inuse_bytes -: Number of bytes in use by the stack allocator - -go_memstats_stack_sys_bytes -: Number of bytes obtained from system for stack allocator - -go_memstats_sys_bytes -: Number of bytes obtained from system - -go_threads -: Number of OS threads created - -promhttp_metric_handler_requests_in_flight -: Current number of scrapes being served - -promhttp_metric_handler_requests_total -: Total number of scrapes by HTTP status code diff --git a/docs/ocis/migration.md b/docs/ocis/migration.md deleted file mode 100644 index 5d4121f978..0000000000 --- a/docs/ocis/migration.md +++ /dev/null @@ -1,768 +0,0 @@ ---- -title: "Migration" -date: 2021-03-16T16:17:00+01:00 -weight: 41 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis -geekdocFilePath: migration.md ---- - -The migration happens in subsequent stages while the service is online. First all users need to migrate to the new architecture, then the global namespace needs to be introduced. Finally, the data on disk can be migrated user by user by switching the storage driver. - -

- -{{< hint warning >}} -@jfd: It might be easier to introduce the spaces api in oc10 and then migrate to oCIS. We cannot migrate both at the same time, the architecture to oCIS (which will change fileids) and introduce a global namespace (which requires stable fileids to let clients handle moves without redownloading). Either we implement arbitrary mounting of shares in oCIS / reva or we make clients and oc10 spaces aware. -{{< /hint >}} - -
- -## Migration Stages - -### Stage 0: pre migration -Is the pre-migration stage when having a functional ownCloud 10 instance. - -
- -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -### Stage 1: introduce ownCloud Web -Install and introduce [ownCloud Web](https://github.com/owncloud/web/) and let users test it voluntarily to gain early feedback on the new UI. - -#### Steps -Deploy web and enable switching to and from it. -For more details see: [ownCloud 10 with ownCloud Web](https://owncloud.dev/clients/web/deployments/oc10-app/) - -
- -_TODO allow limiting the web ui switch to an 'early adopters' group_ - -
- -#### Validation -Ensure switching back and forth between the classic ownCloud 10 web UI and ownCloud web works as at our https://demo.owncloud.com. - -#### Rollback -Should there be problems with ownCloud web at this point it can simply be removed from the menu and be undeployed. - -#### Notes -
-The ownCloud 10 demo instance uses OAuth to obtain a token for ownCloud web and currently always requires explicit consent. In oCIS the token is provided by the OpenID Connect Identity Provider, which may skip the consent step for trusted clients for a more seamless login experience. You may want to introduce OpenID Connect before enabling the new web UI. - -
- -_TODO make oauth2 in oc10 trust the new web ui, based on `redirect_uri` and CSRF so no explicit consent is needed?_ - -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -### Stage 2: introduce OpenID Connect - -Basic auth requires us to properly store and manage user credentials. Something we would rather like to delegate to a tool specifically built for that task. -While SAML and Shibboleth are protocols that solve that problem, they are limited to web clients. Desktop and mobile clients were an afterthought and keep running into timeouts. For these reasons, we decided to move to [OpenID Connect as our primary authentication protocol](https://owncloud.com/news/openid-connect-oidc-app/). - -
- -_TODO @butonic add ADR for OpenID Connect and flesh out pros and cons of the above_ - -
- -#### User impact - -When introducing OpenID Connect, the clients will detect the new authentication scheme when their current way of authenticating returns an error. Users will then have to -reauthorize at the OpenID Connect IdP, which again, may be configured to skip the consent step for trusted clients. - -#### Steps -1. There are multiple products that can be used as an OpenID Connect IdP. We test with [LibreGraph Connect](https://github.com/libregraph/lico), which is also [embedded in oCIS](https://github.com/owncloud/web/). Other alternatives include [Keycloak](https://www.keycloak.org/) or [Ping](https://www.pingidentity.com/). Please refer to the corresponding setup instructions for the product you intend to use. - -
- -_TODO @butonic flesh out oCIS IDP documentation_ - -
- -2. Add [Openid Connect (OIDC)](https://doc.owncloud.com/server/admin_manual/configuration/user/oidc/) support to ownCloud 10. - -#### Validation -When OpenID Connect support is enabled verify that all clients can login: -- web classic -- ownCloud web -- desktop -- android -- iOS - -#### Rollback -Should there be problems with OpenID Connect at this point you can disable the app. Users will have to reauthenticate in this case. - -#### Notes -
-Legacy clients relying on Basic auth or app passwords need to be migrated to OpenId Connect to work with oCIS. For a transition period Basic auth in oCIS can be enabled with `PROXY_ENABLE_BASIC_AUTH=true`, but we strongly recommend adopting OpenID Connect for other tools as well. - -While OpenID Connect providers will send an `iss` and `sub` claim that relying parties (services like oCIS or ownCloud 10) can use to identify users we recommend introducing a dedicated, globally unique, persistent, non-reassignable user identifier like a UUID for every user. This `ownclouduuid` should be sent as an additional claim to save additional lookups on the server side. It will become the user id in oCIS, e.g. when searching for recipients the `ownclouduuid` will be used to persist permissions with the share manager. It has a different purpose than the ownCloud 10 username, which is used to login. Using UUIDs we can not only mitigate username collisions when merging multiple instances but also allow renaming usernames after the migration to oCIS has been completed. - -
- -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -### Stage 3: introduce oCIS internally - -Before letting oCIS handle end user requests we will first make it available in the internal network. By subsequently adding services we can add functionality and verify the services work as intended. - -Start oCIS backend and make read only tests on existing data using the `owncloudsql` storage driver which will read (and write) -- blobs from the same datadirectory layout as in ownCloud 10 -- metadata from the ownCloud 10 database: -The oCIS share manager will read share information from the ownCloud database using an `owncloud` driver as well. - -
- -_TODO @butonic add guide on how to configure `owncloudsql`_ - -_TODO we need a share manager that can read from the ownCloud 10 database as well as from whatever new backend will be used for a pure oCIS setup. Currently, that would be the json file. Or that is migrated after all users have switched to oCIS. -- jfd_ - -
- -#### User impact -None, only administrators will be able to explore oCIS during this stage. - -#### Steps and verifications - -We are going to run and explore a series of services that will together handle the same requests as ownCloud 10. For initial exploration the oCIS binary is recommended. The services can later be deployed using a single oCIS runtime or in multiple containers. - - -##### Storage provider for file metadata -1. Deploy OCIS storage provider with owncloudsql driver. -2. Set `read_only: true` in the storage provider config.
_TODO @butonic add read only flag to storage drivers_
-3. Use cli tool to list files using the CS3 api - -##### File ID alternatives -Multiple ownCloud instances can be merged into one oCIS instance. To prevent the numeric ids from colliding, the file ids will be prefixed with a new storage space id which is used by oCIS to route requests to the correct storage provider. See Stage 8 below. - -
- -{{< hint warning >}} -**Alternative 1** -Add a routable prefix to fileids in oc10, and replicate the prefix in oCIS. -### Stage-3.1 -Let oc10 render file ids with prefixes: `$!`. This will allow clients to handle moved files. - -### Stage-3.2 -Roll out new clients that understand the spaces API and know how to convert local sync pairs for legacy oc10 `/webdav` or `/dav/files/` home folders into multiple sync pairs. -One pair for `/webdav/home` or `/dav/files//home` and another pair for every accepted share. The shares will be accessible at `/webdav/shares/` when the server side enables the spaces API. -Files can be identified using `$!` and moved to the correct sync pair. - -### Stage-3.3 -Enable spaces API in oc10: -- New clients will get a response from the spaces API and can set up new sync pairs. -- Legacy clients will still poll `/webdav` or `/dav/files/` where they will see new subfolders instead of the users home. They will move down the users files into `/home` and shares into `/shares`. Custom sync pairs will no longer be available, causing the legacy client to leave local files in place. They can be picked up manually when installing a new client. - -{{< /hint >}} - -{{< hint warning >}} -**Alternative 2** -An additional `uuid` property used only to detect moves. A lookup by uuid is not necessary for this. The `/dav/meta` endpoint would still take the fileid. Clients would use the `uuid` to detect moves and set up new sync pairs when migrating to a global namespace. -### Stage-3.1 -Generate a `uuid` for every file as a file property. Clients can submit a `uuid` when creating files. The server will create a `uuid` if the client did not provide one. - -### Stage-3.2 -Roll out new clients that understand the spaces API and know how to convert local sync pairs for legacy oc10 `/webdav` or `/dav/files/` home folders into multiple sync pairs. -One pair for `/webdav/home` or `/dav/files//home` and another pair for every accepted share. The shares will be accessible at `/webdav/shares/` when the server side enables the spaces API. Files can be identified using the `uuid` and moved to the correct sync pair. - -### Stage-4.1 -When reading the files from oCIS return the same `uuid`. It can be migrated to an extended attribute or it can be read from oc10. If users change it the client will not be able to detect a move and maybe other weird stuff happens. *What if the uuid gets lost on the server side due to a partial restore?* - -{{< /hint >}} -
- - -
- -##### graph API endpoint -1. Deploy graph api to list spaces -2. Use curl to list spaces using graph drives endpoint - -##### owncloud flavoured WebDAV endpoint -1. Deploy ocdav -2. Use curl to send PROPFIND - -##### data provider for up and download -1. Deploy dataprovider -2. Use curl to up and download files -3. Use tus to upload files - -Deploy ... - -##### share manager -Deploy share manager with ownCloud driver - -##### reva gateway -1. Deploy gateway to authenticate requests? I guess we need that first... Or we need the to mint a token. Might be a good exercise. - -##### automated deployment -Finally, deploy oCIS with a config to set up everything running in a single oCIS runtime or in multiple containers. - -#### Rollback -You can stop the oCIS process at any time. - -#### Notes -
-Multiple ownCloud instances can be merged into one oCIS instance. The file ids will be prefixed with a new storage space id which is used to route requests to the correct storage provider. - -
- -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -### Stage 4: internal write access with oCIS -Test writing data with oCIS into the existing ownCloud 10 data directory using the `owncloudsql` storage driver. - -#### User impact -Only administrators will be able to explore oCIS during this stage. End users should not be affected if the testing is limited to test users. - -#### Steps -Set `read_only: false` in the storage provider config. - -
- -_TODO @butonic add read only flag to storage drivers_ - -
- -#### Verification -#### Rollback -Set `read_only: true` in the storage provider config. - -
- -_TODO @butonic add read only flag to storage drivers_ - -
- -#### Notes -
-With write access it becomes possible to manipulate existing files and shares. - -
- -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -### Stage-5: introduce user aware proxy -In the previous stages oCIS was only accessible for administrators with access to the network. To expose only a single service to the internet, oCIS comes with a user aware proxy that can be used to route requests to the existing ownCloud 10 installation or oCIS, based on the authenticated user. The proxy uses OIDC to identify the logged-in user and route them to the configured backend. - -#### User impact -The IP address of the ownCloud host changes. There is no change for the file sync and share functionality when requests are handled by the oCIS codebase as it uses the same database and storage system as owncloud 10. - -#### Steps and verifications - -##### Deploy oCIS proxy -1. Deploy the `ocis proxy` -2. Verify the requests are routed based on the ownCloud 10 routing policy `oc10` by default - -##### Test user based routing -1. Change the routing policy for a user or an early adopters group to `ocis`
_TODO @butonic currently, the migration selector will use the `ocis` policy for users that have been added to the accounts service. IMO we need to evaluate a claim from the IdP._
-2. Verify the requests are routed based on the oCIS routing policy `oc10` for 'migrated' users. - -At this point you are ready to rock & roll! - -##### Let ownCloud domain point to proxy -1. Update the dns to use the oCIS proxy instead of the ownCloud application servers directly. -2. Let DNS propagate the change and monitor requests moving from the ownCloud application servers to the oCIS proxy. -3. Verify the DNS change has propagated sufficiently. All requests should now use the oCIS Proxy. - -#### Rollback -Should there be a problem with the oCIS routes the user can be routed to ownCloud by changing his routing policy. In case of unfixable problems with the proxy the DNS needs to be updated to use the ownCloud 10 application servers directly. This could also be done in a load balancer. - -#### Notes -
-The proxy is stateless, multiple instances can be deployed as needed. - -
- -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -### Stage-6: parallel deployment -Running ownCloud 10 and oCIS in parallel is a crucial stage for the migration: it allows users access to group shares regardless of the system that is being used to access the data. A user by user migration with multiple domains would technically break group shares when users vanish because they (and their data) are no longer available in the old system. - -Depending on the amount of power users on an instance, the admin may want to allow users to voluntarily migrate to the oCIS backend. A monitoring system can be used to visualize the behavior for the two systems and gain trust in the overall stability and performance. - -#### User impact -Since the underling data is still stored in the same systems, a similar or performance can be expected. -
- -See _TODO hmpf outdated didn't we want to run them nightly? ..._ -_TODO @butonic update performance comparisons nightly_ - -
- -#### Steps -There are several options to move users to the oCIS backend: -- Use a canary app to let users decide themselves -- Use an early adopters group with an opt-in -- Force migrate users in batch or one by one at the administrators will - -#### Verification -The same verification steps as for the internal testing stage apply. Just from the outside. - -#### Rollback -Until now, the oCIS configuration mimics ownCloud 10 and uses the old data directory layout and the ownCloud 10 database. Users can seamlessly be switched from ownCloud 10 to oCIS and back again. -
- -_TODO @butonic we need a canary app that allows users to decide for themselves which backend to use_ - -
- -
- -#### Notes -Running the two systems in parallel stage -Try to keep the duration of this stage short. Until now we only added services and made the system more complex. oCIS aims to reduce the maintenance cost of an ownCloud instance. You will not get there if you keep both systems alive. - -
- -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -### Stage-7: introduce spaces using ocis -To encourage users to switch you can promote the workspaces feature that is built into oCIS. The ownCloud 10 storage backend can be used for existing users. New users and group or project spaces can be provided by storage providers that better suit the underlying storage system. - -#### Steps -First, the admin needs to -- deploy a storage provider with the storage driver that best fits the underlying storage system and requirements. -- register the storage in the storage registry with a new storage id (we recommend a uuid). - -Then a user with the necessary create storage space role can create a storage space and assign Managers. - -
- -_TODO @butonic a user with management permission needs to be presented with a list of storage spaces where he can see the amount of free space and decide on which storage provider the storage space should be created. For now a config option for the default storage provider for a specific type might be good enough._ - -
- -#### Verification -The new storage space should show up in the `/graph/drives` endpoint for the managers and the creator of the space. - -#### Notes -Depending on the requirements and acceptable tradeoffs, a database less deployment using the ocis or s3ng storage driver is possible. There is also a [cephfs driver](https://github.com/cs3org/reva/pull/1209) on the way, that directly works on the API level instead of POSIX. - -### Stage-8: shut down ownCloud 10 -Disable ownCloud 10 in the proxy, all requests are now handled by oCIS, shut down oc10 web servers and redis (or keep for calendar & contacts only? rip out files from oCIS?) - -#### User impact -All users are already sent to the oCIS backend. Shutting down ownCloud 10 will remove the old web UI, apps and functionality that is not yet present in ownCloud web. For example contacts and calendar. - -
- -_TODO @butonic recommend alternatives_ - -
- -#### Steps -1. Shut down the apache servers that are running the ownCloud 10 PHP code. -2. DO NOT SHUT DOWN THE DATABASE, YET! - -#### Verification -The ownCloud 10 classic web UI should no longer be reachable. - -#### Rollback -Redeploy ownCloud 10. - -#### Notes -
-The database needs to remain online until the storage layer and share metadata have been migrated as well. One thing at a time. - -
- -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -### Stage 9: storage migration -To get rid of the database we will move the metadata from the old ownCloud 10 database into dedicated storage providers. This can happen in a user by user fashion. group drives can properly be migrated to group, project or workspaces in this stage. - -#### User impact -Noticeable performance improvements because we effectively shard the storage logic and persistence layer. - -#### Steps -1. User by user storage migration from `owncloud` or `ownclouds3` driver to `ocis`/`s3ng`/`cephfs`... currently this means copying the metadata from one storage provider to another using the cs3 api. -2. Change the responsible storage provider for a storage space (e.g. a user home, a group or project space are a workspace) in the storage registry. - -
- -_TODO @butonic implement `ownclouds3` based on `s3ng`_ -_TODO @butonic implement tiered storage provider for seamless migration_ -_TODO @butonic document how to manually do that until the storage registry can discover that on its own._ - -
- -#### Verification -Start with a test user, then move to early adopters and finally migrate all users. - -#### Rollback -To switch the storage provider again the same storage space migration can be performed again: copy metadata and blob data using the CS3 api, then change the responsible storage provider in the storage registry. - -#### Notes -
-Multiple ownCloud instances can be merged into one oCIS instance. The file ids will be prefixed with a new storage space id which is used to route requests to the correct storage provider. - -The storage space migration will become a seamless feature in the future that allows administrators to move users to storage systems with different capabilities, to implement premium features, deprovisioning strategies or archiving. - -
- -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -### Stage-10: share metadata migration -Migrate share data to _yet to determine_ share manager backend and shut down ownCloud database. - -The ownCloud 10 database still holds share information in the `oc_share` and `oc_share_external` tables. They are used to efficiently answer queries about who shared what with whom. In oCIS shares are persisted using a share manager and if desired these grants are also sent to the storage provider so it can set ACLs if possible. Only one system should be responsible for the shares, which in case of treating the storage as the primary source effectively turns the share manager into a cache. - -#### User impact -Depending on chosen the share manager provider some sharing requests should be faster: listing incoming and outgoing shares is no longer bound to the ownCloud 10 database but to whatever technology is used by the share provider: - - For non HA scenarios they can be served from memory, backed by a simple json file. - - TODO: implement share manager with redis / nats / ... key value store backend: use the micro store interface please ... - -#### Steps -1. Start new share manager -2. Migrate metadata using the CS3 API (copy from old to new) -3. Shut down old share manager -4. Shut down ownCloud 10 database - -
- -_TODO for HA implement share manager with redis / nats / ... key value store backend: use the micro store interface please ..._ -_TODO for batch migration implement share data migration cli with progress that reads all shares via the cs3 api from one provider and writes them into another provider_ -_TODO for seamless migration implement tiered/chained share provider that reads share data from the old provider and writes new shares to the new one_ -_TODO for storage provider as source of truth persist ALL share data in the storage provider. Currently, part is stored in the share manager, part is in the storage provider. We can keep both, but the share manager should directly persist its metadata to the storage system used by the storage provider so metadata is kept in sync_ - -
- -#### Verification -After copying all metadata start a dedicated gateway and change the configuration to use the new share manager. Route a test user, a test group and early adopters to the new gateway. When no problems occur you can start the desired number of share managers and roll out the change to all gateways. - -
- -_TODO let the gateway write updates to multiple share managers ... or rely on the tiered/chained share manager provider to persist to both providers_ - -
- -#### Rollback -To switch the share manager to the database one revert routing users to the new share manager. If you already shut down the old share manager start it again. Use the tiered/chained share manager provider in reverse configuration (new share provider as read only, old as write) and migrate the shares again. You can also restore a database backup if needed. - -
- -### Stage-11 -Profit! Well, on the one hand you do not need to maintain a clustered database setup and can rely on the storage system. On the other hand you are now in microservice wonderland and will have to relearn how to identify bottlenecks and scale oCIS accordingly. The good thing is that tools like jaeger and prometheus have evolved and will help you understand what is going on. But this is a different topic. See you on the other side! - -#### FAQ -_Feel free to add your question as a PR to this document using the link at the top of this page!_ - -
- -
- -## Architectural differences - -The fundamental difference between ownCloud 10 and oCIS is that the file metadata is moved from the database in the `oc_filecache` table (which is misnamed, as it actually is an index) to the storage provider who can place metadata as close to the underlying storage system as possible. In effect, the file metadata is sharded over multiple specialized services. - - -## Data that will be migrated - -Currently, oCIS focuses on file sync and share use cases. - -### Blob data - -In ownCloud 10 the files are laid out on disk in the *data directory* using the following layout: -``` -data -├── einstein -│ ├── cache -│ ├── files -│ │ ├── Photos -│ │ │ └── Portugal.jpg -│ │ ├── Projects -│ │ │ └── Notes.md -│ │ └── ownCloud Manual.pdf -│ ├── files_external -│ ├── files_trashbin -│ │ ├── files -│ │ │ ├── Documents.d1564687985 -│ │ │ ├── TODO.txt.d1565721976 -│ │ │ └── welcome.txt.d1564775872 -│ │ └── versions -│ │ │ ├── TODO.txt.v1564605543.d1565721976 -│ │ │ └── TODO.txt.v1564775936.d1565721976 -│ ├── files_versions -│ │ ├── Projects -│ │ │ ├── Notes.md.v1496912691 -│ │ │ └── Notes.md.v1540305560 -│ │ └── ownCloud Manual.pdf.v1396628249 -│ ├── thumbnails -│ │ └── 123 -│ │ │ ├── 2048-1536-max.png -│ │ │ └── 32-32.png // the file id, e.g. of /Photos/Portugal.jpg -│ └── uploads -├── marie -│ ├── cache -│ ├── files -│ ├── files_external -│ ├── files_trashbin -│ ├── files_versions -│ └── thumbnails -│ … -├── moss -… -``` - -The *data directory* may also contain subfolders for ownCloud 10 applications like `avatars`, `gallery`, `files_external` and `cache`. - -When an object storage is used as the primary storage all file blobs are stored by their file id and a prefix, e.g.: `urn:oid:`. - -The three types of blobs we need to migrate are stored in -- `files` for file blobs, the current file content, -- `files_trashbin` for trashed files (and their versions) and -- `files_versions` for file blobs of older versions. - -
- -### Filecache table - -In both cases the file metadata, including a full replication of the file tree, is stored in the `oc_filecache` table of an ownCloud 10 database. The primary key of a row is the file id. It is used to attach additional metadata like shares, tags, favorites or arbitrary file properties. - -The `filecache` table itself has more metadata: - -| Field | Type | Null | Key | Default | Extra | Comment | Migration | -|--------------------|---------------|------|-----|---------|----------------|----------------|----------------| -| `fileid` | bigint(20) | NO | PRI | NULL | auto_increment | | MUST become the oCIS `opaqueid` of a file reference. `ocis` driver stores it in extended attributes and can use numbers as node ids on disk. for eos see note below table | -| `storage` | int(11) | NO | MUL | 0 | | *the filecache holds metadata for multiple storages* | corresponds to an oCIS *storage space* | -| `path` | varchar(4000) | YES | | NULL | | *the path relative to the storages root* | MUST become the `path` relative to the storage root. `files` prefix needs to be trimmed. | -| `path_hash` | varchar(32) | NO | | | | *mysql once had problems indexing long paths, so we stored a hash for lookup by path. | - | -| `parent` | bigint(20) | NO | MUL | 0 | | *used to implement the hierarchy and listing children of a folder by id. redundant with `path`* | - | -| `name` | varchar(250) | YES | | NULL | | *basename of `path`* | - | -| `mimetype` | int(11) | NO | | 0 | | *joined with the `oc_mimetypes` table. only relevant for object storage deployments* | can be determined from blob / file extension | -| `mimepart` | int(11) | NO | | 0 | | *"* | can be determined from blob / file extension | -| `size` | bigint(20) | NO | | 0 | | *same as blob size unless encryption is used* | MAY become size, can be determined from blob | -| `mtime` | bigint(20) | NO | | 0 | | *same as blob mtime* | for files MAY become mtime (can be determined from blob as well), for directories MUST become tmtime | -| `encrypted` | int(11) | NO | | 0 | | *encrypted flag* | oCIS currently does not support encryption | -| `etag` | varchar(40) | YES | | NULL | | *used to propagate changes in a tree* | MUST be migrated (or calculated in the same way) to prevent clients from syncing unnecessarily | -| `unencrypted_size` | bigint(20) | NO | | 0 | | *same as blob size* | oCIS currently does not support encryption | -| `storage_mtime` | bigint(20) | NO | | 0 | | *used to detect external storage changes* | oCIS delegates that to the storage providers and drivers | -| `permissions` | int(11) | YES | | 0 | | *used as the basis for permissions. synced from disk when running a file scan. * | oCIS delegates that to the storage providers and drivers | -| `checksum` | varchar(255) | YES | | NULL | | *same as blob checksum* | SHOULD become the checksum in the storage provider. eos calculates it itself, `ocis` driver stores it in extended attributes | - - -> Note: for EOS a hot migration only works seamlessly if file ids in oc10 are already read from eos. Otherwise, either a mapping from the oc10 filecache file id to the new eos file id has to be created under the assumption that these id sets do not intersect or files and corresponding shares need to be exported and imported offline to generate a new set of ids. While this will preserve public links, user, group and even federated shares, old internal links may still point to different files because they contain the oc10 fileid - -
- -### share table - -used to store -- Public links -- Private shares with users and groups -- Federated shares *partly* -- Guest shares - -| Field | Type | Null | Key | Default | Extra | Comment | [CS3 API](https://cs3org.github.io/cs3apis/) | -|---------------|--------------|------|-----|---------|----------------|---------|-| -| `id` | int(11) | NO | PRI | NULL | auto_increment | | `ShareId.opaqueid` string | -| `share_type` | smallint(6) | NO | | 0 | | *in CS3 every type is handled by a dedicated API. See below the table* | does NOT map to [`Share.ShareType`](https://cs3org.github.io/cs3apis/#cs3.sharing.ocm.v1beta1.Share.ShareType) *TODO clarify* | -| `share_with` | varchar(255) | YES | MUL | NULL | | | `Share.grantee` [`Grantee`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.Grantee) | -| `uid_owner` | varchar(64) | NO | | | | | `ShareId.owner` [`UserID`](https://cs3org.github.io/cs3apis/#cs3.identity.user.v1beta1.UserId) | -| `parent` | int(11) | YES | | NULL | | | - | -| `item_type` | varchar(64) | NO | MUL | | | | `Share.resource_id` [`ResourceId`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId) | -| `item_source` | varchar(255) | YES | MUL | NULL | | | `Share.resource_id` [`ResourceId`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId) | -| `item_target` | varchar(255) | YES | | NULL | | | `Share.resource_id` [`ResourceId`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId) | -| `file_source` | bigint(20) | YES | MUL | NULL | | *cannot store uuid style file ids from oCIS. when all users have migrated to oCIS the share manager needs to be updated / migrated to a version that does.* | `Share.resource_id` [`ResourceId`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId) | -| `file_target` | varchar(512) | YES | | NULL | | | `Share.resource_id` [`ResourceId`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId) | -| `permissions` | smallint(6) | NO | | 0 | | | `Share.Permissions` [`SharePermissions`](https://cs3org.github.io/cs3apis/#cs3.sharing.ocm.v1beta1.SharePermissions) | -| `stime` | bigint(20) | NO | | 0 | | | `Share.ctime`, `Share.mtime` | -| `accepted` | smallint(6) | NO | | 0 | | | `ReceivedShare.ShareState` [`ShareState`](https://cs3org.github.io/cs3apis/#cs3.sharing.collaboration.v1beta1.ShareState) | -| `expiration` | datetime | YES | | NULL | | *only used for the Link API and storage provider api, currently cannot be added using the Collaboration or OCM API* | [`Grant`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.Grant) | -| `token` | varchar(32) | YES | MUL | NULL | | | [`PublicShare.token`](https://cs3org.github.io/cs3apis/#cs3.sharing.link.v1beta1.PublicShare) | -| `mail_send` | smallint(6) | NO | | 0 | | | - | -| `uid_initiator` | varchar(64) | YES | | NULL | | | `ShareId.creator` [`UserID`](https://cs3org.github.io/cs3apis/#cs3.identity.user.v1beta1.UserId) | -| `share_name` | varchar(64) | YES | | NULL | | *only exists for public shares* | [`PublicShare.display_name`](https://cs3org.github.io/cs3apis/#cs3.sharing.link.v1beta1.PublicShare) | -| `attributes` | longtext | YES | | NULL | | *additional share attributes* | *could be implemented using opaque data, but should be added to the CS3 api* | - -In the CS3 API -1. public links are handled by the PublicShareProvider using the [Link API](https://cs3org.github.io/cs3apis/#cs3.sharing.link.v1beta1.LinkAPI) -2. internal shares are handled by the UserShareProvider using the [Collaboration API](https://cs3org.github.io/cs3apis/#cs3.sharing.collaboration.v1beta1.CollaborationAPI). This covers user and group shares. -3. federated shares are handled by the OcmShareProvider using the [OCM Share Provider AP](https://cs3org.github.io/cs3apis/#cs3.sharing.ocm.v1beta1.OcmAPI) aka. Open Cloud Mesh. - - -
- -### share_external - -Used to store additional metadata for federated shares. - -| Field | Type | Null | Key | Default | Extra | Comment | -|-----------------|---------------|------|-----|---------|----------------|---------| -| `id` | bigint(20) | NO | PRI | NULL | auto_increment | | -| `remote` | varchar(512) | NO | | NULL | | Url of the remote owncloud instance | -| `share_token` | varchar(64) | NO | | NULL | | Public share token | -| `password` | varchar(64) | YES | | NULL | | Optional password for the public share | -| `name` | varchar(64) | NO | | NULL | | Original name on the remote server | -| `owner` | varchar(64) | NO | | NULL | | User that owns the public share on the remote server | -| `user` | varchar(64) | NO | MUL | NULL | | Local user which added the external share | -| `mountpoint` | varchar(4000) | NO | | NULL | | Full path where the share is mounted | -| `mountpoint_hash` | varchar(32) | NO | | NULL | | md5 hash of the mountpoint | -| `remote_id` | varchar(255) | NO | | -1 | | | -| `accepted` | int(11) | NO | | 0 | | | - -
- -_TODO document how the reva OCM service currently persists the data_ - -
- -
- -### trusted_servers - -used to determine if federated shares can automatically be accepted - -| Field | Type | Null | Key | Default | Extra | Comment | -|---------------|--------------|------|-----|---------|----------------|---------| -| `id` | int(11) | NO | PRI | NULL | auto_increment | | -| `url` | varchar(512) | NO | | NULL | | Url of trusted server | -| `url_hash` | varchar(255) | NO | UNI | | | sha1 hash of the url without the protocol | -| `token` | varchar(128) | YES | | NULL | | token used to exchange the shared secret | -| `shared_secret` | varchar(256) | YES | | NULL | | shared secret used to authenticate | -| `status` | int(11) | NO | | 2 | | current status of the connection | -| `sync_token` | varchar(512) | YES | | NULL | | cardDav sync token | - -
- -_TODO clarify how OCM handles this and where we store / configure this. It seems related to trusted IdPs_ - -
- -
- -### user data - -Users are migrated in two steps: -1. They should all be authenticated using OpenID Connect, which already moves them to a common identity management system. -2. To search share recipients, both, ownCloud 10 and oCIS need access to the same user directory using e.g. LDAP. - -
- -_TODO add state to CS3 API, so we can 'disable' users_ -_TODO how do we map (sub) admins? -> map to roles & permissions_ - -
- -accounts: - -| Field | Type | Null | Key | Default | Extra | Comment | -|---------------|---------------------|------|-----|---------|----------------|---------| -| `id` | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | -| `email` | varchar(255) | YES | MUL | NULL | | | -| `user_id` | varchar(255) | NO | UNI | NULL | | | -| `lower_user_id` | varchar(255) | NO | UNI | NULL | | | -| `display_name` | varchar(255) | YES | MUL | NULL | | | -| `quota` | varchar(32) | YES | | NULL | | | -| `last_login` | int(11) | NO | | 0 | | | -| `backend` | varchar(64) | NO | | NULL | | | -| `home` | varchar(1024) | NO | | NULL | | | -| `state` | smallint(6) | NO | | 0 | | | - -users: - -| Field | Type | Null | Key | Default | Extra | Comment | -|-------------|--------------|------|-----|---------|-------|---------| -| `uid` | varchar(64) | NO | PRI | | | -| `password` | varchar(255) | NO | | | | -| `displayname` | varchar(64) | YES | | NULL | | - -groups: - -The groups table really only contains the group name. - -| Field | Type | Null | Key | Default | Extra | -|-------|-------------|------|-----|---------|-------| -| `gid` | varchar(64) | NO | PRI | | | - -
- -### LDAP - -
- -_TODO clarify if metadata from ldap & user_shibboleth needs to be migrated_ - -
- -The `dn` -> *owncloud internal username* mapping that currently lives in the `oc_ldap_user_mapping` table needs to move into a dedicated `ownclouduuid` attribute in the LDAP server. The idp should send it as a claim so the proxy does not have to look up the user using LDAP again. The username cannot be changed in ownCloud 10 and the oCIS provisioning API will not allow changing it as well. When we introduce the graph api we may allow changing usernames when all clients have moved to that api. - -The problem is that the username in owncloud 10 and in oCIS also need to be the same, which might not be the case when the ldap mapping used a different column. In that case we should add another owncloudusername attribute to the ldap server. - - -
- -### activities - -*dedicated service, not yet implemented, requires decisions about an event system -- jfd* - -| Field | Type | Null | Key | Default | Extra | Comment | -|---------------|---------------|------|-----|---------|----------------|---------| -| `activity_id` | bigint(20) | NO | PRI | NULL | auto_increment | -| `timestamp` | int(11) | NO | MUL | 0 | | -| `priority` | int(11) | NO | | 0 | | -| `type` | varchar(255) | YES | | NULL | | -| `user` | varchar(64) | YES | | NULL | | -| `affecteduser` | varchar(64) | NO | MUL | NULL | | -| `app` | varchar(255) | NO | | NULL | | -| `subject` | varchar(255) | NO | | NULL | | -| `subjectparams` | longtext | NO | | NULL | | -| `message` | varchar(255) | YES | | NULL | | -| `messageparams` | longtext | YES | | NULL | | -| `file` | varchar(4000) | YES | | NULL | | -| `link` | varchar(4000) | YES | | NULL | | -| `object_type` | varchar(255) | YES | MUL | NULL | | -| `object_id` | bigint(20) | NO | | 0 | | - -## Links - -The [data_exporter](https://github.com/owncloud/data_exporter) has logic that allows exporting and importing users, including shares. The [model classes](https://github.com/owncloud/data_exporter/tree/master/lib/Model) contain the exact mapping. - -
diff --git a/docs/ocis/release_notes.md b/docs/ocis/release_notes.md deleted file mode 100644 index 3de7e40732..0000000000 --- a/docs/ocis/release_notes.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Release Notes" -date: 2020-12-16T20:35:00+01:00 -weight: 0 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis -geekdocFilePath: release_notes.md ---- - -The Infinite Scale Release Notes have been moved and are published with the [ownCloud Documentation](https://doc.owncloud.com/docs/next/ocis_release_notes.html). diff --git a/docs/ocis/release_roadmap.md b/docs/ocis/release_roadmap.md deleted file mode 100644 index 95ca50a95b..0000000000 --- a/docs/ocis/release_roadmap.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: "Release Life Cycle" -date: 2024-05-10T21:20:00+01:00 -weight: 0 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis -geekdocFilePath: release_roadmap.md ---- - -{{< toc >}} - -This page is designed to provide clarity and transparency regarding the scheduling, nature, and support of our releases, ensuring you have all the information you need to stay updated and manage your deployments effectively. Find here an overview of our plans for future enhancements and features: [owncloud.com/roadmap](https://owncloud.com/roadmap) - -## Dates - - -| Release Date | Type | Version | Notes | Support | -|----------------|----------------|---------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------| -| 22.09.2025 | Production | - | - | - | -| 01.09.2025 | Rolling | - | - | - | -| 11.08.2025 | Rolling | - | - | - | -| 21.07.2025 | Rolling | - | - | - | -| 30.06.2025 | Rolling | - | - | - | -| 09.06.2025 | Rolling | - | - | - | -| 19.05.2025 | Rolling | - | - | - | -| 28.04.2025 | Rolling | - | - | - | -| 17.03.2025 | Production | - | - | - | -| 24.02.2025 | Rolling | - | - | - | -| 03.02.2025 | Rolling | - | - | - | -| 13.01.2025 | Rolling | - | - | - | -| 02.12.2024 | Rolling | - | - | - | -| 11.11.2024 | Production | - | - | - | -| **14.11.2024** | **Production** | **[Infinite Scale 5 (5.0.9)](https://download.owncloud.com/ocis/ocis/stable/5.0.9/)** | **[Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-9-production)** | **Active Support** | -| 24.10.2024 | Rolling | [Infinite Scale 6 (6.6.1)](https://download.owncloud.com/ocis/ocis/rolling/6.6.1/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-6-6-1-rolling) | - | -| 22.10.2024 | Rolling | [Infinite Scale 6 (6.6.0)](https://download.owncloud.com/ocis/ocis/rolling/6.6.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-6-6-0-rolling) | - | -| 01.10.2024 | Rolling | [Infinite Scale 6 (6.5.0)](https://download.owncloud.com/ocis/ocis/rolling/6.5.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-6-5-0-rolling) | - | -| 30.09.2024 | Production | [Infinite Scale 5 (5.0.8)](https://download.owncloud.com/ocis/ocis/stable/5.0.8/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-8-production) | Active Support | -| 12.09.2024 | Rolling | [Infinite Scale 6 (6.4.0)](https://download.owncloud.com/ocis/ocis/rolling/6.4.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-6-4-0-rolling) | - | -| 04.09.2024 | Production | [Infinite Scale 5 (5.0.7)](https://download.owncloud.com/ocis/ocis/stable/5.0.7/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-7-production) | Active Support | -| 19.08.2024 | Rolling | [Infinite Scale 6 (6.3.0)](https://download.owncloud.com/ocis/ocis/rolling/6.3.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-6-3-0-rolling) | - | -| 30.07.2024 | Rolling | [Infinite Scale 6 (6.2.0)](https://download.owncloud.com/ocis/ocis/rolling/6.2.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-6-2-0-rolling) | - | -| 08.07.2024 | Rolling | [Infinite Scale 6 (6.1.0)](https://download.owncloud.com/ocis/ocis/rolling/6.1.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-6-1-0-rolling) | - | -| 19.06.2024 | Rolling | [Infinite Scale 6 (6.0.0)](https://download.owncloud.com/ocis/ocis/rolling/6.0.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-6-0-0-rolling) | - | -| 17.07.2024 | Production | [Infinite Scale 5 (5.0.6)](https://download.owncloud.com/ocis/ocis/stable/5.0.6/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-6) | Active Support | -| 22.05.2024 | Production | [Infinite Scale 5 (5.0.5)](https://download.owncloud.com/ocis/ocis/stable/5.0.5/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-5) | Active Support | -| 14.05.2024 | Production | [Infinite Scale 5 (5.0.4)](https://download.owncloud.com/ocis/ocis/stable/5.0.4/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-4) | Active Support | -| 02.05.2024 | Production | [Infinite Scale 5 (5.0.3)](https://download.owncloud.com/ocis/ocis/stable/5.0.3/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-3) | Active Support | -| 17.04.2024 | Production | [Infinite Scale 5 (5.0.2)](https://download.owncloud.com/ocis/ocis/stable/5.0.2/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-2) | Active Support | -| 11.04.2024 | Production | [Infinite Scale 5 (5.0.1)](https://download.owncloud.com/ocis/ocis/stable/5.0.1/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-1) | Active Support | -| 18.03.2024 | Production | [Infinite Scale 5 (5.0.0)](https://download.owncloud.com/ocis/ocis/stable/5.0.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-5-0-0) | Active Support | -| 27.03.2024 | Production | [Infinite Scale 4 (4.0.7)](https://download.owncloud.com/ocis/ocis/stable/4.0.7/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-4-0-7) | Discontinued | -| 07.02.2024 | Production | [Infinite Scale 4 (4.0.6)](https://download.owncloud.com/ocis/ocis/stable/4.0.6/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-4-0-6) | Discontinued | -| 21.12.2023 | Production | [Infinite Scale 4 (4.0.5)](https://download.owncloud.com/ocis/ocis/stable/4.0.5/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-4-0-5) | Discontinued | -| 07.12.2023 | Production | [Infinite Scale 4 (4.0.4)](https://download.owncloud.com/ocis/ocis/stable/4.0.4/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-4-0-4) | Discontinued | -| 24.11.2023 | Production | [Infinite Scale 4 (4.0.3)](https://download.owncloud.com/ocis/ocis/stable/4.0.3/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-4-0-3) | Discontinued | -| 06.10.2023 | Production | [Infinite Scale 4 (4.0.2)](https://download.owncloud.com/ocis/ocis/stable/4.0.2/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-4-0-2) | Discontinued | -| 01.09.2023 | Production | [Infinite Scale 4 (4.0.1)](https://download.owncloud.com/ocis/ocis/stable/4.0.1/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-4-0-1) | Discontinued | -| 25.08.2023 | Production | [Infinite Scale 4 (4.0.0)](https://download.owncloud.com/ocis/ocis/stable/4.0.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-4-0-0) | Discontinued | -| 07.06.2023 | Production | [Infinite Scale 3 (3.0.0)](https://download.owncloud.com/ocis/ocis/stable/3.0.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-3-0-0) | Discontinued | -| 30.11.2022 | Production | [Infinite Scale 2 (2.0.0)](https://download.owncloud.com/ocis/ocis/stable/2.0.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#infinite-scale-2-0-0) | Discontinued | -| 04.04.2022 | Beta | [Infinite Scale 1 (1.9.0)](https://download.owncloud.com/ocis/ocis/stable/1.9.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#beta-releases) | Discontinued | -| 04.04.2022 | Beta | [Infinite Scale 1 (1.8.0)](https://download.owncloud.com/ocis/ocis/stable/1.8.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#beta-releases) | Discontinued | -| 04.04.2022 | Beta | [Infinite Scale 1 (1.7.0)](https://download.owncloud.com/ocis/ocis/stable/1.7.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#beta-releases) | Discontinued | -| 04.04.2022 | Beta | [Infinite Scale 1 (1.6.0)](https://download.owncloud.com/ocis/ocis/stable/1.6.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#beta-releases) | Discontinued | -| 04.04.2022 | Beta | [Infinite Scale 1 (1.5.0)](https://download.owncloud.com/ocis/ocis/stable/1.5.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#beta-releases) | Discontinued | -| 04.04.2022 | Beta | [Infinite Scale 1 (1.4.0)](https://download.owncloud.com/ocis/ocis/stable/1.4.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#beta-releases) | Discontinued | -| 04.04.2022 | Beta | [Infinite Scale 1 (1.3.0)](https://download.owncloud.com/ocis/ocis/stable/1.3.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#beta-releases) | Discontinued | -| 13.04.2022 | Beta | [Infinite Scale 1 (1.20.0)](https://download.owncloud.com/ocis/ocis/stable/1.20.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#beta-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.2.0)](https://download.owncloud.com/ocis/ocis/stable/1.2.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 05.04.2022 | Tech Preview | [Infinite Scale 1 (1.19.1)](https://download.owncloud.com/ocis/ocis/stable/1.19.1/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 05.04.2022 | Tech Preview | [Infinite Scale 1 (1.19.0)](https://download.owncloud.com/ocis/ocis/stable/1.19.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.18.0)](https://download.owncloud.com/ocis/ocis/stable/1.18.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.17.0)](https://download.owncloud.com/ocis/ocis/stable/1.17.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.16.0)](https://download.owncloud.com/ocis/ocis/stable/1.16.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.15.0)](https://download.owncloud.com/ocis/ocis/stable/1.15.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.14.0)](https://download.owncloud.com/ocis/ocis/stable/1.14.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.13.0)](https://download.owncloud.com/ocis/ocis/stable/1.13.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.12.0)](https://download.owncloud.com/ocis/ocis/stable/1.12.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.11.0)](https://download.owncloud.com/ocis/ocis/stable/1.11.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.10.0)](https://download.owncloud.com/ocis/ocis/stable/1.10.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.1.0)](https://download.owncloud.com/ocis/ocis/stable/1.1.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | -| 04.04.2022 | Tech Preview | [Infinite Scale 1 (1.0.06)](https://download.owncloud.com/ocis/ocis/stable/1.0.0/) | [Release Notes](https://doc.owncloud.com/ocis_release_notes.html#technology-preview-releases) | Discontinued | - -Please find the daily release here: [https://download.owncloud.com/ocis/ocis/daily/](https://download.owncloud.com/ocis/ocis/daily/). - - -## Release Types - -ownCloud Infinite Scale is released in three different release types: **Production**, **Rolling** and **Daily**. Each of them is targeted to a specific use case and audience group: - -{{< columns >}} -{{< hint type=tip title=Production >}} -- Stable and tested release, suitable for critical data. -- Slow cycle, but most stable with slow feature additions. -- Patch releases are provided for critical- and security-bugs as defined by ownCloud support regulations. -{{< /hint >}} -<---> -{{< hint title=Rolling icon=gdoc_check >}} -- Chances are high that some manual testing has happened, yet not structured. -- Features are mostly completed. An upgrade path from the previous rolling release is provided and tested. Great release to use with non critical data. -- Critical bugs are guaranteed to be fixed with the next rolling release. -{{< /hint >}} -## -<---> -{{< hint type=important title=Daily >}} -- Mainly for test use cases. As the releases are done completely unattended, only the automatic test suite has tested the release. Manual testing was only applied by chance. -- Based on ownClouds strong test suite the daily releases are pretty stable, but the risk of unfinished changes is high. -- For example, if a feature requires three commits, and only one was committed, the daily is cut anyway.{{< /columns >}} -{{< /hint >}} - -| Type | Production | Rolling | Daily | -| ----------------------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------- | ---------------------------------------- | -| Frequency | About every 6 month | Every 3 weeks | Daily | -| Audience | Everyone | Early adopters | Developers | -| Risk | Low (known) risk | Low-medium risk | High (unknown) risk | -| Support | Commercially supported | Company support on special agreement with ownCloud | Community support | -| Documentation | Official | Moving documentation | Moving documentation, engineering output | -| Updates | Patch releases based on last stable | Rolling every three weeks | None | -| Update path | Incremental: from previous production to new production, from last rolling before a production release | from previous rolling to new rolling | Clean slate | -| Downgrade | No | No | No | -| Service-level agreement (SLA) | Yes | No | No | -| Overlapping support | Yes | No | No | - - - - -## Documentation -- **Production** will come with released documentation that is specific for the release. It will remain valid throughout the whole livetime of the release. If patches require documentation changes, addendums will be delivered. - -- **Daily** and **Rolling** have access to the documentation as it moves forward in the development process along with the product which will be available on ownClouds web site. There wont be specific releases. Changelog entries, PR comments and similar engineering output can complement the information. - -## Updating and Overlap - -- **Production** provides a guaranteed upgrade path from the last Production release, as well as from the previous Rolling release before the new Production. For that, support from ownCloud is required. Upgrades between two Production releases are only supported to tested patch releases provided by ownCloud. In an upgrade process, all released patch releases have to be installed in the correct sequence. - -- **Rolling** is guaranteed to upgrade from the last rolling release or from the previous daily before the new Rolling release. If a critical bug is found in a rolling release, it is guaranteed to be fixed in the next Rolling. There are no backports to the Rolling. In critical cases, an upgrade to a daily release in between has to be done at own risk. - -- **Daily** does not come with any guaranteed update path. Chances are good that updates will go smooth, but that might have hickups in cases where the upgrade code is not finalized in time. - -Only production gives a reasonable overlap time between releases, for example if version 9 was released, version 8 will still receive a patch release for critical bugs for a reasonable time frame. That time frame will be announced separately and will be aligned with customer needs. -## Support -ownCloud only offers commercial support for **Production**. Rolling might be considered for customer installations in the sales process but always requires an individual agreement between all parties. - -**Daily** and **Rolling** are supported on best effort provided by community and ownCloud staff. There is **no SLA** and no guarantee for attention. - -As ownCloud understands that the effort taken to report a problem is significant and results benefit all users in the community and ownCloud customers, there are resources available to respectfully work on community issues. - -Please consider the [Contribution guidelines](https://github.com/owncloud/ocis/blob/master/CONTRIBUTING.md) for this. - -## Versioning Scheme -{{< figure src="../storage/static/semver-schema.png" width="70%" alt="Schema of Semantic Versioning" >}} -We adhere to **Semantic Versioning** (SemVer) to ensure clarity and predictability in each of our releases. Learn how Semantic Versioning works on [https://semver.org/](https://semver.org/ ). diff --git a/docs/ocis/static/architecture-overview.drawio.svg b/docs/ocis/static/architecture-overview.drawio.svg deleted file mode 100644 index 19102f8110..0000000000 --- a/docs/ocis/static/architecture-overview.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Storage
Storage
identity management
identity management
reva
reva
proxy
reverse proxy
+ api gateway
proxy...
users
users
idp
konnectd / keycloak
idp...
ldap
AD, openldap, idm
ldap...
web
(aka phoenix)
web...
graph
graph
graph-explorer
graph-explorer
hello
hello
onlyoffice
onlyoffice
settings
settings
store
store
idm
idm
OCIS
OCIS
ocs
ocs
webdav
webdav
registry
registry
authbasic
authbasic
authbearer
authbearer
authprovider
(basic)
authprovider...
authprovider
(oidc)
authprovider...
userprovider
userprovider
gateway
gateway
gateway
gateway
authregistry
authregistry
storageregistry
storageregistry
frontend
frontend
ocs
ocs
ocdav
ocdav
ocm
ocm
datagateway
datagateway
storagehome
storagehome
storageprovider
storageprovider
dataprovider
dataprovider
storageusers
storageusers
storageprovider
storageprovider
dataprovider
dataprovider
storagemeta
storagemeta
storageprovider
storageprovider
dataprovider
dataprovider
storagepubliclink
storagepubliclink
publicstorageprovider
publicstorageprovider
authprovider
(publicshares)
authprovider...
sharing
sharing
usershareprovider
usershareprovider
publicshareprovider
publicshareprovider

single host

- all services run on a single host
- no redundancy
- minimize resource usage
- home setup
single host...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/ocis/static/cs3org.png b/docs/ocis/static/cs3org.png deleted file mode 100644 index 6f06e21695926c46def206f0029cc35904ecd8c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10081 zcmeI2Wm8;D*sTW$F2Nbx0|^@3oq+_mV8NXPhryiy34^;6+}$BKgEJ7E!6CT2^YYZG z^B>NsdOz$hUDaK?clYYO?rZf=Rb@GB3^EJ=0D%2TUPc`NK%oEcK|^_M@uab00|1zq zKgmdHdSo0fdwL}NYY{&^c^YR3@g?Y^YHQXcwrP-(>6Rkwr%Rr_d%-Q z$Y`_y=n;H>08-*j2i63e1&eogQ-`*Ouj?x6Lj(!5Cz<4Xo*19~$EEat7kZ29h#6Vi zAaTz9_31%XRKPtDMa(q%-uQCC>V%zzMWgbW zQ3#>a|9)t&dkEvF#_wHoL~Q#z@g?%L*;U=8&BxLH+8v9%_c9xyu7@T zuf1f#V&TZm>ljlM8T#~ zvE4n|#BOPLoo6Q8+F>LQFn28YScYF^Ee#(vsQDefUpW+d{8p}dNR6*t> z3aM%~nEHr=?-7aE-|DSZP?SVzms6o0C9CHqxWVeq}O|ioynjhcg-Bv z4`&Ur>Dwp$b1RbxBq!k8@=~8m%C@$6&fyJydr8T_CY6_NZcC0#j^sa& z@O{Ty2YZq!Lye-eRn^clVL<#+Wxo{0S_5F2C?X`cf`5Q58QY|TnR}y?{w^4f%G|f`vA!E)nQ?BhG0QdIZQm0kh%2->&ha-h*GBT2ZOLJGQ0d zDP`&jeet}dCCO54wZTMalA-?{uJt?L6F9?tQE)(#@lu|dX)X&?O6AJyj7`5~3;0%B zV42?jiPJtDlvLr=7PAHGCP7O=Xl~(-4(;f&w7h!SFFl1SlDBS+j~Ut7D(hUIq-?7F zA%Xw{IIQLqOsiY`p6?Qg6Two8oi)CJ#6a3|(yW^6tvc#g&9| zw0NKi9OIZZ7tP0=pJTOrj4+am?;TdLLe%18Dqnvee?_+Yv(z_?Z|RLDJf7!U_AB#JQ58fE{!WyCCVKM*_UTI;y)_ltb=GPJqI`wv9X6;r`QUsUCp-@R;Qr zo~fbzeU^US>{$fAfpkV|+@R+7)0ig2^*H>2?LRgopdW#2iipQ36YwLwT4aK(G1+l< z78dFSJ8f#e&Q5;s)+*!}2W{$1lud)+67&9F=R28);K$t7Pj3uux)E<9QQIc_IlhYD zSIZVOL@3vp4ryyTV20n%4oslL} z{n@&^PXUF^x^hg?fYp7>grzha=|Y?Bpc*WRDBc1$LF&Fg`$BL%tHStu>W=IHbkfHB zE?di^rH}qK#kKX##Gpc(>nlF;X!q`gX`J8GcfW%D2e;JQX^&fKFj-q_rW(NP9#sBT z%P`55L?>xQ{uy>4K}~)!Rx_6ipQjB}a3A(Y9(RGof44do34AnvzZ2ELd1r#B4K)LJ z&1>i}$?4!ngxEKg-JwSuD4H(Wbo;KpR2sy*utW?Ghi}s7ZB2CQ!wNr}Lfl$U*ne`u zNYI{J^EkdKdiVjVE58+7f;|458CTlHBV!Vai<6DM)x(upUsM6T%;(l}ZSM{iTb$6s z)L9BkB5+!)=d0@u+>ht)6}>wI?_7Sdc%excJt!QwZqVG?mQwqUL_s-PTrRYUHs7xm zBhmfsQPDV&?ss@utG6t(9ZATe&x1DaCAvbHhM zweo%;^%{?A9ANdTRFPsVWz#8I7&Tvt7nsm4yYq>n)Y@XfF@%ls3(RESb^?9OyxmzD zf-7q}bHNJ=kVwTx3}YV|$e-aZG3nnN1m^%(rc()IpHzvWrls%hXMf|=_{~+b^$)EV z%ZpEaZaa!7N(k(@lB7o!(9soj>h~-VZ3!p;UR{7XO(o$rF6MvDY+>ZV@zNt-neGV& zjGryaOLGleeyC$6T-^I?Y(yUTDthR=cY7%U+uAs2^2cIJ;gO8f)`e1!Gb1X-x32Ujj~0}|#VQAu_+qL5#|e%&)p*hPdgxz_)) z3s^M=IuP7a;)>D8mWPvL<)AD20%qQZPNoyx1O-+Vh}8g#Y?_;3NHy}iY1bVkm=T{b z!_}!Nlr@Z(W?FY|awD_?`CXUDso} zLKsM}YOd$Iy>!r@Lm7X$dB4=8oOW@jx$=GzBoKs za)@`|Pt7^m-F7wZ-rT~9u=d@3~^1Kj4;O%;_yV9@wMs4slHJbQ-N5 zzUP!*p71jLsTD7%EmtPxt~;G{fCiKcUF7jQgZdkZ^ZUnYWfht%|scY(@u@2vy zaxzYvOtQBpE+csifoN1`^Tbk|Yf6pkenbA*HPP=(IvjA(8d0wRuB4qU_-gV`h4 zIjUT$Rc@aOjMPJ0qtND%TtA~I`SuuIDYd;-c62s(<)QOKqo!^J8!YrY!5?bN)+LOu z*96iU5e0@S#r}5n>5O&t=xFW2z?qkhBCndY3-_)>nSa(D3u(fq;st97Jo?EQ?PI=q zne`fNq7S#Wt*;f?*YqFYQmXTo?rEliP#0Y#{1V*l3$?ZXp@y*;yLgvZRqq{Q4$pfM zNb|4K#yyKSpD4E0+7+%TRgH|73`rXK;aekrN0~QH>PJkFh*-VH%6<wVQ0{ph4CQ36oA-TWi>0lnS?d z^%nY4`t?qV`G;<6)&0H=vn0jS9v$9^{T-wtP({|5QQ5>0=gQH=Ij#P4rcq!UMKl37>e(> z#V}*%Y1pyw@2|3X_A&yj3wzTZZai}Gv%o}?n%@!;Xls#9*~{`?O}z5Y2$idb0nv)Q z(`FAJ`&+T-Giz4$GXj=-rrfMA^-~=k9#tB?79U#M+bh>qk39j;DaO3qo&&|wIYisf>CLZLm1kVa zzj;jmapYF+a%%Q)<0l|`XS4kU`%5?|*;iFlQ!^%~9oR+E@U;ABZiwR#t5uPHS7oNH z{GlxgrQ&rH&;lweD$KXpWa??Uix;bnFWc;VPg==gVrVpXi4+#v2)F(HovS>Wq_^$> zZ3_`JlO;4Af1~+YCZ^}E%Msvkg+gAMNAGh$rZ={5g+-6~i3Ju$#+rVkSMwPii$m^x zM375r^?d2|qD-^+7t-2)1Ya_Ax;J*@xXFnmZ1>a`@zFDC)=}>q^t4ldB->!1CsVnc zr-@X3*jJQHNO*j}BAw>&2x783=^uKa9Le6s6?U)7R$J3C+TcFejx3>n8;u+@iQ(J( z?TOV_p{KanWA=T>G?jp|_dvw}_mkF_ z5;*?|8xI)*K$aNgkPyR$JPx|(JpRN~4XYX(C$N!ro&Cx#rSY=?iV{{`bp~Ms`;j? z8-LE;6_1hq-L`jXGz9BIV}9JV2G-TncmI&8yji6&F{fsIB#5_f;MyOJ!qGv;c+W{S ztY_~ujs~AA5EPqB(1(nb{wpPVo7cGolhw#mF}QhlP^o>7gZ(LW^<>UA?{*v#;F_JI z*U}}-n8#`RRN!<;13I6uQ@)Ai2OIwTy;Ow@){Fp;`l zcreBx%p3j`vV9b%&Zh7XS+`X=QhmR==A6U#98M_da6G%Z`W(fc;_`CVJH4H2Haf$s zv{=^f1CW3AbEn90>+vcwoeXP?Ml{WE5@z3NZA~vFHMPCDC3beoO_CWUIv@KlE=B<_ zoF)>>h3FCdN{zMRywx`j03Yt{EvGtyh{|j)y`kG&sUD+S+nXSHN~? zg)+5&R$#maoPwZ`Ne_p}11Y3IwVfCp7GE=88@b)KLX&W z*q$u-?C(G2Pt7b?=)0ie2>6hHTut!no)_NTa%b&yPrp8$HTvrOkz23l&Y1o50Vzf~gHo8DFM+O>AdbHx0jy2qN@c)C^A`M_n?iKlU?j zrq~3--R5(sy7W+bmjBqw3Q(-<*z#I@R|Klw;0HM5FZ388h z8={Uh-=!tl?kpd_v+_kfb1RiaKTe3^AeRh5@8 zkzTUCBtrd$cG(pZe?Q&qq~iS8Me@1Z2375E382z^ZFuV;Ry0A#NHo^Rfoz&^2rtyxZCy!Hdo4BP*)%JLYKkr1dm61a>)wBOtH2Zmm8tqv{O>LrP^ujl(WTM!J5y8az?Iv#rSN}|Lc@RLOT^M8%%m@5>!1xf(9*AW@(we zW`DTpz*wt-uSB~gRitOXgcw9xo!6Vk{BWyhv(I-j4Xu`Ge-;;Zm5{hr=wQM~%;oKn z*qizxThMqYFX%b>Z8>HBDBe|Q!`C+V4h)X@1Qc|Olac1pt9+{A%hX~e7CtojfS7Z$ z>7;)uEAyDZf$L-XIo4(`qqTS5T{NIdXQ42X3=L$w+!@t)uw&lLy^-kRqX zfqqH{08`U84AJ;BUB^%ElxOn~ms}NQ$ImYEO!0X0_C+GiCcAuf=%b?@c&GF0l8`tV z<>#GtfD88pZ*O1oM?Ioe_m!UBq^-#C!DF#XGYfR2cm?UVqV#%-lMejI&mfC_~HuwEe#2`5rr8U619Fj(Dj z4%14Ck=+<17C!!F(-mMO*6o@ejc|yvZeZG;8*UU5Xf?O$@$3zrO^LeHK0*x&(u*KBU7jqwI>vVS36JOu3|Ki5<`NYl*~-|+Bu zI6m!`d)>x=0{ZSw$HfSEc77jNIPWnmwDBU_1bqzNM)HY;UkQYsdbO_zmlj&?`86pF zz1tHnq0{lx9Qx_e@}8v$|7brhZ^4>@FiLi~vmyZR&C&{EQX=R0B{<@x=ZLFT>79PK z0G~STJM=u(CNBI%s>qOM#+B+9O-@uG^U3sx0-8&aGB5W+QSr#9S0j8`*icYENwO|d zbdP^sT2f*I(bCe?l9QU6^zq`^_ct} zDpIvijuVznv9Hp6_ZpF7Ube}_~7yyu{4V^+r9}b)0R>K6_t>VaufrZP|hhq#&7MVjyUzQ4Xpq z$LL(s^rw4J{EzA}@lzQC=a76l;8*pwA`?yC;>$SE(@K_b7vQ)dA8F{BFVh3Tg4Mra zxf>8Y(F=J*LNsmgIq795*>{(}6>}ZZ=bA^D=7b=b&^o3lF3Y>8DHU+NN^C>!$jCt{ z{lB?tZC}a|#tJ!uwxGe7z4t~md7MHgAO6piNANw+xLC6`GPmgg~}(1NFDY* zD}Ma;*`~>FC4@EtS5~iQ{j^(zLj_sb$6Uy%F(Y<64bsb;6(26-$2Oi~)(_fU=y?T< zDX$ufg1b?usj9AJig;R5Hyy}p3s6*s4Wz^h5sZH18RSu7x_%kfBMqA@b-eX0;+O$= z=#+>PeRb2y>U|PocLQZM$ywiI`6}qc%3KUio`YWo(n($v)YLe?HKjzd88sq>JWw9S zk&(4-9VZ`I4h@mN@f-XF7TV2NdB9oSmg`QI6z@Q)s~?=nRiuG0zD|G*wTF$PayOS@}w?d@DblPX{0L zYPbQwk#g&@U^E#8Or-4}?3Z>dMmao!_sqiAFm#`WDglq=sX(3>njV8Wt+ z-uTLP!!t_Hc&rq^YM_w%;CNabZ{8M1H^<`8&tp0Q_J~k!2b+G8oo5l zeH4k&G##5R*+z4}Zwj?Zqw>$Ww8woq#OzFUjOW08j3jX5g+_Wy0+*xGKul=qzOsx{ znZ+ac=F8q|5f9FX<=y4xXK#c2EbP3G268kKO{QOs{GI(w4Ehw$10Mrq0O%u)YIwcb zlN67&M?8pUbPe;ZE4hLx})Zu9s1k;6Q`S+$1m$H5wD*4o(DV$?vZ1E)*q zm6ztkcj+8(uwS+5NQV)jjAD{+KoyK#Z!Jae67LYZso`qL;+#*yZ}NHX=}u>sz4+|T zPz#MLeJy4=mAI1;2DZy;@Ls_z`FCJ$X?9Edj;e!YgWBtRtgEDu-0$S>MzgK zLett`YDFNXv8O12Xx(LdR6MkoT5nj#l?GyWEc=}E*VkC!EWPP)9&N3YYr*M)8v=il zl~icd`DDoD6+i^I*PWz7t6SHCzdCW2<+LP65%UQx9PrI{9HT-S)|IJbO*v6V7=6CoyRJ zW}HmyFAzLST6MV8GIgc_^6Br!487q9paEWY1L%+HF!%UIguQ0{`f{@9KOBh;g} z-t&HNK2-k&jOJb+SKGldnrUT>toRjSmHD?kOf$3qCukrb>(t9pB zQge~Ab(B3epqrx3wwmo&Q-|C2tl}!xkV3{-)uDh28tu21!p=Mfg>%S9i zw3v(1&ZZXfF~G2S9cJdNGj52v}gk$fa+zgG1ZE-z%tI2Q@qR?zw!@WsZ%q zOj1_r=-m5KzVjLQn=xiqo@OC8@aJcr1^BzS)z+*?q;%%Qt`<`FhP)I~<~z)K2kF3ll-xemUB><(q1>D!t0t4mMFY z?hziDF*VrH-=0av{bKs>*F^SGB|W)~OLP}?iXW-8mQG`s^4vKVBgAHMxAtwhZ8fK= zGg9C&U}Ep>a6OJFVMKyI?B5u2T@oLCthM<984&sd(AZ|6@P&3Mdq*o-hg3#>4703R z4q+!y&B~%JlcY+}LN)tYc@p{VAWy}v5mv!Xy(?pq7W1mgy>M^ z7wqsZH(kRj|L3M|`i_=t?FVu0#UGP+&k{o~W)o6O{9VIj5E6nA^|l)`p~VCV$9#mP zyrUq!CfuZfgBw_RNl7e|73p6-$b@sod2-_KV^n!K!8?lCH*4Cj%>RKr`C6l}M`Ebq z&Ar<`LsDgwqkERz7-m>6dXvH)Ry|H0y-$Auch|lrfmOlGJJ-Zxu&m5<(wF0o^MCj2)S(c!(LVG3CKXpJNE%wcrq# zRTfIsjyOWr-bPfCGF%Fs2mCONkDS>Vu_;A&LBs(BC_{*IFjpG9#O3o z?dB39`o2}F|u0X`MabljIdSrHkzWZYUWu7 z2t>iV!T^v>Jt7UlDOt>!V-^$MT`u;^4^bftAZ4)6RN-6MAdY};k{~DA06ZKH{1qIi zhKx?K^|?rm^S?ZA%0qpHKnY{x43~F^u6WFD@7*iox!cj_`yov8IZW-P>m{Y7r7D^G z`V>amXnC-+ho?UaQ{2?~~{2?mjSsdvFNu7F>e6yU$>O0KuIgA-Dt!?!h5gfXA)6 z_x-6rm_u6}%)4M-|)fKQX$S?o^0G5)XtQG)(R0RMaprfI@j)bTo zLjeGqdq1e2hnBfFjfj)!Cplmz)uXJ=lIJU(*eWnI^!d90??!Uiv z?%@A^{xe$F-LJmi%)}gZ?)kUl5JB~UI|z{;jegbT_bnljjOxYU*e!`})2+c*GJm5z z4n4OF_6YK7&y@xC<(T0(-R-l6@Y~gAs&CTUeWET_Z&umQ6K;1uJ)QSFJq(ktbu`IJ z#VQ>P5O0tWMiyzmdn&9(Q*7X^I$~^Z`{%@;SEIL}FFG>6Dul_!Q=a#cYo!=}kM2`-^40|an_dixo z49p)#>Y+@tZkRf3U}txt$#rs!?{=iSa?JP5?3#Jr9>wuvO#3;1qxf?2S8Z2zPwsm{ zw#rJwMTOUxDnrHO{xw*|G8x}O&3rBS*khB^V#Xq2f-Ig=K!di|A;VL5ln=L8%)5Ep zp%GvIRA*vD)Jnx+B2QxrVK}bV2#}Ngm0dg$or&*8^Rg;_iRrsNeIe3XKSI&5UFYVs*jQNS%*p) z@>evQljhhlmIB`}JCAY4gU4=7t10Kdxt&XViL&3%lc;pC!Y;Y$^sZd%^fT$!zcie%b4KezAq7-uFY6tD`1beghpM|-)I z6tK=Mg{O{1A}$K;?JL-&nonfy9re`Apts&A6^XPw9{! zIFwvV!Tk$AAH>QQ+bqB)!w)xt&1#=S9TUaWo!USYfz^pdO?m8|M)DMP_^893n1okhFMC3ThHm(?O;1nmQk1J|S?D#?E^SaC-5DChZCX8C(q5;oyt(i(qC zT#h%S2cWX81?4;nS)UCh#eu{-^`=*Q?wjw&fg#2Q%=w15$dLecnk*DXYw=l{-(tbW?^BZwXem1KXM2jNOwT3*aktqK~;OD2Kid!Np zr{)yN?PtqfF}Xw+={l$q35Vme{9NU0E&&pV*9(WU95lT~4$_vA6rO!myH9!%P_S!88P#m2_IT#96c#4%K zt5^@}dA{OG@5cRNH8-f$mnM%C)xm9J+02%Wq!_}K(lhlA!|Tf8AC*P^4DvexDMSf| zchXMbc9v3>df4g8k;aWQ&RP@XV=hTK#N%B&09-j~lIe~RIz7t2Okb-y^?gYOrVzrG zh^);TqC`HvV zJh`EF0a%|YvP4m%Gd|Xr_M(0ZRkEetK_1kovjfW?I{CySg#Y+MV{j?GAa|g278BcQ zMWBQCQ0?>$(AL2RoHdbe`*HLZ>qE^u%{iE&c6UhFdV1WIdPtXP$1`&@0OL=x~y#tl)se zD9Mpr2H0EoW4n>~KfD&fpV7ZTdm)y{zX{AX#CVTw7sm~xe-7ueb|?Kvu*6JebI3z@ zti)Mi6=1`W!B%pvj3f;Hs!2yv?z2YSh^$!7$-GB|=2mmbfDW?MabU+IRG}?9JciEq zLYWUnDH_QC0ZBJM_?$w~5gjCzx+Xk8A8M?HJRy67$fONXGZch8!?M1RP|D1RRVGA{ z1gyR&nvwh-W+Ebr{CH@TyOc&a=SQ?PY0*L4@mo3}Swx@kq$|C`&n?9sV{bjpwrNNj zd`_`Xja`t88pu^maM#|8Uj2PWiR4v=N26Q2xudl6B*B1LL>j@# zJi1BC>|jk75{S&0`31HU35+}RnnW64p7ZrOOwJO;{+{aBxTPi$GS7@OP&0o22lpi! znn8S{oQ<*(uP1jDfEB5iQmI#HqUKkLstY*No#Mv4>PZy^Wd;kDcxhvl3nDzA7{!|c zv4FlHIASDgT7`(zmV*huyjeb@t2K{^yjOySha~Lq6IZVfqIL;11%Ch!)lHRcKP6l(WQ4FsZ%n}BTZPlYgL@p zfI%`+p(^nG4T+S)`!JH7&E$9AO~Y}7$C0Kjg#fIWjwk`N6iK_klEOqeiwMPw=y`lq z5PpSgS_;G7&PgTFC8K;_>c9RPA@d0`IiGr3C9;~?q|G@KcWx!)JJ|bSGV%*^%alT6 z>!$uSkm<_@l;TnyI$*V|7Lz0NA2=*ARu=!`QuQkL*L30UN=cSip4jSbWBz0Qau*^> z2JCqGQKSHZa9{`MQ27A1iK0k$v_N@InjT3ajR2?u-c}%Br2><24$vvYW+&uMi{?K` z2Nwd!L6^U$5AHg4T@ri+)(f=P!Ee6OToG4&A`oIo7y((#gZ#b#s^2;g5#hy?w8ghp ziso^nt9n}YL55*!H+Gz(s2n(|%J42UP%_&iXi@h>cEug^UqLo zte1EJ3rc)1&7|;Hv>CRU{XJr@F21Xxg-^wEe9@8lp~KT^s|bgi5}VOAa`ehfk$|(` z@CgpvRAsz3Ozg5W0P`QtbX#WB)3wsohp@Uwc~{s;1fM3Va$105T`2}N`UN(YZe~~C zh>Hf%MH>261&U)Ic?$WMij!ca&U9(AgXBki9Ne_enhdlps#TO<1_%w;TsyfLHi21e zZ5S-)_`DhR{UbFf@4pVxs8&j9os@bM-O>zM9ARgXL}UF!Lg5Yp#Fh_}B^z(>8MIa? z>=vXbDC;ud9K`$W^X$VLF4BU_sJZ1@w}`3`e^k{MspH!RqRwbeAg2-o-ur~7XlB>Y z2fYVBDfTcS|JgW_CgdidP@6NmZYPd(j)e`Be>jFo9)DkdTrPrP~~Ng1~XJI#O z$P4FkC-i09ZhSm?V`=v5@_ioHoE53ONM+H54kceqP~#*dOvaA5sw5kD{6FwbyL8bK zPIoBkcTy5#Vln+CyBWAyl(S@O!W%}Gldp%abhnkULML3P<{b+S`2Hbl zS~RQF3X$tKv;OVtMZ6{NY4je{J^O8ug|LcNIRsSyDxzV3!_31-mqD#Y5iwN^?PI!* zAW$uqHWRE#-aO!bE|V6sH?4NxoTeimidh84sv1Ulw#WwP#=*==XM7$ZNhz|3;?!)( zQ{@BIvu3mVk#w}qg3>i16JQo@lT1j*XiYTP`FaxkfX5xNvtMcGHu6@^7{xa>)=ev{ zCL}K1{;Jhz#<~J~&ZL;#gjpF&QsUw({l?lNb=apNQpMIMC84ty)~yl$Psb@8eOAD*m*XCLcz7p0w_UEWhxeQXhmvnTNeN6$KcKZ z!_6QgI*`nan7q%v={pwc=x=9D6soHXgPkA!!7tGu3H(A8bDuwItA9bVbRHz!0b>;kmlZF;t2Jljw$W{WUl7p_d2e{iEaP}b6_?} zky9&0Yy4fMxpM>X*O?_QG>mR!OhNsVdAy@vzNley0|u28Fez< z%zT7&{2?^cXWFSiry^c2u@z)rCiXXySor=Y>Q#c3p1%xF`g5o)x<47_vN$eb&WPe^ z72;pI(;@C#vtrFlH+ow!DDB8lic>sN^hGa14uok}KOsx~ZCei)?Yxn` zBetDD!_<2{WDytwQS{vYVGlmEGnP`{Q|<1@%zTk-!zz=5yM2!q7SP*f5-w*W9D#zj zy}+EUE=|41#aJO+Zvh1j4_lnk9cDK!IV?ff6%c$B^XI&i&Y@Wy%fcc>t;qt`T8UdZYnvG1wzQ|^zhp8jWG zN#YkmKQ0qN5&WW@@Msy6J}y>0A&3zN_MdUE zY!ZqtKfH`tCAnXw|)$Yd=NVpf0ua2%VN_=aCP-W+t|PQ0Md7h zBQTOn)A&B{$UGdz!z2ta%}~m#`$UBEbb9ZuFig;$+bt?BKDDP13PB7;N({u(K*zCA z+(0~(iBE;6Au4lj=B@4M7mdpYL2rfyKYnfC%k`tD)mPpS(CO$c6_^_JNwkaA=%Y39 zNqj%XH>@H`oU(NO{9|R#W?IWP#sXvWZ3%`{;NR+Mu2B(*o}b!}*DU;6Rf|LZek;Vl z&c6IA6eNRXyx)K9_)bi=kwYTKI+TQc=N1T1NUzQwDE#2*}WNNN`N>z!b zVwLr$QzP&z%g!|9K>rFu=l#3>t)K{zmr{gl87`z(M>U%0IwnPRyc#W#%6Gr+WD*_B zq8mL7{vrLNZttz&?8y(?o82S)(F#fpN|aV+o3tpI!qPWi{39>=28x(7J|Nl|AMV6; zONE*6b9|o4X&?&NO;!dnO~*9@yY`UYU51-DdV5T$s;m)msm-u?|3adgitiP3Qt*su zpMP?ZF8TG1D?p5l_Yr1HW#0wEJHF~3MVMC;PCC<*Fw2tbL&9@yiybJULEDOZ|AvI) z?4MR53USYhLi4t3P8IwMQ<@t~Jo(TU+!OidZvjm_?4QwsUA!4Aqp`bZh?1oq@8}cR zGA4V&C|P3c^~cm`Er4p|FU|0UPX9EVD%{mX#Vs zei#h=r31FH+O}5&3i=c}$M4d|N3Q5uP%_J0brlr8A9@*z z#1K5s7zFCUEnTRxH6}sZ!>KIShr};uBeSJ>or~WY)A!TdJKMPKHGO*P>}ZnioA2fD zmi4W6z-OMKmcf1MLAz99mC&CmNtAY)OKtX+0Ye0bDgIM5V0M&1-UAKJMaTT&D=(2d!V+SEud?#&V$)x$7i!>gaJqNsS#q)1?1Yic{4q)mEQ_&aW z;x#Zf%@-zX-cp_K|9zp=UEStxvk)1Ht=P+^YX8HVTdFx0nPyxz8#=FrE8w*&F5VS2 zbUp1d(q?|D{>z;IlFYTUdjatAihnEh#91R;KUz?s2n>p@rV3=jAsP5b5c*ip7`nl0 zJ54n_V7@FlM>W4M;ETNNwsw`#>3Z}b|LVTaK5pu%{`bHA+xDK$Y&*M59?m#!m$zbD zxX#%jUsPcf>Xv@=U%ihVw8t7Zo)jE zjN(d)^=d28l0&}v+-EkeE~{|wmGgwgg*uTkFO$qoY9&$X+%oF$iWWJj zA>9jRSBJ!%@!U)40{{!rL*jHmF=3< zkUk{r%hZI)C!4T#T?yjB+5Y2jV*Q#~O1?kkVYWX+o0t(Aqj?prUDxIK*nB>*cfej-vHLHh4|G?DksxQ;u>@@f({h z%O20aiE=~22ur|Z#*yDw!^w2{Ebr!k=YZe6&%yDNUuoiJk!ItEsG#g0xT~(`#IBF| z>j8)rKYFw>@UyCd*8*qyx{Jh-5~!_ZqOkYy?A=_v(N(Metab#}eoX-KOG|W#vv7N0 zw`_1ViR#okttxV@cIB{Zh$8AHuZkX(yHnO%^fLB%D1W{=G^UKwWDeh*UxNMa&8b3! z=+)DCHFy^#xd!2gEYS_t4Iys8h$U4N?+Onf0*;q6$b1z1im`YrDr zT*bl2LCOO*t|9u%qFPkP4t>*)*`mR3eKKuTj3+h!IRQkfwcdNmtJ~~~h(|%$^H=1r zlB>5L4BjmCd-Vg8v_=~r{5qFnLsH}IMz zgHguLTK#<8!IH@Rm$H_!Uz7NTE zK?x0*u8;061@=4z$_9H?jC#6JS)>#iBY(F9-%d`G{pdPm;Ik7^8+-9_{K)R3ChA&W zjfTh2T%jn9k*gKWfIoE7yl*leYCVE`acN4P-K!bf=t#a>F8T|TuF5n#_G|AH(< zc^(U0+NS&x%_o#U@c|nXsLX*DlOrI4s_|Z*fDd9onc9HQ6B` z;$dBTUG~$Ua5j8os^G|^pBGx)v$iRtJgwQCB}0c!k`dTvXs>Q8t2yz-pT$m#pW2sCBunbQ|2or)*rY#Y4PmY+fko6#A(QwA)UuEo@}DLXRp4)n zh_WKr$<$hIy9c#W>5NbZ?4)eslFUVy##|y22rK?0^EZBai?E%Ts)!_j%Zl78gk;7t zQK5mq@$;>`Ar^>$J34}-A22sRE#vYUJv;|>4rIaK`h27QQa-|DbR@9>u|MNd>HVHA#GZTrT6WMH}@W8 z%&5q9wV27yyY50^j(=kZ&f64Rzfj5a49|Z`wBZu>u{+C!L~<9928B}KG5t)6%NB9P z!)Aydj}w2XP+jolffYY0KYevk>G@OBy@+oAxdZ2 zATSJm!-cIeDm@T`oWVc>Kbt&O~DLtu5{uOY|dW`k&oO>EsNJee3DXwpy!BC9f=$H=om653$y#j+V|aauh$iJuIvd z3pg|g95L&0$9V`S^>my|-gh{7uRoWN-d=4<`aS*_GIwvx6c(zpuSU&#GxFVt$~SgF znvR=Iz$9fz^$Xtw5QKE*Gg*GVJc6-|sA_)cxF@>T5d`oZ#JR$xc zmbd8Sx;>zXd{XjR-Io)FM-a6JOg4|2hjpW!XG7g5K~A@qQ#iJbG66L3i=2PkRXwpS zb>as_t0Y@JZkES0oW*I(QKx^y{?zGNf|6cGY3x13i#yNMQJl54KN)e&Uwa`?KBy?j z0$%>tQPfqL`Z|K{qNwi<0AS+(uM-H!$s>6kMDFU9u(m<3Rf~MOO*$4&?2ot|KlC&<|!#;DLe) zo%5Kg0YXLc8e1!)b;6V*vE8gvZJ;QG+vvM`wxlWzu#?BK=bqSn|nbea|JPFe?l@AY<_vTI@05M zf_X09BZ0Sg-s=Qlo5w|XR`0k1(m}yT?k9X~pM*TD|L>QIfD8U4ku0yg)&~&sc>I}l zP}lS{^(`}t)COpNVdx`(Pz?lTBPgP6A}I6hE>6*E-z^E8TZTf8{I|Sg|CIhGJmyoa z!}H~dq`v{-Btmi&$kR6-;s}6(y_%UJV6ajp0pJcC2|fCrZqaX`-Iz;lYy1oVq}}eg z?{^pcRzL$PgS@U~)W~1c4=f&ub;9#~qUQh0E_-WR1JNqgIuK?V97X-`ru;pck#@n~ z_HZabb1_wQ(*m~_l!!}5o6aSGpeaZ=yQ;~=Oekq3b%Oy@XXCFD?23|}fBcn^%Ss6K z^zy<(s{4Ou#^8VAcLb)x7SfQlhWbHRs<2nZ7Gg1mU+)XnClQ+&!YSbdQ3C=d+BDEW zQoNa@UBzyeXi-Hd~)P{lZq0PeZ^UnWCc~yticF0xj?d^GWpxWOAnh3`Dc_kQm zDcnjC5Z0tImPFEB->??vPzZcB1|Tb$hMl=%h{WofPACgI`?0=4)LY$eMy0J`vGOis zd&2yQL>jGN@&AGci{CNk?WpttdLG2Dh^-Gxl0f}!^g{L}4FH12Th5V-U3^U-p>G3c zXeqH```px%a>@Uu1bJb8>+tfb?+Z>s;3;c{ItW=AbbWnoW>0Vwp5VA9yo&%;%0bu= zj{hHe%qq+xfQROD8+$g4d zbqT~kMZ981>QWy6Q$w~5hdX|Idz9Df4IB@*hacZ9(QDN+cVm3t{En+x9dvVMYN?YGCv1SV!+P=Z(|mCMW`#0B_1u2zY2hcj8v(tKF3L-b4$QF0 z?TxgYh0IXfu>vG8p1hS*wIDJezNxm>b=VZ?W-}4ql@yIpl97+?Ei^z`-=L3dC%tV!X4k4+X^HjhG58pLq%X5;*p_=7*-KJ z(rZLPb(Y-5EU*D?O{HQzrx}JOi;X@PzJ2?A=ssw;G=OjyY1{U$z)!~y?hu7fFSa;w zaaEr6mc<^;itQ#l6mu4`$sRYybCWz`TEnhKHcU^#bg7!+g~OqUkA@QT}}nfPMSR|eeB6x z%?v6v;*9#)cLX-+dQ(y6qRbUphti~Mrb6j5rsJ$EQced}{^+|rlOlTCV)$Y?(P*`g zKnrbVa-9hNdI{bDlokIk(}nlT{60M$Q?U@K6`}P4%HEJ;ZP}N|aCXTQ*;NNa%%ZgY zHtJ=9!LQn~u7RB^8bCAaN*fXjM|hXb$ypbh^i0}*Ez05}^?!m??bh=f)@##TuFzfT zPM2RYNZjQKYt8~!Z$7irk3=sOP{|O@(+5JYQZ;+kX}*9F-;~vUBBIhksjA4HjxuZpHt(;G`)t2@!rHH7B5zje?krTjYhQcx&6aiUGr+ zRSd+6xqPg^EM8+Un^AJcVw@@4t)uUs{}IHqc3riiWga9D$E)J9(<;AUsB8Z7Rgl`#_MG0_>6<`Sf*-z%_g)HuAj2P}Y(-KSzYBU}!k* zD?x-p&!tH*D^%-`OXo_>F&^_lNy&4B^9`Eg&l{7z9o>@{S6? zpDs7UyycK0R6VBu;=b?LX?2okr82oC8H^nG5IrgTOa2<`H0{HEjIaSKb^>aDxRg0W(5W7_QDw zfF%D!llTn}C=cF3<2P~qXQa^k>gRqF$C)@AKs{U%kR9wQA>ougv=h}g3v36 zLX+AXa|O_Ti!fZca`8t+FwmS$!t0}A2xNdrlE2~=0pfJ*IuGyHRYw329&qwC5Wh@I zP}vT-?C9{YPf9p;6Utu)8qgDv0*Q%f)Psij^@fatG5W_>8dJx1EBa%{@4~=HkXb>O z+6pVa1VU)av7C`v1f1G-*Nt%FPNA5|`y`D(UHes8X1iCe{4>Jp&58C*#IEqri@4f) zhY0mVs%$h=sj~dX*YHmbN#{?xGx66Rb66lMX0ipwU(m zRgZ$Ix)!?d&re>xFG`~;%NcSRLxEizKr+bOSd+9UwHd4nw2Gl}In@XiaZaqRRMnGj zwbZ8CHVwdP`*KsNdUxr=Utep^hR1xM<@$Oz>jy!z^tI8oSM-6*ix+dLqm`yauDMh>iN`%{M0_QJbYkLdoD511&4GAuCqu;K_iul&Rcn z8Vf}qI`b}x)zAsbqTI#L|6PfiJU>o4MkK!_RBxkz`sEa2mwvn{_uwvfmIK1(&fZG1 z0;{qLjw%;RQ~JcD;n~z5(GCbOt4J(9JB);MkhI&?H7*!qstn5AYD*4jEAGOTBKF;H zLTvN=F%YK?JBq5U`XZ%{|K#ECEKd-HZ{~5kfA6*%-+p!1pX2f}7uG{E`_8E#k@+$* zjh`@vGu_k&o1Djwr>uFX)v1Eoh>ZsO1SDFYn9$Xc*B(SfubhAR{8;{bda6y+oA&QH zF1B9_2`#DUGxZdW7j_>Z?uHTP$RLlb>`rCvhmgB&4!ho8}<9nu|&KR&KobnGor1|RODOrZ1G z{8# z>GQ~JzIEGgLK9k=cGg{1YWJJ!^;~r}yk%x`{&rz8 zC7>=aeHYr!!#Q1T^Iwt_`49-K6iISFMiJU@9Gscw~l{d02=Z08@l`}wSIW0BKroVNP`n8G6t?qrB$(h z;V-aoFpgpnD(KiNHRyxRG}%1y*Jx|o1jDgsA70f96~OIxp76ck?@uesEml8tTrRpu zEsQ*V(^EtTt61s1hHhb%C}G9@TRhnzdxaj}R=mL1{XYPn{7l|eAEl`2ua`FRf~aXt zLiOzSJD6w5R&QE;KrMEKeDkmieR!25`@c_-22kFjefyX~s<~~NJbf2dDRU1<7pP=C zaJo0m6OzD(z>2P6A>eeNjLuq+DQhK9;++;1;F1=+|VU-=?ar(<23gvtuw$Q-2`$O?*phNEztgq)yZkj5J=2jV_T*owb#kDJ+Rc{ z`_yI?jJ;~V{+?g+?t3yd_L7-Dgi9)b+rJdlbh#O4@3wlO{9snvfS5nWhdxT1X;i6U z!d(+OCKmmbG_$v;D!z%VGc@s_u=#O!*U8k02oib?o+9`_Q@5frb#zm=;M%8^oP<}B zo7dr5;D&;N0kWE8p;ecY6AYFZMFg~fGz6Rw?Y6I`Ws)LDMHp2n4ugo5+VIlSX7k;c z>#2Gwc1dB$MF(|$JwQ4}#f-9K{Q!tOE2c~yW~Ye;p|YHr(EPzxmhbd z+-PThz!5HXvB#Tv$VpQ>o6AH@Uih}z zVz}7EW!jAa=oc_m6%GlU7&`@RhJP^9BFB!qxa^(`|EXAU{<$4OQ6!og(qr6+G&6^& z)ZBVlKM@9LwzF-O_^GEEO4sa!O=5poRj;(4`paf)4_`V!8HArGzTbJ?bryJbsu8e- zk4kIsXipGo08L)jwP#KLXJW8c5Zy6mX`c3&_WFOKY9@RZAVXQ*a?QaJQJ>=nk-sI_ zf4^0tMYY>-gbazOw6AUcvPVWM8_1#6@l!if`Q*H^^55a%r>|`bIXPpc1@w_aI4x;~ zk>{|5Npg)_i9f-7UAu0p-;phZsK-|?OdWp`)y#+HI5}98XXPlelm`;Q_8g3c*?7D^ zsGB{kf^faZL90B}uEPO4H4rPkZ|7yl*$nRab_I~a$-gAos@G;>eG@P}q4cAJ5$9IV z?d8AaD!S1unIl`f6rr4fQafyj9`nd@vRJI>*<&;@u0#l&>MYz7X8ILxolLzs^YVVo z&r9UHi~k*#c)lnU`1tGm{NTV=3c%V1Yp#m153VOt(M9yr?_oyInN)=wPLTG696>Kd~h*evU10nsk%IF(kP4ity^v z5^44^Pri*8%D3jSmwAlpFFM+RsP+~20L-%OyL!)m^i|Sog527%hOD${blL&6nDTFR zPpXhMV9Sfl1gfve6{%RYXcVOu4}t9zUVE5xoHF72RZN}cFyEPZ-DGSEX}rs9X56Xy6c`d;~E;6 z3w*YMdN#3~?>GPi05iS!@L>BnVAY)TVX~P?dzEU~&vysci!PfyH%U@B3>0QD2j_hV z6}_7|TEh*)rLdX@Yq(%J0_(h3xga9=TZ&Mown94lzk097*a)brI(*6P+W<F&{|rSmlQbnU{t! zaDoPGQti#tkY$(thPY$Prj@}$Y3Ig>eNt}I?n6bpGnj$8?Xz$cGi|~eX)u38u)RSq zOxWGcx$UHd|Kvx9E)NwpADuBoHAFk_>lbor3-+xn43Qh;I*`5u2B6obyNXr4r~`)X zr2n<$G!GKjutlHv{&MYG=PpMgus10ff(Iu2j#)MLR2KUNzo|cBc+SXdyNJL-6&0L} zS-E+dP%xv=TQI{+nMNoHcn+PS+oKXPV(IV=>nGL$>(e_B)oI)xcy+YaIPGMR9sX_>|v zUX5o6J4*w!6%?Wxs6IDJ=)1t*jv-Iiy0FeqC;MN0H(c=W;4(!BcHS_}%ZUp6h{Oh?zUlN`&s6eOof&)cW$t8#aZ$oT}U z-Xx$_30 zvU6c!_5RyhdyC`f%x+$6=lk6r^$36E0;IUt)f|@*jU{}%< z`~#mq6sKM#nfF8%I!}DY7p3FozE8CGLxnHM0r*-Uw5N&xKak+3VkL z;smDQNe2%E`k!{x{kcX#d za<+jal z&&$3O7@20;HsA?%+T<_pw3Seat}KXd8xa1Q5j#Rr|CycIv5~N{=*4c@o#KAc72?i> zS^6lxZ`BD)B5f8D0e%kvmMH$3*JytgIK8A%jB4@cyI+qR_n?QwJ$FMvJy-c>s~CW= z<%){?Q8H+0c+!+BfKU#x*G4W`8kC$+D4#>dnZbaL+iI2+$-+OYbAwPV)e&l zpPBBg6kpsc5XdOBCftN7?ti|U{CRypkqdiG3roqOLEE(sA|0>sg!1W}8o43DhIE!0 zUmAdhMP=uk2Tvu~4srNk2f<%;n^t2IR!EG-U5oE5B4N|r+B(Y+DIS9I1!Y(q(J#n@cQ75mIC9kabuuljW<91@RR|85K#BDYq zW(DrLJVqRy|I z{G|t7t2J+!89i;=Nh?d7FY`z8p*TwAW}YP81bXZI;oZ0Rz!lf|xS%d<{pRhpy~~-~ z*A39Vi$pkMU2XY7+IGWMrywBUL$GQ^T=+<7<1ZH@OBf z0$AzBt*>Qa+@|gKVh|Bd31#=qdI+AhYEQjGtZ{uzQ3lBtTIMYKWzL=-y`TP@wdSLk z&o|8zs(ELMwP8XPEDz`!$NtCp-ZdwB-2vLsa-{oGCoI#B8Yf%KCmvgElcXabCDqXY zKr@Oo&cMbi>M+Jbl)IT_PZzEH@|*kavzNPJiBDT%XTFnH0PdoXVO#$XO=leyRr|gD z89Jn-8oweV@JewXe_K7?o-;uP+I6p#<#``)@vXO>rd;hiw($y+WjiLq>esy2x-h%0!n$ z{Ak~ShGp`!x}*p*!{VxCUuFtGB|@O@7|$~$!sqjenq7zQtBRB$I80fc5~~^vQpLg7 zX0L);FRoipcdzG)Fm0s0a{29(Mqs-r*#03@IN5JJY}x^_E{qo^{_n3P0tRzX-7nsxHGURCdV_07kqjn1;GhZbX zYza=LottmZaC_f@av8IDqcyi7VO99&#^?kg+k4KX8V>B=@g6-3*@{3}**|0Us>#dw zB0;cMGop3j4H!&&-%~f)0={D4Zw@Uv6c50tDy-0jF0FA<+;MRTmnc;!;#p+67`VP1 zcv054foGM0V$~tCorYxlpU6~K#;J<&At)X2sNP#N<05@j7}9+nuJoQQHw;&s)XQxf zhV<(bP5)XHhWiXSpN*G)YSFw+$64$Ct%v2BwXJN#Afll67;|@;-rxQzQoKaZw0z z^{l@MA9C-IIy<;0gt*}Igo9~jIKpAQ+{D&gDbF|-R;va=5-X3$ivmx-@$Ovqwq5ob z*MvxrXF8V@!W(H78fYImX%0BY6_!U48&&admuJjN<-LJOsmcY5au635gOET(z@Gg0 zfwzYSP5Utd|iH}%s= zi2CF{#{kCv-i)SKCywQ22@%W>&G(yQ>|#qL9k#%w4ucJnVS-4$4MjuHPwz7ai{f0N zm*=iO`O6yV3at|zqnyeHu49+F%q{3dJnqZ){oOdxp|@7*mSHiar&exCg8n&eQubfvEmIZ6Tnwcsym>#{*^lp zuDT71R>Twcm@pu!eEXn{jF}XkHNSyFw$v-K*uNi0P;OgLArz4bn2c@XB8`sIWM9r!CY_ zns$R6#XifCI*hhMhSO3lycrOm^k&ZzpgHA(jwX-RFiQ_kJLqVwJo;q+7IwDTN=fs#7epTa z{<4FsFV|vY4vH>OZB*Q6Ur2JHtaTxi#ImACkQb;4bIKy|rfTQ2n(3rbx3t(tunS>d~YO?AMN7lOO4u4V$-oO3Nvv&K%Kom?c3Iua)HtcqsXTwHZko?a z*2$D8<0i|8+A*#@wJHV`hF$9^?%3UiN~ZT%sgI5a`1^CDrRKlxtoKnIH8@-1Squb2 z5bg&h{yZV*+@vOOm6F&W510w|XAJ*mKs^iw&VT37>f5OZfh3xlTW#tY6JA2r0p@O_ z3eW*5v}85yxI!p2Ia^8ox>h1+9TRKUo6?(Tr89q()DBE!(B-Y9@=;9*p_+(*zA*h&;JqIG%D z&^4Osv%geCI>zLWLh``fGKiUPc;w*&&SLk@K?nVrbw3SphTKT|S3zGFlH>t@qTJ?gzAnMS^@8fCIL;TdnmD7j11KRw%sNu}e&-Zil*%UvvDcM%ke_?P@yl{ew zW|o!&Efnv5Yjg7DP^o(LDnnj|o{im2Uw~;#PJj4fcD zKPqbX#!zBz%^d-}KPm>wBCIOoW{nx9gBupWFlaFTU`ThW@xk$zgJIxUZmNfb!z+2X zY|KX<0aK*$xn1VIc0bvKM?S4P)vjRT0)MNke=k3t2@1NYs+*9V2q{1iKa&!_)lo}T zB=8yEt;Ft7r;l2Px?iU7?b8{LWk-hqGS-Sp=pD!m zI>qC?u-l)fxf~KTI-x+2m6y6Req-8yfd~!d)w?`3T!Q~nb5HpCpN=K*UCBg`8*Hnj zoE4GLf1z+^&Xd~BGf!{U+%EE>1XWS;G+07cQPEy!;ntJfB!bV#$#S+ab(#5kkefK( z6mgl*ShTc|L|fHm9l(C5qj=byJ0WJ&1pQ z;W8L_wos_3x5;@Ba7uWQ{f?7%i+F+Sa(gWPPVz7a~j-cT@f4*+w^;u-X$yt{S%j z43sN#f9Cq9@`*}4;p!sp{ek)XyBd!N_pkG2W(~KW;bMttO|^7es(7(UnTqG5$OxMB zE+i!RkmH^rW@yo_GxQPWwi`7&$h%RHthh$4I3o{rmmX$ef^JAx>1DbRHrLgVLJJ+O zebJ>_vsG9PcBC!!MY z>fOp!jGK0E6=eGYIIn=4=C8z1QH=mm!41 zEM5GJCOYN~M90($qtR2H{51Q5GA|_@-AamJ9|qU>%DPvz%bui<-9IM-ee`uvEcMdn z@_oFRBwAxA8oNW~FU({h`!g%E&2{LJX zFW?5KD`}y*fEYr9P++A!U+Or{rjhCEQbdh{M29yEo9<`y8j=3+t5~#mg^|P0Z57E3 z?An)d9ol{`Da?)sZ0WE29{@N4>5Ei?5e!Yy$sTVFy$L{&1T~7%P#IMNwq+6$`adFA z)m$iWu7}De_v?j4Fe*N`_>!9?*K+YZEZ-`3l6I1;qtk)Ak98_j^vYu#KO*HH{T(98 ziow5DV>6>xe*%|!U(U(ES|JpQuHA%j6=zUV*ZrVcMM3SrV}+ZV2?`x7zd`+!Uf{x# z?KEcJSx}it&4JEM6T7K8kfjeSHcC8W_;1kPzIX3dR~7zw z%5X-8M_PNuTE)Tea1ebLn2k~ShBgK6w^TbDd6xo~$lR9)D-e#N+n!@m#F2G_aj=a} zVQ|4x;~TssUvf&iXY`-YS?%IR$?pZ1vSw!_n3m0&K;j*2>MnAfPxY8;W z3fV^H`e&i!FPGc!3hg8%PgQFeQG%2+zqx|r9nJ^rr0ndSav@S_Lqn&a{3jG+eh7D- z>e7;@3yHX~k{9V77V!|$W103n!q&#dAMxhBuRrrOqc{wek46fShRU+zV`C}K_V)HY zgaiFar`j)hd3pSIlcOQz2BN%Z$mD-gD$&8CL9eqJ8%iMZAlAh(D7u-$LScf;$C^ZTPhPuFnx1_yC+e= z6{aq#>ySfjz(CBvV{AH)wL0r*jK%7vL|jV=H5+tTwP2Q5)1OgDu9CY#!XNiABM`6E zgWbq5ZqSx53@SnW8I9q{>*f{qdbjyG$(WCnb!pm>G=cjB@9nV6)_UqkTI4d4c0?#< z`@mb05{g6~tOWr7^v#2Zke@-bfX_HbY>?jDIR$9v8=y&K*UKKFtOOVKVo$hif5Y0> zF}rb#lg4)`DGD-cgT@9Ug!|1IZ?d)it01Ey3I5WqFBp4rUn1>U9%hHUV;m;WoR<_o zwC8%w+vahi(G+y5Avahm5@nzySXiP39?6eFXf*a31mYi@br zwAHXAei0ZE&efpU<l2O&a@W(!ujFF*YG-`2Dm~EFN&qeSp9)*XXs$@$YV=bVjkt59B;( ztEsB0!eX(4IRk_PqWf4KZgNYEhvglXC?HyVA_ks-fPii~UKRh#x2%@XtJCE;-i!UX zAoI1|-4k7GLazckW1%k{BC`55GByOhuJ>Xz6f%u@k-53S-orSpS_jNyFc`?HH^}MR z)wPzDT?*FCH5OLAnS{N6%u4)mmG$xt?BsL1i(0S;h!()@zw9YnksT2IkzA-K<|mdf zv$V*u4=~FK$voL5=Y^i$*?aqAX-}^J`p#7J-usYlmnjF#`wZV!y(81N)GF>fy)+^EIPGT zHO&Fop+a*~oy1zNS{IJbPp!SpD)vcA%9^75a`CZ)lOWu0(}58YwZ8Ae~K0lamS8+&W8l&ke z#5P)zbU#j|(JpXCI zNJ8&~_~VXN@`tfcD0NX#e@IePi3hmyB@WJZx;%Sw|Map@A4!UN7ct(6 zx-K2_=hNJKCJ%5D3`_smj4Rn8IGLs0G>dLT%ga(y4PVd?8#(O?m7H=;FU@Kk(Bqe92TIdZQ>(w-8}6sCbTAVzbTl+H$G{Z8_H5HhO;JwZc}>ps zC83+gXCZ`v^j1SVDj|TiLi#Htq6B7`32Z-26z?QOddB>E?MBP2L@ZwhHD)k34~<89RnmMjJc!DUwMqHHw*fQWlJV zD6A5S+ptOA9Kd<88%fkQ_70NpdrFQz^Bu8CHhlxo`_gw`1vm!&n70git>NhCA^C)! z?Ix80)bTCSw$w#4CfQ%&mxQ$$qc&HpNTm0;*+$WCQt3*VUnJUb1 zF5o0=;1x$|BK{?~_5(kFj|fpCfH9a4Tit8=u}pyaUr-WW6Q)c36n;Om?TZz}Bjq7}-1F?bY^FM-7e82KMkK4Rafy7csYLr#{2( zl(0T9Bq|(n>C(wfqEStsDXJwbjuQ^fM&8U{%x&4FTF8|*HNBYwPMaVnFJD(Mye^Y1 zxX;1PE_!%;eB1)$^m3QE=Ci$)ley_8pd^&)N~1JL&z_d!wp?ETz=lh=V92Ilx7_@? zb!+yRA^^}Gc1F<_`jA2IKl0he4119Lh~Y zuu++lL!h*3{LSxdcO0BPTS1S04!ibt5HCcDhjUR#-t^LcyB>9OZ>OXdOuOS8GvrGZRA0vu-be!b&m^cxu6BlJrgYpZci6CbmpkkEsLQc}1ePGVWZ zE6bhjzdDEK?=pEl29N$Ko1`j92*nG?ou;o9##{Hu2y2rke>z6}XXlvC=tMgW)z$<$ zk)En{ewO;M9J*!4WlQJY*Db}a2$N2lTnGzd)7q5#f&#bUEgnUTto2l(P9rMTn;q^* zqAe0g8&cZAS@*2OI=Hsu$T*8{g%^l7uH|=$0hXr6-}9pbR&jG5cSpxfE&yb`uhhl; zW`A&S@M9P`9nV~Y2caY9^0zQ~(D`rb?p7(xHO6b`l!G)J*?;k80#+S88a z?dRsoYLKV524kyLWYf}7(Bz%1pB8=>&YO)X5>}Mvm!k@)H3jvq%A|)M64ubhBWX|X zi1_rYxfxTsVhc&cd!8)>eO9DiUD+sK9g(kf4w2ZMrvs^_w&p%z7rQ7GrLnwi2YNBO zGpn=^Wfe#UD8M_xFfSwK>RkUDAed>RmF6~mSQw;ic;s`05hJKHVa{33!U=tn6sXl~ z#9pNT;9_#1zu|N#>cP72Ts=9=Fb^c};!Bn-c7yoz1_eR&WpJKAcs_qPg!K^}UlPJQ zlB9F^0};MwS6BYAr0X*aNF2fx5`Dv^^?vJZ?U@lbW*Uxak4cm(53tM{1o1YHdowCYp>oNv&#d~ht0 z5^Q2`nnAejh#-xfjElBL{?ShE5Z%W4h+vl{NX zvO?j=29%lERi)Cd$#jkX8B8tzy~tC80#2CWJoTmlsc~+_T7#2=a2_o^k=_{Q772^2 zEU7D=$I-xfmZ)xPS`5K}1$gu5Gxw(~d{tfcADZ)8tPURs^N|kY#uWgDIOrn8@Vk z|7MYUyEHx!Er|4N@KnXWXC5cT>E+^6-d4FO)3*m=KIS`->g(Y`{ob+9 zPpTe435aN^IH^^){*^*SDNpLZ^#i*)H_i*QsNQ~MW1PJc5fKrEMf~99;SmQy)_Hdv zuLRG7z-FJ{-#;z^tc}d^e~gAqQJuFqIXRc#s)u|ikMb~VAVQg0JBU5ZD6p#vEZwKk z)C9_Y9afiGJ}*TzNPwkl1B4L@L8q2d8rXsPbSZwQ98cK3%DDHUU-YSpHtqmyd*{-; z^tHXLEjNKgzje0?821ne58l0Sdik>WJDcs_zkh9k32kggN5|0MC#|SACp+8$K$X|+ z=jS&uF~P>m&Ta#!06FqxO1SZGYe4gIP&0Q0=w>~&lM7_{h@F4*L!#*`NXVO> z_t3Y~U<&O?Gyuf)t$THK_3+=VQ%JS+TMq^LtIG z1TtV}m6l#34Q>uEmCQW;9}9q_v9Rb%oqIh!)c`PId+ws_mODRL+aWB4yU9@n_q>LP zfQB6jiXk;Q_zCsHK3v05+E|^l*o>QXQ2dy%D#q}kUyk;XZRG(UT`>AoK7XWTZ>ox* za5{9?@Y{YMV=jj@$;$1i1&9J)@(+Z{lc?78N;n^KFa1B#Vyw5m2M-?5)$U}c7Y~GjOYRSdg^5w-J&b{hMkb&!!<2dqAes+9RSN=U(yDah%w7W!^MBry`m%R+3)JEF4+ z%nHKUejB*D@+VcR1FmO?>nO3a?+S!yDLLR#l$Mr8h%h~R_wF4PaN7S$du|oawO0MAg&tHHD6> zgK*Cziw3|fs+!eDJYG(<1VMc|wAfZJg2I$i4=c5%Ed2EgrAJ`3$30{uEbO*70brXyv8EKRBZ@@gwE znFKKnl2yku%IB=ZVFBU( zKa?JB%<>JVIS(x+`8NYvGsQgMXmnS*XgGcUYESts(M+`+^%fgDEq|hEM31ho>a$r< z`uIrlGSLm+kVLA7i(a4wpzIC0Wf7keRUY*r7Wt7|j{@8#DP4b-{f5VHXa0JY4EJnf zQxavA2pb#twPA!~C2@i656cffoj@5DQmG~ju<1Jn_js!O2JyA|9;{OLE1%4Wxv}-% z2jCM{s<(^(o=;kF$8E<`j@?#%>sZ_Ax>vhFhl5%XJifm_O6lfi2teL1{=I_)S1{Hs~Z{QxGovlkjojPvpi zxy#K9M5*-Nrx@gD!9geU1G>zB4_-z+M1^{|HxSPr6F&5_i*|CA_@?uX5<|19=Y8x4 zt9_Xfa0kD>WZ-Sto^B1e=zVZL7-xBPKHe5ML-gs<-3vKuJ4l82xRT&>h8F38&devp zr1I1n+8=}ifn=B_7pisFn7HUrX{T0E?u+ZjpYlL23uEt-9+0GzxZ(k6aHLfKw|wcr zLuK)y6E^;K&2ye`?!QD4XcN9HDU*o_5_wDw)#~%j&#O$fdoiVE3&+G4nk{$1*k>`K z>Li~btl@OjSYpt@Ur@VX<~VfAcTu5!|G-eq=D*eaN@jgy@)(Dvu`HAhA2VNb20cYG zi9v`TgB%I(d3_%T2wfj=F+Fd2*g+S#cNdU+%R5X%W+LtSW_9hc>ij0M-#wN4L+C*R zx}xg=pqUpoJ-k>M5ZaCc{mvwbBoS5cE$8K19lp=DXrMxJY9(YxFskDtJs+rlPvdv3 zRl{o!dJex;GgPiHXDaO|qJgJ}8hz0ocI+#l=_tO>`@4De2I%Y`i+q=mQ0p_UAd`d(E5yJQ+v%a>^p@PHP+eqT` z4eN?;;}>7=>Zq~~_u+|5%^FYE<#~@x^Usg+(h(U!+co1VQ-gzF*tB|nq5y~$XlT9# zvd<@=%-x!;aWn>yg_EF@%dHm=IN71sDz(}@=D28ftV$BtA<6?YO8BW(P=$^}uIoHhI=&6l)ds`38T|>m~UTPoESvX)+D?@8e^A&~l>EtQ?H06;B=We6W~bsen_5l6K5Kc`@kO5?lo+PGBZ7V?97u z(t#+&9`uqPjN3{2P7NKs0qToWKAw0t-m>GBx-|6cwXUMLAJDTp*`D@()|+y-{OY&x zgY~oRS3ycs^Yb|*Fv0cUWunK@M*}15KR1diCKvQYgZ%J@%Ic7o_Z8I7I2&a$5rO(g zYa;?$Ecv+M@t@FE3y3|Wg7HW8C8u6@Zk{)hPo&4Sr=377pwc8jg`i6@fp$C1(PEY+w z4caaN1ejMjJwR8Hl1dBs-|{QPy*%d;Yb$Fk$=#|*;ND}Ak!h##GWFQVoUZ+9Ov?ij zr_T16^ra82R#^l#Qxi>9O zyXnf`FAn|=99eWvBr8_$j;>wVY1}Mp051FNke<-J9hSP5x4K{Z}#X}7#$P%FMQmNjCJeYa2Th6SVT<|E9 z7I#Y)hw{$D@g!3fk7!o7r`~1&7AWA=a8n=A)Q=KJGVF&`?e2l9L8=Ep4S6Bo3Jf^Z z(?^KFjDeSab9;L`V84@ufz)WhqZ#8*WxBG_!NuKr#Cka;_?(yP|9 z)v$lHxs)pYBb&8dC~!9jjZ!a6HU->cvtMd!W@Kc1y|wOMQPL3wHkfoUSU;>6r8SWC z^jeWB(% zVo@61{7fZjtKS;m_oZEF?vGMr;K17p_jp794A2)`{HW3ohFB@~E=3h&s=?!TPO1}j z-gj+I#*|KTlCToT)l=5QKsBAzx! zmU*@oSi=mb9c4gxV0A`gQxoT_=KZc=@%n|(9iSoe)EW1rm23kL=mEb!YQ3KES&or# zo^7nL4nYZ-FjM1`k{*ov3xkzaf6_ECDvy5z>LkkITOrg*2fo61Gb<*8KERB>Jf0rw z+upJKp+HbG&EBflqNM1K_f*t=X$PB6bh!=3X~U`6p@fQDDdHT97LHZ9(L9fhN#{L7 z@?&Z?(tOFrJAvZ;0<;TZmjNaXJ4qre14&8k`_bGJRWBljW?!-Wv=4M&D5fS3P<5>s z&sP_bJ!;2usE&eGcl3m`lO6A0UyhNETh$570>))_?d#L6DX(Ww`9>*bn!SKT@}7;P z(x)+DNO%(gCgi&$6Xg|?3z&LC{NpHo3AU-YntjlT2PIM64l@Mmfw1XMvN&_@D<@gp z;qe59{;Rpg--LowK`>&&@tj+WIu}7WCL{jmP?v&!oj1+@-7)+(^TomyT8u9X0<>%d zkejQ4Fp#>_wA)Jj;QDMJg1?ox|K*M9A>y%zxjjt9LT<{}H;p7UaC*GX>>%4ve1jm@- zPL`-7RdMC0!xwc2jfF1#GNN!4BX!Z!q4OoGJS_)(!O!>XU@MLl!J>&~cq4M;tAI_j zOqGN50nFLIQd6ODKhKlq#tp82b#%^jz1wp3{N<`VFn4c9{CERnBDHIu3t8f+DY#@G z&UB8)*VTDDfY3sTA3zWdBTqB6!}@9!MobS_Rb_TAyX~@HX}lk}1Zor{kBKbFbf4lG z7!yx*aLNI3qFzPn-pu^%3hkkKWGYn-cEAkKE9EBU9Ys%(%dC}M`hq`FgB^wir$*qV z|JgIWKQ7QM;6-G8*Kd#9|@i3NYLD#JAYuU$85$)~}$p<8; zo6eP+R%29%IA9!&LxAks7!c#@p;apnP%zrEr`$;vj0u=ViW7H~{uq z7EjYbC>?bc90`hs^AIxr+;Qzm?kdv2J>tYPE=7v{`PY6;Ed%7~6Tp;P4q{~{#-H;B z91d>F&w38;bn^z8%Z3)aI{Zgea_ALDg@dI`U^-PHEi7p0xDGOy;ESy6-@iX_JDlFu z$g|j~0ryoDspe^BYQ;7p2PA{*Lour-@^wvb?Do!{B5W|d9H@uTPr(SjaHh5sgpei} zPq!#dY&rHSsqFaJ0P2Y5;PEY>g9&o}bY-UVT(O_FG(1;vd7bH&ux#!f#BtZwWKJ~B zbMdFStJ(o>+@k6J=*-MR9m$uJ^b-n-L;>Bg9ljm}^(js(9lR5SW>ZOVp9vek(6S!LOflK2nqd z*fcEntBl-kg~ywVrz-tD95!q@9MVk^>$LTP`;#-F~I5(LL&h|t3B`8`(iU((l&j>g!G%&Jfq@)8xPq#R!Mkh$gVh32vk zAt=IY&#xXWEx(K*r1wgo13C(o5Df?gAF~lZldY;i_$~S|Je4Adj8`=u$-t1vrz0yP zgK;0jBO|dxi$Jl*85M$LILS?sV+s{zM&VdP{tT!>B0n`zVKa%~T2na;aC^B^?JtLE z!PV_Nh17mR|sS5?JtGxc{TE?^zrs&4e z$8QZi@K_;t4T}#}`dE9XC#vVR^(~tgyAFT*y<0uT=C8KrTYUk6TU0pA7_SnX;pO1u zb}JB!nM!!6I=TCU%nI#jx-<_ zg4#XFomfDvVPJK2gn2JQ*5<00cloUjfo~xne#?ndcT)&632r#R3RCO_uHkIR~*^t+WR&8ngL9wO#si&$Pd?7$Ya)loyg7W@$y9u3Ly5yPL8(j4A|-H9Pkdwwf6{rYE8^{X z@WWU}@VI)H*zQgE7r&K|#EsAB1KntDKd;R(BjWgk%&J;a)NAS}b9$%ocwj3IwE??j zokB6NDv5N5j7@*s+@tS*7eZZA6bp!x?VvxxL6yIWc~9GaY>t&K12qMgvitA%KQuqO zgCL)xU{CxRID;!^ls}tk1GCq%#Z`UOkwaJe>Z(|Tz2v;Y0iUUN&&%D~4xCu) z@u&v@K(s@XN^gY2ZBQVM^K5M!>fzTt=?WdIy5tO$air?jYDh-^=c7-4jgFwKTqC7U z$BthtW=7Bwy>t~d*OO*ZFQ$LQ0Lf*dn|=24~eUlf^|W{_@CcDaE< zAVL)ctw*`#ZMyxBfD zZ%xLQl51m$@z7!m(%eW7_*;4Czcd1r3k>i)p@)DH3Fr|m`q{LWAC+S6HHz+A_w@4t z8ky#xVTU1qXWMy_toO79j&6us1=6}+1`3D^j4Omp4>$g<`kO4;?OPvF;nyzJD3-fD zK_^Y~7O%h207|W?=|ay_FHgv}Zy0Evz3w1o#rOhx`VDY9%&$X;$wlh9QU8%H-|b~x zHh*EdT5oQWC_CVrG^A}%yP7S{@G`x}PArlq1QjEkgK1mpR~qxaYteXX0dAhaaw~BX zGIXMvmDEG8Rk#}x9AK^xOWcl2e{}j2kM^P{3axIv_S#de*2bM?sj~^*GKsH%B_%Jl zhxD47ljL`Q82C6~lh3K?=~?}418sl$Z57PMebkPb8qd|gJhw%#4m|8gpIrEiCv%Y% zI#pyWrs7ARht^eNJhy8~T2@#6(_+bB4jFQc2=Is3F-*CH)BRkbQ7Ate2_XfNM7u|e z@-M76d?$DT#Ii&?^is8Pd72Jdk+f;aEYY z_`f}d^riBeH;xLwUYBCOH4C>Vi3v7Hk?CpH0!^?>U=7tlcnzfM#o#1-M;mh|6Ri?7=N-SJbkC| z%|e+n{qz?JKzLjaE4e)Ip8K=%LX+zAcPr^Me<-0@FE0tz=9(Yje$FGoiiH%BL}nm! z%Cw+@L+7o3Hx}R9M&dN*1*;JlI9?-CilyKj9H&^Al%$IN-WUGO99ZBH!Q6}7J7v_6 zluHq4d36i1M{hED&9kg?-~onkqhyIxk>{nX)jykdrmB!k( zko}6AGC2pSbgw3*Kevmv*gm2t36Fv-6-XDHX|mMlG@W*m<`(jqHn7{2$R`$vRAwxB z_pBG?sPLvT7UK|r@*D=7DZ@6v8#H**?6dzJSRf#|dJ%|#0!9})Ivr3gl^uqH1qq_} zMt@RD(Lx*>Z=`M36$d*|5^HWhvEdCg_Sk`4j8i{AqD-@mm;xz>_XHmp;FFpj9JqTeCQl2ovXFaOgdO+G3#?-w=W_cYd!a0GjTz6St&$IkgN zpo-4_DWgsI26Ni$#9|x@xR%4`N1Frw1f}`O`d9O<%YaG}f@dL_+A(uZnN67Z9+o=2 z!~0qQXCurCp*=xmc>jwX_bBy=RXa`#YnI)ve(mYnwj7k7nP#?Re_FmHEkP zfL};mUDAHy_(96;vnxDnYJwsMKMa6=51MFNJ@!;5d<_+`X|5_#f~6mS%*P$Lt9e=m zW_hp#T0rwk`b%_JCTljC{kn~6_qR)}a$a4nMHpjEGY&{7=(~K@%!xqiqLe2gARD_Ei6(kPf=nXd`p>1@DmCX$ zFEfHse_PeTaxSw(645cqK`cg9F(5k2Wzfh$@X((D@+Cr|Xwb-~uiKhm%K~rN#WRWr z21;m$6{`Lw`JMVm>pc5(eAoGWIpAcQJQ)0iCeqo&={86bM)A?vTI0PS@|uEQ&)HUD zs^O1-XrNn2@lO7)I|mQfqn8~-B?x{Bb#?EZV`q5$*79mt&0RZu>!Ve(D5Sb3=71(b z;HKHU-$uXE?iMgC1PXQUuOGUEA**KD+gvR|)7FecaM?ZdNHSDnhFC0eTg1Rnn1N7&Rj?e3SAv3_YAf{6} z1v-4d82L%_pB}Nd;kH(>*HSA++!xHTFGnd$Yo8lWSC-tJJlcQ2>^xaSjFHA3u6O=o z9Ldagu<@iZcr^CKdS{H)IHHCDl<}{1HFLLarqX@3(MxP-UFP+QMwTo0gTTuPpwrC* z=#Nc0$u6o}WAPrd6?SvTamBI*gBDzWvWaEC+s5T{bAsOQ`&#!04)`3lYe~g~&Oaxt zK0llA8Pe%9o(a6zY)TQg;I1ycX&vd--(znd4qp^mg3SsB)Bgu7^La}7KNjF88B;BJ z7yoB@LFBxF{mWp(QgccR{mDk9k5EvOf6#NIoBd*edF~(VM?6!fMnx}EQ^g|VI6q=3 zN+Hg7X%WC@r*4*1jn+0W)8C{=V4D_H&gD}~MQkd%0 z@h=U!QZ?1Lii7{y`@T&1R~It`m6NT1#T&m}-eYYFeAi79ypXnF<&ix_%E}c=9lsBP zjJCvs;J9_koA5pc5A{qCDwRK1U4Lb01&9a{y8y`d!2jwXC#Vz!SLp)=vHkv`U? zzzOjfu=4>$DMRNXE=<$`gcO3J^}}+zfUb6-(r&Xy2eYxcn~Sclt{ANZO8JA-D$pPu z9{4*u|9AEtuq)?#E?Ln#+tns1yH+u(DxEt8h*#hBnG2}E$z(+$4@(mqOmip=bW}$% z>GI_(v)*%O@5%&q`xn(ZLPTpf_N{hxOB zGHVtDz(Y5jvG$2(W{b7peB%dVw z`}YjAf%ZO9JT0gxh}U)ZDPQ1Hj;Bqe9NrVbOS&TNir~qx8Nk z5?=fPVQ4t;5%|*PiPhDg)Hv0{uG0#ee&8j66mZ-F`3e_QmU;;JWgm!O3yDH?9B7NF zlYxB=vYxM3=K!4~j7FxnvTbpk!(|1^1@_qc^XI#Pie6!{EzeI|Y`I@DMf!7zAY97|bi7l>rQs2JHNlzM^1>s?WrD}GN z_f8v2;}oEnf8ytdNf;Gc-a{S8F~AH$e?1UrIDwVWZ*2kSC*Lxx>#^#{>C6A4=_-Sw z?B4z^4bmZqQj&|LfFMZ2BQ3Br(jeU--H0MeOQ+=0-7P8I9n#%h@8Li5o*6zcd|+qq z>pthYes#zK2q_u2_vyow!V*LMfqiK}E1-9|rh-Qyx3b)nmL^kaEUgzjy95~}nJu7d z{qV?~d=LO*4*LC0^SveZ9M5L1$?i;1GfD=ILQPifH|O2K?2Ii{fP`^6WwgL7tq|OY z%Fnrb-b!0vMHxCZ!wxfuH3 zFT=i|!Cr4m3_L?$zY(qGuXW8heK0-fTlvj2^6;Q?(YLD5jYGGL1|>LDGgc+Gvsa%) zRx*eYye$$YiP5>+uFKEg@kht1FAAalSL#pg&*bUcfh<9fFA^>u4p|l=!g$NrBd30M zzgd*Boq*U+G4_>?^KQK6iK>15esc7zVdun?Qc*?q10hKV_Y+2qQ7TKiC{#?$!!B=o zK9a?M+MdYWGID|Mukm~-rKQvP3?w)+5x?kgEVY;xe7%MDE_x=`1p7po4K0Q z;*Yh*{!iE&IFg@T++Ld2hn?V_Nz6IA5yumZZgxN0HlY14w1#^jnZ2npyMN<^{v+sb1JsLk1vf)p z6?KRAIbXWr3QR6OF9bUh}!;iLf-jrcHBCOIkJBd;4V8wZEm?oit! z)+VTLQ6@jT0J=B7_luvrJVDV?zH&ay?YA#{@fE`fnIGW9<(5=KHoi0@BxK17m`D;h zbr{sXBI4p#i0TD*$31P^81b6epslwi-KOTqP()JOf1yNqIhm9yw-#1UM53Of#^{g= z!pKMbRJJuDiCf1U!RS+x)r< z#2gY3q;Q#-+>v2YDi>-h9F=WUx5w^nb$hLy@iD4kMd0W94-b;UtiYd6m4h@Rx4RR2Ggeu@crgx@;^&a z0R_>)>w6AF3?R7Y-hR&)iX3uKv+`31d)4kqKBhobtw4*0mDp|#dbWJMfhAJL(c;rC zZ?0ux57_o=*5gFOeAlTmp{96Jyn;vw^;S{+ey`{4Q5QSV(>W@6>W-Glk8&60<>kTB zY+Lm?$iPf!g@qQNMU6j%LG$O}0==e|9SL#>!a&2ie$&y>xq1nuhUqeZ<=Uugdpqmg zyatx=&2BmE_375h9uRw#{6;|vKz z1eVMXqkVY0wh{ldT4Z?9{a%b>|cj!(#@C$^C zGRp`FWn`Cs>Nd7?MIZdB2HU{E5)mCuiT;MdWoAPX8i;#Fs}oYe>>z0up@2YJ$v8yQ z5S@1ji#gLj9|c1Ed=$34zY8`W;sC1^>rXgdu8Bz9JV%()hguK`90y!C8 z^5Hj*S^oE{5K z_DvigwuBMosP4OqML^0jMWs0465Qq>BevBqb$P6ciMkR#a4|sH%?F{A2Z$ zRZvi<-6^X7@|1)mCiEHCI-@wx{%Yel6b>1*JYRhOJwuAS#2=3Rekv(XitLNv2*(l&5AkRD9iL|}ELs-|53A7_ z{c2c~&pSS;{{)hLkRk90hry3#u5v5olaP#D(0~UWfH*tJ&S}%s`6A27 zqPO6wY7%R8_(<#Ucmq)zu)Kd~SAPG4ywV$J)LeqzHccTzeTQ0HvXV=p%iZ<#=s*aq2E?jAA4P!A_CHUP6)6{GNfJ z;S$v%l&Zf@54RoXWmJGf|7uINr&sm-ZfnY&bgl0J^R(NNr~P>SiF>zrjM_Yjv?OV%kJ#4mjcgu zwrAcQI09C{Y$JQMLiJE%HIVeyCXz?CjTNrUsn{Dh@}(@~&?q@*l$)~RlT-|N+!Bh+ zSau=m3g4DgG9U`{CwAL|KKG9MkNvi2ZEdaFkrHI-;^q!WuJY%aeI7~+wW}##!C-Fz zys3Bjx3~9FQte(DB~QW*q3MfN@cqAr5QSEAVJQNeHmdeX$k=st6p#n z#E%y1HQ%;Zb@%2Vd(ICI(F)^}IgTaHrNM zm>!eH=&>MN3Dr}YdX%7x1yiEr_L7r2YgXT?xcpx@b5ln(7lA^|ueJtp^q_FeJOrv3 zK>-x{TbxNOEf)*Ffb+sgjM$j1fJRbOiv5aK-q|^(V>H{R$)weP1u~?+`vXal9TeC!mh$FzZJZBABi1uK-W~Yu2l5arFvvLg-zsE#8{|qVVkkoho{NN}y z&(BQrsYX%eX{Q!^{2&g02L}%hfs<4>Dn9;dZ7dI-+}UK76fDZjNJ5XQ{*rG#K`>7N zDM>kAcEMIgZKTTs1n)BQ@bI{;_r=cxMU9@0L$=E%ZD2SM0C$3at{xo|L!nb@*bxEr zI~DGr-;htpHpjP7A}9xs>C+W6#P!y@*>tADyb_Fc0%#C{o71h8Mleo|_<*7K^X`28 z=dOl^1}jxnLDPS>i{SO71Sq*|!$yk7FLvFADS0EZ;kHC6X$95afjz=)#4D_&+=m#E zRKv!h!c45_M~n|Q&9g;b_g6vl=y>-e$F79owYMKw);z!q)nb=rSbw#3pv5b0nnuDg z#N0rq=yO^Yf<;Z%KDFRwSTr|Ch27>MY#l`O;|FASb@=whuiw6(dM2obF3G2rrB05V z&`Vrhlgn_7k{T>8aBbzSdBm8$;*StZ4&#fFL-Ygjv#|)zjoBh`uzogQP8{P*CzY@; zqEEz)OsTGnh+`;mc2bIcB{kZmhb)LRmkUImR;&({cKZ^cK%}5t6=dN|(<^?n1KSia z4Cv%E96lSkt`FS?Pg)2>nM%Z%y!hhjeVD2J#mlATi}%E79G%8AwBe10GZn>EY?p_8 zkjo#*K`LS-G4{KbyWg~x7v5ju>bd;4<)X;^zb)Re8WxiA5oo_RSalmTp7B_W)d_l> zL-^QxqKR8#u8+RKJUl*1|L>Jve9gsGp6an*O8|qxQkxIkp1h}*POu_nSQ!fs zfj=!-(ap^b;kN%C!^+D`dSty;D>!2(GbYW4Ei-&~douVTS;*_U<>V0=<0{Pj0Q#M> zvg1EML5Uj^9sR=nX0JNTcB&-(8-CkOHku9+^L-sr(#tn?A?PYgkR0RiUgQbfa!@UR z;oqLFbGF>el#c2p5EBNr)npjZp6>#TtR>_2_I8e|-?K3-EzJ&8WINbBgjth$EPwS` zeprq9i|mHq=S&P~c}dNFvfx-xwz15hXb>JkW2|9!h-NN!zV$oIhDykwEl04p;aF>Y zMS3WfsPCuub$*_O>w94gdKD?r>l`lY0x@DrVpI%Ve@-V?ch2g`J5^;(wJIVf^G>2Bb8i%z;tMF#CIj{M~ z`1l?S8buB?Y82w%uTuQ+nGhCDcJIfLA6~fHj4h2d>}7ErbQ6>t3H>(D2-5*8852d6@zBs^MYH>JJdQdc8A$|7uX%ZS4<6~A!_d%Bb|5lV<-Mx39M5fCV|Ao>+Re*5k=GeU zD!qL4pdHr7T;NoBq@2w(6>JYA}g8orEwobgfw`wX8%FG%pI z(l9=5qS>B>nJ?nneKR%&HHD0SVZ>9YhD89qN!XqECrSW+G}o9u3eEK^ZDO_TUvi=} zUxQl?4-Bc$85#s|>@1Mwt|o;Tlt^{nI7q+KdpaK3*z?KOiq@k-STCyI65e8luGtrb zyHFiAM!~O=IN>9bkPyAf6C=#+N@kA*!*V)wUDn%3L7(U1()Qd$#q`6IscuaYM|Y~c0SJ30CoeDmgG%#=b)q^DELpbN%%!PPBlM<+`m!~`j}~| zSJld6qa-7HXg+Sg=eW+veO3qA}|bt&Fp zyK-Z#$DgI{-XKqix2-V7le)*Xt3PZ4lsj)u2 zGbD4^>r(iBIDcbY9ZwSRk4KTbP+@dU10~qPk0~=<|I4pZf|=nkjdWZC$}Z*zY@)OL zva)5~Mx)~T#nu@uSABWRTSYxvL>7ja6YL9H*EW8so^k5Y+We-il*98US(4OR7497h_=HgEY2M9| zXa&5v#rfFyc;ioR$P(GLmQGq_H*_HLvz6a*lV(aOJ{>HYGF9SJi;0}MirIzYL*$%N ztiST9hV`~^q4@H+Q;CKkg&?Rq!acU3XqJ9;b%>bJZ1$V2cDz@Rv7~(#v<54!-hL^hmeP5p$GARLw+C3QGFzjEXX1~c#%#)Y5LZlKvIZo0M@2iW5q zPNPOOj{Tk5ZyrQqxtKLE=0*+LE!^l?m;wuuzFJDeb}Q22veqc{Zw%&76+>O?_-ESWME3x4piT?9*{`?l0m#EEXxe`q=T{xD;VU7gw~M2Wf(D%~Q*Tq7DZhKGSZSt$zK~Sm z$i&OV8;nsQZHU#kj_Xd%TiJ5WE+P*eMJdzw7)N$Qok zaqWmki&Xw>r#|!k#W4}eeq*j{YbZKh#xsVnBL@M&ss_l?a}IrxHW2HtYr zy1Lq7@nD{g2@}4*Bn3w>R_fx=Uw50L(W%f{-1^If0*$VO%)kUT;0$hy*h0?Z22rq8*MfvS7ZwY5Tr>Uzu;vxQHhrOG;jc(& zQLsq=syJ5+JU^vPBS4jYXQ=~LkHW2kl50%woxwl(bnU4rlbOZ-i5nliR>!{>u7cRe ztGVodF}*^WyZcTLUOJxf@zM}?biqvXq2ZmN*a1OdkY7TJvc5M3b;PAWk~|Ca%)%e( zA6Dhb%qY8578jza%td~2 z(~P!;#%51{{~3T3=t+o)={8nZ=|BisPL<^(8$D?0>A|{^J249Pp2kSe2jR&XfOKpD zcimM-i`8r}{E}bAadhH0RrcNT6|cV@UWs{@_-PssFGdrxLl+PmbCI04=6QB@HuK1i zS>WeanYf_1I7W{iNxn>!7~n)Z-5Pxll1r+qjkMH=AT&#tVyb3h&qCWp;@ENtuE3d6#Q)0u)yRXy2 zRQMY~UGhfsvxAn#jc6+aZfT@!Wd{cb<)w%a=U!W};pn5~1CTr-|rPuibEpd(F7Z0Bpd(O3! zJuymtudl)CuTroP-HQzw_De(Z-N?^LnL)+)bwSR5>JUgAwwx9;buB2VRPdgwwQi8u zKyJ8|sh#t8qd{OOPB8;RI&z?hC>D#LE+)Wi4rj>%RoM0H2tu{X$tQTpN-`qYum`wn;qiXHPhM+9&s0G z441@)-z6VVsjvR+m63o9aneBV1v%VJyiTfY11@kWvEmc+nW^QRY+-@EX5{#ioCoUI zi!lE)2cc2N-pe<{s*-8XGjP_b}%D4*SPpC;!FAuZ4K8cX#I=40C z?Dk&Iwd8TVVBxlJnLB{wwe{^#Fu>{1I`iQUy~w7gKudK*Bp|Cil&{WSSyD3O2&ViT zY%&h&-?G5Rdwg;-ySBPo@d%1pIz4>~43CJ}|&w>4G0dHC8#Rz5tr~S%Z zF8-{A?$}l*j^aR1k0=I>dPoRYV`A#jb8i0{i6B)E^xC+kig1@QBP0jRya;jS9IN>{ z65!ZSU0=xnCpHt{^v_SX$6qZ2AV=W<;6wHP{{AkYZQKJ+?U6y1aT9<^JTdKyv+n^r znEH!%u0yyo+Jw9e=0cv42#x97gXm04s>s|o)BnAD$+u>YnInP7BZf#( zf?aSMXm{AQCyN&~hmJeu;%0$1@Od>56I%ihWp>f?q#x1SE2Fvf+;)`4|L8TJ3A!#V zDm-Gy>=tyEbTp$op3fYmp8ohAWi?Nl-%$4}8M_2>J{kl|jHx@?4@G1@%~s~1 z$^AI*HInZDIsYzJCW5k^`8x#in*SOK5mON~uKLXQ#|rNQvOdNi4rwNy7wF}()Muh! zihoide^rt?>kT4pt%-~|^b!w{d>dq@pR;!-w-$FLn}~o-)Nd2(d*H~Z75kCq?4pRR zm$p0qzZSrlIr2ZVCVyt!Tm_xBSKDzkC(kfBqCQ{W9EP1C`R0_?)EMA}i|gz+Hyc%- zUtzN2y<@ikRSNprdh~N-q|DUxT#KRbul~bFQDzB}LAe3eIzhSOOgI?1pEeXT5mG)y zLSM-(Etq9>eeQOw-8HFRxvj~1+`i;^b)0M%=7lRk5K$f7XWNUbTpFbvED>AL(USqKQ+MTN3PiL-Z6^i1_b6ztfaCSpWI(bqpS9Jn;G+utd>-pQ+5ulyC#ysIXzT zdIVxSO*Ft0aHC$GKtG;1T4_0%1m@!1#~R>5)i~Q4&A9;ertqjbeEuSmCn7}IsLAw6 z+9zvGKKiV~1`10ZK~1=m(E4GuUu9GthJxmL#2Y(i%(fUfj3w!Mjol~y==d+Y-b9vc z?11&2Mga(^ySu+Rs0Nbzza~$fvg9Ir2s74?G*R>AXB+EW?}iRZE=WcU{GRLNso(eZ z%rh&GR_QCHA)Ro1Zq_wQ$JsTfV^Fb^iBW_;)5IZRY1w0UkR93PWQJQQMBPiHSm) zG?fj5!RMKo>w;UA*o)z%{>l53C}i&s^}YQDIl=rX12P$AOPKI zk*S?gX4vbuoIa|Ax-tzdgc*T_NUxLdbrK2UWWpc-*_Zwzs%Fiicc@4_Jd85g%}oWT z?Ra6LuJTo2vUOMV9S?r_Z^nw>o&?oCqB^uMDr7IIRqAjy5IrW_eD(45=k~e3CC9ix zHS)>vrG6v%yDu!s-+n(jO)St?rs|q$JLESwdCq5TKTryJx=sKbWilPuWA?bfwl?dY z;SORR?f`=K;0Zv~@idQ-ub$?vAIKMew+{QTjr@mc^%1`Vxweci=58`F zP>u`wa5h5h{L_1CSlQ25D#;N%PTx+t6+G31{g8eM=cJp_b%ky`x zcB!EIh^}&Kpm^)BxVTw$PN}r?^RLh zzRV$~p)(WbxT1hUw5~6jV+kN*j+;ZGAqdy$_+MF`gT6{4B?}~!Eh+*-$AVae5Nx=; zd^zH~uaX9&B{n8Tq{_x`@nY+_qYOfwy$NMs2aaTUcOOnlGGXL@6_2qg*pq@9I3U!ax5$!;AUE5JG5e*6WR&drx$8G7EZ@rf z(4lVf0u#a4&Ze>}_}~7yRwgz;`Krx+8jnZBc5ACqZ}i2(c})kBWFS)>=hLPhkFMEJ zK(COV18SNYfQ>rZR^uNP6&3j$*Zce)Q)#qp9N1^Kj8ri4a@)pK8bYv8La_EPt0-3b z8;fzeko!82o9Vvr)+QB880m^7aGuYHK1ivk*l1M+tNvG@T|H0^@)XG-e4weUTT8Gk zk|qZY+|3iVnzRzIytKK0tErAVc2Ru3wOZ?qVFWpHI{h7&IlV~ZQX?uQRi>X$O-luG zQWb;|Nl7oB8qQuTR6-QM{0E1Dy0tz3^Npz3X0k}iU=LepblKBd zK=?LeOF?3uk4Iak!WJ@+{$zO$E2af^@cvh6{>{8#TBrsNKMG+krj8{LWp)JDQfjW0 znf!edM#gD4X%r?nv6JzgZ96$Ue2C#40(3wEAU`Ev9P|e#iy$EKkOJRp?nu&6;`}C? z8Nt!Plv-R9Up}M}+@M=5mbKmx(t8a6mIB4j-SFpma4w$g%eD}7; zXb~p~E&LVJJd#CN|K-JTEC$WNR|48dFexoMH-H?p`U=}cp~01-3fN*@8CaqLXsnM$ z6SLhXF{l{nC6UMLxw#VG)pF{_!uF;Zk5a_^HQMs^%*<1Ds)gzmybLVvx+pzZ4%mIJ z{*D7(f%QL6xH?!LKQ=i3`}0izl%_78ng*uEa@qdaH()8Da~D3iA@2E&ic4Bl?q5bplqxh+#xU}k((6PdNS?aTmGNZx zmz_25KPXBl9IZ5@N^)eX(KVi7s46OgCR1;=iqYMBUXVdT^|9L>9F~g6;L1?Qi-J5q z4;eL4>3~HPI10YLF@%{zjjivs2ugze{KysijGe{E_gNY-9?Y*^x*3`apBcoNiGw!2 zjlo|!6AKi%iNy4ZAwUucjnVd49;pj}9XeiVii+tgY`t;ySQHY0q%jkV4Lb<_PQt@r z`VVGD7TER&MFj(2Nd-0jVu#*`3@VbAeg0>AQt!dNODx@?mq5YZ#4Fn>;ccrCK@uU9 zS;>J}i#3a)-t_=oh?9iA$eKj)2Vj^xZVs9UWuw{^vZ>EALjIHfz`a7~V6QD3LyVCm z>m>n>v+IehxV6Er9)ur59FM6agl$;cP;ilwGqdGcrJ>(xofm`IP{# zL6pKml1fa*kq;U&q8H31Jk;!e%K|1|tC~1=@_uWZ`kYt;tvSgc`tk6q!iu-+0py5} z0y27hEy;0U3v7ck3^Mu{G^-#i_Uasnh-TYDZ!Fep2zfqyBU3!_l|jq@V3J4mBVZ@<$G1ohkVb)-D^VXlvCMj=Sc=-L_mAe;<*arZ7F z1_lPfRrtpsr0rxLj8x6}MMY1cZf_n)`yKsRLN{Er@!3Osz&9eLL_EDu?$}!b^`oXcYkncRxTY;d zduL~gs@hMG9UNMS#7QvCF){7jbcJs1Rxx(*(6GC|$P2R}NereCqkcVV!i>2iBD@YA z4urGIE#NLwzPs(wn3&NSo8dNl(LgTtRrh#ue!t&M!E(`_IE8UXf@C5Hx=L}+(t4Mj zXd~kZv;b_@0Mc{$zD(T7Vfr4{;JAseX!;f_nWgo+pS)Bx*~CM3SbCNhB(M{C#oO3b zF+aNijY-DemA<#+q9p zt3N%(ntMR%>_}Ybp!E&|Os2Ex;E|x_yz;v|Y{&ci#&)6aUbjJyY|*|#lwqf;*L)jobGb08>7?tazx!Zyc)?k+=|GK?18Hgm@zFh*Pc=|!7Jq(oP0i!>Tp zwkUkDZ+L>Iii2ZgW22EG6B85Hj2}`Og1@0=#0^1~b-tRQ{qe)-a&2*!GXvU^p#F;V|S4+nYAEzGce3Y9StBky5^rv^|+jp!6?=bBU(XgHT zC|_8F%ED`V0}*9Kh*Sjz@|VP=>0h4<;};|7BVHp_!w51#g^ZrA=% zAjU&t4Mk`DfhkJ5!ev&CvH8#I{VN4b;R6u&5&*Oa`R-tXKL^5Cwa5PDEj@kKxC`{u z_1yx%?->RXcy@dj54s|ciX|brnj}yMfu=1ZWjK7e=ZlI9#SLFEY^jAJn5vQpJ#HoG zZ+ntHacS)UGSib#BvX=KvlOoS9k+M_cJ%HCr##&2f)@ROY6)hd`xFokn7GV>69a#0xE(26yjQB=ZySL~QL#~% z-SAf4q?gG;?Z3WX_=d8B*25AihFy|g z^5w`-Ec+_dP)Vb7vijyuQAeFBAeHrOBV<2`PBN;U&U%`rah3jQTc6|Rria~jE4Fw4HC?jljoX!P`=RDj?nb2fmOIE$@Y;NwS?!6k1#UQ- z(gL2ZoDJ1`jIJjw-pH??QCt#t?9K(p9U8jJ(a@t5Z<+$Wyo2yI9GU}xNTn53S@c(I z$$p+`ht0CZgt~_W`+$^DiRTKXzRV+;6*$O<+B`GNx9veH!j5AIkCi57P=5@W5Q{Vgd z?>tMAnN5^Ry`->`dFp&aEc<~o0qqRJA0da7lcZmnoGN=r+!eSU`XGXGApd3{c_~4s zfnyO4^8621!i0qc`hyNTqY zDfC2vp6$w{8z9dgJLmCr3FAJ~f9!RL$tl9E1~LWb>-3|CNWv#j_SRvM*-lF9n% zk?1N3)Wx9~ibs>2o&0Hr#FtV?F`4vUtiFL}gU4&mc|k$rngEQY$z)2S4m7*@T;v&c zb1nxlANQW<{lM?^Uq-|zgaqjgMt zNVXvvzA`=%wR~lzs%5tPP2KMAu=y6)7RV56qNli-`h`&PgF_}>H}j>vT>Tv;#5`YN z4lgv$Ds4rR>mjTw!JIc|ep}U0B=3NbUihq7a=n3O)1&e%g0Afs-9Cu=HFID2!P|T1 z{m_~s=)quWY@AtHMbZhL@fb)TnRq-sYH-r9PIRrLBYOwSlj=PFBPW`9nf5q~@2^Xp=4JCRD}+TT}YVbSeQ)isj-T(SWq*|2mIW0 z3F;7Z#kLM&rO(?^pZ9rK9}=l#`=M%~NOEY1Ii~!~LEyu*p9f)&7kGdRpaE2UIS(T5 z9p#4+R1hR#0MfE8Kkv^?QwOMwX%nF&Q_)^EUd?iJrd@jqNkq}Pw6)Q3b$?P`rTb8M zf)Im1fPk!6mX#@YV0)qx0tuhSO8FGa@KNm7Pj9O$T`7aC5*%i6dOwzK16@ZCFA9~( z$@Z4rq&T>;PDCo+^DxRFL9HSFHtznBN)CQIi%Q%aj67f*iro!JstO7TD4<@sq5CCpmG( z&oGzoo?+yI+l6ZSL3{!~gjrMU8>(G*p#wvLz%RN#QytEl4zJu(U&m!hLMn`Zr&Iw0iY!M?}*ij@^-3WCfMf~O#jNS>R=RH&r8u(9+- zR8>{k9Iy5W{5Tq9aPt-|GtC#`>*s{dwr~u`kzT8a8E3t6fyf4QN9+9>bl4oCu?DR? z<732P8gQt7)6~@5DumfTinO;u5Z4`ub<&0oc=PPGk)WYd@jnZ#l3mXz%*epeuo{C) z9rE^*YKnU=;3qTZG-S9!)z+d>7485C-Saq&7TXl2z{kM?L48_opeMAw0`w0;RJW6{ z{Fj}wdqNw;reIbrV+sm`hL$1!$7n+O;^DRp*B+u~6QdefDnOw6n=b}grg>vzWMru? zo+}JcJ^9%nM%1lv_#ZVVCucr@L_HR~Z}u7^gI+vUG{;9pjR7(7bad2y!LUfOkJ60q zaW|gLjx;wedctG1R5TLD3$KI7^x05jY#muiL%V3K}e{VEgi6-VdeFbLkymh2W zzK1ij7n*hRXLHo~E5 zog(8*>t$_0J6Tpaoo2n-T3${{ujejEt(1|L-Xg@|~*^r6hE0w1paAgU|z)G?U z3U-%3z)4hGRMcourQ8(Ixrl)VH{cP}i!fu%iySvwzWtj{AVzmlsfvf7&_58J?1mBa z#X;oWPmB^1NpT&-#>5{lM16W^)=5^4JW=$o3pksR!GqiHbv5Bo$(^IGz=KfGryrFZv# zAl<{fv%s!DL;9as)8RgcbrOf%l=AzHcl&3MAlol;tM2)KS z(Nx-S(t0HCc@{++{#3&Lz>i zCs~`6KU{`C_6bIH{dg4Au^$o%u*5ec^_7zM+q2bCOn-a{I94qlF3ezf{wIQpL-Li* zE_pM;+VScZz$gX$jb&$#=Xc&7*1P>jirlDMT+Q>s3iv>D7eSBaw&Rcbg#1U~cmIU{ z)*U^54CWDv5eJ4N{X3r;8w}$3mea)1^~3%?@`GC9vhX+qFD?dOUYx&w9QCVj!DQbs zyVs^-e|kW&OIgwB=~whfSafserfdyc=vgIYi0R(|kwWXNZL`+~@ZdNCSxQPxiFhz> zZQ=5i44|vMHq(RMeE{#b==kK#kG_kRH&N+b&+aHOx!A=+XXam=>|Q=~-Z4HH?C+Nx zj(dOD3-b%XI;y3>t3YjnyC`aBr^%rCt^${dsX`pbGU8EBIq}p7l-Blw&%+%L7+M$g z;P7_$#o9gUZDSeM?Kai|MFJK0;af6~1)AHpl80pB?>f)CGP>R#qP+a}S%Ujb=bW_DG!iBbH1X~#>+`05mw=UvtTOBfG2!~uN5-e$;;UO)^rEn+ zNa(N=2;v@q9B=Oz%T#xoo(k~-2F;;+BWUGXqT}TZLNSd(f4=lp$*rZtSQNYq(-DEV zV^g?4JI>YR;J+TW`6%Kf%)&d*A(nv^W?kM|8_^n??TjnVnbj z1S?WQZ)U0W{q?&`k>)^`XXYqIA|Z%oB~<833}|a0b>>YY zmBl?ip;nao#%p>%OnxwLy)924#jf|MOr^?OlEoK9%I9@MW09KlmY8Y$$t75|4fB{9 zJ&|fb$Z9TWAqa^?+yS!RClF4TAdbaou5PeF%Qfb5}N|=Yj)T$6}!I>uR)ThskB`2ZSGPn}CL**!vn> z81@{+k&5cXO%Q^w58)A5{8yhy^y#*2iP?&c5owrpTA~U5Cd=#fBFrVC{oNbD7Dddw z#w@spXQPkvOn!_K0&1{Vk7{wP@zq59G5|n%f&8gIGk_&2##&8@tGIcqXTidfj${do z>EjQ&c!&^%HT`Bur44Ll(mcTpzS2nfulwKsYXSa<_$#eRhkeGZApAi?Q(*YKp0kVP zNggpYw@iD^Zsj5e>RSZ}7VGYC8p}m+P!j>?;+|V+4fT5r8sMq=_>d!fw{-$8PoqN5 z-$;|nV&oStnl-G5SY^jzTSkybpL6$Fhh? z#*JOJwDj!-e|N?D2d;UX3M-1+>kHRpY?|2riWH&6Ph{AJ%--TC!quNgb#AGzR|Zps zz4%h5kN-7;docjisO3^nj{wbF+F+5k9uabmF*?ia78K>Rup#XoU4)eQ;HnOHiyN#U zm&;$j?`2{S;$^LISB07LOx~-wXEllE`#57S-a4>YF15&g5EDbf7Yomz9@WNzVGu06 z%ONIa-WgR@$08ylxqI#_qN6ijw>28O|JKVcq`UW;nVDJZU4CZr?Mv8+WjnpMc08eQ z#6`5uGrXsT{4=|yo3ZF`be&vutc}-(Um~k6D5{kE`Ig;e{dfT)8)hDFx}c5y=pe0T zVPVmixcmvI!>quh`yNpAM0|1P0hxOZ1xfyzJLRl<{eC(*>mPAIQQ#OhLOfGbF*=|aPOLAE(jsO?=K&J2VR zfBX9jAAt1-4*eJTzP>c9_UK?HSm8~vth~H+6=_V=LG&N8`F{c(qH>O{{##QUoy39w zvb(uBNPXjRzWetHSlZxX7ZfDFLE#6_c@S%H+zzsS)%Q3yh*h&O_TVDAy^Lkbm;rGA z5y1$bXzmM#-cg1Bni!CtE7amV@D1OEnv(cderNNY`xMk~RQlJI`A0cOT{i|+O;ymk zb`63q=Ugb2{S!6F`hmA^r25>iIZx_TJAm<{GSX8T8>`&u>j?f~=nWy<9x=r# zY^#5WACkd*mNzQ%648qUnNrik8+UfLvyl@+cusj9Qtx7;oemOh-L#Xn_o^gm;O{0?IlSzry)nYIXJNHP>SKMH3if9xc!pfT`Rwrv3uPUlqyR|O&ammMhIAP$uk zP=D9d#5ZeH4rKZUC9eP?f~3HXk_i;`%4*wzlqi~Wz~56aiR z>JgjU`ezq(NQ!&J=z+!3pPLsy0A)er_M=#@=tHW|9tr&yhDF1Ys3x=Fj6L9;wW({F zQG5E;b2EuQ@#rYy?UyZJI_vJlPflh3x{ezn!qd?X)0C#lPmn?N9Rs6GCYwgdQrlzT ziOTzFmq6Uv zo|Bf=;E;K>+ZC#M2&4}0IX{NmJE3;T>C=d^=mSo-H)0t0ti!+O@9{_e24Z(a(-@;= z2J(YFmjvn?7Dfs6=bR(5T=OxGc3)-PK0Cqt91qF(qH(I*U^>A{){cQcT@p!EC0tg+ zl}R!Ty(v?&!lU+2r<@HU)@QVWB(3J)?m{mzJR(Axqf?4=`zlvBX8-$pUwjGfANZ=G z*%orD5u)+ZX;tTczC5#Knf>jdQ0oUbph!+yB967wSQ2<1O3!$E=@R(`yT+2+*QAHG z+lxHu{s1#fyo{r){zj63UNcCa((A#qkSFtQ9`>8er}N8KEdJ zh}1d&*COfJ=J0Q(UwAbqU_U8;<003RlK|v`9;iS}T6-Q+UrG=B60^j|Roiy*bGPBvj?Qgf>%D#TI2s4p7L@syI50 zfzO~G$q({qSe7iEJ7Z>LWnHoLxzWziwr#9Td3K|lcvOtF4!^Z!U^yY`N1dKc;F}P$8^)7tGfOKw(|>3GB4vNRW=} z4@cA?sxI2pIhk`BnJq-nL5>eF%Fe?s!UNv%$m1rat~bk91AOb4j#QDMsDB&2zAYZv z$v76q(!-2BVcLBe6~R@zHN=d11)4&_x1N`WWiWU)_9KCDGa79g2~3$b&vpX3#AWnw)V7z)c zB|%*zI!~8E1SAmB`GrtMR8Bh0rbrIrWM<;ZYfzwFLUb-jTka=Ftr`>-MuB{3&o$@h z(o7bhvUS**)@rAI^!YG;aV-S1lT3}+)*tpT^JHS+jm=W@bnn>)I~4@PDGjwrRcM%v5-}khDCD zD_(i+h-2$T`wN|4Lu|B(`k~*Z7x4UW(@Pf8KcEi;GF7aTLSP|;xq1Ib(^738NwGjQutBLKM?*DV~K3Bf-|G)X95An zw`vn2P`??UfP3v7=#2**E1m$lSp9z2?LQI#bTEAU=H}0Rbu^J6!?Mr7UxH6J=$tXi zqfv1h$>l+wS2>|DnDD#Sqwe2-@zg(2(L^2+(mP)_bQ8LDYmmpjN(FW=(+A$NkA%QZ z<1qwMM^b@H%Cg7^8D?92m7Gs{6r6QA!R`@E6nBqTsGpV8`QF#u;Y&wv=@qD^AM0oB zNfj9SmvMuw*GB+J9((fM+C5%)pwi&|d;n0_I12Fd|D4ft*7*C~dS&FjW5?lQC{%Wq zq8D>tyrQS^>$sc9D}gdq4DZ@u0fBlV`A`oSIk29iDj-NH=x~HExE)po!JWMVq}V@` zfTYLkQR<*8c#MDY<_FXtr#*9?E49zc?G>yd#OTZW&tg-z86{t@5)jX~O-^4XN+2NA zm&kn$PNI8XgR$A#a1^BvC1lHOR4gnpR3?K=QHTdS*fxykjiNk+@%`qRtSP%3?8TF= z1UqUGS)n;BOvs#hL(EQr4gU(< zHCod5zwZpkDn**gFTxPchU9w&v|D60SmKq%Ya7a^F66}&3imG;8aBGFHQrUl#5{qN zkL;WBcK&O#=MSy9T9(^C4v+P2#iqn0G+@JiM`nI0bxKLep24P~hY6g(jJ6|x0}h_B zGUHX|Jmso!PUxky9=eckXF6JxLD zVN}deKF-rR^~yfo6juWN_Lp(wir%G#-u$1^0)aH|@U`5v#V9c0vbum}Wl$B1>zyJY zH6x>?=H0sxL)|yskFQKJlg;O2Bf}!%HnE$9U@VN!!}!~$q~1hin9rUOV(+LA`O9}i z2}#%3Z4hu6JrJQ5AMCtW?2W*+>fEfe8r(m+2pBHcD-wvFaqj}sy>p;eF{=lxWBM*^ zEq|`yr`B+n$^xo>%*3b5AX6p+VeZrv=Ict5L{bw8ZNuA>J~uwUbMsvQ|7V95%8GBO zUS}_RV?5vN7=YxReLx&CWe&x~N`x43ou0M|cIn=5PHLnCoe+N)K=d!i-2ZDlfkAMTg1=M^O z?gEDBpK%tZRTSZeQ?f5*ELnUNTV_kw+YojqwcTJ-uAm&1=EnGAbRc7QFS}TJp*Nl6 zGY?5ht-IRgdaYMSV3;7&dgdid1g?Ymzc`BX%bb9G<* zvt~rn#THFRP0IYW*XwKIodUgf3`5Z9qJbzZ%F+QN3B6g$N7fw&16f%`cgN29pf`T_ z?d{-xzyx*ZciV30lcJ&juHgO6w+G}WXOH4ob0kT{WM|03y|q>uT_iJ0hyrYS2juMj?t?UD z@qgQ`Da^MWmicBf6mhqA2hJ4iHh3tC@alj{8noNrnfIjWDw%R`2j#piv^ke*=w<1UGghA4N*ns5-)0clR-f!N{^VkY6VFg>m9E(e z4ZQ46DBLOuxg??=_^JH*nX;ilpzkSuw{5Wh)mfObm^alRIC?tZ%{4Psj}VS@>0H7Q z{P=tfyNicbnzYQCnKRregSq@86?~|?m62|SAtZIdjqRCm>U)9OpIY^Vg7?ov2kx6t zuNywa7wt5b!wEVr!A}zIoQ{W^S`R*7{cEV1-Nd(JXSd=%ei$BmdJd7tA7Ic==>5Qt z3?X}op z;v*dze#tqmu1D~{vt*6-k*)+XyC#E`6}5>il9`dwvZ9!f^-rX7NbqN0w{w?HLmdTv z>bwtqWmpbCiPJs;Xi0=jR8$35XNNXHdz;kgxxe+!5-dnN$((3x)42i6pfL{muT8_{ zwgcgBXqxsmFh}XH7I*7+Wc$kNZGM^=U|MZr(TV@d1_oU)#B+Jp=4t;FOrqNQ*FvTN z+CbnACrJwCC1>sQx8^kkDPvcT8cD^B5lDE6|DF}sp$2l^F7rfXRoVt!4oE-A$3SXj zmIk(y)neFhqobp(bRM5g`v5y4tY)eiu@$3H%=aCCp6g2TX*AS$&z&+IZugH`T_x(1 z)Fc@<$6TN-J;A0PPR`rJ^1X46F$rjySy`A-%&QW$~q z`NK|}^giFulvnWeimGFsZ>@qOVNY@K{E9r=aRS(#-jxIeWU}I+tGa3%k@#@jVi?fU zEETYAJ#zeR6P)mR!g|3~dUhp!U%g)u#>6mVTfwRb3p|0~N35p((6-5Ir^X>;Gt$)~ z@jbDnqYWF_7X9lk7fW#8tdsTM&5j#>jfd^qi|`PjyMOnoO%<{^-u>m$G1Lf|)c!5+ zuXM^z3ofdD_UC#>PJT-HG-+&Co%Iyl5LE%KUvsBTy%eLT%m}u2d34@StNo1Z{yvxs zbZMz+zHkY^zlWhGuXD)ueO0dWVzgOyx!KjCgk1RsQ;pjp*?|E`*ru;a3~Wo+a9ew` z0FQfqi(F-J2wFwG{Im3!4HIW#H?Hkok!_F*{;!R~v?R0A1ztI~BDQDZZaR_Hs78&$3kquxQ#bx@l@*WymAJn){)h zSI8#Nv_|6Mee*KILh*Hy1{-}uN-Qkn+G&9_6B}nVLp(KY5syl2U$Z#kD7X=^p1Kt(DPHqJXMolor zEC8zIh8G_?#{rInC0EApI2v@es9;}=l_3f3Un&oF;Tn5rP3y?5LhZVD{oYCU^+E?o zc{u)ivasgfl|(@4lMX_n2q)U{IOOs18y6=Z?&#piKO3(^ckXhBJnHDpGTj;UMMh{~ z&P+@yYGS@6EF$HHt)?0Y{`vY4^Gh0QWO|u_FdhX_zOs|s@3#9xDTsRcE#&;{UhsDV z6f`kFKw^i9ai~&@L$d|NsOLjy(7VFL_roGA>vOP~0q$qb;?b$D=oyvl~ZST<;|b>0Dtx5J_{4r z!$^Skw;;|vGCWnD%HIE|`(7s-V2-5RNW}$4t<6?5 zWyIsq9FV7T3spJH55c-+UeVIh&cd@E+B*TtG2%Xp+IprZcaoddlQHQSpqy#1DH#+Ppt}Xy#cY?BACcV2JlcGAg-wwsZ`cc>Ae}~?WlFnJGHNNcaTapID?Ppc? z3VqJ#Xf1kt%7h-iGo@%tU%2oxk`8OK7Nfd$l50fLk3V`}2j{bI4(`d9FF#VX84DDM z2DpkD8m;WOJB}Uhg~!6e*!D}UeQKpLjUpS9Q+lAzYa8ef35>(S=Q^LQHhmh>4Pw( z#h(}E{9y=qycr9EI_7drw?D9ZRm({4n5So$M!)lch2{uM zq#UFB!>Yi;qyoCFU@^TT-Z-{ih~bK)G)WCn9V@of8w;{zQ+E`OefuuP7V0cw`kjPAql{DgeyLZ5w6G&TOW z(aE~f2o^g%ON;u{~=RjRkC;2tr^98pC^+ToR1$48~j{pX?3tR?)T zHcNwxKL!pYKm~;CR4EyJU#L(UEBuDlRsKMt7&P(l-r#(X2e8`sI5>wACe<_W5WFR< ziVmwz8^m-q1DCEeWg1igjp9$1GfGTSLLVtk8iZBT0s|PTVHoIz-oxwX%T1FJ>NAeg~PJ ze!?2)scUIzsb7T`0zx>P?sOcjw!mK|#%6HSzC$)zUaIU$7?TB)Z?TlK6tclWXE)T^ z%;s=&{71d*@ppkU@D}{<_TEk}p)0Iscskstox&>S$7Qef`tDxU8nCB;E5F>k8>QU| z=Kj3`-P_f9WF)S%5NeQlFu*UL&#o62$t_d7=FZ81nUsi3lYA6}kb_Nwts zY=0gZJydXr;+>g~8sEc&Y>9Y&w^2iN*uFRWk0&I!)2^s5epv^9t0ZW;8Y{%Yri9@& zGp=LGH_EC>PVzU--Z-pGa=5kjoHDLsQo=SldAYg2vjJZ<5siKZtWMj-k?tbZAC~;i zQt%~*c>bH@!*V>j{}7jF?|~Eh^2ouP;2D?R(_D*z2WB3l&6#*)nllerLDy8KEBu)`Pny}c{5<`!SR3Q_r7M9@}+G~9B7!sU|N6Q z4j#KH{W7yt5B&!)Xw1wYjjbAtJw4+~e)0fB&L6-g)p-iUhPj%OCBYpdcyl3S%{<#~ zl3wluMjjzvT&6<29(!K~l3Ftgy-Js21kU=gEw#9s-j;xof{@+q3RU+mz)c zF%VHAqF7HxU4X&PT%cKgASHI7K+Fktn(h{SkgM$0Aj@~(umemyxAT0#3NZ# zCF@1&;Y_T7ECr49o-?gj@Y)(&IW}ZKoME};s4uJhYuDTb$!Iba=W>Ks^m<3o??)OZ zOVdXHwde|-p{_eMn{V#;riUX%nD967k<=c6xtmFs!wjrbAtnFn*+%*RW8s$q7-`x4 z7}f_7h-wIRu<1^EZth#Iun^b2n-nFOBBYIkRh+H@J$slnr9eFpNlv{mNlMRr(;ciw zC-m*bhmhT^*Hp#+<&|hX*ngh4q6Oa;i=IHlDSQiVgEK_nP;?Qbd(EygOpzL@PL)v2u_Kd_;SnU9|?V7Hdk*!xl(CJg7W5fDonD_MIVV~dwtxakp+oWD?CNG2 z)N@X`QXaMn_r1_y`x`&Xc5bWK3ndcRqShSL0$+=C=tuV? z=G*#X(`BK&!>Hyer3T8JwcwPAnm9w2}~D(_J(+W)~h`2Y)5H}uiLz1;~rtI+*n$dYsQr2c<460f9EJxrQ7OZL9Ud&<1o z5PL4bnME5-bJFuy+ZfA>D8O>9Fx%ao25EoCstW_R&fhg)_PC6|Xo|R_^e+L#QPlWJ`(n%5jCKpP1I-Gp~w}vlMw+-?6&`DBwhxd zYD3Wu=WeA5(ZTNu6r+v5y{5t@^ys$uq{hrxFnnztjTy<^{!b>9a5HeOWlcQMaECGqc_*`3CKpKcLYs$}UYT)GHW+1o&UfG&zzLRD4E;QAZcpTH8*YaAYht0vOCIBoo3S8!xSKR5NELSe6QZj?W%C{a#lGh9ctHxVWSWd6 zm|WiC*!zDi0Nqun)!0;)Ndob_f&!GAa5|2GY2cRJca7eV^jUNp{04-(wto&*UM2jx zn!5t=n1RATD?!O7m`f7^+z&WTG$$pgJX$tUDpDnAhZqJ`KMpB*<&vNeBRY_Z;2S-- zc=6LeBMm@+RlF-UON@&;qd=1hQz7x$A*h1@Z6V>C5+gE|Sbh0oy4C2dcrocqVUycf zOdk1y-bFyWVU*~`+B|(-{9TVl2`mey@&eE26jov*Oe1+k{npv3m&g^(jat~_&SQqPw1WGaxi;RV7I2X%l{bnIp^d0hUlT-IJjiMt zdX~}k7Gi*7lgr!U3{9Du>xE`oSTVsH=iff0RRy0J9H-blJ0lwMdK6Zit(=-WVmyr; z*(t==XBSYX#(;?vI1~&`fK8j3_oNE#nHn4(M=zKRD4o|MBU(B(Hr&}c(J55=tPHg< z=yw%ai#aooP0d2UiG9Dm`GOa5`d{irqxD`)l4v4>0&ayADjr`yOj(^k{3j~`dQCr*Xt`a_(n&5@d&8`b7#7Wtmt58r%+LW7fx*(!60qQj}jAky9cqs<2=$SH}h92y6W~Wqjec8OO!LpFjU6 z;kMRiVOsO&6WIA7bG3xlvCFb3k-0oB&fGc9ydk_+g+U@RJRA@FJVTLMo0@%mti{R9 zAza@u-y50t_rNUtUsj*S=Pp7?f}>v}r(;pcT2yrwFj$7Pl*@`<)_hCs;b z^#}u1e58=l63L=CV(~yS{n<3tK+D<;l}vHrTN&j9jpDpQS2Q_<0Xzx~KqNYQ(6(3q z<#J&7PX>_RJqB36aIk>%!w$~HLyVpmM7!u=Og*>^dWH$+$y#rerPvrwMAQI@*1ay| zO~7`BRM%$`dEq3k$-iZ;k3x71???pIKo44Lr>GbzXh2d8j6Rzf-7EwdO?+i^Y!Mu> z{c&9-Ul$DulIow^O(UIYNqi-3j`Fj>i`NW#R-d=)-MR(_O+G+B^TK<7afksG6Hpdz zGA3U=o$kF(Il|0@LL>^DFD%V|+jzgX2_Q@=975co2zbHpKz6(#qHfv$P4>az`er(+a0v=j$Nl=?2n~SuS3j>DZVkpu z>7CNJ{SqHA)_kX9Y{t0dFEZ_S;kJ8a4U=2Nkfy10g%P< zIOrkhGi(U}czkA6;CB(E(eZ}=?G$QtSf@%e_1xkN{QhU`uKqd|!&f2+I{=Q)=)D%j z%QAx5kqA`sPQaBri3UIzbPD1-)e;88(wH?)S}Iz~#N;PgLekQ&wYG~SxU(42xzy4~ zWhrOY=AH&znr5f$Gv4CM zg9puyYfbll#^>I8;Yakw*`nL0$1UNET_e_BR7m0}lS@d3je{0!{4G4Fx0-a6qVU4#>C4cY%D!Ky@8L>Y zig_A%3X&NOGW+7+F*E9gGm;#eG$czxk+^Ui7PXM^KrMdyGpw?Xq^SV*#@S`=lbsWP zr+$n~!y(eda!aq&w=(uQXTKrnYEMT+oTv0^XTWVOZU#h{USPe&OiLEra}EX=Fvwq~ zUnPO{@SyvzJuFn^3sPxwjwv^PO_k^*8c|c2U!9k5u%#Mp@T2*X?bWC$zI9<$|IcA)h{5`2M}+1O%4(-89acE?_<8*+Q!4!|ZV*G!MgIRgU5aQGl3{5Azr-U}g<1!+XL z%x_iA?x<-yC%MYkzc3L6`y$)h68&^PTXJe9f;yzgsmi7Woj&9=>OD%(cWubi!HIC9)L6AS_Sq2|^tqMcLJw;rOCRcL zyFclLVj(VgYyzn#E<%M?8t2{2B5um4D-k||A^DgFy-Ih2&6Gg z>$7u3jz(qqVXi!rwG9j4+vVP&jy4J)Fi0?f*B~jPpqT}QBCLAqC8xNeMTWC&6wdyh z4BtW#5y41P4+R{dj;s;i>sRz$8iL&1k;pYS3SF5KQgoeF0qOH-IIv zu!KjYs&Q$MNblA50cz<4_6G<3K`!R*Cs8%&FE!lr=-(9=b{z6qd77LdC-3+W1eCmR zVn=(k7cXAyf>!!({vDxL;`2?Zbsl24UbdHb$xuC?l~3iPizDy!1sIfgx~tS35n*^M z2x;17czmYAi_T2p4jQ{$sJDq}crE$qqC=FlU53RJ4V7_`ntT^;#d)fja!QS@YoQi_ zLUI)MmdMoyHyX0dyl-||g9z<^w~DV-d{;Z__mmpP-UUXofDOfwSl$Yre}UM3O9?Z#ero@4ZREFg z9hw$5~Hq>1(DgvbOc6jK~!Ho&DtVecI|J=u(re*wRTaZF%^h2Hq zr_vG{6On{6qNXI}> z=wA z2CUd5knC3%jjg;p&KvHo0PdH@y*^4E8NTw8Kojr-oGCRcEubX!k#BO3KF&GDDyz4I z)8{0mo?gr;zy7ru=_~q@l1#veLUFqA5ng&|CMDD4ELFUId_%cb>IT0@2BAC zP*jdcDV2l?hOA8w^xAP>?cN*ZhSg2A)HjzQh%wF;zm(lBTI#asxWIY}GW!2!Ly?mI zQPvn^7F$ldFC-+$eJor&9Ev*VymB4{>-w%7V1!L!)9M4{->FX|()Zik*EQ%<>K`T{ zz*cwkGo$Ky1L@yLM2oUaezyBXRUlJk`6E-kI-k4*!dn?~T?7oKqjm$rXO3dPtNYSG zcleq|C+|6i!-15>W58-C$-U;vrD?Q6yhDf<+|u3(teJ9WeM7hsVxc)8Zv>w;Io__V zttH7jW9OXQts!$k%QGF)RveFs==_mVxIl#Fc#uX(8{3hVX! z#bCfauyWr_qw{e^{SlK`e-)Ai@0+QE-d{QbkV<#)rl>AN=+}!{Y!g_*o#&r zH4vWDtx4^<9a^#6kzDmNkXuyjVEmW_&tN+kMm6nDj*Q9{)60MG5+RI@<{N4y)>v)T z2)q}xnv$WL0WseqRw1Z%k)$q`;<~!+|285bhdXy>NUN_7VAYq6)EH?Q#cjbeyP%2a z2UV(s6u!^yrys7r%8TM)rmgPl0tK4a8HR;BIHg(@X1DSWz)SvHmwZc#UcsY8}li?P0?N3eR>t$ zBDjm2A1^uGI9>z~iapF5zW$eUA{2_G)0Ikqkw8>{6={46aQ}2jb_#<4CvY~;V@!%M zL}1f{<@c(MB5-h!RK>ltdu;M(QkV8XN;^p7$tLSqm22^!;oye%pH^G=6S;x= zwZ0O{?y*y%%s0Vjo@X9Z2uP+tNW#T^YuVY%fAb-_OEbYTSjAHtd-wYxjwG>Ic+#o$ z(x!nlBoLGv6W?7+Hx@V-*=qn@cs7pMyf6fbGbIcs<+==R@hfj{TU4x&NMp?6*HoP zcv3~uhU;q>Z)-}h_V&veJ@}7tJZkthPYs>HkoAF|BFyJrt+aY$I2UR|GdZ;i=zhYa z$3Wv5=PP46y)yW<{{9Q#h2<_dkW;GQlVMNY*Cv-^b{t(Uc=e!cmCD9Xo;y#Wwc7VW z@8zg4afK^!Fe-&5nBhwGWd&b5q~HbcFq(iU@dX+xd6b@>p273yOb+(;iSPYuNP>)a zO$S|cY2iPN2f#dG%h{+mm)SZ zmG-1)hd|jhF2kkNy|;I@yDChvkR0n?xNzGrNQG?M*|~N%eQfTlkso9vPv{!j-j4gn z78py&Xh_hwi{G1`B-K@C!xtLHsh%ncqW^ClMqmwD#QbJLIVL6F9MwMR}&=`0(Gv}9yUmq>+_i1@H~KTs%(!{IFmt6Zd} zpKV)Bfr0R;?g>Uy)qa@DmU+SoV#%40FPF2J&6725}BluDo~XMwxH@+Xi?J+^?xM~wOGq%sZs8#zp?1_E53DL>xv@3aa0E~ z{*o~7KU+Bi<)+;N`4gr(7qU1D(6Ju@<+u`~xMM=<-|e*XP;3L?D3?MCc+@7bmmSRv zfHPC+^6k;e9kmduEZJCI%{9LJ;+B)^N7Y zm0hPixeu2?9|+fY7T`y~Fzhc$^qM2{{Yw2*M9`A_u%7nZgh?l__o+ufahvpIiRLwv zQNPij7v!o0x&I2TPME6p#Y31}v4{Kyclix{mi%Tn->mtlK~RKFS&s_P{5L1{K{Pwj zs(#mR3ScLT*#q4i8A%tsx(aR8?&t)c6t5ry_Irz08rthsE-H3{#)^F^oL+Mqxu#c{ zvzF$id`pR!wR%1^LOHz{!T3){g|M*TbEZ6+T6pe4QSUy`Rvm{T*Rl+`Dqy;)*sU1< z-Nn={gkhG$`1v)dU177zGmTwqfd)^g9nTw=appvDX5`zqLy|=Y+rsAY0_0)!ewZzR z$QRk|7%1(49dgq%X=d%F>0P9W|Th` zmZAc8c^UE_f?n6_o3ULgvs)ke6^GfKw)RH$D&&ZG>xpmjzk{F!y{ zaj7+WUqp{GK?YcS_Q=g6dS#ZT;<1F5O@87*h>hMzi=x}rmiGn5cV&wvtYY`C1#gbE1 z1$xmi8*&sf0)l8QFF^)t;IW-~N3ov0`m2Y~D;=Xwjp!eYD}Pnl;+_F{Qk}Cq3?Zop`_S28d#}ES=;i>`{nRE+Hi5md z;rvLpAQZVpryu+jx3s_gb~w8R%st%gl$1VI&(F^X;UUv(A^-ux@Or=fU_ULGRd7Yh zWcAl(gK>d|ntRDIV$~^bUtiB8=wkf}0J8eSB-8JD?LUI8zmf#m7qFSr&srayg*3ZI zUxg!{(`wLjzdBT)eu}7WOk0*{by`Rfi^8gO+&cO(%2&zO-r#2&7(K%+?|(Eu?eWri zO&^I5%YjK2PzXA3l;d+0U;2VC%-q;<GGZBv)qtq5zGCEG+3q;09-Xk7;`L7KX5>{l zt%zwG_B04E=!F)1ESJP7JBI$`f0(jEG?S7K=^@fum#(=YL{|Kx$;{FSM~&_caQ(Z}TAZ&=9eA z1*al6{dF$x;N`jt!7IAD@&)9LSPD&0@rl1cmJA5Xth;Cy(n zAFt?a?H}w^*QUO~tX)ysC$$}ln0|ZpFSz8#@}nqAc}6m|)U$W-cjZU3lk5g)CW8~G z;rRrR)ulzgdxegJpBl@y@H0~3#b1}Mx|{rED*Ct<^pd4^(EDAj**PKu5Xr-oTnDq( zo!@cmJ^|6c3o-XMLsmd?O=LgL==4qnnyKfx!J5L>Wk~=GRlctgn5BI@~WQ zP8zkVk%FfNp5m5Me7Uwx(B?Txzo|CT<_?I|#1!9tIZ%3oERBG1t_gDWqSR$AZ{01cWP(TiL^BIAlXqR{QFcTTCKaN zNXnTZV$=H7d|tT!2{ta7zRg>mw3_cDAw63cPhK%s>2jHLZhkn~l~q@K(&gNrGEp*) zp`Vrt#p`3ffh_XuY_U(!>2C^hJl=otT63zf>Tn!;zXo@AFE zuOpB<&R2qDhoq7??$k&RnQFjxM9~7TOxM{z;-Je{3`+_W^AmAv?|Ipt_nxuXE0~) z1)n*JyNnGxE9E6e8A*`suMY!_@eTQBkH4Q|;_3VS_CV{K{RoUhK1LeK35wZl)Y*<^ zJ#KPZNZS&e(kUt|EX2PKu@_zjW14CQ@gKaMR4FX=fde=d_y-kyE$x4(qY`!^8J+16 z&z?z(yAox4{F_GTd_4Kg8NY|?BbBcq#T^Z)M{8LBdkmB0-kr8vonFO6iQuGSp>w3{ zjnhty;U=5H<(NK(9$@x_T>`1+&r8uR;;U1CHTK2TCBGwB2~_>H&KJj{Id0{da<}-l z5xw@1ROhNe=3URUe-Z3UQ{&LN-G2%dNL(W~YTSxQ7Cd31mjym-3v3BuN ziBX!*JlD+f6Mvv4BfpbKJ{8wi-KfW@5SJ=rDz`64^Y3L*N=*VplUFU( zPyfe3g*i1&Ss$cKP(IZ#Gk>H~5wk9*CUcCzzzc~xwQSk!K8?~fG~$!kuq&tbolPFs zKo`Zgfx8X91xpWt(=1I01@w(6OWGu3_!we#Yn+q_Xp>nPoxTS;`C84ExQ@?jM&s;oL zsTwCOU65pd#jM-^^Qe5_>9}9g-|fY+za8*R+2_lz zHLooJj$;Kx5!J)~JNW=$wA%o^d~pC4WhygNs7#IxgWOeTn)TuMoQ^lghm#=)q+k9~ zHbYLqaBI}-(P;qN$twH#IN|gF=YSD&?>qkgYXMM9S7$rrS4eYo*QRYt4g6_dLbU!< zsq^%z-1b#*$PR5PqkmF(bamlfL5{`I)|Pa@1Dc_rGLXa4ce$4Vtwj z=P$MGj7mIne%5IUK|EMB(Dh6GQ^MDRJ@>%>7UI17^c7+_OJNAXYf;r959Q zSL1A8d8E8uSJ1XCKMz(I^?(#<*R0PEf286-#4inlwJ+Sk=*RejJWM37d!9+H(1U*aNTiDpP9)a1-^XBr_<{@I z30a)>Lx#7(9Ulx|EYa5b=a=VU_WDOF#5)X!?j3jHW0XacfXT_<#3wARE)yFz&z?P7 z0LtgT!)EgU8j+fvtZB@NB#%{4f)NOQ>%z! znTILn;>D^^j=OczR1gTMNZR7q_DUEc`cd}9(6K(`B=HHWXnMpaJ@Z)M7z|C?-6QA2 zKIRo@55vkud~QXGDx%_7o`gZ?r02qKMtq?N&8vB??EffUJ~}9|rgb=#NTdxof#PEr1`S?^+1QDwJi^2&9?|DNZsg{OAk-=gXC1j}EYC*PYr$&i>1rmH>GAyJa z%}1^Dw#4Wgh}ln%R(qZ(V~k%88YGYo@R^IU4JxdQ^?O?OU@LvE|{}@hnt=NR-X*M zv4yk8D)C_^?l;l8HY}$xr$JR_IxF)9?-R7d%J;yl<1>7XsA1^%l&l3M>H;3Jml>=N z@g&j^&@zZaAz)`z0^46P5J3T@NO=w1LU&=rAEKJ;OCBgD~(!2}U3$_$Z* zvfLyzae1(`(yn``arP>EKhQQKamDL7YGbppDWV`oy}IY`Q*KRDDaax4?MMg(16@v* zaQJ|^z`Nq%Yxf%|By~6@JaGmCY}Z1Jt`vC{N`sO2(;xS0=Eik;H4Rbi{gCNBJOqtilD4WM2gLnnqSyx(?2?^(zFNb&f}(gQ8A9PWmSGVO=llyi|L zy7|s=>Pl=&l@#kMpxGGCUte8WpK%r+6TShz(D;7G3sIwQ{G1!C9#lg7i;q1V$0B0X zn|G;pp$N+n%!Lj6@rvrw)JoG8uP^TzAFfg@tMxaP)mH}^(>hw0tM*D-7jMk_3g`4P zUzMxhKgk*f`maltm!qCNG)FAEqw-U)kE8}yIDciw;_J5<)}~huCU5DeTxg*T4MnR; z^+V9lL(HqAg+xb$iVl)dxgv78H&5IH&tb;tCgWE&;fm~E`owK&px5V0=L}Lq7^Wqgp{~TNd8~Dv!s;yvR)E2x8r+6LB@>D@>g7Yem@F z+PVnIDOkRxUk5g=#l2m$^gh#j!ivStkJ-(1nbeAj?;N-0RD%49M%Dc8SpRm0uPT** zzE>Yu_Ix8SR(Q|{Mld&!fNW(slW<2@(&LooSP5VuQg*_Rv!CKd{ZPP_6l$ zh<@>5_hWT+wKZAL1t?M8NJZFYOj5pZ@D02)Ihj&^&|Lt#eLKl1uDAoeW;yTm7`|ds zQ^_onPJlfEj;=!BH5d&J4mk%rCCBH$&G#6i)YaaMcA_NEco-TGsF!l&_VxWZF-XYN z*CWj-@)Il84}s+#cd~8B|M>S0$JMEnQ2$-=*P#h7Hfml9_tbG5h=bL~^>b=Q$=Apk zy^{?kK2X0TZq=R&=4Be&uTS&8ZC-3Lh3FXxb0gqVt{SR;O;XJ26K!waD&IWZm+w)b zi|9$gB3HR(XXY!xL@?+MQ>t0eaqGb^+Wbq(SN^0LZF?Vb{(Fo^deb+w2L&HayQU-Azr2qa z4duA^&{MLRQZK0>mLNvWOB>{;gLR{;zrX(#*ulx}?d(v5AQ=-8Qt@0{7jP-5qz_iC zIAyN?tXEU$P4~j|^)DXep6lxjK~M>sc9Lqm!x(JvVBWlk+G_n@eXxXzDSq7Jee_0` zmfDc$1w<{dGob&a`F&%lgU>jN^&IvMr~BF~+iQav{Z7(zryI`%_ggN~yb?@EAM`>y z5-rzLs>B)6Pi>Y=6m5crza^Jf#Rt&Dw^wn7uqt_y{@4Fdo`#?ZpRC`S?aLF_RbJOs zmMB6Sn){ekhA;Hg{VH3qgAaqr+t=JoPL7{zxGC#KY+{PZO@!Gq{CctEm+Fa+IY8Io zB;5dK>Mw2S0&$SSlxi6k1HqUg#h7v@pKWn)z+sy$Xo{bNIg1UBbbW}pzg!v6ie>tZAO1#95xBu_&6sRhDQxVgS! zQNt#>8Vo)@5sP|$f1MHkYyNpJX$B$M0S2<6LXk)cdt(~j;SOcB{wecljLEiT&Laaa zLU)b5HrcMg3*N>0HduVl)oqB4N(5^km~-WvAiq9yxo!9{kS$9i{#krY!Ku`QLNayx z`|J5UcQ%c4p@c#n^obwwJ6CAFV=_tsU(OsvC`Fk^IlQY3*6VDm_=QpOA&f+EsW0M| zwX&?`^{b}_+H7vsA5u^ZyGqjP)X&QGYgB|v@QbgxI;WqOv6)Hqzz_H(SA`P5c_JjO zbPqR-{oZwi)opimE-QmuPtt~?sX8jeS^mP*YKi}+aQw&MYYFfQPC`O>NItwa6}Vy> zKgwx2*NBjMNmoyeG~U>vHSyF#X={&ev5mHa?do1Dh^G7&)=^c1)dPLiXFKsY$7?(bfX}F1Gl%o+>(eQ@7@Q0~(im*(0e$ zAu}1N$VzuIb6IyMBT6CJ!X=`lMfNH?+5BGj{r!ITcz8traPRxP-|yG!^<1LQQ%rVG z=4*|SDTqk*t%McdlkXL1t9JU{nCOgkx7nW&`>h7IoUp(;ss^XpG|^I;kNr+`aeHbX zg7Q>@`9*Y|<-`(u)k}ebo41bh#4)!FYrN;xY(kFs6C;|9{9E?WE(9# zv+p!9&m8|X=|B{!cpocoE+mP3?&PC4B7{<-aNQRLzJiMVO4%BG& z53_~cUypvIIW;ifdUf{eY07?FVK!iib=UI}3F71@t-nmtit{u37_kvVys1)~w4i>Z zbVE;s3*jJsIrzhYI%@5TY?_}qBxZFMA1tBIJ6v>)TQ6hPn@sY1Y;Z~`d%nW!P)Z70 z!|NBE+2fh&TPD(c^xZX4I4C5XQ)dXlp{3U+A3CU_5CdVy&LyyN5HDZ4G|d<|rNdC# zC5XF{Tf3Ee?{&fBP|QyT8H7t)TU)P~h={euG=s~gHAbGX6kq@xi}vHtS%6bdWjj6;>$>|__eX1)c&hcd-6Lok4ul$<(%KSvu7C|>!1cT%sk_@J`%ly z#j>SYOyhV|44CNVmqnz60z%}bDk`s zb$&ftqT4g?f2T#aqIhpY{5_?AMlNP(F5e|DkurC&47Sf24Oix84C4+SrrdG}~ zKij59S#axXoN&&6vm~A!pf={Gk2u?ms`z6TE-I98LRrt4f273Lp<9aXkpf5?+6MuM ze&RHGF4yTW$LkwR2y#h@hx*MwayoZ~QY@a!eNCn#q-+{lYT_P!jyM^Mqb*@<%Luyl zGz5P*idY&mmu?1(pYQg0_faG-G!=vC#4Ygj6Vh}sOe91j3W;1DdbmqVdXc~VZ#h5Mc@syz&~c6Ev6_|_Q` z)x<|vSVvX#kHQ_HN~8` zvUYIT%h!=Jn#x|;+}xB+zU3e#q!iYJI2`;-uw=2v#%gSG(_Qc8>I9x^&*|_yqZLDEx}Oy-sf+48b*?W>{@J+2-+Z1k z!G|{xo@b<<+8F<=tJEO(WxYO@=vlhAZTn*J1tz7mI`0Wm#q<3zUo^&k&RkzE_Dnyx z<+5u{qmhnPd~`A%mc}gSkS1t}lR=)(P0~(VIluS#SwJ5j>JoEKo2$aqn%Bl^qN1#! z=RL`I5*gEooAipCvgXN7jYs9S=g`MwGz_SU%xFfjwI>6G!GAa*mCB*NOj+4=(LPvw zg+9l+_f0%tRt#|2L}E z@|9C|`oT8Wn>2*O#631}$j?{~mLkUV8xGeoH> zr(8xfrivku-KscS+ZRnD1pw^GkA63CQuf#?Y&GCM{V#0WudKz!$H&JAjj*T@(e^m#_?hwngHRLs|6zW>&PbyeBL?HqZbQnUOsXT30cqV z)1s}a>Xs~1v9yZht~vvGGyOQ`V%O+%nFslIzHt>$rBC(kakfw-qOk`(PFOv!s9pCP z#$nd$=UB``qL7y>sc1s5hKGQj zvz}+G1%dFr`N(*11b1%FW(Z@+4dgwK&iG~$>OEdKEBBaTC!b5PawCz4(>RI6K(d|# zapYsp#y4h6#>0JGhZ5L|vDYkgP#+ixMq&i#{yQgJg&|DNn>)!0=m}FWN`8d?W%<#{ z>Ti}5K`8Y11?zuF4ch5MrT(19n+dv-MsIt<$x>}!)${4qmRfnobe3{|Ktra!j%}La zpm-c)yQ8XBNMwID%!kmUY2TJ1tSJ*#4`Mxc9?{Y}23fLie8$Sk=?mrOn}2^&k1cxH zlTZ)#7d2-DeG~4oj2iJQ3}c9Tr!5USUvpqa9^A<>KkvhsoozO_i~!b-anyy2#+_z9 z-|iZ9nE5kfooHiavU@2*Q62To>9@=d&yA}0=~3Tm4&_I@a&{SIB9jrVHj&7~Ez+}^ zuI8hh$)9tM9A z43xV=E~%X9)Yib~EyxdjTGnx|{{}NSrk*sxC@MbyvUj|$p|l-61xhazb0E94*M!ko>92> zai3ZSJb#;6Q5=K=BKI3!PTx4i+@becyJFmeoxqA|~K3_aXE z#!olBDhn)F%sY)Y0$d2FNKA+YQp~!{#ki>8VU&akeSvP~LP(ShzuZHn3R8Lm#9uzF zf}p-8rm|e$MKU0~U^tD5jJL!c(7CxGO4>cgewD|M8hGtf`N?E|nXJS0jYQUAjU-k7 zB!kUr`=m_jM%L9I-OG!x0&eH1nwNO3=c{Z-H!Or~Io~O0A29Fa<8yNKx_>3gSZ9Q- zu(h0)rnv~Q^z=`Om#dZgjImbXFrys<7FGCb_Rn+UfBQ-<*kygd-S^Umd($@45VhXO!ccy8qb7pUm zdiX_$cXt+Uzt*uBqj09IZ|Nq7qD~w?xLhJ57u(H3!eij+%$_ zwp1VuB_(z#r^(Hc3=AlN0Pcc9B%@$!u9>k}oOw94`<7ax@y&-T3I?b6(o@NWhW)&? z>7xU7v!$U$jr@3;}1~c(-l{t&qh41;vGig zqp=G57bdd}5ot-OsNY}rAo;`!(51(r(SeMKOh{&gsd>Dy45 zhj*?tvm7L9r@JDoyU!LC>6V8avXei6VPjJ^k(v~D7-?qeV@90F`TM~0q6CqL&*~LD z&wXKut2!s!;yzgQSM?|g7S@sKTnGgP$p?O|?JJU5TogEfc3~awyC&swAeYh;+=M!n ziyBnWZt#O^$x6U(+bK0vdw(v5$IkPZ-7}aXH{{Ccda-Ie^s~AYc-6?|=%+g|pDTK{ zbLgv0RG+Kv?A>oC{4L`B$0bm3i2dT%i+{W5sJ_e#`ShQUoL)Kmy2OC4l)~8mK8Afk z_^7x%zv$EaB(>sHCW#AQU-?{k#FpQBp+jtAyF*W82|gv{^A8LJ-Nhzx9ger zh2GY##4XVu`$u<5MZa`s5e|T3fCNNYTEcL390pkZoHyPx3r`e~Qf&{uj;X7&u$h#y zw)~K#>?^+S<77p|&gRKv&3|@^9hxL^_pLrnyDx;EE4fPlyQGAFmJ~{M(rwN-o)5`! z>Ml1!&rZ&a+ne5eVVtVR;LSk+7vVO5uc{M268uoM=m|o2TsePA{DCO8N17)Z@tk;! zW;0QG)l$RbIrZ63E(u~Q7cuoiES}!<8>^P&0es#QZ0kT$rSTob^}IP2T&G4*I+4h; z@CD-bRHj^$SMu{|k@F~NzNVaMrm5{eeC!Ax57wT(Fc!IYjnL6>u&K1&xt317^V#5a zG2Nr=*+^u0pGe)!>*A72nW=L-Ulk=e5F;SXd7~zcy$H^_X6RqxV(NxbZ?gD$SY&3l zvyM(XwuQPnr_dw6g)uOl$GRBjzkF=9B*A}Tw3=@GAQ!Id@v6%1`WU#68OO)?{h=M2 zV9Z;%tlqbj*O&B7bFwaXSxcbc{Bswba1a_FI*eEK{_$!D!e6eUE!hv}xv%1@S+Mce z?g`iK3Nc%*ejt9vwZ8atZfHXO7;>W}{>0&ND(6Q8U)lcD>Cf#}zcIgHCFLX;a3T}o z8Z7)$#bnOxb+h#)6Pt>SA~R|G3$@#?=z5aMM;695T;?6)D2ly$S{ z?=m^@$GTVrTW=7n$}0OdzQ3A7pG6H;B{$+lRhUv$dii76sF(TEyU_%Aq%Z4P;{VCqSXWi*YIv_#RTzVT{}p|?Irhkl9ZUtbz4jp0<2##mV$ z06N`1h#d#;cXX+m3GwmUH*eBHdQ*3f`lH0eL<)=wd~?{*`baWvB1~cZvwkFM_N~k% zSXf<)8PQ$g^c5K^99^}ENb9neP&WHMKPtZi&y;!5H3l;=Q#$SN@Y*AWlJ*v5Rk9Ky z85nIZ%|qJ7bXk7X#)9|Sca06(G_iyfwSlKZmKURD!Wj(-2EdUfrFW5%7L5*=++L~@ z)0MQQWdJ`10zFy+3njb{%^c~6gp09>zWyJ5`_5FMTMYSpVRv{io&REpI;gsTo>v^( z|3z(v@pChsZVWJ_D>{bYj%yzq@%~hl$WCqjUgPhD1u39X^@x~nYRXEuM5Cxyy~3W2 zcgU}&_e9jR4ENoHAmGDH+%TlunElSuVXn{oOj^$KGxoo8*C`*IFx4e*kDg09%5Q9_ z`hB~GwYU}W{Br(x^Z zH|Bu6G5LP@}SMF;?n6u`(t%o z-=!0@{*_EUS3KVJFrl(TC}%J~|Lxni`A~dUfp2vwR6&LH_4S^x@55|L&-a5&Ijszi zKB=tCObib>Raan0mMw)R_l?A__w+X2=rMA!j5tx;WRKkVNcvNgpYiDtzT9Ke8u2S< z4fG2cNZIbgjEb_0v8n8w*Ypcdf@w-ndKL(Tlr##6MdRBYd7oC6}ej6_yjxucO^w#&QMkwFxJR**4E^T6Plg-`qE^bEk1* z3=0pv@>$zgUGzo!E=Fq&A(@>D=lxyP%60Aqx{NAq-=VrZD1nLiwPxVi+&m!`Cuvou z^#5FdeVC`)i1J(WbUNwnYYt1*1$D_kos-pO$$8fyOo5Fm@8j$1+W=*XHjC)Qt&VPb z+Y&@oLnz^2T(06Q5@3@^l&|501OB0aH8c7t=WPUe+=9`XGvi}5+K=AGvp$Vngr_1o zNFG@-*Ft1taPf#cR?ZLnlHjsdtBQ-d_opnFQ6k7+V&T15+P-k%z|U5_pz$afk7VHd z&$~Mw5;~S?FPa7eKF_-vJ4lbdW%%x-tgNgRBjqL_qE`S&U4iWujH4wl8K`XF91H(qj6zPKKqhpLn|6BTj#U^h4MnieKzfR^U973csX?JfB~D6In6} zr-0TctV$k8XD2zUH{@~zsHVghDssy|4}$yV2@c^R){ls^*f?I8CrWs1rFJ)6yelBW z>1d3D{04rofM^^L;Cp`f3KJocXYW-1&&b+ukG`qjXH?Q{q;w5HbWSg9pMFM9`Y-+c zN`{U2m;I{2WaP4yd6>hSyQu>F@0Wi0xrwF}p9mBqtO$8&bNBd^h0#~-E-ef(s0fnk!SSU)-`{K{x$P>k66ope>X|!j}*v!joYsnjl1I_|JYd=3489-N)E(zl*i$NNuO0Bb z#fe85YpZh^n@Of^$|0*sHCA6fd;8=+wZoy=Ve>UD zaK@jARyZ(FVt)WCB`9|^8QvyIte7-!y>+##UkT?KJ6wOHQ zZJELwsk4hFt?^HO@1>mOr0l197zZu>m~;Q|=8IOhKx2cq8q;o|n9HP{;yZEB94=N9 zk6^o1_h@P*JR#0lCLFEG92APXd-iAeyWwIP|aHt_fCf0=X- zfHHFmK53uSD5>zrM*lJ~Hi3ml36c)e6?yRojQBm9g)oiC?fXwxPNr?yi=A4*Qb>zS z+_#VC@7_9uiHk~{Ba^e0hJ&qCQK;*pP4Ot+E)J1ufau3oecN(-FU<0n|2oS=3Xeqf zRBHX*DYmF;)VObU0N{b<;eaCZ_|Yb%vH&2fzt|!D61Nu=O6QH*oh%PB#XjiSZ>VW)!sc zz-P9So|=)3wM5M>bu1sIi|hcW9p}(KBdNr1aGA9Oq4lx{&_nirzmy?wgTwKOf=B#1 z?PS)TOm|<07IUx~ek!FY+`W=DmOGMQ1Z*j0ymnN#_&IAypNMr@!5^+IE2}}F>!~x+ zMWcW-E}iAle0j%T0q}PLYxe+5%J5pgK6Dh4q>XvI=VdDZNP8 z;xgQ_4{JWu-I`cyjOyRT+^;Hsu^XsU#hjh@MJw{I0fqaNWjsZ2HT<2BSHiw~Em57W zhu{U-o-#35)QbSyAu-iGjeDvxZ-m6&TtBkgn;d}?E||YXLj=?IA3j5Nv$>k`WMb|A zs*wK3NE{;Io_4^!ukr>0ry3pBzZbqtZDV4!tZ^Z*8^<~SzIMMFZ&j4ZQ+s+ORZF`V zne*n?0sN(4I*MS&PF&uDgC|j{pw({wkg0T~9PX(DI_##KhwQ9zIGjkpM;!u-Nbqn8 z_%Zqpz@E|Cf=ylF4JTY84{N_pUD5Z|_^D)iYZXLelcixKzS83bDCgMeJKw;*5}Nzr*`m)?{e#`}gz8kR0G#@QcJTgPq|q@VfS6Sa!)@b8J--MP6jR z5w>(R6+h{bG{0&uRIrR4{gl;Gp4XiJ$KVII;|<{oiCH##RX@J7$dLnY*GC^*;f>RC zsl&Vi0%PgZr#d%nf4!FxW|fwF$8CHY)$ozNr|0OT0YM-kwbZqwXxTk`erh;II&-+(xt< z2jZcs|6~GNyzn^`!B}&pOEK4kh+pxWdq%G7IoJO9PiEPR|G$s=rCMed?-_3+5PEi! zH?O)$FMX^fiZw`=DQJ_>*0OA+#V@&9ka-2kR!&Dza!l9yag3MTO}^#$$s;`}kXMsh+hsd*ufq;^sERFIAG+IPIgj7UN4(ZDxdinx|x5@3i0h%FRF7z@K|{ zTI|Kq9|2m~5yJGZ7Y_1Lw^itQOn*w%-HpOEF<>L2aP=w0+UQ8mf<8GFo2ZhKe@pA3 zx()^k@km|GqbBBxLxC`fm(2t`Y+TIj6*%v`;kdHY{4aPAfUi8c9M;|Zk*P0-R!LGq5qW1 z%;r#)rrBL8OU8sYL;TrMxrtiw6gXXSEr{ZX z7+kf6L7vuVUhB6L)s0!ALyN8Dl+=2M+9=hD2bC;LBv$D{b`<%|5Kj1w06zYJC3SVx z;`ZjJW$4VzpMW}l92ySH3)8pvJnd})16Mo1STJI|7px42@4{}}SuMZ4GY&~;SEv8{ z;cLRL`*m9wY-Yz1sWZX%juP^VDi0Ji`>~%OJ80o3xZE?=j~qeq#`TclVo&G z(!UOJ@J+GpX#Eo>~fGgx}#-gq^I1+Ur(2sBcPV z4ZLRssfW;)X5y?bTIOIqbG8J@x9S~|_sLch1HL|YjrxYw-ki?wiTY9?2hIs{p09?11ZmnM%|*-z;mS) zM00O~QYPCTJ4e*a!R_YDP$eMknhZxg&w1EU=@jppbC3tTJ-pD-*nN8k2I z+yd9_V=;X$9j|=0AUSu4{l)~|`E~=xdVVI(irqRViwT;~yL7m>oD>AQI8Pi+AbGK& z79QyqJ8Tz`3vB5N^z35!ZOYPKI%&}{f)FoOk6*5s^*$!?N?FatKM;QSPZ&zqj+cAM zLQH~bp7szUBJ>6zSb3-Jo!buCd(0Ad4 zCJgArF8{d6$9~oBnNVG4Ez{kP+3gA;_Rkj-EJ*)Y@}IN+l)e;_JbNB3Sy*#CE%vT$ zZKsz=Ck3U`49BYZ4XWUY+L615k3%tlXYtnES%X%dB(5IUL82TE%ht8HehaJpLPkEQ*gzyZDBBy2vyG6EGM!&<_bvF0=!I zRdHXK{9&&I5O5~0LvwPw>w3Ge?H=49^+7HBm9Gxgg}fkV$MXn;^-dC)oPU zj6LHhqH>Z>7L8lySj;WmrHul4Fx%3bBV4ytu0lRpl(D5cymr^ywIiMy7C9L4S;y;2 zSTIFlE{=0%-|)#smuxr<@`hg7;iVcK-%xgPIrM8Bw_(=#<+hbHAF6gT^GXp5MLwFB zWt--mLO)(__<6JE4VE+>j!B7+GKiza>j?;Jh6cEdE?Q`9j6ay1yh!zp#}(xFuV56NNRUNrP(Jk{hCTO>+XLt4pNkjd3tZn!J= z`S`Dk5oJC<9!6AW_1uR!MpY;Z*jV`i<>+1$9Z#NaG-sMcGx1T%=#{g#0~Q|%9Wmj- zXcx1IrDBhh0Y&TP4&bu{7@=tu;w5(gbdvPj}W=p)fx!ZwN{AOOsi?*BApy$P5ei ze~X{y$0wA$y0p$N45s$Tb%q^T*jHJ#uv-7ZDPZl+5CW$lR{C9v&+^bmB@ANY(<<_yfw_i3~B$$QiocO;HDm@bg5voB6XFU2n67|^p)~KH`PmV#7 zA9Y!}#WK+DDIRlucEdn>vzHdd_D37Y!bUnAa(8E+%e?;%Pb!I4*jD}8nGdpc2I5aH zt^PmBNX$bM7$~i1I>wKb&DY&OXOr*fGZzI=w>rf7p7}re^|mEpSm%WCoY--{)IMR- z?-P$Rjta1A8P&I+eq=M($`^$)RytZHc}gXg7bmZJ@*rc`dO`BrsV8Dsqrw4plG?3lSE0k88kpzRowl zc{)cs=t$N}F>~kHtI4iB0B!kgJ-YKQ?2^aIh8=C?JsWYkF$K{PPtqC0QjfDMSj9;h zFE38jyjvIv8x1C`ky9~@g??_u^jI85FGL`;2{|zKwh{QV%0A)ljwdPTbXP49k@nwnp+9jJ$vJC0$czdn66 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 z zahM!vEL=bsI>*F3kwwS0>n1Mq9(NJp8C_wx_OVraU4QOg$aRzT+2WBhOOJm4IY`?f z@>ap8#)nH^ZXa-{mM6OP9C|NQD5k?|vZD5jEHm(AAftZhCM#9s&M4;qaAwGoc&NNU%>8%sP#H&D=GVD%QoJd=#WU;+ayh}*NF6A zVf3~o-nv4_2~x6jooKd?Fn7pn8K(*<+IiV9)Yj4lMG9ruwSW^Bu&hGmAi)zL7Hx5?tH{))_P3DG;#uQTaT(0go# z^3?{Y;=Fc&M#sLJQFYX)It&4;9eR|jTD2BfQYk!8B`zO5t=*Bxtd@&Z=Fueg_JKJi zWiKe)RI65hMSTsg(lO#^B`#O2%UE|i@4id(P|v(b`aAQPLf`**1lQf^)7Nj<@8P!~NN(vinpZE5QsK`G@&V7@&qArIJA1z~DM9wUXVWbFzRTO9uhfa3@7*Q8`fmQ` zCWcpCwBZ?#kc$~KqXtw?JUS`@&MAGS^S{L{QvGwtX0yUnw2PyzAZS;s{=n!%@`#V^ z(n`&Kgr?kTtTN7}u+P-z_ZL!T3Z^ino(GrVx%;Yi$1SYQzk1-Z+X_8uq^uK|Ku)!N zrZa_}pZfMFJ<1f!N?NG&t6c8AqW^byi7f{_#YQc=MLd zp-l(UyO5F1C&%hzXQ=;G^x2Nuu)3n?clmv+q)o6+>El~b<52|iq9`flsgp0aJI;y_ zl)&RZ?Y-K_r(V=W#^|Z=bkKSUkzJ3-m?vkrM z4IuBVFrelfy!myunC8srKXYj)^K_D}L)d06Z%EAqEjjYU!YY## z6(SvK&asLejggeL`{uk(pXEYnNtYV_Xh`(w!Si6`boF)2ax8bxLXM*LtX$kDmoSgP zu89PGrV)zpbcqLt`Eh2#KfF|1MDT_8yk?uhJ2jk$eD%eF`$8@|yF?HfIJgbyTah*G-gN5{t^HS-1?Yk|kW$ z>e*otkFY38n@Muh>Tqv*&-2TO&TNEB#YP!5Uu^C5%+G<&MvJ)?k>f% z^HhBIHVgu`g>uf8Dn$zN^w#h9=L4S9iKa?FQRxn!QY7*jk$ApgJP4_ht(4Tx3je6a z)h|owDAu*rpI6D9K}XxYbBc>a^nS+k}EUhkZ)0`=Qr# z(+nnO)mr-q|7D|+ddf~y)kc=w{2A8euCi^_uqzEtY_{KxIb`=M>48#a*9Rd_*i_b& zimH079y7Hq%y?2z%q@AQ)j=hv=JBgq@mO9x(HZnj(3@drHdCtwDOqPHBo<(+;!V-x zsc);_&u=+Kr=6*d*eDzAkK!J&?M-_=_l6@Rc`8}1wdKApf0a5}pQhUJ8@VY`)9BH5 z!(3;6amkKZLZ*kekWTFce?IWzq_tY)DElnn1W?z6Tan#QcFwV)R#~&WuUt_^+S57W zW5?Dh7HdKDuf{(|sMo=MvyzTJ_iXx+*%sVq*_l~-)QapBj>E*cbilOXhe6~eN~5DM z-S);J6}N(^zqHiN0n~LI?r{)XH!W+yaYPr@HUJOLeC`Kn%XakF)>$DS_Yfem$WA9mo6>e z7QI!$Q8n&Tjy?`loWtS%ql&(_Y1Ay-N)*h!FuFNSC?}MixU4!WH?m1fJ)xET$?*5q zgP@GJn5e+gH8LzcmdF@Q)M?d#q((~5a;}t0z0(w=a_9H!lBQ#C_nO-Nfn3zT@rFBI zT86|C;`VIU1h+Y8b}+oXT%?=_iu`k8YS@>zSt%lZa-#mLkr=z;*(ip&LlIvvnVjfJ z)#-N=tq5-TY%GAHhP=xH+7Ed$u0wGfsu20B4f#w6Vh;qiQ8_QZ)DNE*v5BstSWmO+ z=(9{FQwtc&U9S%OM{e_7F{)L^1lB{Z2=15IU1=u}r7?~oeM!`Te#ru(O-b+ztZzs} z%iWZ^de}jt06^NPa+&H=p#1ZH0j*yC^pILEV0>_0T3oMK8nrar11;z$aJbuR>^aaCM!UEQK^*BHoXGpYgl1}RinPvr(c&Zv}3=Cf3D|^P#T1HnJ zR-i5_u4OVY5n#Se(EMxdh$V8}BTT|U=afaykHi<&Kk5k~OQRldPt|q84k9cp1vOmm zygFr9_OtNWP$y-*VI#i^WSK63v3FGEdpn$<-%N{dN40#09|(=xCrL>1bW+sHrH~=} zI4NZigwgd#T4QH2PCBw{f#I6<;Eq3=PQq9zkB?*<4RwQs_0Z;CFodzchOd8D1#3;( zC>#4QodZ7Z)HKU~q9;MEb5s2yJaIB}2*gN9t!embjUKV7X`SePs;HPFa)J*!$VGoI^FH?jx8WQHevqzQph|_ZA6p_?L(z~qbGxq z5tD;VePK;N@_1bHj^;JI$#7Jy`p<%XG86b!-#hzs=xW-*ntmtR>5?GBiLjo*F2+bO z$&P-siIj8-W10$r!Nk0j@7#I>yC1P-$EH@`Du$}PB(?XDDXbH5tZ5#AY{hRSz0cDP z&)f!EW-@09A-E31ttU4o1~177CobZ=Z@*%69#QOkgSr8^ur5sv9kGnA)7T{1>fMSP z(sS+`f8+e0)zLb=!+Ci*-U}JNeGs;f^f5kW{7a;htwlC`|EqTvMiYi*&yY#j%F#TV zej+=3Mw770#2U82dA0t;;MUj&e%1K?UfU>c`2y_!`zm?wC&3sL&0a}^ZO*my4VYxne4j(t9t_BHkuKfa|pI8j*F8{(Pjnv zkm#Be6Z0g}l@PON;pI+;+L*+S;y8+KyA3M%D#u)}pnwe4?Crh$*3~X4V4jv31bKhC zRxjhV!sMAb%?BOy{{`B6zw9*<5+c%0w1gMBZosjtpwr&mauPoyXVwesx3v26`obRM z<~p#hkbA*9=3ZVwr`3gaOhn_@s3-6)xELfSp8JaJH|GU06cg(h#VX(YFqtN+FSGpw7^l(`hC|`g{Jdm!;0Xdo@SD=g2 z)W(S!9CcvOMbBb5xjq{vYwa>NrR;p@NE}II4`Pdb`t%}#u>~lOESHSaVvj2hl5I-h z4z6f4Pbhph)YyI14u{gsr&10k&$6i_NA4O^n1Ic3) z_S$4-x)27In!J&xs9d4)iutR)WTY;hk_PLdf*fRK;2<|}yL7P0UTOG#114Df@gqE8 z8jSiO++GQvKR=a|(s+4xPUI3}de4}uw4LtZpVoxW_+l^#9=>Y8W=`~2bYZ#x zignL=IQUBGY@Gm~pyYpGTR}V{{`BW_oEeuB=FF&nr16<9l3tn zEf{n^w={_5lH|QZa*a!;tti{Ts4rE@9Tb!Ug{c<)J|hL1TPri#*NSJ=^53Dqsa_+7 z-k@Bm7uOz)Ru>liUgkPp%GS~)3Hp`uS$IZBUXij-t+@&m1EqbiTVVGj($X9Zwx<4) zJ$BU%w72c?u&R(5T1?%m-nq-;{vYmxc%XKl$}HA#Zrk)FWDwRSJv;hy}5!*l8L_;q+FPQmUfveWzVe@(OC7JazObc_3{q!9vk`W{`c_BLUvks1&T8CXw;0d?%Tei6^I{A3c z3?C`)ckk66Xfe{59;nIb4F=`aF>#(_@`bs~iZauG@0^~UVg>als4&aKBKGtmgFAMREK4X4heya}0qPvXfP-C-WiAa@o z8z9FuK#qIJvVqER5lZ}txe6k~1D131@&jpAV6oi_75r#0RrJvI8oPeQXyQ52U8|W@ z8JE#0lnOY0{;#RWfWU=z46U1Hug`(Q=X1cC1x7WKu5`K`X5KKp2;>8f?r8Tl$AaVH zASUhmFhZXsavZIU7>a^QLKJi_3dMbGFFlu?k${o7Y*a=q(SI?FO%j}t6=WsA1?I%po!nTIGeN|!m zI{qY6CFm@z7xf#^F!(R~8U+uFQ%;Crx)HAJjfEp4unz$V;(CZXHUQkw85dKh8Vza~ z>Nk5|k(JHr)z4hp8O>d=aBh4tT@7fT&!>_Vu^c2Ot9)xP@6@Z=Gf;lA3Z{0xJ~fs*G0CT2oZ zD|mAD`IY-QhbPH)+ds-J4f<8K_d@QKbAjNKF6mk^DowZ)Cj-#4X!rd)q_;+JEb0<@ zGm2kgeFe=Yn)`$|FHkw+4hAKG{8w%SaZ>37`bZLW`f_b8X5P zPjv5C_6Pv6OQb{9*g{?}nBEBzJ&DS144g;`uuG`#Wc+1#)hTs}-kJQ3l1I$m+gDG^UzMfA% zq9Sl6t&9obI~LZ1Q(lK+89l&sT{uquTv*qlA&Cm*V6HEaeXQ{4=-g4L6zI?#Px(75f(eUam z`U{~cQT6pKlw&6d(#TeLF!dJ1Xa(Byio*WtmItq5*%Xt{S@9533?-B?PJ7=scW;5X zRriworZ>~x+au)|V75Mr1#t_IAxGBNBgtZ{plJtT=nTNn6D>1C?lA>*onVdK(?Rg$ zX#vOzGbUrG&&ckum6jGb6q<9*-I^_3V7}U+HAvw{fiaBqx&pqw0NcsRCY8ISFvM4nd>zJ3&^XVrO0 zS;q*NEV{XI$~mLtS`V0PMwC)vKuHcfF||c$1J|y3q8ka;V87PI9SM4?XUhK*srJ>E zJU0^N(*iQ2pQ3J&2tdh)-{=m(l$Fko6z?l&P-JepybvGdf+WMoW-#P~N<%)V8%RPm z2yX)OpiWxGOI<7Fe0qb*uzuCv70Tf}k)u1FplkQ&RjsFJQEsaR){%N5UO!fl`+!t2;| zQpj~b2mx1)L@p3Jrg}7EQslaE`AP!N(qHvCMoghPg!-e4s$+ zHP@=U)?hS6Q45;ksPlBSVhQ$M2zfIWVU^zahE4tWA7 zf|AnWBQKeM!ba~9eto>$(6A^X<(EueU$3p#>K=fqToAx{sN!rj7<>aJ-tBD=kd%D@ zMoCK8`0%1BhC{EVkIUm1)YmGcwHXd_Pq&-F9G2b&IFtdk0OG}6tCYaigSUZ!NQ$^Kt>#rL!3+~z1@thd($QQ&Plp|Xs%Eyk9R+uauQVZwMNyTI#g02BS+N zb#lRIulnBw16HQ1T$IoK#bdGK>tl~Xpu1dbJZfgXoo+XWITR)*=BsBT0W7JXtu-Mj z5kyDAlRCk>!PH*DN=!a7!J%*?%LE zjOq1)o+p?cx+h{I4uB7+7S2YdB_hJ&9&bD*hm14av6>dvU}Q{BGT?_~R2l*U^T}FA z@rWncuSI?5Ww2UaU}8;h`r@kYk+k*obh{;t3q<95l($};7Q1LtMDai`^j7NBsqj!i z9;k~O&X!3C7P%y~2n@ET0O>upYB@ARNLjC*rf3Pz?CodxK2doY5gNfhQjt2ES^?QAp+>NxPP$24n*TRHr zphg=wQ|tI7c(8O>1i08Se%~o#&JDXu<0NgTH%ghYuwmQyD^aA&m;(wJKZ!-7;9wjf zW_fhmO$BsJrvKaz!amC6wZ^dl>`d{hIu*JqF6p?DEW8So&Os^ra%;q;b3i-TN#w*} zC|$QVp3VPe5$-bPxFwP}QMfZ7Y01u^fLq&w@XmCm3JOG!~hb1|>kyjaOFz#2(bLW{ySj!Xc+ltyV0{ zm?B1JMH54{N&E=Qrhc|&)CzbjEvug|m1n`W1_qwjF9c0jNnb$XiW&QW1}0Q87F5n(>TqU3w1ZZx1 zPat1WK_!bk-O@(7>`)X9DwFG#wOJzC$gyJ74IsmJC^X+1y6SUOLW23lhQ|#iI|e|dXZzm$}T%@}g;f5_w|No{I8)N!2{ zH+=z|Q5&BEvb9qEHS0A%mLQRSEb9C_Py^?n})Ub2En6A=qZcyCEEgC&XJ2LYAR5$IJrSd{t8tS7(815bP3?$ z3PAWNExFuJ$AkJGm;r+!eJvUt_XD3}~(F zWB7c|K$A$~*qTo~_ST*lghUw~0t941=YO0~1cx#YU~xgbh$&MzKj>|qMb!kx@2=^K z?!M;Gr0t&H+2%NF=T2%OJ2BAzwVXRw_}U$ebQHUiJO@=%1Gp5>NnS>|fcE!~tM-bc z)+vsqx*o*|g>fR$`yGCdX~RN}#7%ixPb`2FkKIi4v$0y{#nh7owabl9ZtmtQMpWprPKl_2aASSpcw!{R9PjAsZBN1c=R|yt|rr@z(NSX zG1(ecP`qy7q77IFK>P3(^<@YWe(}I8K zEUSVH2}r6~@bkqUQkohB>jM%i$i9M{I3Tg!op_;x0I*fqB$xAbkr_LvJI=mMf=zDVC!BnV;EDL)lkGUpu)tU>lJjW9VE8!JWyggbvjfE<7iw zwE&{7a%SwlWc0>rD+Y;!)Gox!;;qttBb~Pnjp=5S?$~{(br=GmUQ{fel6XbP6+d;k zPXf{&2EV(svq4AVy!~8xs{rg_o85w`{TYQIWuj2WWQ~cic#GkM99x_{Mvm{;1{f%Q zFjTOG)PDBrYXd;iyCk)P73rD65eDfPEHQHWe$}K$`Gdr=1|Zj*lqAx5uAA3i zMCd;TJVa1R{3?u?F7&>H4@Y)~Qk8&t=t@2O7I+6mSx;iY5`O;g^)NN7C5hz}4me2p0PMT2<4$HABJxBM zLnHqq9L5G}2*G+JNrXd?n?X&i^XvZ^vSnoHHeLCSP7|1j7G>0KU=DJJB)s)G4?Y2s zl&#=DbVDpNNWPNc6tE4W0yS>HdM3k*7H)%pjZ8V$|A^n;4HQ5H!Ra8LjKBYduGEJB zHLI5W4xl2XXb6+783o2ciHb)6P}zOU{B)?L&@i>R^E(y!jm@iW_kxYcnbHSkfD~P5 z4l3>ep=CJP$U=jbbm8*gUM`0`NKYg}aGH1m`t}H^=Sde&0~$r=?=-q_prLVs?;87Mv+ z2|1#)w!T##5Krjk_A59TfCZhk^`~y;%A&4poYs;sa6|#Y@I#=K_s2Bjx$4CS*@nO( z)XkLoy?3r7jn)Uaa>zAk_Vvk533DOa1s+( z$%L3c6%rzsWS)PTRafPIQYVPxg|>~kHYN8!tg1-a{Ux0n6_wD~BuEcw&w#1B|C?Bd z@YbEFPzy)$14~m9oE|OeN-!iF*DavOMdmxi>F`nb4yGx&kA41wP}kUIg)(s5Wjn^! zA7?L!kbTfkprjl62ncUiAwZ*u034=-lO5$c)Rixf#0iKvDML=^tspK8>!}$oVtoA|=tJ7tyRap4E5Hc}diwGA zjb`wFKq_X8r!iS=UWMAUa-hQMz*nVKkR-wPDTz>&^Pt2Hj@wjGqsjg>wO5agwZPOo z6M9rY0#!+Xw`7Iqy;~UrKBmWbOn&B%)A}Ky+7$GZxYskK zbjSJyO_Aq3qj_o~c$WZ>vP`2^y-*_%L`4bVuKqQgD_!&qj|QHFj?o7rM@jx;V{I_C zosqH`K4k|evC8dlavb`KD86_@vKPwB9zsx~u1p5cEz4=+oN)mdYmZLsalnvWbd;)f z^#9~RNePr=M#NH%BeGAsQAlo51|{E0~gOdQ|P{kKSX{7o!YpKPNxtx(xoE3dk-S!Aix(5(l1&k zJ5Y$929=w$bj46GcUG&huWs`aSnnK^L*apgej=X-+CN2Qk}Wgloa|HPJwKr0!~E%k z>t$$#d~l`{hbyi^NtCa}_X=HxmdRinT4KKjn8Jd<(41|_xZ3rW4z>B&wNxgK*94Hm zw5KvThR7Jwr2y4iZ2>VEAh8fq8Nrb;DsugQz$dfS+MuS0XfdF{L#|`09&{y{I|#IX z9UgQNj+;6T;H8CBC++EQ)N9r z&~6HYw_hH;F0Z;S2Ki+R^vb8m5dn}~Csn0Vc!N@1t>Bd!^!?I6%;vITrQRD*I+nw z{Wkr*kW3NbX>vL=6;6L@G>P*q<{y&qHQv?Sl%WzjoCK6ewU%(8bUx3EDUY5a1xvA- zEL`?H?N0FR>xYGOn^cZZHp7KIvuFW%$ww=g+VTIZ>&&B?y0$ocV{EL?h*hf*6?q^5 z5rG&G88l?!fXoy~Q9-~0;tUEXMua$9XBk8pg9->LR8SF+Ce|t@4C0VbM3f>!UKB+_ zMIZ@p-+M0g^^fObE!WDu=MHDu`~3E|&qZNAg~Q)jqz87o;2MxlKg{Erx36v_=FBgL zmB1UXQsV=*2l3oE@_X1|b8_ z@8m4NO}^muZNALXM|u_pv$s#hg_FOAVfl{hqWV;(J6ev|Uk{F6yVjh{yx@CD$}X9wq}cFRrgoRER|DVKzIr75by=r{fx;i!K|>cAN+>YwQtn?5Oei2G zAMTUY74IM2YHDShM@ZYJ4YfE1VWx#NoxA2)0( zS8yGzu;+rZ_|K3l1ES5Yz1D7NL*Ef|aOInJ$d0hS>w1h9^_S(u5G;SBy1Q=JSDJYv@5h2E-CuISA^N%sKVHSc!7 z*mRgrtujSDr;UOEZ^_690s*Zne3HsyjjRY8Qg z6~3cS>X8skzEFDDunK7!$ZO<6!fjJL|AZ3=MT8AK?lkiu=B@&_)ysu`F7^-W z3U}fGg}a_l#p9|+*INXQkO zHtW>>gB2uBF20#-X-rtp8v`05u*mH`RkFwSq0KXFc&9?)94;)pCwUr($4*kspt6gm z6+o&@9_o=bDNBGR+;C{)0VSdj#-)RgQP$)5MPhUYHU2yF4HltSP9~Az|!Prq{k|xN|P_Hep>}gPe`rknykAK=52b)86(Iow$}{* zxOPps5=Bk~-<0#4^+wI+&ck%;EXs_A=2FW-4p=v1dG`4fG9PQYyXi1{k=D~7J?grO z0m6X4Q)3J*WK|Lg@VynqP25l~B~^;)b&yF`&`JoowOcFPX)NqPN%dY8cmz0l00>du z5+o3@K7P%0>x={=*K!D>vedh&H)?U+=lMsca3iy{L2p7(?0QqmY>E(82ZD{OXBvtD zfd11ltE}_BQ7}$&y@iA!a`D~u^xW3WxM~P;Jc0GzUu@#k#d=vSSz$lo*e@eu@L2{L zY+d#3H*+@N>rRixmp3TtM`liAzD&d|XG;7EJYbu+C5behst}u5#x|11v7OG%6@!j3 zf{_M{E*e<#gM}-B{2VkZjXM{BazIO7KYkpms|Vj%8sDWoLBrYS-YRg~%Zx@qq5?8$ zRLT|j=Sm;_jOSEWm^$3iUeh5?Z7(@F>9{xS=>Y70EPNXp{zbJzV$BnXSAgurWaNLp zyZ_Le_1Fz<_I}l}6VtPU@R$u(>zAQ0DUL4q-oSIkSv==HLK=r6!5q z+kS8IZ?)-F?r_Od)y6O)sGKji2|G;(HI>JpoaCy-9?iYljQEGTEMyx*&tL zX|Ja<1);33AfE_@QQDX{)@it|n?R!pdffJOOPIia19l{IM?;kkvlBLO{nEMZq5Im- z?Z|b3#H8iM^2(udUCy~^tzx`xTPk$b)p~lG=SHAKe0tO7`lxBhn^<8dyivkt`NW9=IJ%JPx|rKAVqrssz2ZKj^El z8r6gqv9Uh8jMo^hG^tA4WpmQ;oJr2YF+{V8?!>QgxFIiurFpYangpvUh64XNt{-&X zrvXJIvFWd%#ovv%(QJ2Zr%bHbva9X*Xt+@D4UZ{%$QFNEh&}kk2O-ON@E-Eze-XH9 z7dn);8jhW`ksnP6^VZvg&Fhd}7IvL+|_)ITH^`7_*RKWsEW)=o`WqRyPbV{}#`UChcMX*S}u1fkx2H`Nk-&fKwe&<=Iw zE2uzt-6dbFRLA(B{&`AQ8f8XTOS6^b6{(D@q}r=RUJ*5QbK!1m?19sa1x>hpATHUq zLeJ$|par$gk;+^YOhDZ1x-vv=oof98F<;mOXu&L>+njl0h?|`9Z}_ z)j%_tpFZ!FMACeMY+oMZ1lD>VinIgXVLa%Dx`)DCwj0u9^p)t?m5xhB(P%6*TH*1Y z7}zvD2H>VhFP;{;r5N8S^<8P`yYfSV4`3CyKhLgSh3?LGy4LsRR&Gns`6=8qyMdGM zlD=#)C0eMmwWqmCw$41ac7`B#7VlxOJJAChTU{;cia}V40bMlavg%I!V#y@3O&xdx zVIS{{o>3~HIxCx)Q-}*SrWOUJuZz%|Hir0FcG?_Z+)>!$qI20uV|TdVLl`_3&o$L& z9U1y;%?r$iLN6$l$#AV^k{2Q_sF;EfA*>ZfN9$I^2%*<$%^ivY#wI~exEDH4%c+S8 z9Ek?ijdxkM)eG%adLt;LjXn6pQ&dTk;+uJ$m-j$2CDabs!k}N`6v-g85(7w(J{xeE zNwrujjH~Ll_ZJySf#htkXb|B%+yNMkCANs?L4|Z2(wpU-Y;Gisppv+ey4N5ilP&Z^ zUc4z768~=%6QPeV%Va#4(eS!Xq0eoLR0{tnWd>jJO~jJy`8h}w66jReICzaz&>J1# z*`r^=v~!)Xh}eV@$XRL(Em=EWSVNLGXmC&W<7pQ;EdDro4F3dNPUSmr$*9bpsJ>r9 zq%iLY2cTIQuofl28sfl$v-*%5o|sJGL-X-vffXzlSR9<;H_9eW?GHPBdf!T#Vjq4e&(EcTBn3TJ@zz}grzGfG;t=Bm zO_b8%kKQLL^E1J#2(<8>l7tX@+gG2!;1 zJHz2WjLl-R%@@L-wI9pQe$gWPg;r)PmOYDg%HXH>|0u96GHla^J^#OeI{u|MUO_G^ LJeL - - - - - - - -
-
-
- storage provider -
-
-
-
- - storage provider - -
-
- - - - -
-
-
- storage provider -
-
-
-
- - storage provider - -
-
- - - - storage space - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - storage space - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - storage space - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- a sea of storage spaces -
-
-
-
- - a sea of storage spaces - -
-
- - - storage space - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - storage space - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- einstein -
-
-
-
- - einst... - -
-
- - - - - -
-
-
- marie -
-
-
-
- - marie - -
-
- - - - - -
-
-
- richard -
-
-
-
- - richa... - -
-
- - - - - - -
-
-
- storage space -
- registry at -
- - https://cloud.zurich.test - -
-
-
-
- - storage sp... - -
-
- - - - -
-
-
- storage space -
- registry at -
- - https://cloud.paris.test - -
-
-
-
- - storage sp... - -
-
- - - - -
-
-
- storage space -
- registry at -
- - https://cloud.princeton.test - -
-
-
-
- - storage sp... - -
-
- - - - -
-
-
- oCIS = federated storage -
-
-
-
- - oCIS = federated storage - -
-
- - - - -
-
-
- multiple -
- storage registries -
-
-
-
- - multiple... - -
-
- - - - -
-
-
- end user devices -
-
-
-
- - end user devices - -
-
- - - - -
-
-
- storage provider -
-
-
-
- - storage provider - -
-
- - - storage space - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - Viewer does not support full SVG 1.1 - - - - \ No newline at end of file diff --git a/docs/ocis/static/monitoring_tracing_overview.drawio.svg b/docs/ocis/static/monitoring_tracing_overview.drawio.svg deleted file mode 100644 index 79ea637533..0000000000 --- a/docs/ocis/static/monitoring_tracing_overview.drawio.svg +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - - - - - - - -
-
-
- Prometheus -
-
-
-
- - Prometheus - -
-
- - - - - - - - -
-
-
- Jaeger Query -
-
-
-
- - Jaeger Query - -
-
- - - - - - -
-
-
- Jaeger Collector -
-
-
-
- - Jaeger Collector - -
-
- - - - -
-
-
- ElasticSearch -
-
-
-
- - ElasticSearch - -
-
- - - - - - - - -
-
-
- Grafana -
-
-
-
- - Grafana - -
-
- - - - - - -
-
-
- oCIS -
-
-
-
- - oCIS - -
-
- - - - -
-
-
- Telegraf -
-
-
-
- - Telegraf - -
-
- - - - -
-
-
- Prometheus output -
-
-
-
- - Prometheus output - -
-
- - - - - - - - -
-
-
- Prometheus input -
-
-
-
- - Prometheus input - -
-
- - - - -
-
-
- Host & Docker metrics -
-
-
-
- - Host & Docker metrics - -
-
- - - - - - -
-
-
- Jaeger Agent -
-
-
-
- - Jaeger Agent - -
-
- - - - - - - - -
-
-
- server for monitoring & tracing infrastructure -
-
-
-
- - server for monitoring & tracing infrastru... - -
-
- - - - -
-
-
- server(s) for oCIS with monitoring & tracing clients -
-
-
-
- - server(s) for oCIS with monitoring & tracing c... - -
-
- - - - -
-
-
- Visualization and querying of -
- metrics and traces -
-
-
-
- - Visualization and querying o... - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/static/ocis-apis.drawio.svg b/docs/ocis/static/ocis-apis.drawio.svg deleted file mode 100644 index 85721884e0..0000000000 --- a/docs/ocis/static/ocis-apis.drawio.svg +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - - -
-
-
- Client 1 -
-
-
-
- - Client 1 - -
-
- - - - -
-
-
- HTTP Gateway -
- (proxy service) -
-
-
-
- - HTTP Gateway... - -
-
- - - - -
-
-
- Client 2 -
-
-
-
- - Client 2 - -
-
- - - - -
-
-
- Client 3 -
-
-
-
- - Client 3 - -
-
- - - - - - -
-
-
- HTTP -
-
-
-
- - HTTP - -
-
- - - - - - -
-
-
- HTTP -
-
-
-
- - HTTP - -
-
- - - - - - -
-
-
- HTTP -
-
-
-
- - HTTP - -
-
- - - - -
-
-
- ocis service -
-
-
-
- - ocis service - -
-
- - - - -
-
-
- ocis service -
-
-
-
- - ocis service - -
-
- - - - -
-
-
- ocis service -
-
-
-
- - ocis service - -
-
- - - - - - -
-
-
- HTTP -
-
-
-
- - HTTP - -
-
- - - - -
-
-
- GRPC Gateway -
- (gateway service) -
-
-
-
- - GRPC Gateway... - -
-
- - - - - - -
-
-
- gRPC -
-
-
-
- - gRPC - -
-
- - - - - - -
-
-
- gRPC -
-
-
-
- - gRPC - -
-
- - - - - - -
-
-
- HTTP -
-
-
-
- - HTTP - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/static/ocis-config-redesign.drawio.svg b/docs/ocis/static/ocis-config-redesign.drawio.svg deleted file mode 100644 index e7615dd022..0000000000 --- a/docs/ocis/static/ocis-config-redesign.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
> ocis server
> ocis server

# global logging config
log:
  pretty: true
  color: true
  level: info
proxy:
  http:
    addr: localhost:9200
  log:
    pretty: false
    color: false
    level: info
accounts:
  log:
    level: debug
    color: false
    pretty: false

# global logging config...
ocis.yaml
ocis.yaml

  http:
    addr: localhost:1234
  log:
    pretty: false
    color: false
    level: info

http:...
proxy.yaml
proxy.yaml

  http:
    addr: localhost:5678


http:...
accounts.yaml
accounts.yaml
resulting proxy config values
resulting proxy config values
resulting accounts config values
resulting accounts config values

  http:
    addr: localhost:1234
  log:
    pretty: false
    color: false
    level: info


http:...
notice how even if ocis supplies
with logging configuration, the values
from the extension overwrite the inherited
values. This can also be achieved using an
environment variable.
notice how even if ocis supplies...

  http:
    addr: localhost:5678
  log:
    pretty: false
    color: false
    level: debug


http:...
on the other hand here we see the extension
inherited the logging information from the parent.
The same holds true from any value. Values from
ocis.yaml are carried down to their respective
extensions.
on the other hand here we see the extension...
Viewer does not support full SVG 1.1
diff --git a/docs/ocis/static/ocis-services-communication.drawio.svg b/docs/ocis/static/ocis-services-communication.drawio.svg deleted file mode 100644 index 06d30268e8..0000000000 --- a/docs/ocis/static/ocis-services-communication.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
public share auth provider
public share auth pr...
machine auth provider
machine auth provider
proxy
proxy
web
web
grpc
grpc
grpc
grpc
ocs
ocs
grpc
grpc
ocdav
ocdav
grpc
grpc
ocs
ocs
grpc
grpc
settings
settings
LDAP
LDAP
idp
idp
nats
nats
grpc
grpc
LDAP
LDAP
graph
graph
http
http
graph-explorer
graph-explorer
grpc
grpc
webdav
webdav
grpc
grpc
thumbnails
thumbnails
gateway
gateway
grpc
grpc
storage registry
storage registry
grpc
grpc
storage provider
storage provider
share storage provider
share storage provid...
public storage provider
public storage provi...
user provider
user provider
group provider
group provider
http
http
http
http
http
http
http
http
http
http
http
http
http
http
http

http
http
http
grpc
grpc
grpc
grpc
grpc
grpc
grpc
grpc
grpc
grpc
grpc
grpc
Storage
Storage
Reva
Reva
oCIS
oCIS
http
http
libregraph/idm
libregraph/idm
oidc authprovider
oidc authprovider
LDAP
LDAP
basic auth provider
basic auth provider
grpc
grpc
grpc
grpc
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/ocis/static/runtime.drawio.svg b/docs/ocis/static/runtime.drawio.svg deleted file mode 100644 index 754593d792..0000000000 --- a/docs/ocis/static/runtime.drawio.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
Runtime
Runtime
ocs
ocs
graph
graph
idm
idm
storage
storage
proxy
proxy
idp
idp
thumbnails
thumbnails
webdav
webdav
suture
suture
$ ocis server
$ ocis kill proxy
$ ocis start proxy
$ ocis list
$ ocis server...
the runtime component starts services
and suture then takes over, keeping
track of every started service, restarting
it when needed if an error occurred.
the runtime component starts services...
each service is implemented as a sub-command. The binary essentially calls itself with the right arguments and the side effect is that a
service is started. The service will then be monitored by Suture.
each service is implemented as a sub-command. The binary essentially calls itself with the right arguments and the side e...
the runtime is a service in itself. Starting an
oCIS instance will start a runtime service.
the runtime is a service in itself. Star...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/ocis/static/src/tus-public-upload.drawio b/docs/ocis/static/src/tus-public-upload.drawio deleted file mode 100644 index 544651b408..0000000000 --- a/docs/ocis/static/src/tus-public-upload.drawio +++ /dev/null @@ -1 +0,0 @@ -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 \ No newline at end of file diff --git a/docs/ocis/static/tus-public-upload.svg b/docs/ocis/static/tus-public-upload.svg deleted file mode 100644 index ad2a5c5f49..0000000000 --- a/docs/ocis/static/tus-public-upload.svg +++ /dev/null @@ -1,3 +0,0 @@ - - -

ocis-reva sharing


REVA_SHARING_ADDR = 0.0.0.0:9150

ocis-reva sharing...

ocis-reva frontend


REVA_FRONTEND_ADDR = 0.0.0.0:9140

REVA_GATEWAY_URL = ocis:9142

ocis-reva frontend...

ocis-proxy


PROXY_HTTP_ADDR = 0.0.0.0:9200

ocis-proxy...
 2  POST http://ocis:9140/remote.php/dav/files/einstein/
2  POST http:/...

ocdav


prefix = ""

timeout = 86400

ocdav...

datagateway


prefix = "data"

timeout = 86400

datagateway...

client



client
 22  PATCH https://oc.example.org/data/{token}
Tus-Resumable: 1.0.0
22  PATCH http...

ocis-reva gateway


REVA_GATEWAY_ADDR = 0.0.0.0:9142

ocis-reva gateway...

storage-registry



storage-registry
Expose: true
Expose: true
 24  PATCH http://ocis:9156/data/u-u-i-d
24  PATCH http...
 4  GetStorageProvider
(ShareReference)
4  GetStorageP...
 5  ProviderInfo
 5  ProviderInfo

storageprovider


REVA_STORAGE_HOME_ADDR = 0.0.0.0:9154

REVA_STORAGE_HOME_DRIVER = eoshome

REVA_STORAGE_HOME_EXPOSE_DATA_SERVER = false

REVA_STORAGE_HOME_DATA_SERVER_URL =

    http://ocis:9156/data

storageprovider...
Expose: false
Expose: false
 6  InitiateFileUpload
(ShareReference)
6  InitiateFil...
EOS
EOS
 15  WriteFile(upload info)
15  WriteFile(...
 7  GetPublicShare
7  GetPublicSh...
 19  UploadEndpoint
https://oc.example.org/data/{token}
19  UploadEndp...
 20  201 Created
Location: https://oc.example.org/data/{token}
20  201 Create...
 21  201 Created
Location: https://oc.example.org/data/{token}
21  201 Create...
 1  POST https://oc.example.org/remote.php/dav/files/einstein/
Upload-Length: 100
Tus-Resumable: 1.0.0
Upload-Metadata: filename d29ybGRfZG9taW5hdGlvbl9wbGFuLnBkZg==,
dir d29ybGRfZG9taW5hdGlvbl9wbGFuLnBkZg==
1  POST https:...
 23  PATCH http://ocis:9140/data/{token}
Tus-Resumable: 1.0.0
23  PATCH http...
 3  InitiateFileUpload
3  InitiateFil...
 25  Write(bytes)
25  Write(byte...
 26  204 No Content
26  204 No Con...
 27  204 No Content
27  204 No Con...
 28  204 No Content
28  204 No Con...

publicstorageprovider


expose-data-server = true

publicstorageprovider...

publicshareprovider



publicshareprovider
 8  GetPublicShare
8  GetPublicSh...
 9  PublicShare
 9  PublicShare
 10  PublicShare
 10  PublicShare
 11  InitiateFileUpload(TargetReference)
11  InitiateFi...
 12  GetStorageProvider
(TargetReference)
12  GetStorage...
 13  ProviderInfo
13  ProviderIn...
 14  InitiateFileUpload(TargetReference)
14  InitiateFi...
 16  UploadEndpoint
http://ocis:9156/data/u-u-i-d
Expose: false
16  UploadEndp...
 17  UploadEndpoint
https://oc.example.org/data/
token: sign(http://ocis:9156/data/u-u-i-d)
17  UploadEndp...
 18  UploadEndpoint
https://oc.example.org/data/{token}
Expose: true
18  UploadEndp...

gateway


REVA_TRANSFER_EXPIRES = 86400

REVA_FRONTEND_URL =

    https://oc.example.org

REVA_DATAGATEWAY_URL =

    https://oc.example.org/data

    

gateway...
When a storage provider
sets the Expose flag of an Upload/Download Endpoint to false the gateway will wrap the url in a JWT and return the URL of the datagateway along with a transfer-token.
When a storage provider...

dataprovider


REVA_STORAGE_HOME_DATA_ADDR = 0.0.0.0:9156

REVA_STORAGE_HOME_DATA_DRIVER = eoshome

dataprovider...
GOAL: transfer bytes from the client up here ...
GOAL: tran...
... to the storage system somewhere down here
... to the storage syst...
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/docs/ocis/storage-backends/_index.md b/docs/ocis/storage-backends/_index.md deleted file mode 100644 index 8f709252dd..0000000000 --- a/docs/ocis/storage-backends/_index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "Storage backends" -date: 2020-02-27T20:35:00+01:00 -weight: 40 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage-backends -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- diff --git a/docs/ocis/storage-backends/cephfs.md b/docs/ocis/storage-backends/cephfs.md deleted file mode 100644 index ed1e1133a3..0000000000 --- a/docs/ocis/storage-backends/cephfs.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: "cephfs" -date: 2021-09-13T15:36:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage-backends/ -geekdocFilePath: cephfs.md ---- - -{{< toc >}} - -oCIS intends to make the aspects of existing storage systems available as transparently as possible, but the static sync algorithm of the desktop client relies on some form of recursive change time propagation on the server side to detect changes. While this can be bolted on top of existing file systems with inotify, the kernel audit or a fuse based overlay filesystem, a storage system that already implements this aspect is preferable. Aside from EOS, cephfs supports a recursive change time that oCIS can use to calculate an etag for the webdav API. - -## Development - -The cephfs development happens in a [Reva branch](https://github.com/cs3org/reva/pull/1209) and is currently driven by CERN. - -## Architecture - -In the original approach the driver was based on the [localfs](https://github.com/cs3org/reva/blob/a8c61401b662d8e09175416c0556da8ef3ba8ed6/pkg/storage/utils/localfs/localfs.go) driver, relying on a locally mounted cephfs. It would interface with it using the POSIX apis. This has been changed to directly call the Ceph API using https://github.com/ceph/go-ceph. It allows using the ceph admin APIs to create sub-volumes for user homes and maintain a file id to path mapping using symlinks. - -## Implemented Aspects -The recursive change time built ino cephfs is used to implement the etag propagation expected by the ownCloud clients. This allows oCIS to pick up changes that have been made by external tools, bypassing any oCIS APIs. - -Like other filesystems cephfs uses inodes and like most other filesystems inodes are reused. To get stable file identifiers the current cephfs driver assigns every node a file id and maintains a custom fileid to path mapping in a system directory: -``` -/tmp/cephfs $ tree -a -. -├── reva -│ └── einstein -│ ├── Pictures -│ └── welcome.txt -└── .reva_hidden - ├── .fileids - │ ├── 50BC39D364A4703A20C58ED50E4EADC3_570078 -> /tmp/cephfs/reva/einstein - │ ├── 571EFB3F0ACAE6762716889478E40156_570081 -> /tmp/cephfs/reva/einstein/Pictures - │ └── C7A1397524D0419B38D04D539EA531F8_588108 -> /tmp/cephfs/reva/einstein/welcome.txt - └── .uploads -``` - -Versions are not file but snapshot based, a [native feature of cephfs](https://docs.ceph.com/en/latest/dev/cephfs-snapshots/). The driver maps entries in the native cephfs `.snap` folder to the CS3 api recycle bin concept and makes them available in the web UI using the versions sidebar. Snapshots can be triggered by users themselves or on a schedule. - -Trash is not implemented, as cephfs has no native recycle bin and instead relies on the snapshot functionality that can be triggered by end users. It should be possible to automatically create a snapshot before deleting a file. This needs to be explored. - -Shares [are mapped to ACLs](https://github.com/cs3org/reva/pull/1209/files#diff-5e532e61f99bffb5754263bc6ce75f84a30c6f507a58ba506b0b487a50eda1d9R168-R224) supported by cephfs. The share manager is used to persist the intent of a share and can be used to periodically verify or reset the ACLs on cephfs. - -## Future work -- The spaces concept matches cephfs sub-volumes. We can implement the CreateStorageSpace call with that, keep track of the list of storage spaces using symlinks, like for the id based lookup. -- The share manager needs a persistence layer. -- Currently we persist using a single json file. -- As it basically provides two lists, *shared with me* and *shared with others*, we could persist them directly on cephfs! - - If needed for redundancy, the share manager can be run multiple times, backed by the same cephfs - - To save disk io the data can be cached in memory, and invalidated using stat requests. -- A good tradeoff would be a folder for each user with a json file for each list. That way, we only have to open and read a single file when the user want's to list the shares. -- To allow deprovisioning a user the data should be sharded by userid. That way all share information belonging to a user can easily be removed from the system. If necessary it can also be restored easily by copying the user specific folder back in place. -- For consistency over metadata any file blob data, backups can be done using snapshots. -- An example where einstein has shared a file with marie would look like this on disk: -``` -/tmp/cephfs $ tree -a -. -├── reva -│ └── einstein -│ ├── Pictures -│ └── welcome.txt -├── .reva_hidden -│ ├── .fileids -│ │ ├── 50BC39D364A4703A20C58ED50E4EADC3_570078 -> /tmp/cephfs/reva/einstein -│ │ ├── 571EFB3F0ACAE6762716889478E40156_570081 -> /tmp/cephfs/reva/einstein/Pictures -│ │ └── C7A1397524D0419B38D04D539EA531F8_588108 -> /tmp/cephfs/reva/einstein/welcome.txt -│ └── .uploads -└── .reva_share_manager - ├── einstein - │ └── sharedWithOthers.json - └── marie - └── sharedWithMe.json -``` -- The fileids should [not be based on the path](https://github.com/cs3org/reva/pull/1209/files#diff-eba5c8b77ccdd1ac570c54ed86dfa7643b6b30e5625af191f789727874850172R125-R127) and instead use a uuid that is also persisted in the extended attributes to allow rebuilding the index from scratch if necessary. diff --git a/docs/ocis/storage-backends/dcfsnfs.md b/docs/ocis/storage-backends/dcfsnfs.md deleted file mode 100644 index 0a0238f301..0000000000 --- a/docs/ocis/storage-backends/dcfsnfs.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: "Decomposed FS on NFS" -date: 2020-03-15T16:35:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage-backends/ -geekdocFilePath: dcfsnfs.md ---- - -{{< toc >}} - -oCIS' default storage backend is the Decomposed FS. The Decomposed FS can be set up to run on a NFS share. That way the same storage can be provided over the network to other nodes running oCIS. - -This document summarizes a few important considerations of the NFS setup and describes a tested setup. The test has not covered concurrent access of data from different nodes yet. - -## NFS Server Setup - -This document covers the linux kernel NFS server on a standard Linux running on x86_64. - -The NFS server needs to be set up in a way that it supports [extended file attributes](https://en.wikipedia.org/wiki/Extended_file_attributes). - -Extended attributes are supported by NFS starting with Kernel version 5.9, which means that the server with the NFS server has to run a kernel with that or a higher version number. To check that, run the command `uname -a` on the NFS server and compare the displayed version number. - -The NFS server in the test setup was configured with the following line in the config file `/etc/exports`: - -`/space/nfstest 192.168.178.0/24(rw,root_squash,async,subtree_check,anonuid=0,anongid=100,all_squash)` - -This exports the directory `/space/nfstest` to the internal network with certain options. - -Important: - -- The share needs to be exported with the `async` option for proper NFS performance. - -## NFS Client Mount - -The nodes that run oCIS need to mount the NFS storage to a local mount point. - -The test setup uses the client mount command: `mount -t nfs -o nfsvers=4 192.168.178.28:/space/nfstest /mnt/ocisdata/` - -It sets the NFS version to 4, which is important to support extended attributes. - -After successfully mounting the storage on the client, it can be checked if the NFS setup really supports extended attributes properly using the following commands. - -`setfattr -n user.test -v "xattr test string" ocisdata/foo` to write an extended attribute to a file, and `getfattr -d ocisdata/foo` to list all the attributes a file has set. - -{{< hint info >}} -The NFS server setup can be optimized considering system administrative-, performance- and security options. This is not (yet) covered in this documentation. -{{< /hint >}} - -## oCIS Start using the NFS Share - -The oCIS server can be instructed to set up the decomposed FS at a certain path by setting the environment variable `OC_BASE_DATA_PATH`. - -The test setup started an oCIS tech preview single binary release using this start command: - -```bash -./ocis init -OC_BASE_DATA_PATH=/mnt/ocisdata/ OC_LOG_LEVEL=debug OC_INSECURE=true PROXY_HTTP_ADDR=0.0.0.0:9200 OC_URL=https://hostname:9200 ./ocis server -``` - -This starts oCIS and a decomposed FS skeleton file system structure is set up on the NFS share. - -The oCIS instance is passing a smoke test. diff --git a/docs/ocis/storage-backends/eos.md b/docs/ocis/storage-backends/eos.md deleted file mode 100644 index 6b029f6ec7..0000000000 --- a/docs/ocis/storage-backends/eos.md +++ /dev/null @@ -1,245 +0,0 @@ ---- -title: "EOS" -date: 2020-02-27T20:35:00+01:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage-backends/ -geekdocFilePath: eos.md ---- - -{{< toc >}} - -oCIS can be configured to run on top of [eos](https://eos.web.cern.ch/). While the [eos documentation](http://eos-docs.web.cern.ch/) does cover a lot of topics, it leaves out some details that you may have to either pull from various [docker containers](https://gitlab.cern.ch/eos/eos-docker), the [forums](https://eos-community.web.cern.ch/) or even the [source](https://github.com/cern-eos/eos) itself. - -This document is a work in progress of the current setup. - -## Docker dev environment for eos storage - -We begin with the docker-compose.yml found in https://github.com/owncloud/ocis/tree/master/ocis/ and -switch it to eos-storage. - -### 1. Start eos & ocis containers - -Start the eos cluster and ocis via the compose stack. -``` -docker-compose up -d -``` - -{{< hint info >}} -The first time the **ocis** container starts up, it will compile ocis from scratch which can take a while. -To follow progress, run `docker-compose logs -f --tail=10 ocis` -{{< /hint >}} - -### 2. LDAP support - -Configure the OS to resolve users and groups using ldap - -``` -docker-compose exec -d ocis /start-ldap -``` - -Check that the OS in the ocis container can now resolve einstein or the other demo users - -``` -$ docker-compose exec ocis id einstein -uid=20000(einstein) gid=30000(users) groups=30000(users),30001(sailing-lovers),30002(violin-haters),30007(physics-lovers) -``` - -{{< hint info >}} -If the user is not found at first you might need to wait a few more minutes in case the ocis container is still compiling. -{{< /hint >}} - -We also need to restart the storage-userprovider service, so it picks up the changed environment. Without a restart it is not able to resolve users from LDAP. -``` -docker-compose exec ocis ./bin/ocis kill storage-userprovider -docker-compose exec ocis ./bin/ocis run storage-userprovider -``` - -### 3. Home storage - -Kill the home storage. By default it uses the `ocis` storage driver. We need to switch it to the `eoshome` driver: - -``` -docker-compose exec ocis ./bin/ocis kill storage-home -docker-compose exec -e STORAGE_HOME_DRIVER=eoshome ocis ./bin/ocis run storage-home -``` - -### 4. Users storage - -Kill the users storage. By default it uses the `ocis` storage driver. We need to switch it to the `eos` driver: - -``` -docker-compose exec ocis ./bin/ocis kill storage-users -docker-compose exec -e STORAGE_USERS_DRIVER=eos ocis ./bin/ocis run storage-users -``` - -### 5. Metadata storage - -First we need to create the metadata root in eos and set an owner: -``` -docker-compose exec ocis eos mkdir -p /eos/dockertest/ocis/metadata -docker-compose exec ocis eos chown 2:2 /eos/dockertest/ocis/metadata -``` - -{{< hint info >}} -The uid and gid `2` are referencing the user `daemon` inside the ocis container. That user is also configured when restarting the accounts service later. For production systems you should create a dedicated user for the metadata storage. -{{< /hint >}} - -Kill the metadata storage. By default it uses the `ocis` storage driver. We need to switch it to the `eos` driver: - -``` -docker-compose exec ocis ./bin/ocis kill storage-system -docker-compose exec -e STORAGE_SYSTEM_DRIVER=eos -e STORAGE_SYSTEM_ROOT=/eos/dockertest/ocis/metadata ocis ./bin/ocis run storage-system -``` - - -### 6. Accounts service - -Kill the accounts service. By default it uses the `ocis` storage driver. We need to switch it to the `eos` driver: - -``` -docker-compose exec ocis ./bin/ocis kill accounts -docker-compose exec -e ACCOUNTS_SERVICE_USER_USERNAME=daemon -e ACCOUNTS_SERVICE_USER_UID=2 -e ACCOUNTS_SERVICE_USER_GID=2 ocis ./bin/ocis run accounts -``` - -## Verification - -Login with `einstein / relativity`, upload a file to einsteins home and verify the file is there using - -``` -docker-compose exec ocis eos ls -l /eos/dockertest/reva/users/4/4c510ada-c86b-4815-8820-42cdf82c3d51/ --rw-r--r-- 1 einstein users 10 Jul 1 15:24 newfile.txt -``` - -If the problem persists, please check the [troubleshooting section about uploads](#creation-and-upload-of-files-does-not-work). - -## Further exploration - -EOS has a built-in shell that you can enter using -``` -$ docker-compose exec mgm-master eos -# --------------------------------------------------------------------------- -# EOS Copyright (C) 2011-2019 CERN/Switzerland -# This program comes with ABSOLUTELY NO WARRANTY; for details type `license'. -# This is free software, and you are welcome to redistribute it -# under certain conditions; type `license' for details. -# --------------------------------------------------------------------------- -EOS_INSTANCE=eostest -EOS_SERVER_VERSION=4.6.5 EOS_SERVER_RELEASE=1 -EOS_CLIENT_VERSION=4.6.5 EOS_CLIENT_RELEASE=1 -EOS Console [root://localhost] |/> help -access Access Interface -accounting Accounting Interface -acl Acl Interface -archive Archive Interface -attr Attribute Interface -backup Backup Interface -clear Clear the terminal -cd Change directory -chmod Mode Interface -chown Chown Interface -config Configuration System -console Run Error Console -cp Cp command -debug Set debug level -exit Exit from EOS console -file File Handling -fileinfo File Information -find Find files/directories -newfind Find files/directories (new implementation) -fs File System configuration -fsck File System Consistency Checking -fuse Fuse Mounting -fusex Fuse(x) Administration -geosched Geoscheduler Interface -group Group configuration -health Health information about system -help Display this text -info Retrieve file or directory information -inspector Interact with File Inspector -io IO Interface -json Toggle JSON output flag for stdout -license Display Software License -ls List a directory -ln Create a symbolic link -map Path mapping interface -member Check Egroup membership -mkdir Create a directory -motd Message of the day -mv Rename file or directory -node Node configuration -ns Namespace Interface -pwd Print working directory -quit Exit from EOS console -quota Quota System configuration -reconnect Forces a re-authentication of the shell -recycle Recycle Bin Functionality -rmdir Remove a directory -rm Remove a file -role Set the client role -route Routing interface -rtlog Get realtime log output from mgm & fst servers -silent Toggle silent flag for stdout -space Space configuration -stagerrm Remove disk replicas of a file if it has tape replicas -stat Run 'stat' on a file or directory -squash Run 'squashfs' utility function -test Run performance test -timing Toggle timing flag for execution time measurement -touch Touch a file -token Token interface -tracker Interact with File Tracker -transfer Transfer Interface -version Verbose client/server version -vid Virtual ID System Configuration -whoami Determine how we are mapped on server side -who Statistics about connected users -? Synonym for 'help' -.q Exit from EOS console -EOS Console [root://localhost] |/> -``` - -But this is a different adventure. See the links at the top of this page for other sources of information on eos. - -## Cleaning up - -To clean up and start completely from scratch, run `docker-compose down -v`. -Then delete the local "bin" folder as root which contains the ocis binaries compiled by the "ocis" docker. - -## Troubleshooting - -### Docker-compose exits right away - -When running `docker-compose up -d` ocis exits right away. - -You can check the error code using `docker-compose ps` and investigate further by running only ocis again using `docker-compose up ocis` (without `-d` so you can see what is going on in the foreground). -One reason might be that the binary was already built but does not match the container env. Try running `make clean` before running `docker-compose up ocis` so it gets built inside the container. - -### Where are the logs ? - -The ocis logs can be accessed using `docker-compose logs ocis`. Add `-f` for following. - -### How do I update a service in the ocis container? - -1. `docker-compose exec ocis make clean build` to update the binary -2. `docker-compose exec ocis ./bin/ocis kill ` to kill the service -3. `docker-compose exec ocis ./bin/ocis run ` to start the service. Do not forget to set any env vars, e.g. - `docker-compose exec -e STORAGE_HOME_DRIVER=eoshome -e STORAGE_DRIVER_EOS_LAYOUT="{{substr 0 1 .Id.OpaqueId}}/{{.Id.OpaqueId}}" ocis ./bin/ocis run storage-home` - -### Creation and upload of files does not work - -If the upload did not work, please check the status of the eos space using the command `docker-compose exec mgm-master eos fs ls`. -In case the default space appears as offline, run `docker-compose exec mgm-master eos space set default on`. - -### Uploading big files appears to hang - -Please note that the uploads first go into the "ocis" docker and land in its "/tmp" folder, then gets copied over to the EOS docker using `xrdcopy`. -This is why uploading first transfers all bytes and then seem to hang for a while during the final copy. - -### Running out of space quickly - -The EOS dockers are configured with replication, so every file uploaded there will be replicated 4 times, -so make sure there is enough physical space on disk when testing. - -Also please note that older failed uploads might still be present in the "/tmp" directory of the "ocis" container. - diff --git a/docs/ocis/storage/.gitignore b/docs/ocis/storage/.gitignore deleted file mode 100644 index 63536ebfa2..0000000000 --- a/docs/ocis/storage/.gitignore +++ /dev/null @@ -1 +0,0 @@ -grpc.md diff --git a/docs/ocis/storage/_index.md b/docs/ocis/storage/_index.md deleted file mode 100644 index 1354c1b466..0000000000 --- a/docs/ocis/storage/_index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Storage" -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## Overview - -OCIS wraps [reva](https://github.com/cs3org/reva/) and adds an opinionated configuration to provide two core services for the oCIS platform: -1. A [*Spaces Registry*]({{< ref "./spacesregistry.md" >}}) that acts as a dictionary for storage *Spaces* and their metadata -2. A [*Spaces Provider*]({{< ref "./spacesprovider.md" >}}) that organizes *Resources* in storage *Spaces* and persists them in an underlying *Storage System* - -*Clients* will use the *Spaces Registry* to poll or get notified about changes in all *Spaces* a user has access to. Every *Space* has a dedicated `/dav/spaces/` WebDAV endpoint that is served by a *Spaces Provider* which uses a specific reva storage driver to wrap an underlying *Storage System*. - -{{< figure src="/ocis/storage/static/overview.drawio.svg" >}} - -The dashed lines in the diagram indicate requests that are made to authenticate requests or lookup the storage provider: -1. After authenticating a request, the proxy may either use the CS3 `userprovider` or the accounts service to fetch the user information that will be minted into the `x-access-token`. -2. The gateway will verify the JWT signature of the `x-access-token` or try to authenticate the request itself, e.g. using a public link token. - -{{< hint warning >}} -The bottom part is lighter because we will deprecate it in favor of using only the CS3 user and group providers after moving some account functionality into reva and glauth. The metadata storage is not registered in the reva gateway to separate metadata necessary for running the service from data that is being served directly. -{{< /hint >}} - -## Endpoints and references - -In order to reason about the request flow, two aspects in the architecture need to be understood well: -1. What kind of [*namespaces*]({{< ref "./namespaces.md" >}}) are presented at the different WebDAV and CS3 endpoints? -2. What kind of [*resource*]({{< ref "./terminology.md#resources" >}}) [*references*]({{< ref "./terminology.md#references" >}}) are exposed or required: path or id based? -{{< figure src="/ocis/storage/static/storage.drawio.svg" >}} diff --git a/docs/ocis/storage/namespaces.md b/docs/ocis/storage/namespaces.md deleted file mode 100644 index 2c0a512fd5..0000000000 --- a/docs/ocis/storage/namespaces.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: "Namespaces" -date: 2018-05-02T00:00:00+00:00 -weight: 15 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage -geekdocFilePath: namespaces.md ---- - -A *namespace* is a set of paths with a common prefix. Depending on the endpoint you are talking to you will encounter a different kind of namespace: -In ownCloud 10 all paths are considered relative to the users home. The CS3 API uses a global namespace and the *storage providers* use a local namespace with paths relative to the storage providers root. - -{{< figure src="/ocis/storage/static/namespaces.drawio.svg" >}} - -The different paths in the namespaces need to be translated while passing [*references*]({{< ref "./terminology.md#references" >}}) from service to service. While the oc10 endpoints all work on paths we internally reference shared resources by id, so the shares don't break when a file is renamed or moved inside a storage [*space*]({{< ref "./spaces" >}}). The following table lists the various namespaces, paths and id based references: - -| oc10 namespace | CS3 global namespace | storage provider | reference | content | -|--------------------------------------------------|----------------------------------------|------------------|-----------|---------| -| `/webdav/path/to/file.ext` `/dav/files//path/to/file.ext` | `/home/path/to/file.ext` | home | `//path/to/file.ext` | currently logged in users home | -| `/webdav/Shares/foo` `/dav/files//Shares/foo` | `/home/Shares/foo` | users | id based access | all users, used to access collaborative shares | -| `/dav/public-files//rel/path/to/file.ext` | `/public//rel/path/to/file.ext` | public | id based access | publicly shared files, used to access public links | - - -{{< hint danger >}} -oCIS currently is configured to jail users into the CS3 `/home` namespace in the oc10 endpoints to mimic ownCloud 10. CernBox has been exposing a global namespace on `/webdav` for years already. The ocs service returns urls that are relative to the CS3 global namespace which makes both scenarios work, but only one of them at a time. Which is why the testsuite hiccups when trying to [Allow full paths targets in reva#1605](https://github.com/cs3org/reva/pull/1605). -{{< /hint >}} - - -{{< hint warning >}} -In the global CS3 namespaces we plan to move `/home/Shares`, which currently lists all mounted shares of the currently logged-in user to a dedicated `/shares` namespace. See [below]({{< ref "#cs3-namespaces" >}}) and [Move shares folder out from home directory to a separate mount reva#1584](https://github.com/cs3org/reva/pull/1584). -{{< /hint >}} - -## ownCloud namespaces - -In contrast to the global namespace of CS3, ownCloud always presented a user specific namespace on all endpoints. It will always list the users private files under `/`. Shares can be mounted at an arbitrary location in the users private spaces. See the [webdav]({{< ref "./spacesprovider#webdav" >}}) and [ocs]({{< ref "./spacesprovider#sharing" >}}) sections for more details end examples. - -With the spaces concept we are planning to introduce a global namespace to the ownCloud webdav endpoints. This will push the users private space down in the hierarchy: it will move from `/webdav` to `/webdav/home` or `/webdav/users/`. The related [migration stages]({{< ref "../../ocis/migration.md" >}}) are subject to change. - -## CS3 global namespaces - -The *CS3 global namespace* in oCIS is configured in the storage [*spaces registry*]({{< ref "./spacesregistry" >}}). oCIS uses these defaults: - -| global namespace | description | -|-|-| -| `/home` | an alias for the currently logged in uses private space | -| `/users/` | user private spaces | -| `/shares` | a virtual listing of share spaces a user has access to | -| `/public/` | a virtual folder listing public shares | -| `/spaces/` | *TODO: project or group spaces* | - -Technically, the `/home` namespace is not necessary: the storage [*spaces registry*]({{< ref "./spacesregistry" >}}) knows the path to a users private space in the `/users` namespace and the gateway can forward the requests to the responsible storage provider. - -{{< hint warning >}} -*@jfd: Why don't we use `/home/` instead of `/users/`. Then the paths would be consistent with most unix systems. -{{< /hint >}} - -The `/shares` namespace is used to solve two problems: -- To query all shares the current user has access to the *share manager* can be used to list the resource ids. While the shares can then be navigated by resource id, they will return the relative path in the actual [*storage provider*]({{< ref "./terminology.md#storage-providers" >}}), leaking parent folders of the shared resource. -- When accepting a remote share e.g., for OCM the resource does not exist on the local instance. They are made accessible in the global namespace under the `/shares` namespace. - -{{< hint warning >}} -*@jfd: Should we split `/shares` into `/collaborations`, `/ocm` and `/links`? We also have `/public` which uses token based authentication. They may have different latencies or polling strategies? Well, I guess we can cache them differently regardless of the mount point.* -{{< /hint >}} - -## Browser URLs vs API URLs -In ownCloud 10 you can not only create *public links* but also *private links*. Both can be copy pasted into an email or chat to grant others access to a file. Most often though, end users will copy and paste the URL from their browsers location bar. - -| URL | description | -|-|-| -| https://demo.owncloud.com/apps/files/?dir=/Photos/Vacation&fileid=24 | The normal browser URL | -| https://demo.owncloud.com/apps/files/?fileid=24 | the `dir` is actually not used to find the directory and will be filled when pasting this URL | -| https://demo.owncloud.com/f/24 | *private links* are the shortened version of this and work in the same way | -| https://demo.owncloud.com/s/piLdAAt1m3Bg0Fk | public link | - -{{< hint >}} -The `dir` parameter alone cannot be used to look up the directory, because the path for a file may be different depending on the currently logged-in user: -- User A shares his `/path/to/Photos` with User X. -- User B shares his `/other/path/to/Photos` with User X and Y. -- User A shares his `/path/to/Photos` with User Y. - -(Depending on the order in which they accept the shares) X and Y now have two folders `/shares/Photos` and `/shares/Photos (1)`. But if they were to copy paste a link with that path in the URL and if the directory were only looked up by path X and Y would end up in different folders. - -You could argue that the path should always use a global path in the CS3 namespace: -- User A shares his `/users/a/path/to/Photos` with User X. -- User B shares his `/users/b/other/path/to/Photos` with User X and Y. -- User A shares his `/users/a/path/to/Photos` with User Y. - -By using a global path like this X and Y would always end up in the correct folder. However, there are two caveats: -- This only works for resources that reside on the instance (because only they have unique and global path). Shares from other instances need to be identified by id, or they cannot be uniquely addressed -- User A may not want to leak path `path/to` segments leading to `Photos`. They might contain things like `low-priority` or personal data. - -That is the reason why URLs always have to contain some kind of stable identifier. By introducing the concept of *storage spaces* and treating user homes, project drives and shares we can create a URL that contains an identifier for the *storage space* and a path relative to the root of it. -{{< /hint >}} - -In ocis we will unify the way links sharing works, however there will always be at least two types of URLs: -1. the URL you see in the browsers location bar, and -2. the URL that a client uses to actually access a file. diff --git a/docs/ocis/storage/proposedchanges.md b/docs/ocis/storage/proposedchanges.md deleted file mode 100644 index 77dc0a64ca..0000000000 --- a/docs/ocis/storage/proposedchanges.md +++ /dev/null @@ -1,177 +0,0 @@ ---- -title: "Proposed Changes" -date: 2018-05-02T00:00:00+00:00 -weight: 18 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage -geekdocFilePath: proposedchanges.md ---- - -Some architectural changes still need to be clarified or changed. Maybe an ADR is in order for all of the below. - -## Reva Gateway changes - -## A dedicated shares storage provider - -Currently, when a user accepts a share, a cs3 reference is created in the users `/home/shares` folder. This reference represents the mount point of a share and can be renamed, similar to the share jail in ownCloud 10. This spreads the metadata of a share in two places: -- the share is persisted in the *share manager* -- the mount point of a share is persisted in the home *storage provider* - -Furthermore, the *gateway* treats `/home/shares` different than any other path: it will stat all children and calculate an etag to allow clients to discover changes in accepted shares. This requires the storage provider to cooperate and provide this special `/shares` folder in the root of a users home when it is accessed as a home storage. That is the origin of the `enable_home` config flag that needs to be implemented for every storage driver. - -In order to have a single source of truth we need to make the *share manager* aware of the mount point. We can then move all the logic that aggregates the etag in the share folder to a dedicated *shares storage provider* that is using the *share manager* for persistence. The *shares storage provider* would provide a `/shares` namespace outside of `/home` that lists all accepted shares for the current user. As a result the storage drivers no longer need to have a `enable_home` flag that jails users into their home. The `/home/shares` folder would move outside of the `/home`. In fact `/home` will no longer be needed, because the home folder concept can be implemented as a space: `CreateHome` would create a `personal` space on the. - -Work on this is done in https://github.com/cs3org/reva/pull/2023 - -{{< hint warning >}} -What about copy pasting links from the browser? Well this storage is only really needed to have a path to ocm shares that actually reside on other instances. In the UI the shares would be listed by querying a *share manager*. It returns ResourceIds, which can be stated to fetch a path that is then accessible in the CS3 global namespace. Two caveats: -- This only works for resources that are actually hosted by the current instance. For those it would leak the parent path segments to a shared resource. -- For accepted OCM shares there must be a path in the [*CS3 global namespace*]({{< ref "./namespaces.md#cs3-global-namespaces" >}}) that has to be the same for all users, otherwise they cannot copy and share those URLs. -{{< /hint >}} - -### The gateway should be responsible for path transformations - -Currently, storage providers are aware af their mount point, coupling them tightly with the gateway. - -Tracked in https://github.com/cs3org/reva/issues/578 - -Work is done in https://github.com/cs3org/reva/pull/1866 - -## URL escaped string representation of a CS3 reference - -For the spaces concept we introduced the `/dav/spaces/` endpoint. It encodes a cs3 *reference* in a URL compatible way. -1. We can separate the path using a `/`: `/dav/spaces//` -2. The `spaceid` currently is a cs3 resourceid, consisting of `` and ``. Since the opaqueid might contain `/` e.g. for the local driver we have to urlencode the spaceid. - -To access resources by id we need to make the `/dav/meta/` able to list directories... Otherwise id based navigation first has to look up the path. Or we use the libregraph api for id based navigation. - -A *reference* is a logical concept. It identifies a [*resource*]({{< ref "#resources" >}}) and consists of a `` and a ``. A `` consists of a `` and a ``. They can be concatenated using the separators `!` and `:`: -``` -!: -``` -While all components are optional, only three cases are used: -| format | example | description | -|-|-|-| -| `!:` | `!:/absolute/path/to/file.ext` | absolute path | -| `!:` | `ee1687e5-ac7f-426d-a6c0-03fed91d5f62!:path/to/file.ext` | path relative to the root of the storage space | -| `!:` | `ee1687e5-ac7f-426d-a6c0-03fed91d5f62!c3cf23bb-8f47-4719-a150-1d25a1f6fb56:to/file.ext` | path relative to the specified node in the storage space, used to reference resources without disclosing parent paths | - -`` should be a UUID to prevent references from breaking when a *user* or [*storage space*]({{< ref "#storage-spaces" >}}) gets renamed. But it can also be derived from a migration of an oc10 instance by concatenating an instance identifier and the numeric storage id from oc10, e.g. `oc10-instance-a$1234`. - -A reference will often start as an absolute/global path, e.g. `!:/home/Projects/Foo`. The gateway will look up the storage provider that is responsible for the path - -| Name | Description | Who resolves it? | -|------|-------------|-| -| `!:/home/Projects/Foo` | the absolute path a client like davfs will use. | The gateway uses the storage registry to look up the responsible storage provider | -| `ee1687e5-ac7f-426d-a6c0-03fed91d5f62!:/Projects/Foo` | the `storage_space` is the same as the `root`, the path becomes relative to the root | the storage provider can use this reference to identify this resource | - -Now, the same file is accessed as a share -| Name | Description | -|------|-------------| -| `!:/users/Einstein/Projects/Foo` | `Foo` is the shared folder | -| `ee1687e5-ac7f-426d-a6c0-03fed91d5f62!56f7ceca-e7f8-4530-9a7a-fe4b7ec8089a:` | `56f7ceca-e7f8-4530-9a7a-fe4b7ec8089a` is the id of `Foo`, the path is empty | - - -The `:`, `!` and `$` are chosen from the set of [RFC3986 sub delimiters](https://tools.ietf.org/html/rfc3986#section-2.2) on purpose. They can be used in URLs without having to be encoded. In some cases, a delimiter can be left out if a component is not set: -| reference | interpretation | -|-|-| -| `/absolute/path/to/file.ext` | absolute path, all delimiters omitted | -| `ee1687e5-ac7f-426d-a6c0-03fed91d5f62!path/to/file.ext` | relative path in the given storage space, root delimiter `:` omitted | -| `56f7ceca-e7f8-4530-9a7a-fe4b7ec8089a:to/file.ext` | relative path in the given root node, storage space delimiter `!` omitted | -| `ee1687e5-ac7f-426d-a6c0-03fed91d5f62!56f7ceca-e7f8-4530-9a7a-fe4b7ec8089a:` | node id in the given storage space, `:` must be present | -| `ee1687e5-ac7f-426d-a6c0-03fed91d5f62` | root of the storage space, all delimiters omitted, can be distinguished by the `/` | - -## space providers -When looking up an id based resource the reference must use a logical space id, not a CS3 resource id. Otherwise id based requests, which only have a resourceid consisting of a storage id and a node id cannot be routed to the correct storage provider if the storage has moved from one storage provider to another. - -if the registry routes based on the storageid AND the nodeid it has to keep a cache of all nodeids in order to route all requests for a storage space (which consists of storage it + nodeid) to the correct storage provider. the correct resourceid for a node in a storage space would be `$!`. The `$` part allow the storage registry to route all id based requests to the correct storage provider. This becomes relevant when the storage space was moved from one storage provider to another. The storage space id remains the same, but the internal address and port change. - -TODO discuss to clarify further - -## Storage drivers - -### allow clients to send a uuid on upload -iOS clients can only queue single requests to be executed in the background. They queue an upload and need to be able to identify the uploaded file after it has been uploaded to the server. The disconnected nature of the connection might cause workflows or manual user interaction with the file on the server to move the file to a different place or changing the content while the device is offline. However, on the device users might have marked the file as favorite or added it to other iOS specific collections. To be able to reliably identify the file the client can generate a `uuid` and attach it to the file metadata during the upload. While it is not necessary to look up files by this `uuid` having a second file id that serves exactly the same purpose as the `file id` is redundant. - -Another aspect for the `file id` / `uuid` is that it must be a logical identifier that can be set, at least by internal systems. Without a writeable fileid we cannot restore backups or migrate storage spaces from one storage provider to another storage provider. - -Technically, this means that every storage driver needs to have a map of a `uuid` to an internal resource identifier. This internal resource identifier can be -- an eos fileid, because eos can look up files by id -- an inode if the filesystem and the storage driver support looking up by inode -- a path if the storage driver has no way of looking up files by id. - - In this case other mechanisms like inotify, kernel audit or a fuse overlay might be used to keep the paths up to date. - - to prevent excessive writes when deep folders are renamed a reverse map might be used: it will map the `uuid` to `:`, in order to trade writes for reads - - as a fallback a sync job can read the file id from the metadata of the resources and populate the uuid to internal id map. - -The TUS upload can take metadata, for PUT we might need a header. - -### Space id vs resource id vs storage id - -We have `/dav/meta/` where the `fileid` is a string that was returned by a PROPFIND or by the `/graph/v1.0/me/drives/` endpoint? That returns a space id and the root drive item which has an `id` - -Does that `id` have a specific format? We currently concatenate as `!`. - -A request against `/dav/meta/fileid` will use the reva storage registry to look up a path. - -What if the storage space is moved to another storage provider. This happens during a migration: - -1. the current oc10 fileids need to be prefixed with at least the numeric storage id to shard them. - -`123` becomes `instanceprefix$345!123` if we use a custom prefix that identifies an instance (so we can merge multiple instances into one ocis instance) and append the numeric storageid `345`. The pattern is `$!`. - -Every `$` identifies a space. - -- [ ] the owncloudsql driver can return these spaceids when listing spaces. - -Why does it not work if we just use the fileid of the root node in the db? - -Say we have a space with three resources: -`$!` -`instanceprefix$345!1` -`instanceprefix$345!2` -`instanceprefix$345!3` - -All users have moved to ocis and the registry contains a regex to route all `instanceprefix.*` references to the storageprovider with the owncloudsql driver. It is up to the driver to locate the correct resource by using the filecache table. In this case the numeric storage id is unnecessary. - -Now we migrate the space `345` to another storage driver: -- the storage registry contains a new entry for `instanceprefix$345` to send all resource ids for that space to the new storage provider -- the new storage driver has to take into account the full storageid because the nodeid may only be unique per storage space. - -If we now have to fetch the path on the `/dav/meta/` endpoint: -`/dav/meta/instanceprefix$345!1` -`/dav/meta/instanceprefix$345!2` -`/dav/meta/instanceprefix$345!3` - -This would work because the registry always sees `instanceprefix$345` as the storageid. - -Now if we use the fileids directly and leave out the numeric storageid: -`!` -`instanceprefix!1` -`instanceprefix!2` -`instanceprefix!3` - -This is the current `!` format. - -The reva storage registry contains a `instanceid` entry pointing to the storage provider with the owncloudsql driver. - -Resources can be looked up because the oc_filecache has a unique fileid over all storages. - -Now we again migrate the space `345` to another storage driver: -- the storage registry contains a new entry for `instanceprefix!1` so the storage space root now points to the new storage provider -- The registry needs to be aware of node ids to route properly. This is a no-go. We don't want to keep a cache of *all* nodeids in the registry. Only the root nodes of spaces. -- The new storage driver only has a nodeid which might collide with other nodeids from other storage spaces, e.g. when two instances are imported into one ocis instance. Although it would be possible to just set up two storage providers extra care would have to be taken to prevent nodeid collisions when importing a space. - -If we now have to fetch the path on the `/dav/meta/` endpoint: -`/dav/meta/instanceprefix!1` would work because it is the root of a space -`/dav/meta/instanceprefix!2` would cause the gateway to poll all storage providers because the registry has no way to determine the responsible storage provider -`/dav/meta/instanceprefix!3` same - -The problem is that without a part in the storageid that allows differentiating storage spaces we cannot route them individually. - -Now, we could use the nodeid of the root of a storage space as the spaceid ... if it is a uuid. If it is numeric it needs a prefix to distinguish it from other spaces. -`!` would be easy for the decomposedfs. -eos might use numeric ids: `$!`, but it needs a custom prefix to distinguish multiple eos instances. - -Furthermore, when migrating spaces between storage providers we want to stay collision free, which is why we should recommend uuids. - -All this has implications for the decomposedfs, because it needs to split the nodes per space to prevent them from colliding. diff --git a/docs/ocis/storage/spaces.md b/docs/ocis/storage/spaces.md deleted file mode 100644 index 36259c6b28..0000000000 --- a/docs/ocis/storage/spaces.md +++ /dev/null @@ -1,208 +0,0 @@ ---- -title: "Spaces" -date: 2020-04-27T18:46:00+01:00 -weight: 38 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage -geekdocFilePath: spaces.md ---- - -{{< toc >}} - -## Editing a Storage Space - -The OData specification allows for a mirage of ways of addressing an entity. We will support addressing a Drive entity by its unique identifier, which is the one the graph-api returns when listing spaces, and its format is: - -```json -{ - "id": "1284d238-aa92-42ce-bdc4-0b0000009157!b6e2c9cc-9dbe-42f0-b522-4f2d3e175e9c" -} -``` - -This is an extract of an element of the list spaces response. An entire object has the following shape: - -```json -{ - "driveType": "project", - "id": "1284d238-aa92-42ce-bdc4-0b0000009157!b6e2c9cc-9dbe-42f0-b522-4f2d3e175e9c", - "lastModifiedDateTime": "2021-10-07T11:06:43.245418+02:00", - "name": "marketing", - "owner": { - "user": { - "id": "ddc2004c-0977-11eb-9d3f-a793888cd0f8" - } - }, - "quota": { - "total": 65536 - }, - "root": { - "id": "1284d238-aa92-42ce-bdc4-0b0000009157!b6e2c9cc-9dbe-42f0-b522-4f2d3e175e9c", - "webDavUrl": "https://localhost:9200/dav/spaces/1284d238-aa92-42ce-bdc4-0b0000009157!b6e2c9cc-9dbe-42f0-b522-4f2d3e175e9c" - } -} -``` - -### Updating a space property - -Having introduced the above, one can refer to a Drive with the following URL format: - -```console -'https://localhost:9200/graph/v1.0/drives/1284d238-aa92-42ce-bdc4-0b0000009157!07c26b3a-9944-4f2b-ab33-b0b326fc7570 -``` - -Updating an entity attribute: - -```console -curl -X PATCH 'https://localhost:9200/graph/v1.0/drives/1284d238-aa92-42ce-bdc4-0b0000009157!07c26b3a-9944-4f2b-ab33-b0b326fc7570' -d '{"name":"42"}' -v -``` - -The previous URL resource path segment (`1284d238-aa92-42ce-bdc4-0b0000009157!07c26b3a-9944-4f2b-ab33-b0b326fc7570`) is parsed and handed over to the storage registry in order to apply the patch changes in the body, in this case update the space name attribute to `42`. Since space names are not unique we only support addressing them by their unique identifiers, any other query would render too ambiguous and explode in complexity. - - -### Updating a space description - -Since every space is the root of a webdav directory, following some conventions we can make use of this to set a default storage description and image. In order to do so, every space is created with a hidden `.space` folder at its root, which can be used to store such data. - -```curl -curl -k -X PUT https://localhost:9200/dav/spaces/1284d238-aa92-42ce-bdc4-0b0000009157\!07c26b3a-9944-4f2b-ab33-b0b326fc7570/.space/description.md -d "Add a description to your spaces" -u admin:admin -``` - -Verify the description was updated: - -```curl -❯ curl -k https://localhost:9200/dav/spaces/1284d238-aa92-42ce-bdc4-0b0000009157\!07c26b3a-9944-4f2b-ab33-b0b326fc7570/.space/description.md -u admin:admin -Add a description to your spaces -``` - -This feature makes use of the internal storage layout and is completely abstracted from the end user. - -### Quotas - -Spaces capacity (quota) is independent of the Storage quota. As a Space admin you can set the quota for all users of a space, and as such, there are no limitations and is up to the admin to make a correct use of this. - -It is possible to have a space quota greater than the storage quota. A Space may also have "infinite" quota, meaning a single space without quota can occupy the entirety of a disk. - -#### Quota Enforcement - -Creating a Space with a quota of 10 bytes: - -`curl -k -X POST 'https://localhost:9200/graph/v1.0/drives' -u admin:admin -d '{"name":"marketing", "quota": {"total": 10}}' -v` - -```console -/var/tmp/ocis/storage/users -├── blobs -├── nodes -│   ├── 627981c2-2a71-4adf-b680-177e245afdda -│   ├── 9541e7c3-8fda-4b49-b697-e7e51457cf5a -│   ├── b5692345-108d-4b80-9747-3a7e9739ad57 -│   └── root -│   ├── 118351d7-67a4-4cdf-b495-6093d1e572ed -> ../627981c2-2a71-4adf-b680-177e245afdda -│   └── ddc2004c-0977-11eb-9d3f-a793888cd0f8 -> ../b5692345-108d-4b80-9747-3a7e9739ad57 -├── spaces -│   ├── personal -│   │   └── b5692345-108d-4b80-9747-3a7e9739ad57 -> ../../nodes/b5692345-108d-4b80-9747-3a7e9739ad57 -│   ├── project -│   │   └── 627981c2-2a71-4adf-b680-177e245afdda -> ../../nodes/627981c2-2a71-4adf-b680-177e245afdda -│   └── share -├── trash -└── uploads -``` - -Verify the new space has 10 bytes, and none of it is used: - -```json -{ - "driveType": "project", - "id": "1284d238-aa92-42ce-bdc4-0b0000009157!627981c2-2a71-4adf-b680-177e245afdda", - "lastModifiedDateTime": "2021-10-15T11:16:26.029188+02:00", - "name": "marketing", - "owner": { - "user": { - "id": "ddc2004c-0977-11eb-9d3f-a793888cd0f8" - } - }, - "quota": { - "remaining": 10, - "total": 10, - "used": 0 - }, - "root": { - "id": "1284d238-aa92-42ce-bdc4-0b0000009157!627981c2-2a71-4adf-b680-177e245afdda", - "webDavUrl": "https://localhost:9200/dav/spaces/1284d238-aa92-42ce-bdc4-0b0000009157!627981c2-2a71-4adf-b680-177e245afdda" - } -} -``` - -Upload a 6 bytes file: - -`curl -k -X PUT https://localhost:9200/dav/spaces/1284d238-aa92-42ce-bdc4-0b0000009157\!627981c2-2a71-4adf-b680-177e245afdda/6bytes.txt -d "012345" -u admin:admin -v` - -Query the quota again: - -```json -{ - "quota": { - "remaining": 4, - "total": 10, - "used": 6 - } -} -``` - -Now attempt to upload 5 bytes to the space: - -`curl -k -X PUT https://localhost:9200/dav/spaces/1284d238-aa92-42ce-bdc4-0b0000009157\!627981c2-2a71-4adf-b680-177e245afdda/5bytes.txt -d "01234" -u admin:admin -v` - -The request will fail with `507 Insufficient Storage`: - -``` - HTTP/1.1 507 Insufficient Storage -< Access-Control-Allow-Origin: * -< Content-Length: 0 -< Content-Security-Policy: default-src 'none'; -< Date: Fri, 15 Oct 2021 09:24:46 GMT -< Vary: Origin -< X-Content-Type-Options: nosniff -< X-Download-Options: noopen -< X-Frame-Options: SAMEORIGIN -< X-Permitted-Cross-Domain-Policies: none -< X-Robots-Tag: none -< X-Xss-Protection: 1; mode=block -< -* Connection #0 to host localhost left intact -* Closing connection 0 -``` - -##### Considerations - -- If a Space quota is updated to unlimited, the upper limit is the entire available space on disk -{{< hint warning >}} - -The current implementation in oCIS might not yet fully reflect this concept. Feel free to add links to ADRs, PRs and Issues in short warning boxes like this. - -{{< /hint >}} - -## Storage Spaces -A storage *space* is a logical concept. It organizes a set of [*resources*]({{< ref "#resources" >}}) in a hierarchical tree. It has a single *owner* (*user* or *group*), -a *quota*, *permissions* and is identified by a `storage space id`. - -{{< figure src="/ocis/storage/static/storagespace.drawio.svg" >}} - -Examples would be every user's personal storage *space*, project storage *spaces* or group storage *spaces*. While they all serve different purposes and may or may not have workflows like antivirus scanning enabled, we need a way to identify and manage these subtrees in a generic way. By creating a dedicated concept for them this becomes easier and literally makes the codebase cleaner. A storage [*Spaces Registry*]({{< ref "./spacesregistry.md" >}}) then allows listing the capabilities of storage *spaces*, e.g. free space, quota, owner, syncable, root etag, upload workflow steps, ... - -Finally, a logical `storage space id` is not tied to a specific [*spaces provider*]({{< ref "./spacesprovider.md" >}}). If the [*storage driver*]({{< ref "./storagedrivers.md" >}}) supports it, we can import existing files including their `file id`, which makes it possible to move storage *spaces* between [*spaces providers*]({{< ref "./spacesprovider.md" >}}) to implement storage classes, e.g. with or without archival, workflows, on SSDs or HDDs. - -## Shares -*To be clarified: we are aware that [*storage spaces*]({{< ref "#storage-spaces" >}}) may be too 'heavyweight' for ad hoc sharing with groups. That being said, there is no technical reason why group shares should not be treated like storage [*spaces*]({{< ref "#storage-spaces" >}}) that users can provision themselves. They would share the quota with the users home or personal storage [*space*]({{< ref "#storage-spaces" >}}) and the share initiator would be the sole owner. Technically, the mechanism of treating a share like a new storage [*space*]({{< ref "#storage-spaces" >}}) would be the same. This obviously also extends to user shares and even file individual shares that would be wrapped in a virtual collection. It would also become possible to share collections of arbitrary files in a single storage space, e.g. the ten best pictures from a large album.* - -## Notes - -We can implement [ListStorageSpaces](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ListStorageSpacesRequest) by either -- iterating over the root of the storage and treating every folder following the `` as a `home` *storage space*, -- iterating over the root of the storage and treating every folder following a new `` as a `project` *storage space*, or -- iterating over the root of the storage and treating every folder following a generic `` as a *storage space* for a configurable space type, or -- we allow configuring a map of `space type` to `layout` (based on the [CreateStorageSpaceRequest](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.CreateStorageSpaceRequest)) which would allow things like -``` -home=/var/lib/ocis/storage/home/{{substr 0 1 .Owner.Username}}/{{.Owner.Username}} -spaces=/spaces/var/lib/ocis/storage/projects/{{.Name}} -``` diff --git a/docs/ocis/storage/spacesprovider.md b/docs/ocis/storage/spacesprovider.md deleted file mode 100644 index 2d8df11f0a..0000000000 --- a/docs/ocis/storage/spacesprovider.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: "Spaces Provider" -date: 2018-05-02T00:00:00+00:00 -weight: 6 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage -geekdocFilePath: spacesprovider.md ---- - -{{< hint warning >}} - -The current implementation in oCIS might not yet fully reflect this concept. Feel free to add links to ADRs, PRs and Issues in short warning boxes like this. - -{{< /hint >}} - -## Spaces Provider -A *storage provider* manages [*resources*]({{< ref "#resources" >}}) identified by a [*reference*]({{< ref "#references" >}}) -by accessing a [*storage system*]({{< ref "#storage-systems" >}}) with a [*storage driver*]({{< ref "./storagedrivers.md" >}}). - -{{< figure src="/ocis/storage/static/spacesprovider.drawio.svg" >}} - - -## Frontend - -The oCIS frontend service starts all services that handle incoming HTTP requests: -- *ocdav* for ownCloud flavoured WebDAV -- *ocs* for sharing, user provisioning, capabilities and other OCS API endpoints -- *datagateway* for up and downloads -- TODO: *ocm* - -{{< figure src="/ocis/storage/static/frontend.drawio.svg" >}} - -### WebDAV - -The ocdav service not only handles all WebDAV requests under `(remote.php/)(web)dav` but also some other legacy endpoints like `status.php`: - -| endpoint | service | CS3 api | CS3 namespace | description | TODO | -|----------|---------|-------------|------|------|------| -| *ownCloud 10 / current ocis setup:* ||||| -| `status.php` | ocdav | - | - | currently static | should return compiled version and dynamic values | -| `(remote.php/)webdav` | ocdav | storageprovider | `/home` | the old webdav endpoint | | -| `(remote.php/)dav/files/` | ocdav | storageprovider | `/home` | the new webdav endpoint | | -| `(remote.php/)dav/meta//v` | ocdav | storageprovider | id based | versions | | -| `(remote.php/)dav/trash-bin/` | ocdav | recycle | - | trash | should aggregate the trash of [*storage spaces*]({{< ref "./terminology.md#storage-spaces" >}}) the user has access to | -| `(remote.php/)dav/public-files/` | ocdav | storageprovider | `/public/` | public links | | -| `(remote.php/)dav/avatars/` | ocdav | - | - | avatars, hardcoded | look up from user provider and cache | -| *CernBox setup:* ||||| -| `(remote.php/)webdav` | ocdav | storageprovider | `/` | | | -| *Note: existing folder sync pairs in legacy clients will break when moving the user home down in the path hierarchy* ||||| -| `(remote.php/)webdav/home` | ocdav | storageprovider | `/home` | | | -| `(remote.php/)webdav/users` | ocdav | storageprovider | `/users` | | | -| `(remote.php/)dav/files/` | ocdav | storageprovider | `/users/` | | | -| *Spaces concept also needs a new endpoint:* ||||| -| `(remote.php/)dav/spaces//` | ocdav | storageregistry & storageprovider | bypass path based namespace and directly talk to the responsible storage provider using a relative path | [spaces concept](https://github.com/owncloud/ocis/pull/1827) needs to point to storage [*spaces*]({{< ref "./spaces.md" >}}) | allow accessing spaces, listing is done by the graph api | - - -The correct endpoint for a users home storage [*space*]({{< ref "./spaces.md" >}}) in oc10 is `remote.php/dav/files/`. In oc10 all requests at this endpoint use a path based reference that is relative to the users home. In oCIS this can be configured and defaults to `/home` as well. Other API endpoints like ocs and the web UI still expect this to be the users home. - -In oc10 we originally had `remote.php/webdav` which would render the current users home [*storage space*]({{< ref "./terminology.md#storage-spaces" >}}). The early versions (pre OC7) would jail all received shares into a `remote.php/webdav/shares` subfolder. The semantics for syncing such a folder are [not trivially predictable](https://github.com/owncloud/core/issues/5349), which is why we made shares [freely mountable](https://github.com/owncloud/core/pull/8026) anywhere in the users home. - -The current reva implementation jails shares into a `remote.php/webdav/Shares` folder for performance reasons. Obviously, this brings back the [special semantics for syncing](https://github.com/owncloud/product/issues/7). In the future we will follow [a different solution](https://github.com/owncloud/product/issues/302) and jail the received shares into a dedicated `/shares` space, on the same level as `/home` and `/spaces`. We will add a dedicated [API to list all *storage spaces*](https://github.com/owncloud/ocis/pull/1827) a user has access to and where they are mounted in the users *namespace*. - -{{< hint warning >}} -TODO rewrite this hint with `/dav/spaces` -Existing folder sync pairs in legacy clients will break when moving the user home down in the path hierarchy like CernBox did. -For legacy clients the `remote.php/webdav` endpoint will no longer list the users home directly, but instead present the different types of storage spaces: -- `remote.php/webdav/home`: the users home is pushed down into a new `home` [*storage space*]({{< ref "./terminology.md#storage-spaces" >}}) -- `remote.php/webdav/shares`: all mounted shares will be moved to a new `shares` [*storage space*]({{< ref "./terminology.md#storage-spaces" >}}) -- `remote.php/webdav/spaces`: other [*storage spaces*]({{< ref "./terminology.md#storage-spaces" >}}) the user has access to, e.g. group or project drives -{{< /hint >}} - - -### Sharing - -The [OCS Share API](https://doc.owncloud.com/server/developer_manual/core/apis/ocs-share-api.html) endpoint `/ocs/v1.php/apps/files_sharing/api/v1/shares` returns shares, which have their own share id and reference files using a path relative to the users home. They API also lists the numeric storage id as well as the string type `storage_id` (which is confusing ... but yeah) which would allow constructing combined references with a `storage space id` and a `path` relative to the root of that [*storage space*]({{< ref "./terminology.md#storage-spaces" >}}). The web UI however assumes that it can take the path from the `file_target` and append it to the users home to access it. - -{{< hint >}} -The API [already returns the storage id](https://doc.owncloud.com/server/developer_manual/core/apis/ocs-share-api.html#example-request-response-payloads-4) (and numeric id) in addition to the file id: -``` - home::auser - 993 - 3994486 - 3994486 - 3994485 - /Shared/Paris.jpg -``` -[Creating shares only takes the **path** as the argument](https://doc.owncloud.com/server/developer_manual/core/apis/ocs-share-api.html#function-arguments) so creating and navigating shares only needs the path. When you update or delete a share it takes the `share id` not the `file id`. -{{< /hint >}} - -The OCS service makes a stat request to the storage provider to get a [ResourceInfo](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceInfo) object. It contains both, a [`ResourceId`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId) *and* an absolute path. If the *resource* exists a request is sent to the gateway. Depending on the type of share the [Collaboration API](https://cs3org.github.io/cs3apis/#cs3.sharing.collaboration.v1beta1.CollaborationAPI), the [Link API](https://cs3org.github.io/cs3apis/#cs3.sharing.link.v1beta1.LinkAPI) or the [Open Cloud Mesh API](https://cs3org.github.io/cs3apis/#cs3.sharing.ocm.v1beta1.OcmAPI) endpoints are used. - -| API | Request | Resource identified by | Grant type | Further arguments | -|-----|---------|------------------------|------------|-------------------| -| Collaboration | [CreateShareRequest](https://cs3org.github.io/cs3apis/#cs3.sharing.collaboration.v1beta1.CreateShareRequest) | [ResourceInfo](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceInfo) | [ShareGrant](https://cs3org.github.io/cs3apis/#cs3.sharing.collaboration.v1beta1.ShareGrant) | - | -| Link | [CreatePublicShareRequest](https://cs3org.github.io/cs3apis/#cs3.sharing.link.v1beta1.CreatePublicShareRequest) | [ResourceInfo](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceInfo) | Link [Grant](https://cs3org.github.io/cs3apis/#cs3.sharing.link.v1beta1.Grant) | We send the public link `name` in the `ArbitraryMetadata` of the `ResourceInfo` | -| Open Cloud Mesh | [CreateOCMShareRequest](https://cs3org.github.io/cs3apis/#cs3.sharing.ocm.v1beta1.CreateOCMShareRequest) | [ResourceId](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId) | OCM [ShareGrant](https://cs3org.github.io/cs3apis/#cs3.sharing.ocm.v1beta1.ShareGrant) | OCM [ProviderInfo](https://cs3org.github.io/cs3apis/#cs3.ocm.provider.v1beta1.ProviderInfo) | - - -{{< hint >}} -The user and public share provider implementations identify the file using the [`ResourceId`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId). The [`ResourceInfo`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceInfo) is passed so the share provider can also store who the owner of the resource is. The *path* is not part of the other API calls, e.g. when listing shares. -The OCM API takes an id based reference on the CS3 api, even if the OCM HTTP endpoint takes a path argument. *@jfd: Why? Does it not need the owner? It only stores the owner of the share, which is always the currently logged-in user, when creating a share. Afterwards only the owner can update a share ... so collaborative management of shares is not possible. At least for OCM shares.* -{{< /hint >}} - - -## REVA Storage Registry - -The reva *storage registry* manages the [*CS3 global namespace*]({{< ref "./namespaces.md#cs3-global-namespaces" >}}): -It is used by the reva *gateway* -to look up `address` and `port` of the [*storage provider*]({{< ref "#storage-providers" >}}) -that should handle a [*reference*]({{< ref "#references" >}}). - -{{< figure src="/ocis/storage/static/storageregistry.drawio.svg" >}} diff --git a/docs/ocis/storage/spacesregistry.md b/docs/ocis/storage/spacesregistry.md deleted file mode 100644 index 47ee58bcbc..0000000000 --- a/docs/ocis/storage/spacesregistry.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Spaces Registry" -date: 2018-05-02T00:00:00+00:00 -weight: 9 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage -geekdocFilePath: spacesregistry.md ---- - -{{< hint warning >}} - -The current implementation in oCIS might not yet fully reflect this concept. Feel free to add links to ADRs, PRs and Issues in short warning boxes like this. - -{{< /hint >}} - -## Storage Space Registries - -A storage *spaces registry* manages the [*namespace*]({{< ref "./namespaces.md" >}}) for a *user*: it is used by *clients* to look up storage spaces a user has access to, the `/dav/spaces` endpoint to access it via WabDAV, and where the client should mount it in the users personal namespace. - -{{< figure src="/ocis/storage/static/spacesregistry.drawio.svg" >}} diff --git a/docs/ocis/storage/static/frontend.drawio.svg b/docs/ocis/storage/static/frontend.drawio.svg deleted file mode 100644 index 45289f3419..0000000000 --- a/docs/ocis/storage/static/frontend.drawio.svg +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - -
-
-
- - GET /data/<transfer_token> - -
-
-
-
- - GET /da... - -
-
- - - - - -
-
-
- - PROPFIND /webdav - -
-
-
-
- - PROPFIN... - -
-
- - - - - -
-
-
-
- - POST /ocs/v1/apps/files_sharing/api/v1/shares - -
-
- - path=/path/to/file - -
-
- - shareType=0 - -
-
- - shareWith=<username> - -
-
-
-
-
- - POST /o... - -
-
- - - - -
-
-
- frontend -
-
-
-
- - frontend - -
-
- - - - - - - -
-
-
- datagateway -
-
-
-
- - datagateway - -
-
- - - - -
-
-
- ocdav -
-
-
-
- - ocdav - -
-
- - - - -
-
-
- ocs -
-
-
-
- - ocs - -
-
- - - - -
-
-
- gateway -
-
-
-
- - gateway - -
-
- - - - - - - -
-
-
- storage home | users | ... -
-
-
-
- - storage home | users | ... - -
-
- - - - - - - -
-
-
- storageprovider -
-
-
-
- - storageprovider - -
-
- - - - -
-
-
- dataprovider -
-
-
-
- - dataprovider - -
-
- - - - - -
-
-
- - GET target URL extracted from transfer token (JWT) - -
-
-
-
- - GET tar... - -
-
- - - - - -
-
-
- - Stat -
- ListContainer -
-
-
-
-
- - Stat... - -
-
- - - - - -
-
-
- - Stat -
- CreateShare -
- CreatePublicShare -
- CreateOCMShare -
-
-
-
-
- - Stat... - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/static/namespaces.drawio.svg b/docs/ocis/storage/static/namespaces.drawio.svg deleted file mode 100644 index b3baa5895a..0000000000 --- a/docs/ocis/storage/static/namespaces.drawio.svg +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - - -
-
-
- /rel/path/to/file.ext -
-
-
-
- - /rel/p... - -
-
- - - - - -
-
-
-
- / -
-
-
- /home -
-
- /users/<user_layout> -
-
- /public -
-
- /shares -
-
-
-
-
- - /... - -
-
- - - - -
-
-
- storage home -
-
-
-
- - storage home - -
-
- - - - - - -
-
-
- storageprovider -
-
-
-
- - storageprovider - -
-
- - - - -
-
-
- dataprovider -
-
-
-
- - dataprovider - -
-
- - - - -
-
-
- frontend -
-
-
-
- - frontend - -
-
- - - - - - -
-
-
- ocdav -
-
-
-
- - ocdav - -
-
- - - - -
-
-
- ocs -
-
-
-
- - ocs - -
-
- - - - - -
-
-
- - /webdav -
- /dav/files/<username> -
-
-
- - /dav/trash-bin/<username> - -
-
- - /dav/public-files/<token> - -
-
- - /dav/meta/<fileid>/v - -
-
- - /dav/avatars/<username> - -
-
-
-
-
- - /webdav... - -
-
- - - - - -
-
-
- - /ocs/v1.php/apps/files_sharing/api/v1/shares - -
-
-
-
- - /ocs/v1.ph... - -
-
- - - - -
-
-
- gateway -
-
-
-
- - gateway - -
-
- - - - - - -
-
-
- gateway -
-
-
-
- - gateway - -
-
- - - - -
-
-
- authregistry -
-
-
-
- - authregistry - -
-
- - - - -
-
-
- storageregistry -
-
-
-
- - storageregistry - -
-
- - - - - - -
-
-
- oc10 namespace -
- (all paths aere relative to the users home) -
-
-
-
- - oc10 names... - -
-
- - - - -
-
-
- CS3 global namespace -
-
-
-
- - CS3 global... - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/static/overview.drawio.svg b/docs/ocis/storage/static/overview.drawio.svg deleted file mode 100644 index 8dc5bf16b7..0000000000 --- a/docs/ocis/storage/static/overview.drawio.svg +++ /dev/null @@ -1,685 +0,0 @@ - - - - - - - - - - - - - - - - - -
-
-
- proxy -
-
-
-
- - proxy - -
-
- - - - - - - - - -
-
-
- gateway -
-
-
-
- - gateway - -
-
- - - - - - - -
-
-
- gateway -
-
-
-
- - gateway - -
-
- - - - -
-
-
- authregistry -
-
-
-
- - authregistry - -
-
- - - - -
-
-
- storageregistry -
-
-
-
- - storageregistry - -
-
- - - - - - - - - - -
-
-
- storage users -
-
-
-
- - storage users - -
-
- - - - - - - -
-
-
- storageprovider -
-
-
-
- - storageprovider - -
-
- - - - -
-
-
- dataprovider -
-
-
-
- - dataprovider - -
-
- - - - -
-
-
- storage home -
-
-
-
- - storage home - -
-
- - - - - - - -
-
-
- storageprovider -
-
-
-
- - storageprovider - -
-
- - - - -
-
-
- dataprovider -
-
-
-
- - dataprovider - -
-
- - - - -
-
-
- storage public link -
-
-
-
- - storage public link - -
-
- - - - - - - -
-
-
- publicstorageprovider -
-
-
-
- - publicstorageprovider - -
-
- - - - -
-
-
- authprovider -
- publicshares -
-
-
-
- - authprovider... - -
-
- - - - -
-
-
- storage metadata -
-
-
-
- - storage metadata - -
-
- - - - - - - -
-
-
- storageprovider -
-
-
-
- - storageprovider - -
-
- - - - -
-
-
- dataprovider -
-
-
-
- - dataprovider - -
-
- - - - -
-
-
- sharing -
-
-
-
- - sharing - -
-
- - - - - - - -
-
-
- usershareprovider -
-
-
-
- - usershareprovider - -
-
- - - - -
-
-
- publicshareprovider -
-
-
-
- - publicshareprovider - -
-
- - - - -
-
-
- users -
-
-
-
- - users - -
-
- - - - - - - -
-
-
- userprovider -
-
-
-
- - userprovider - -
-
- - - - -
-
-
- groups -
-
-
-
- - groups - -
-
- - - - - - - -
-
-
- groupprovider -
-
-
-
- - groupprovider - -
-
- - - - -
-
-
- authbasic -
-
-
-
- - authbasic - -
-
- - - - - - - -
-
-
- authprovider -
-
-
-
- - authprovider - -
-
- - - - -
-
-
- authbearer -
-
-
-
- - authbearer - -
-
- - - - - - - -
-
-
- authprovider -
-
-
-
- - authprovider - -
-
- - - - -
-
-
- accounts -
-
-
-
- - accounts - -
-
- - - - - - - - -
-
-
- frontend -
-
-
-
- - frontend - -
-
- - - - - - - -
-
-
- datagateway -
-
-
-
- - datagateway - -
-
- - - - -
-
-
- ocdav -
-
-
-
- - ocdav - -
-
- - - - -
-
-
- ocs -
-
-
-
- - ocs - -
-
- - - - -
-
-
- ocis -
-
-
-
- - ocis - -
-
- - - - -
-
-
- reva -
-
-
-
- - reva - -
-
- - - - -
-
-
- deprecated -
-
-
-
- - deprec... - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/static/semver-schema.png b/docs/ocis/storage/static/semver-schema.png deleted file mode 100644 index f47823e9f9588a67dc671df1b3299d207263e91e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226115 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 diff --git a/docs/ocis/storage/static/spacesprovider.drawio.svg b/docs/ocis/storage/static/spacesprovider.drawio.svg deleted file mode 100644 index d122c58f7a..0000000000 --- a/docs/ocis/storage/static/spacesprovider.drawio.svg +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - -
-
-
- oCIS spaces provider -
- [Software System] -
-
-
-
- - oCIS spaces provider... - -
-
- - - - -
-
-
- - reva storage provider - -
- [Component: golang] -
-
-
- hosts multiple storage spaces using a storage driver -
-
-
-
-
- - reva storage provider... - -
-
- - - - -
-
-
- - reva gateway - -
- [Component: golang] -
-
-
- API facade for internal reva services -
-
-
-
-
- - reva gateway... - -
-
- - - - -
-
-
- - Storage System - -
- [Software System] -
-
-
- provides persistent storage -
-
-
-
-
- - Storage System... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [POSIX, S3] -
-
-
-
-
-
- - Reads from and writes to... - -
-
- - - - -
-
-
- - reva frontend - -
- [Component: golang] -
-
-
- handles protocol translation -
-
-
-
-
- - reva frontend... - -
-
- - - - -
-
-
- - oCIS proxy - -
- [Component: golang] -
-
-
- Routes requests to oc10 or ecis -
-
-
-
-
- - oCIS proxy... - -
-
- - - - - -
-
-
-
-
- - Mints an internal JWT -
- and torwards requests to -
-
-
- [WebDAV, OCS, OCM, tus] -
-
-
-
-
-
- - Mints an internal JWT... - -
-
- - - - -
-
-
- - Client - -
- [Container: C++, Kotlin, -
- Swift or Vue] -
-
-
- A desktop, mobile or web Client -
-
-
-
-
- - Client... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [WebDAV, libregraph, CS3] -
-
-
-
-
-
- - Reads from and writes to... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [CS3, tus] -
-
-
-
-
-
- - Reads from and writes to... - -
-
- - - - - -
-
-
-
-
- - Forwards to - -
-
- [CS3, storage registry] -
-
-
-
-
-
- - Forwards to... - -
-
- - - - -
-
-
-

- C4 Component diagram for an oCIS spaces provider -

-

- An oCIS spaces provider manages resources in storage spaces by persisting them with a specific storage driver in a storage system. -

-

- Date: 2021-07-22T12:40 -

-
-
-
-
- - C4 Component diagram for an oCIS spaces provider... - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/static/spacesregistry.drawio.svg b/docs/ocis/storage/static/spacesregistry.drawio.svg deleted file mode 100644 index f716b0bb0d..0000000000 --- a/docs/ocis/storage/static/spacesregistry.drawio.svg +++ /dev/null @@ -1,405 +0,0 @@ - - - - - - - -
-
-
- oCIS spaces registry -
- [Software System] -
-
-
-
- - oCIS spaces registry... - -
-
- - - - -
-
-
- - reva storage registry - -
- [Component: golang] -
-
-
- manages and caches storage space metadata -
-
-
-
-
- - reva storage registry... - -
-
- - - - -
-
-
- - reva gateway - -
- [Component: golang] -
-
-
- API facade for internal reva services -
-
-
-
-
- - reva gateway... - -
-
- - - - -
-
-
- - Storage System - -
- [Software System] -
-
-
- provides persistent storage -
-
-
-
-
- - Storage System... - -
-
- - - - - -
-
-
-
-
- - Provisions and manages spaces in - -
-
- [CS3] -
-
-
-
-
-
- - Provisions and manages spaces... - -
-
- - - - -
-
-
- - reva frontend - -
- [Component: golang] -
-
-
- handles protocol translation -
-
-
-
-
- - reva frontend... - -
-
- - - - -
-
-
- - oCIS proxy - -
- [Component: golang] -
-
-
- Routes requests to oc10 or ecis -
-
-
-
-
- - oCIS proxy... - -
-
- - - - - -
-
-
-
-
- - Mints an internal JWT -
- and torwards requests to -
-
-
- [libregraph] -
-
-
-
-
-
- - Mints an internal JWT... - -
-
- - - - -
-
-
- - Client - -
- [Container: C++, Kotlin, -
- Swift or Vue] -
-
-
- A desktop, mobile or web Client -
-
-
-
-
- - Client... - -
-
- - - - - -
-
-
-
-
- - polls or gets notified about changes in - -
-
- [libregraph] -
-
-
-
-
-
- - polls or gets notified about c... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [CS3, tus] -
-
-
-
-
-
- - Reads from and writes to... - -
-
- - - - - -
-
-
-
-
- - Lists spaces using - -
-
- [CS3] -
-
-
-
-
-
- - Lists spaces using... - -
-
- - - - -
-
-
-

- C4 Component diagram for an oCIS spaces registry -

-

- An oCIS spaces provider manages resources in storage spaces by persisting them with a specific storage driver in a storage system. -

-

- Date: 2021-07-22T12:40 -

-
-
-
-
- - C4 Component diagram for an oCIS spaces registry... - -
-
- - - - -
-
-
- - reva storage provider - -
- [Component: golang] -
-
-
- hosts multiple storage spaces using a storage driver -
-
-
-
-
- - reva storage provider... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [POSIX, S3] -
-
-
-
-
-
- - Reads from and writes to... - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/static/storage.drawio.svg b/docs/ocis/storage/static/storage.drawio.svg deleted file mode 100644 index fd6e759cf3..0000000000 --- a/docs/ocis/storage/static/storage.drawio.svg +++ /dev/null @@ -1,434 +0,0 @@ - - - - - - - -
-
-
- oCIS System -
- [Software System] -
-
-
-
- - oCIS System... - -
-
- - - - - - -
-
-
- - Einstein - -
- [Person] -
-
-
- End user -
-
-
-
-
- - Einstein... - -
-
- - - - -
-
-
- - Client - -
- [Container: C++, Kotlin, Swift or Vue] -
-
-
- A desktop, mobile or web Client -
-
-
-
-
- - Client... - -
-
- - - - -
-
-
- - Storage Space Registry - -
- [Container: golang, HTTP, libregraph] -
-
-
- Manages spaces for users -
-
-
-
-
- - Storage Space Registry... - -
-
- - - - -
-
-
- - Storage Space Provider - -
- [Container: golang] -
-
-
- Persists storage spaces using reva -
-
-
-
-
- - Storage Space Provider... - -
-
- - - - -
-
-
- - Storage System - -
- [Software System] -
-
-
- provides persistent storage -
-
-
-
-
- - Storage System... - -
-
- - - - - - -
-
-
- - Moss - -
- [Person] -
-
-
- Administrator -
-
-
-
-
- - Moss... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [POSIX, S3] -
-
-
-
-
-
- - Reads from and writes to... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [WebDAV, libregraph, CS3, tus] -
-
-
-
-
-
- - Reads from and writes to... - -
-
- - - - - -
-
-
-
-
- - Manages the users Storage Spaces in - -
-
- [libregraph] -
-
-
-
-
-
- - Manages the users Storage Spac... - -
-
- - - - - -
-
-
-
-
- - Manages resources with - -
-
- [Web UI or native clients] -
-
-
-
-
-
- - Manages resources with... - -
-
- - - - - -
-
-
-
-
- - Registers itself at and -
- sends space root etag changes to -
-
-
- [CS3, libregraph?, PUSH] -
-
-
-
-
-
- - Registers itself at and... - -
-
- - - - - -
-
-
-
-
- - Manages organizational Storage Spaces in - -
-
- [WebDAV, libregraph, CS3, CLI] -
-
-
-
-
-
- - Manages organizational Storage... - -
-
- - - - -
-
-
- - Identity Management System - -
- [Software System] -
-
-
- provides users and groups -
-
-
-
-
- - Identity Management System... - -
-
- - - - - -
-
-
-
-
- - Authenticates users and searches recipients with - -
-
- [OpenID Connect, LDAP, REST] -
-
-
-
-
-
- - Authenticates users and search... - -
-
- - - - -
-
-
-

- C4 Container diagram for the oCIS System -

-

- As a platform, the oCIS system may not only includes web, mobile and desktop clients but also the underlying storage system or an identity management system -

-

- Date: 2021-07-22T16:43 -

-
-
-
-
- - C4 Container diagram for the oCIS System... - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/static/storageprovider-spaces.drawio.svg b/docs/ocis/storage/static/storageprovider-spaces.drawio.svg deleted file mode 100644 index 9aed50401d..0000000000 --- a/docs/ocis/storage/static/storageprovider-spaces.drawio.svg +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - - -
-
-
- - CS3 -
- storage provider -
- API (GRPC) -
-
-
-
-
-
- - CS3... - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- storage provider -
-
-
-
- - storage provider - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/static/storageprovider.drawio.svg b/docs/ocis/storage/static/storageprovider.drawio.svg deleted file mode 100644 index e7ba5ea770..0000000000 --- a/docs/ocis/storage/static/storageprovider.drawio.svg +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - -
-
-
- oCIS storage provider -
- [Software System] -
-
-
-
- - oCIS storage provider... - -
-
- - - - -
-
-
- - reva storage provider - -
- [Component: golang] -
-
-
- hosts multiple storage spaces using a storage driver -
-
-
-
-
- - reva storage provider... - -
-
- - - - -
-
-
- - reva gateway - -
- [Component: golang] -
-
-
- API facade for internal reva services -
-
-
-
-
- - reva gateway... - -
-
- - - - -
-
-
- - Storage System - -
- [Software System] -
-
-
- provides persistent storage -
-
-
-
-
- - Storage System... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [POSIX, S3] -
-
-
-
-
-
- - Reads from and writes to... - -
-
- - - - -
-
-
- - reva frontend - -
- [Component: golang] -
-
-
- handles protocol translation -
-
-
-
-
- - reva frontend... - -
-
- - - - -
-
-
- - oCIS proxy - -
- [Component: golang] -
-
-
- Routes requests to oc10 or ecis -
-
-
-
-
- - oCIS proxy... - -
-
- - - - - -
-
-
-
-
- - Mints an internal JWT -
- and torwards requests to -
-
-
- [WebDAV, OCS, OCM, tus] -
-
-
-
-
-
- - Mints an internal JWT... - -
-
- - - - -
-
-
- - Client - -
- [Container: C++, Kotlin, -
- Swift or Vue] -
-
-
- A desktop, mobile or web Client -
-
-
-
-
- - Client... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [WebDAV, libregraph, CS3] -
-
-
-
-
-
- - Reads from and writes to... - -
-
- - - - - -
-
-
-
-
- - Reads from and writes to - -
-
- [CS3, tus] -
-
-
-
-
-
- - Reads from and writes to... - -
-
- - - - - -
-
-
-
-
- - Forwards to - -
-
- [CS3, storage registry] -
-
-
-
-
-
- - Forwards to... - -
-
- - - - -
-
-
-

- C4 Component diagram for an oCIS storage provider -

-

- An oCIS storage provider manages resources in storage spaces by persisting them with a specific storage driver in a storage system. -

-

- Date: 2021-07-22T12:40 -

-
-
-
-
- - C4 Component diagram for an oCIS storage provider... - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/static/storageregistry.drawio.svg b/docs/ocis/storage/static/storageregistry.drawio.svg deleted file mode 100644 index 2b24b386d3..0000000000 --- a/docs/ocis/storage/static/storageregistry.drawio.svg +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - - -
-
-
- The storage registry currently maps paths and storageids to the -
- - address:port - - of the corresponding storage provider -
-
-
-
- - The storage registry currently maps... - -
-
- - - - - - - -
-
-
- storage registry -
-
-
-
- - storage registry - -
-
- - - - - - - -
-
-
- storage providers -
-
-
-
- - storage providers - -
-
- - - - - - - - - - - - -
-
-
- The gateway uses the storage registry to look up the storage provider that is responsible for path and id based references in incoming requests. -
-
-
-
- - The gateway uses the storage regist... - -
-
- - - - - - - -
-
-
- gateway -
-
-
-
- - gateway - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - / - -
-
-
-
- - / - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - / - -
-
-
-
- - / - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/static/storagespace.drawio.svg b/docs/ocis/storage/static/storagespace.drawio.svg deleted file mode 100644 index 6e60631bac..0000000000 --- a/docs/ocis/storage/static/storagespace.drawio.svg +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- the root resource of the storage space -
-
-
-
- - the root resource of... - -
-
- - - - -
-
-
- RESOURCE_TYPE_CONTAINER -
-
-
-
- - RESOURCE_TYPE_CONTAINER - -
-
- - - - -
-
-
- RESOURCE_TYPE_FILE -
-
-
-
- - RESOURCE_TYPE_FILE - -
-
- - - - - - -
-
-
- if the gateway encounters a resource type reference it will look it up and replace the reference with the results of the actual node (which can live in another storage provider) -
-
-
-
- - if the gateway encounters a... - -
-
- - - - -
-
-
- every resource can be referenced by path or by id -
-
-
-
- - every resource can be... - -
-
- - - - -
-
-
- RESOURCE_TYPE_SYMLINK -
-
-
-
- - RESOURCE_TYPE_SYMLINK - -
-
- - - - - - - - -
-
-
- RESOURCE_TYPE_REFERENCE -
-
-
-
- - RESOURCE_TYPE_REFERENCE - -
-
-
- - - - - Viewer does not support full SVG 1.1 - - - -
\ No newline at end of file diff --git a/docs/ocis/storage/storagedrivers.md b/docs/ocis/storage/storagedrivers.md deleted file mode 100644 index 9a8ca3eefe..0000000000 --- a/docs/ocis/storage/storagedrivers.md +++ /dev/null @@ -1,186 +0,0 @@ ---- -title: "Storage drivers" -date: 2020-04-27T18:46:00+01:00 -weight: 12 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage -geekdocFilePath: storagedrivers.md ---- - -A *storage driver* implements access to a [*storage system*]({{< ref "#storage-systems" >}}): - -It maps the *path* and *id* based CS3 *references* to an appropriate [*storage system*]({{< ref "#storage-systems" >}}) specific reference, e.g.: -- eos file ids -- posix inodes or paths -- deconstructed filesystem nodes - -## Storage providers - -To manage the file tree oCIS uses *storage providers* that are accessing the underlying storage using a *storage driver*. The driver can be used to change the implementation of a storage aspect to better reflect the actual underlying storage capabilities. As an example a move operation on a POSIX filesystem ([theoretically](https://danluu.com/deconstruct-files/)) is an atomic operation. When trying to implement a file tree on top of S3 there is no native move operation that can be used. A naive implementation might fall back on a COPY and DELETE. Some S3 implementations provide a COPY operation that uses an existing key as the source, so the file at least does not need to be reuploaded. In the worst case scenario, which is renaming a folder with hundreds of thousands of objects, a reupload for every file has to be made. Instead of hiding this complexity a better choice might be to disable renaming of files or at least folders on S3. There are however implementations of filesystems on top of S3 that store the tree metadata in dedicated objects or use a completely different persistence mechanism like a distributed key value store to implement the file tree aspect of a storage. - - -{{< hint info >}} -While the *storage provider* is responsible for managing the tree, file up- and downloads are delegated to a dedicated *data provider*. See below. -{{< /hint >}} - -## Storage aspects -A lot of different storage technologies exist, ranging from general purpose file systems with POSIX semantics to software defined storage with multiple APIs. Choosing any of them is making a tradeoff decision. Or, if a storage technology is already in place it automatically predetermines the capabilities that can be made available. *Not all storage systems are created equal.* - -Unfortunately, no POSIX filesystem natively supports all storage aspects that ownCloud 10 requires: - -### A hierarchical file tree -An important aspect of a filesystem is organizing files and directories in a file hierarchy, or tree. It allows you to create, move and delete nodes. Beside the name a node also has well known metadata like size and mtime that are persisted in the tree as well. - -{{< hint info >}} -**Folders are not directories** -There is a difference between *folder* and *directory*: a *directory* is a file system concept. A *folder* is a metaphor for the concept of a physical file folder. There are also *virtual folders* or *smart folders* like the recent files folder which are no file system *directories*. So, every *directory* and every *virtual folder* is a *folder*, but not every *folder* is a *directory*. See [the folder metaphor in wikipedia](https://en.wikipedia.org/wiki/Directory_(computing)#Folder_metaphor). Also see the activity history below. -{{< /hint >}} - -#### Id based lookup -While traditionally nodes in the tree are reached by traversing the path the tree persistence should be prepared to look up a node by an id. Think of an inode in a POSIX filesystem. If this operation needs to be cached for performance reasons keep in mind that cache invalidation is hard and crawling all files to update the inode to path mapping takes O(n), not O(1). - -#### ETag propagation -For the state based sync a client can discover changes by recursively descending the tree and comparing the ETag for every node. If the storage technology supports propagating ETag changes up the tree, only the root node of a tree needs to be checked to determine if a discovery needs to be started and which nodes need to be traversed. This allows using the storage technology itself to persist all metadata that is necessary for sync, without additional services or caches. - -#### Subtree size accounting -The tree can keep track of how many bytes are stored in a folder. Similar to ETag propagation a change in file size is propagated up the hierarchy. - -{{< hint info >}} -**ETag and Size propagation** -When propagating the ETag (mtime) and size changes up the tree the question is where to stop. If all changes need to be propagated to the root of a storage then the root or busy folders will become a hotspot. There are two things to keep in mind: 1. propagation only happens up to the root of a single space (a user private drive or a single group drive), 2. no cross storage propagation. The latter was used in oc10 to let clients detect when a file in a received shared folder changed. This functionality is moving to the storage registry which caches the ETag for every root so clients can discover if and which storage changed. -{{< /hint >}} - -#### Rename -Depending on the underlying storage technology some operations may either be slow, up to a point where it makes more sense to disable them entirely. One example is a folder rename: on S3 a *simple* folder rename translates to a copy and delete operation for every child of the renamed folder. There is an exception though: this restriction only applies if the S3 storage is treated like a filesystem, where the keys are the path and the value is the file content. There are smarter ways to implement file systems on top of S3, but again: there is always a tradeoff. - -{{< hint info >}} -**S3 has no rename** -Technically, [S3 has no rename operation at all](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-objects.html#copy-object). By design, the location of the value is determined by the key, so it always has to do a copy and delete. Another example is the [redis RENAME operation](https://redis.io/commands/rename): while being specified as O(1) it *executes an implicit DEL operation, so if the deleted key contains a very big value it may cause high latency...* -{{< /hint >}} - -#### Arbitrary metadata persistence -In addition to well known metadata like name size and mtime, users might be able to add arbitrary metadata like tags, comments or [dublin core](https://en.wikipedia.org/wiki/Dublin_Core). In POSIX filesystems this maps to extended attributes. - -### Grant persistence -The CS3 API uses grants to describe access permissions. Storage systems have a wide range of permissions granularity and not all grants may be supported by every storage driver. POSIX ACLs for example have no expiry. If the storage system does not support certain grant properties, e.g. expiry, then the storage driver may choose to implement them in a different way. Expiries could be persisted in a different way and checked periodically to remove the grants. Again: every decision is a tradeoff. - -### Trash persistence -After deleting a node the storage allows listing the deleted nodes and has an undo mechanism for them. - -### Versions persistence -A user can restore a previous version of a file. - -{{< hint info >}} -**Snapshots are not versions** -Modern POSIX filesystems support snapshotting of volumes. This is different from keeping track of versions to a file or folder, but might be another implementation strategy for a storage driver to allow users to restore content. -{{< /hint >}} - -### Activity History -The storage keeps an activity history, tracking the different actions that have been performed. This does not only include file changes but also metadata changes like renames and permission changes. - -## Storage drivers - -Reva currently has several storage driver implementations that can be used for *storage providers* as well as *data providers*. - -### OCIS and S3NG Storage Driver - -The oCIS storage driver is the default storage driver. It decomposes the metadata and persists it in a POSIX filesystem. Blobs are stored on the filesystem as well. The layout makes extensive use of symlinks and extended attributes. A filesystem like xfs or zfs without practical inode size limitations is recommended. We will evolve this to further integrate with file systems like cephfs or gpfs. - -{{< hint warning >}} -Ext4 limits the number of bytes that can be used for extended attribute names and their values to the size of a single block (by default 4k). This reduces the number of shares for a single file or folder to roughly 20-30, as grants have to share the available space with other metadata. -{{< /hint >}} - -The S3NG storage driver uses the same metadata layout on a POSIX storage as the oCIS driver, but it uses S3 as the blob storage. - -#### Tradeoffs -➕ Efficient ID based lookup - -➕ Leverages Kernel VFS cache - -➕ No database needed - -➖ Not intended to be accessed by end users on the server side as it does not reflect a normal filesystem on disk - -➖ Metadata limited by Kernel VFS limits (see below) - -#### Related Kernel limits -The Decomposed FS currently stores CS3 grants in extended attributes. When listing extended attributes the result is currently limited to 64kB. Assuming a 20 byte uuid a grant has ~40 bytes. Which would limit the number of extended attributes to ~1630 entries or ~1600 shares. This can be extended by moving the grants from extended attributes into a dedicated file and is tracked in [ocis/issues/4638](https://github.com/owncloud/ocis/issues/4638). - -From [Wikipedia on Extended file attributes](https://en.wikipedia.org/wiki/Extended_file_attributes#Linux): -> The Linux kernel allows extended attribute to have names of up to 255 bytes and values of up to 64 KiB,[14] as do XFS and ReiserFS, but ext2/3/4 and btrfs impose much smaller limits, requiring all the attributes (names and values) of one file to fit in one "filesystem block" (usually 4 KiB). Per POSIX.1e,[citation needed] the names are required to start with one of security, system, trusted, and user plus a period. This defines the four namespaces of extended attributes.[15] - -And from the [man page on listxattr](https://www.man7.org/linux/man-pages/man2/listxattr.2.html): -> As noted in xattr(7), the VFS imposes a limit of 64 kB on the size of the extended attribute name list returned by listxattr(7). If the total size of attribute names attached to a file exceeds this limit, it is no longer possible to retrieve the list of attribute names. - -### Local Storage Driver - -The *minimal* storage driver for a POSIX based filesystem. It literally supports none of the storage aspect other than basic file tree management. Sharing can - to a degree - be implemented using POSIX ACLs. - -- tree provided by a POSIX filesystem - - inefficient path by id lookup, currently uses the file path as id, so ids are not stable - - can store a uuid in extended attributes and use a cache to look them up, similar to the ownCloud driver - - no native ETag propagation, five options are available: - - built in propagation (changes bypassing ocis are not picked up until a rescan) - - built in inotify (requires 48 bytes of RAM per file, needs to keep track of every file and folder) - - external inotify (same RAM requirement, but could be triggered by external tools, e.g. a workflow engine) - - kernel audit log (use the linux kernel audit to capture file events on the storage and offload them to a queue) - - fuse filesystem overlay - - no subtree accounting, same options as for ETag propagation - - efficient rename - - arbitrary metadata using extended attributes -- grant persistence - - using POSIX ACLs - - requires an LDAP server to make guest accounts available in the OS - - an existing LDAP could be used if guests ar provisioned in another way - - using extended attributes to implement expiry or sharing that does not require OS level integration - - fuse filesystem overlay -- no native trash - - could use [The FreeDesktop.org Trash specification](https://specifications.freedesktop.org/trash-spec/trashspec-latest.html) - - fuse filesystem overlay -- no native versions, multiple options possible - - git for folders - - rcs for single files - - rsnapshot for hourly / daily / weekly / monthly backups ... but this is not versioning as known from oc10 - - design new freedesktop spec, basically what is done in oc10 without the limitations or borrow ideas from the freedesktop trash spec - - fuse filesystem overlay - -To provide the other storage aspects we plan to implement a FUSE overlay filesystem which will add the different aspects on top of local filesystems like ext4, btrfs or xfs. It should work on NFSv4 as well, although NFSv4 supports RichACLs and we will explore how to leverage them to implement sharing at a future date. The idea is to use the storages native capabilities to deliver the best user experience. But again: that means making the right tradeoffs. - -### EOS Storage Driver - -The CERN eos storage has evolved with ownCloud and natively supports id based lookup, ETag propagation, subtree size accounting, sharing, trash and versions. To use it you need to change the default configuration of the `storage storage-home` command (or have a look at the Makefile ̀ eos-start` target): - -``` -export STORAGE_DRIVER_EOS_NAMESPACE=/eos -export STORAGE_DRIVER_EOS_MASTER_URL="root://eos-mgm1.eoscluster.cern.ch:1094" -export STORAGE_DRIVER_EOS_ENABLE_HOME=true -export STORAGE_DRIVER_EOS_LAYOUT="dockertest/{{.Username}}" -``` - -Running it locally also requires the `eos` and `xrootd` binaries. Running it using `make eos-start` will use CentOS based containers that already have the necessary packages installed. - -{{< hint info >}} -Pull requests to add explicit `storage storage-(s3|custom|...)` commands with working defaults are welcome. -{{< /hint >}} - -### S3 Storage Driver - -A naive driver that treats the keys in an S3 capable storage as `/` delimited path names. While it does not support MOVE or ETag propagation it can be used to read and write files. Better integration with native capabilities like versioning is possible but depends on the Use Case. Several storage solutions that provide an S3 interface also support some form of notifications that can be used to implement ETag propagation. - -## Data Providers - -Clients using the CS3 API use an [InitiateFileDownload](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.InitiateFileDownloadRequest) and [InitiateUpload](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.InitiateFileUploadRequest) request at the [storage gateway](https://cs3org.github.io/cs3apis/#cs3.gateway.v1beta1.GatewayAPI) to obtain a URL endpoint that can be used to either GET the file content or upload content using the resumable [tus.io](https://tus.io) protocol. - -The *data provider* uses the same *storage driver* as the *storage provider* but can be scaled independently. - -The dataprovider allows uploading the file to a quarantine area where further data analysis may happen before making the file accessible again. One use case for this is antivirus scanning for files coming from untrusted sources. - -## Future work - -### FUSE overlay filesystem -We are planning to further separate the concerns and use a local storage provider with a FUSE filesystem overlaying the actual POSIX storage that can be used to capture deletes and writes that might happen outside of ocis/reva. - -It would allow us to extend the local storage driver with missing storage aspects while keeping a tree like filesystem that end users are used to see when sshing into the machine. - -### Upload to Quarantine area -Antivirus scanning of random files uploaded from untrusted sources and executing metadata extraction or thumbnail generation should happen in a sandboxed system to prevent malicious users from gaining any information about the system. By spawning a new container with access to only the uploaded data we can further limit the attack surface. diff --git a/docs/ocis/storage/terminology.md b/docs/ocis/storage/terminology.md deleted file mode 100644 index 3676e82a14..0000000000 --- a/docs/ocis/storage/terminology.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: "Terminology" -date: 2018-05-02T00:00:00+00:00 -weight: 17 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage -geekdocFilePath: terminology.md ---- - -Communication is hard. And clear communication is even harder. You may encounter the following terms throughout the documentation, in the code or when talking to other developers. Just keep in mind that whenever you hear or read *storage*, that term needs to be clarified, because on its own it is too vague. PR welcome. - -## Logical concepts - -### Resources -A *resource* is the basic building block that oCIS manages. It can be of [different types](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceType): -- an actual *file* -- a *container*, e.g. a folder or bucket -- a *symlink*, or -- a [*reference*]({{< ref "#references" >}}) which can point to a resource in another [*storage provider*]({{< ref "#storage-providers" >}}) - -### References -A *reference* identifies a [*resource*]({{< ref "#resources" >}}). A [*CS3 reference*](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.Reference) can carry a *path* and a [CS3 *resource id*](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId). The references come in two flavors: absolute and combined. -Absolute references have either the *path* or the *resource id* set: -- An absolute *path* MUST start with a `/`. The *resource id* MUST be empty. -- An absolute *resource id* uniquely identifies a [*resource*]({{< ref "#resources" >}}) and is used as a stable identifier for sharing. The *path* MUST be empty. -Combined references have both, *path* and *resource id* set: -- the *resource id* identifies the root [*resource*]({{< ref "#resources" >}}) -- the *path* is relative to that root. It MUST start with `.` -## References - -A *reference* is a logical concept that identifies a [*resource*]({{< ref "#resources" >}}). A [*CS3 reference*](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.Reference) consists of either -- a *path* based reference, used to identify a [*resource*]({{< ref "#resources" >}}) in the [*namespace*]({{< ref "./namespaces.md" >}}) of a [*storage provider*]({{< ref "#storage-providers" >}}). It must start with a `/`. -- a [CS3 *id* based reference](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId), uniquely identifying a [*resource*]({{< ref "#resources" >}}) in the [*namespace*]({{< ref "./namespaces.md" >}}) of a [*storage provider*]({{< ref "#storage-providers" >}}). It consists of a `storage provider id` and an `opaque id`. The `storage provider id` must NOT start with a `/`. - -{{< hint info >}} -The `/` is important because currently the static [*storage registry*]({{< ref "#storage-space-registries" >}}) uses a map to look up which [*storage provider*]({{< ref "#storage-providers" >}}) is responsible for the resource. Paths must be prefixed with `/` so there can be no collisions between paths and storage provider ids in the same map. -{{< /hint >}} - -## Storage Drivers - -A *storage driver* implements access to a [*storage system*]({{< ref "#storage-systems" >}}): - -It maps the *path* and *id* based CS3 *references* to an appropriate [*storage system*]({{< ref "#storage-systems" >}}) specific reference, e.g.: -- eos file ids -- posix inodes or paths -- deconstructed filesystem nodes - -{{< hint warning >}} -**Proposed Change** -iOS clients can only queue single requests to be executed in the background. The queue an upload and need to be able to identify the uploaded file after it has been uploaded to the server. The disconnected nature of the connection might cause workflows or manual user interaction with the file on the server to move the file to a different place or changing the content while the device is offline. However, on the device users might have marked the file as favorite or added it to other iOS specific collections. To be able to reliably identify the file the client can generate a `uuid` and attach it to the file metadata during the upload. While it is not necessary to look up files by this `uuid` having a second file id that serves exactly the same purpose as the `file id` is redundant. - -Another aspect for the `file id` / `uuid` is that it must be a logical identifier that can be set, at least by internal systems. Without a writeable fileid we cannot restore backups or migrate storage spaces from one storage provider to another storage provider. - -Technically, this means that every storage driver needs to have a map of a `uuid` to in internal resource identifier. This internal resource identifier can be -- an eos fileid, because eos can look up files by id -- an inode if the filesystem and the storage driver support looking up by inode -- a path if the storage driver has no way of looking up files by id. - - In this case other mechanisms like inotify, kernel audit or a fuse overlay might be used to keep the paths up to date. - - to prevent excessive writes when deep folders are renamed a reverse map might be used: it will map the `uuid` to `:`, allowing to trade writes for reads - -{{< /hint >}} -## Storage Providers - -## Technical concepts - -### Storage Systems -{{< figure src="/ocis/storage/static/storageprovider.drawio.svg" >}} - -A *storage provider* manages multiple [*storage spaces*]({{< ref "#storage-space" >}}) -by accessing a [*storage system*]({{< ref "#storage-systems" >}}) with a [*storage driver*]({{< ref "#storage-drivers" >}}). - -{{< figure src="/ocis/storage/static/storageprovider-spaces.drawio.svg" >}} - -## Storage Space Registries - -A [*storage spaces registry*]({{< ref "./spacesregistry.md" >}}) manages the [*namespace*]({{< ref "./namespaces.md" >}}) for a *user* - -## Storage Spaces -A *storage space* is a logical concept: -It is a tree of [*resources*]({{< ref "#resources" >}})*resources* -with a single *owner* (*user* or *group*), -a *quota* and *permissions*, identified by a `storage space id`. - -{{< figure src="/ocis/storage/static/storagespace.drawio.svg" >}} - -Examples would be every user's home storage space, project storage spaces or group storage spaces. While they all serve different purposes and may or may not have workflows like antivirus scanning enabled, we need a way to identify and manage these subtrees in a generic way. By creating a dedicated concept for them this becomes easier and literally makes the codebase cleaner. A [*storage space registry*]({{< ref "#storage-space-registries" >}}) then allows listing the capabilities of [*storage spaces*]({{< ref "#storage-spaces" >}}), e.g. free space, quota, owner, syncable, root etag, upload workflow steps, ... - -Finally, a logical `storage space id` is not tied to a specific [*storage provider*]({{< ref "#storage-providers" >}}). If the [*storage driver*]({{< ref "#storage-drivers" >}}) supports it, we can import existing files including their `file id`, which makes it possible to move [*storage spaces*]({{< ref "#storage-spaces" >}}) between [*storage providers*]({{< ref "#storage-providers" >}}) to implement storage classes, e.g. with or without archival, workflows, on SSDs or HDDs. - -## Shares -*To be clarified: we are aware that [*storage spaces*]({{< ref "#storage-spaces" >}}) may be too 'heavyweight' for ad hoc sharing with groups. That being said, there is no technical reason why group shares should not be treated like [*storage spaces*]({{< ref "#storage-spaces" >}}) that users can provision themselves. They would share the quota with the users home [*storage space*]({{< ref "#storage-spaces" >}}) and the share initiator would be the sole owner. Technically, the mechanism of treating a share like a new [*storage space*]({{< ref "#storage-spaces" >}}) would be the same. This obviously also extends to user shares and even file individual shares that would be wrapped in a virtual collection. It would also become possible to share collections of arbitrary files in a single storage space, e.g. the ten best pictures from a large album.* - - -## Storage Systems -Every *storage system* has different native capabilities like id and path based lookups, recursive change time propagation, permissions, trash, versions, archival and more. -A [*storage provider*]({{< ref "#storage-providers" >}}) makes the storage system available in the CS3 API by wrapping the capabilities as good as possible using a [*storage driver*]({{< ref "./storagedrivers.md" >}}). -There might be multiple [*storage drivers*]({{< ref "./storagedrivers.md" >}}) for a *storage system*, implementing different tradeoffs to match varying requirements. - -### Gateways -A *gateway* acts as a facade to the storage related services. It authenticates and forwards API calls that are publicly accessible. diff --git a/docs/ocis/storage/users.md b/docs/ocis/storage/users.md deleted file mode 100644 index adf04599f4..0000000000 --- a/docs/ocis/storage/users.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: "Users" -date: 2020-01-16T00:00:00+00:00 -weight: 17 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis/storage -geekdocFilePath: users.md ---- - -TODO add this to the storage overview? or is this a different part? That should be started as a separate service ? And documented elsewhere, e.g. in the accounts? - -### User and Group provisioning - -In oc10 users are identified by a username, which cannot change, because it is used as a foreign key in several tables. For oCIS we are internally identifying users by a UUID, while using the username in the WebDAV and OCS APIs for backwards compatability. To distinguish this in the URLs we are using `` instead of ``. You may have encountered ``, which refers to a template that can be configured to build several path segments by filling in user properties, e.g. the first character of the username (`{{substr 0 1 .Username}}/{{.Username}}`), the identity provider (`{{.Id.Idp}}/{{.Username}}`) or the email (`{{.Mail}}`) - -{{< hint warning >}} -Make no mistake, the [OCS Provisioning API](https://doc.owncloud.com/server/developer_manual/core/apis/provisioning-api.html) uses `userid` while it actually is the username, because it is what you use to login. -{{< /hint >}} - -We are currently working on adding [user management through the CS3 API](https://github.com/owncloud/ocis/pull/1930) to handle user and group provisioning (and deprovisioning). - -### Demo driver - -This is a simple user driver for testing. It contains three users: -``` -einstein:relativity -marie:radioactivity -richard:superfluidity -``` -In order to use the `demo` driver you need to export the relevant environment variable: -``` -export STORAGE_USERS_DRIVER=demo -``` - -### JSON driver - -In order to switch from the `ldap` driver to JSON based users you need to export the relevant environment variables: -``` -export STORAGE_USERS_DRIVER=json -export STORAGE_USERS_JSON=/path/to/users.json -``` - -For the format of the users.json have a look at the [reva examples](https://github.com/cs3org/reva/blob/master/examples/oc-phoenix/users.demo.json) - -### LDAP driver - -This is the default user driver. - -If the following defaults don't match your environment then change them accordingly: -``` -export STORAGE_LDAP_HOSTNAME=localhost -export STORAGE_LDAP_PORT=9126 -export STORAGE_LDAP_BASE_DN='dc=ocis,dc=test' -export STORAGE_LDAP_USER_FILTER='(&(objectclass=posixAccount)(cn=%s))' -export STORAGE_LDAP_GROUP_FILTER='(&(objectclass=posixGroup)(cn=%s))' -export STORAGE_LDAP_BIND_DN='cn=reva,ou=sysusers,dc=ocis,dc=test' -export STORAGE_LDAP_BIND_PASSWORD=reva -export STORAGE_LDAP_USER_SCHEMA_UID=uid -export STORAGE_LDAP_USER_SCHEMA_MAIL=mail -export STORAGE_LDAP_USER_SCHEMA_DISPLAYNAME=sn -export STORAGE_LDAP_USER_SCHEMA_CN=cn -``` - -Then restart the `bin/storage users` and `bin/storage auth-basic` services for the changes to take effect. diff --git a/docs/ocis/storage_registry_discovery.md b/docs/ocis/storage_registry_discovery.md deleted file mode 100644 index 4ba72aeb4a..0000000000 --- a/docs/ocis/storage_registry_discovery.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: "Storage Registry Discovery" -date: 2021-05-04T14:01:00+01:00 -weight: 40 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/ocis -geekdocFilePath: storage_registry_discovery.md ---- - -## Introduction - -In order for an oCIS client to access oCIS storage spaces for an End-User, the client needs to know where the oCIS instance is. oCIS uses WebFinger [RFC7033](http://tools.ietf.org/html/rfc7033) to locate the oCIS instance for an End-User. - -This discovery is optional. If the client has another way of discovering the OpenID instance, e.g. when logging in with a username a static domain might be configured or the domain in the URL might be used. - -For guest accounts that do not have an OIDC issuer or whose IdP is not part of a trusted federation clients may fall back to a local IdP. - -## User Input using E-Mail Address Syntax - -To find the oCIS instance for the given user input in the form of an e-mail address `joe@example.com`, the WebFinger parameters are as follows: - -| WebFinger Parameter | Value | -|-|-| -| `resource` | `acct:joe@example.com` | -| `host` | `example.com` | -| `rel` | http://owncloud.com/specs/ocis/1.0/instance | - -Note that in this case, [the `acct:` scheme](http://tools.ietf.org/html/draft-ietf-appsawg-acct-uri-07) is prepended to the identifier. - -The client (relying party) would make the following WebFinger request to discover the oCIS instance location (with line wraps within lines for display purposes only): - -``` - GET /.well-known/webfinger - ?resource=acct%3Ajoe%40example.com - &rel=http%3A%2F%2Fowncloud.com%2Fspecs%2Focis%2F1.0%2Finstance - HTTP/1.1 - Host: example.com - - HTTP/1.1 200 OK - Content-Type: application/jrd+json - - { - "subject": "acct:joe@example.com", - "links": - [ - { - "rel": "http://owncloud.com/specs/ocis/1.0/instance", - "href": "https://cloud.example.com" - } - ] - } -``` - -{{< hint >}} -Note: the `example.com` domain is derived from the email. -{{< /hint >}} - -{{< hint danger >}} -The `https://cloud.example.com` domain above would point to the ocis instance. -TODO that ins ocis web ... not the registry ... hmmmm -maybe introduce an ocis provider which then has an `/.well-known/ocis-configuration`, similar to `/.well-known/openid-configuration`? -It would contain -- the ocis domain, e.g. `https://cloud.example.com` -- the web endpoint, e.g. `https://cloud.example.com` -- the registry / drives endpoint, e.g. `https://cloud.example.com/graph/v0.1/drives/me` see [Add draft of adr for spaces API. #1827](https://github.com/owncloud/ocis/pull/1827) - - -example: -``` -HTTP/1.1 200 OK - Content-Type: application/json - - { - "instance": "https://cloud.example.com", - "graph_endpoint": "https://cloud.example.com/graph/v0.0", - "ocis_web_config": "https://cloud.example.com/web/config.json", - "issuer": "https://idp.example.com", - } -``` - -`graph_endpoint` is the open-graph-api endpoint that is used to list storage spaces at e.g. `https://cloud.example.com/graph/v0.1/me/drives`. - -`ocis_web_config` points ocis web to the config for the instance. Maybe we can add more config in the `/.well-known/ocis-configuration` to replace the config.json? Is this the new status.php? How safe is it to expose all this info ...? - -The `issuer` could be used to detect the issuer that is used if no other issuer is found ... might be a fallback_issuer, but actually we may decide to skid the OIDC discovery and rely on this property. Maybe we need it if no IdP is present yet or the `/.well-known/openid-configuration` is not set up / reachable. - - -{{< /hint >}} - -## Obtaining oCIS Provider Configuration Information -Using the `instance` location discovered as described above or by other means, the oCIS Provider's configuration information can be retrieved. - -oCIS Providers supporting Discovery MUST make a JSON document available at the path formed by concatenating the string `/.well-known/openid-configuration` to the `instance`. The syntax and semantics of `.well-known` are defined in [RFC5785](http://tools.ietf.org/html/rfc5785) and apply to the `instance` value when it contains no path component. `ocis-configuration` MUST point to a JSON document compliant with this specification and MUST be returned using the `application/json` content type. - -### oCIS Provider Configuration Request - -An oCIS Provider Configuration Document MUST be queried using an HTTP GET request at the previously specified path. - -The client (relying party) would make the following request to the instance https://example.com to obtain its Configuration information, since the Issuer contains no path component: - - GET /.well-known/openid-configuration HTTP/1.1 - Host: example.com -If the Issuer value contains a path component, any terminating / MUST be removed before appending /.well-known/openid-configuration. The RP would make the following request to the Issuer https://example.com/issuer1 to obtain its Configuration information, since the Issuer contains a path component: - - GET /issuer1/.well-known/openid-configuration HTTP/1.1 - Host: example.com -Using path components enables supporting multiple issuers per host. This is required in some multi-tenant hosting configurations. This use of .well-known is for supporting multiple issuers per host; unlike its use in RFC 5785 [RFC5785], it does not provide general information about the host. \ No newline at end of file diff --git a/docs/services/_includes/.gitignore b/docs/services/_includes/.gitignore deleted file mode 100644 index 9d0d8ab10d..0000000000 --- a/docs/services/_includes/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*_configvars.md -*-example.yaml -adoc/*adoc -adoc/env-var-deltas/*adoc diff --git a/docs/services/_includes/_index.md b/docs/services/_includes/_index.md deleted file mode 100644 index b58ce0c82f..0000000000 --- a/docs/services/_includes/_index.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -GeekdocHidden: true ---- \ No newline at end of file diff --git a/docs/services/_includes/adoc/.gitkeep b/docs/services/_includes/adoc/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/services/_includes/adoc/env-var-deltas/.gitkeep b/docs/services/_includes/adoc/env-var-deltas/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/services/_index.md b/docs/services/_index.md deleted file mode 100644 index bfa8cb0874..0000000000 --- a/docs/services/_index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Services -date: 2023-12-06T13:00:00+01:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/ -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -The documentation of services is intended for developers and only reflects the state of the master branch of the ocis repo. - -{{< hint warning >}} -See the [admin documentation](https://doc.owncloud.com/ocis/next/deployment/services/services.html) which provides versioned content suitable for administrators. This documentation also offers other useful information including deployment guides. -{{< /hint >}} diff --git a/docs/services/antivirus/configuration.md b/docs/services/antivirus/configuration.md deleted file mode 100644 index 98a05bc7a6..0000000000 --- a/docs/services/antivirus/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2023-03-16T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/antivirus -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/antivirus-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/antivirus_configvars.md" >}} diff --git a/docs/services/app-provider/_index.md b/docs/services/app-provider/_index.md deleted file mode 100644 index c26192066e..0000000000 --- a/docs/services/app-provider/_index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: App-Provider -date: 2022-03-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/app-provider -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## Abstract - - -## Table of Contents - -{{< toc-tree >}} diff --git a/docs/services/app-provider/configuration.md b/docs/services/app-provider/configuration.md deleted file mode 100644 index b215390a30..0000000000 --- a/docs/services/app-provider/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/app-provider -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/app-provider-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/app-provider_configvars.md" >}} diff --git a/docs/services/app-registry/configuration.md b/docs/services/app-registry/configuration.md deleted file mode 100644 index ed96c59023..0000000000 --- a/docs/services/app-registry/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/app-registry -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## 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/audit/configuration.md b/docs/services/audit/configuration.md deleted file mode 100644 index fd8026dacd..0000000000 --- a/docs/services/audit/configuration.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/audit -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - - -## Example YAML Config - -{{< include file="services/_includes/audit-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/audit_configvars.md" >}} diff --git a/docs/services/auth-basic/configuration.md b/docs/services/auth-basic/configuration.md deleted file mode 100644 index 672746f057..0000000000 --- a/docs/services/auth-basic/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/auth-basic -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/auth-basic-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/auth-basic_configvars.md" >}} diff --git a/docs/services/auth-bearer/configuration.md b/docs/services/auth-bearer/configuration.md deleted file mode 100644 index 5b3ef4ef6d..0000000000 --- a/docs/services/auth-bearer/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/auth-bearer -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/auth-bearer-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/auth-bearer_configvars.md" >}} diff --git a/docs/services/auth-machine/configuration.md b/docs/services/auth-machine/configuration.md deleted file mode 100644 index 000c6bae31..0000000000 --- a/docs/services/auth-machine/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/auth-machine -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/auth-machine-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/auth-machine_configvars.md" >}} diff --git a/docs/services/eventhistory/configuration.md b/docs/services/eventhistory/configuration.md deleted file mode 100644 index 752ebd654f..0000000000 --- a/docs/services/eventhistory/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/eventhistory -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/eventhistory-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/eventhistory_configvars.md" >}} diff --git a/docs/services/frontend/configuration.md b/docs/services/frontend/configuration.md deleted file mode 100644 index 5822f76c9e..0000000000 --- a/docs/services/frontend/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/frontend -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/frontend-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/frontend_configvars.md" >}} diff --git a/docs/services/gateway/configuration.md b/docs/services/gateway/configuration.md deleted file mode 100644 index ff90bf0b4e..0000000000 --- a/docs/services/gateway/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/gateway -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/gateway-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/gateway_configvars.md" >}} diff --git a/docs/services/general-info/_index.md b/docs/services/general-info/_index.md deleted file mode 100644 index 8233f56a47..0000000000 --- a/docs/services/general-info/_index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: General Information -date: 2023-04-12T00:00:00+00:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## General Information - -This section provides general information valid for all services. diff --git a/docs/services/general-info/add-translations.md b/docs/services/general-info/add-translations.md deleted file mode 100644 index 4852aca265..0000000000 --- a/docs/services/general-info/add-translations.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Add Translations -date: 2024-04-08T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: add-translations.md -geekdocCollapseSection: true ---- - -Services can have texts that need to be translated. These translations will be shown in the ownCloud Web UI. Compared to web, these translations are: - -* Independent of [ownCloud Web](https://app.transifex.com/owncloud-org/owncloud-web/translate/) on Transifex. -* Are located in the [ownCloud](https://app.transifex.com/owncloud-org/owncloud/translate) Transifex Project. -* Have a name starting with `ocis-` for ease of identification. - -The process for _synchronisation_ with Transifex is already setup and nothing needs to be done here. For any translation, it is necessary to set it up in the respective service and tell to sync it. - -**IMPORTANT**\ -Translations are automatically synced on a daily basis in the night. To do so, there is an own repo that covers the process for ALL translations from all configured repos: [translation-sync](https://github.com/owncloud/translation-sync). If there is a manual "emergency" sync necessary, you only need to trigger [drone](https://drone.owncloud.com/owncloud/translation-sync) via cli - -```bash -drone cron exec owncloud/translation-sync nightly -``` -Note that you need to be logged on in drone to execute the command. - -## Implementing ocis Translations - -The implementation example is a guide and shall show how to do it. You can derive at any time according to your needs. - -Note that paths are examples and can be adapted based on requirements.\ -Replace `` with the name of the respective service.\ -Translations have a `context` and a `translatable string`. The context is shown on Transifex but not translated and helps translators to get a context for the string to be translated. - -* Add the `OC_DEFAULT_LANGUAGE` envvar in `services//pkg/config/config.go`.\ - For details see the userlog or notifications service code. - -* Add the `_TRANSLATION_PATH` envvar in `services//pkg/config/config.go`.\ - For details see the userlog or notifications service code. - -* Use `"github.com/owncloud/ocis/v2/ocis-pkg/l10n"` for the translation.\ - Use `l10n.Template` to define the translation string.\ - Use `l10n.NewTranslator` or `l10n.NewTranslatorFromCommonConfig` to get the translator.\ - Use `t.Get` to translate the string. See package for more advanced usage. - -* Create a config in `services//pkg/service/l10n/.tx/config` with the following content. Note that it is important to stick with `ocis-` to easily identify all ocis translations on Transifex: - ``` - [main] - host = https://www.transifex.com - - [o:owncloud-org:p:owncloud:r:ocis-] - file_filter = locale//LC_MESSAGES/.po - minimum_perc = 75 - resource_name = ocis- - source_file = .pot - source_lang = en - type = PO - ``` - Note: o: organization, p: project, r: resource - -* Create an empty file `services//pkg/service/l10n/locale/en/LC_MESSAGES/.po`. This is required for ocis to build. This file will be replaced nightly with the latest translations from Transifex. - -* Create a go file like `templates.go` in e.g. `ocis/services//pkg/service` that will define your translation sources like the following: - ``` - // this comment will appear in transifex as context - var yourString = l10n.Template("Translation String") - ``` - -* In the `Makefile` in the **ocis root**, add in the following section the service you want to synchronize translations with Transifex: - ``` - # add a service here when it uses transifex - L10N_MODULES := \ - services/notifications \ - services/userlog \ - services/graph \ - services/activitylog \ - services/ - ``` - -* In the `Makefile` of the **``** add:\ - _At the beginning:_ - ``` - # Where to write the files generated by this makefile. - OUTPUT_DIR = ./pkg/service/<...>/l10n - TEMPLATE_FILE = ./pkg/service/<...>/l10n/.pot - ``` - _In the `.PHONY` list:_ - ``` - ############ translations ######## - .PHONY: l10n-pull - l10n-pull: - cd $(OUTPUT_DIR) && tx pull --all --force --skip --minimum-perc=75 - - .PHONY: l10n-push - l10n-push: - cd $(OUTPUT_DIR) && tx push -s --skip - - .PHONY: l10n-read - l10n-read: $(GO_XGETTEXT) - go-xgettext -o $(OUTPUT_DIR)/.pot \ - --keyword=l10n.Template --add-comments -s \ - pkg/service/templates.go - - .PHONY: l10n-write - l10n-write: - - .PHONY: l10n-clean - l10n-clean: - rm -f $(TEMPLATE_FILE); - ``` - -* Add Description Text to README\ - Add the full `Translations` and `Default Language` text blocks including their sub sections to the service readme. You can derive from the `activitylog` or `userlog` service for easy copy/paste. diff --git a/docs/services/general-info/added-services.md b/docs/services/general-info/added-services.md deleted file mode 100644 index e2206eba7d..0000000000 --- a/docs/services/general-info/added-services.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Added Services per Release -date: 2024-07-12T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: added-services.md -geekdocCollapseSection: true ---- - -Over time, services get added with new releases published. This page gives an overview of which services exist and which -have been added per release. - -## Added Services - -The following table gives an overview about releases and their services. Note that v6.x were rolling releases only and not mentioned therefore. Any changes from v6.x were incorporated in v7. - -[//]: # (for ease of handling, use the .excel table from the same folder and convert it via https://tabletomarkdown.com/convert-spreadsheet-to-markdown/) - -| 3.0 | 4.0 | 5.0 | 7.0 | Rolling | -| ------------------ | ------------------ | ------------------ | ------------------ | ------------------ | -| | | | activitylog | activitylog | -| antivirus | antivirus | antivirus | antivirus | antivirus | -| app-provider | app-provider | app-provider | app-provider | app-provider | -| app-registry | app-registry | app-registry | app-registry | app-registry | -| audit | audit | audit | audit | audit | -| | | | | auth-app | -| auth-basic | auth-basic | auth-basic | auth-basic | auth-basic | -| auth-bearer | auth-bearer | auth-bearer | auth-bearer | auth-bearer | -| auth-machine | auth-machine | auth-machine | auth-machine | auth-machine | -| eventhistory | eventhistory | auth-service | auth-service | auth-service | -| | | clientlog | clientlog | clientlog | -| | | | collaboration | collaboration | -| | | eventhistory | eventhistory | eventhistory | -| frontend | frontend | frontend | frontend | frontend | -| gateway | gateway | gateway | gateway | gateway | -| graph | graph | graph | graph | graph | -| groups | groups | groups | groups | groups | -| idm | idm | idm | idm | idm | -| idp | idp | idp | idp | idp | -| invitations | invitations | invitations | invitations | invitations | -| nats | nats | nats | nats | nats | -| notifications | notifications | notifications | notifications | notifications | -| ocdav | ocdav | ocdav | ocdav | ocdav | -| | | ocm | ocm | ocm | -| ocs | ocs | ocs | ocs | ocs | -| policies | policies | policies | policies | policies | -| postprocessing | postprocessing | postprocessing | postprocessing | postprocessing | -| proxy | proxy | proxy | proxy | proxy | -| search | search | search | search | search | -| settings | settings | settings | settings | settings | -| sharing | sharing | sharing | sharing | sharing | -| | | sse | sse | sse | -| store | store | store | store | store | -| storage-publiclink | storage-publiclink | storage-publiclink | storage-publiclink | storage-publiclink | -| storage-shares | storage-shares | storage-shares | storage-shares | storage-shares | -| storage-system | storage-system | storage-system | storage-system | storage-system | -| storage-users | storage-users | storage-users | storage-users | storage-users | -| thumbnails | thumbnails | thumbnails | thumbnails | thumbnails | -| userlog | userlog | userlog | userlog | userlog | -| users | users | users | users | users | -| web | web | web | web | web | -| webdav | webdav | webdav | webdav | webdav | -| webfinger | webfinger | webfinger | webfinger | webfinger | diff --git a/docs/services/general-info/added-services.xlsx b/docs/services/general-info/added-services.xlsx deleted file mode 100644 index dc8fd749352bd8522e82f4f854ff65e11c0d8b8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11051 zcmeHtWmH_*5^m!V2=49#hu{PW?iSqLU4lz+mjHoa!GgO(T|MnZ54o}jOjxtYu` z^WJ*@?>*h?oJH?l-(lA-+f}6~0|ku4w5np;my`@FzIhz_~MVd2_DpTTBG%aS8VpHukiPYZE z6lRugl?5KJ2+2#!Qiwv^=OjpMAqc2dteB^y=5Jt`DL}xX#^+DEm)yM#_9bwE85`yG zuk~+V1Wd+7sb(q6R=YJ>eThXpOL0CsU?0dU3uheCGCh#LLb!LwHTAx*XZU!A<3GMb z`hhj>#G^F`-Z=!-5(HQQ9-^HSI+sE2Ae@}5ap8Q$xk*Hhnc?P+OKM@Q|HB<@(c-h<{k zdog>NA|dVZ%(XR^uB5RrTV`;TLVWr}vnBabiyn?J>0t4~gI#pqi(#H_IL zVOdCJ16S5w!g!kBd{X}IQ^7DE*@LMRtN~{u^Tl%S0UNT5@A#_97Ce@fMjxDb$vyN< zY&yXK~%YHJP;nBl|&|Na{bub{3q;Li7vHqzf zhVapB@lXK3I@qFY#jD3+ K3kpUwvQ9dQ`UP; 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 diff --git a/docs/services/general-info/additional-information.md b/docs/services/general-info/additional-information.md deleted file mode 100644 index 88c9ee1311..0000000000 --- a/docs/services/general-info/additional-information.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Additional Information -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: additional-information.md -geekdocCollapseSection: true ---- - -This section contains information on general topics - -## GRPC Maximum Message Size - -ocis is using grpc for inter-service communication. When having a folder with a lot of files (25.000+, the size does not matter) and doing a `PROPFIND` on that folder, the server will run into errors. This is because the grpc message body becomes to big. With introduction of the envvar `OC_GRPC_MAX_RECEIVED_MESSAGE_SIZE`, the max size for the grpc body can be raised. - -NOTE: With a certain amount of files even raising the grpc message size will not suffice as the requests will run into network timeouts. Also generally the more files are in a folder, the longer it will take time to load. - -It is recommended to use `OC_GRPC_MAX_RECEIVED_MESSAGE_SIZE` only *temporary* to copy files out of the folder (like via the web ui) and use the default value in general. diff --git a/docs/services/general-info/deprecating-variables.md b/docs/services/general-info/deprecating-variables.md deleted file mode 100644 index bd42e8caa2..0000000000 --- a/docs/services/general-info/deprecating-variables.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: "Envvar Deprecation" -date: 2024-08-22T15:41:00+01:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: deprecating-variables.md ---- - -{{< toc >}} - -## Deprecating Environment Variables - -Sometimes it is necessary to deprecate an environment variable to align the naming with conventions or remove it completely. We therefore added annotations to automate the *documentation* process. - -The relevant annotations in the envvar struct tag are: - -* `deprecationVersion`\ - The release an envvar is announced for deprecation. -* `removalVersion`\ - The version it is finally going to be removed is defined via the mandatory placeholder `%%NEXT_PRODUCTION_VERSION%%`, not an actual version number. -* `deprecationInfo`\ - The reason why it was deprecated. -* `deprecationReplacement`\ - Only if it is going to be replaced, not necessary if removed. - -{{< hint warning >}} -During the development cycle, the value for the `removalVersion` must be set to `%%NEXT_PRODUCTION_VERSION%%`. This placeholder will be replaced by the real version number during the production releasing process. -{{< /hint >}} - -For the documentation to show the correct value for the `removalVersion`, our docs helper scripts will automatically generate the correct version to be printed in the documentation. If `%%NEXT_PRODUCTION_VERSION%%` is found in the query, it will be replaced with `next-prod`, else the value found is used. - -### Example - -```golang -// Notifications defines the config options for the notifications service. -type Notifications struct { -RevaGateway string `yaml:"reva_gateway" env:"OC_REVA_GATEWAY;REVA_GATEWAY" desc:"CS3 gateway used to look up user metadata" deprecationVersion:"3.0" removalVersion:"%%NEXT_PRODUCTION_VERSION%%" deprecationInfo:"REVA_GATEWAY changing name for consistency" deprecationReplacement:"OC_REVA_GATEWAY"` -... -} -``` - -There are four different annotation variables that need to be filled: - -| Annotation |Description| Format| -|---|---|---| -| deprecationVersion | The version the variable will be deprecated | semver (e.g. 3.0)| -| removalVersion| The version the variable will be removed from the codebase. Note that according to semver, a removal **MUST NOT** be made in a minor or patch version change, but only in a major release | `%%NEXT_PRODUCTION_VERSION%%` | -| deprecationInfo | Information why the variable is deprecated, must start with the name of the variable in order to avoid confusion, when there are multiple options in the `env:`-field | string (e.g. NATS_NATS_HOST is confusing) | -| deprecationReplacement | The name of the variable that is going to replace the deprecated one.| string (e.g. NATS_HOST_ADDRESS) | - -### What Happens Next? - -Once a variable has been finally been removed, the annotations must be removed again from the code, since they don't serve any purpose. diff --git a/docs/services/general-info/document-cli-commands.md b/docs/services/general-info/document-cli-commands.md deleted file mode 100644 index eec6028399..0000000000 --- a/docs/services/general-info/document-cli-commands.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Document CLI Commands -date: 2025-01-09T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: document-cli-commands.md -geekdocCollapseSection: true ---- - -Any CLI command that is added to Infinite Scale must be documented in the dev docs and the [admin docs](https://doc.owncloud.com/ocis/latest/maintenance/commands/commands.html). Note that the admin docs mainly differentiate between online and offline commands as the docs structure is different. Any command documented in the dev docs is properly integrated into the admin docs. The following description is for dev docs, admin docs derive from it. - -Note that ANY CLI command needs documentation, but it can be decided that a CLI command will not be added to the admin docs (the reasons should be really valid for such a case). - -## Type of CLI Commands - -There are three types of CLI commands that require different documentation locations: - -1. Commands that depend on a service dependent like\ -`ocis storage-users uploads` -2. Commands that are service independent like\ -`ocis trash purge-empty-dirs` or `ocis revisions purge` -3. `curl` commands that can be one of the above. - - -## Rules - -* Add any service dependent command into the repsective `README.md` _of the service_. -* Add any service independent command into `ocis/README.md` - -## Tips - -For examples, see either `ocis/README.md` or\ -one of the respective service readme's like in\ -`services/storage-users/README.md` or `services/auth-app/README.md`. diff --git a/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-added.adoc b/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-added.adoc deleted file mode 100644 index 301b7f1404..0000000000 --- a/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-added.adoc +++ /dev/null @@ -1,1021 +0,0 @@ -// # Added Variables between oCIS 4.0.0 and oCIS 5.0.0 -// commenting the headline to make it better includable - -// table created based on the .md file per 2024.02.12 -// the table should be recreated/updated based on the final .md file - -[width="100%",cols="~,~,~,~",options="header"] -|=== -| Service| Variable| Description| Default - -| xref:deployment/services/env-vars-special-scope.adoc[Special Scope Envvars] -| `OC_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the cache. Only applies when store type 'nats-js-kv' is configured.| `false` -| -| `MICRO_REGISTRY` + -(important change) -| The Go micro registry type to use. Supported types are: 'memory', 'nats-js-kv' (default) and 'kubernetes'. Note that 'nats', 'etcd', 'consul' and 'mdns' are deprecated and will be removed in a later version. Only change on supervision of ownCloud Support.| nats-js-kv -| -| `MICRO_REGISTRY_AUTH_PASSWORD` -| Optional when using nats to authenticate with the nats cluster.| -| -| `MICRO_REGISTRY_AUTH_USERNAME` -| Optional when using nats to authenticate with the nats cluster.| - -| xref:{s-path}/antivirus.adoc[antivirus] -| `OC_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `ANTIVIRUS_ICAP_SCAN_TIMEOUT` -| Scan timeout for the ICAP client. Defaults to '5m' (5 minutes). See the Environment Variable Types description for more details.| 5m0s - -| xref:{s-path}/audit.adoc[audit] -| `OC_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| - -| xref:{s-path}/auth-service.adoc[auth-service] -| `OC_TRACING_ENABLED` + -`AUTH_SERVICE_TRACING_ENABLED` -| Activates tracing.| -| -| `OC_TRACING_TYPE` + -`AUTH_SERVICE_TRACING_TYPE` -| The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."| -| -| `OC_TRACING_ENDPOINT` + -`AUTH_SERVICE_TRACING_ENDPOINT` -| The endpoint of the tracing agent.| -| -| `OC_TRACING_COLLECTOR` + -`AUTH_SERVICE_TRACING_COLLECTOR` -| 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.| -| -| `OC_LOG_LEVEL` + -`AUTH_SERVICE_LOG_LEVEL` -| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'."| -| -| `OC_LOG_PRETTY` + -`AUTH_SERVICE_LOG_PRETTY` -| Activates pretty log output.| -| -| `OC_LOG_COLOR` + -`AUTH_SERVICE_LOG_COLOR` -| Activates colorized log output.| -| -| `OC_LOG_FILE` + -`AUTH_SERVICE_LOG_FILE` -| The path to the log file. Activates logging to this file if set.| -| -| `AUTH_SERVICE_DEBUG_ADDR` -| Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed.| -| -| `AUTH_SERVICE_DEBUG_PPROF` -| Enables pprof, which can be used for profiling.| -| -| `AUTH_SERVICE_DEBUG_TOKEN` -| Enables pprof, which can be used for profiling.| -| -| `AUTH_SERVICE_DEBUG_ZPAGES` -| Enables zpages, which can be used for collecting and viewing in-memory traces.| -| -| `AUTH_SERVICE_GRPC_ADDR` -| The bind address of the GRPC service.| -| -| `AUTH_SERVICE_GRPC_PROTOCOL` -| The transport protocol of the GRPC service.| -| -| `OC_SERVICE_ACCOUNT_ID` + -`AUTH_SERVICE_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`AUTH_SERVICE_SERVICE_ACCOUNT_SECRET` -| The service account secret.| - -| -| `OC_JWT_SECRET` + -`AUTH_SERVICE_JWT_SECRET` -| The secret to mint and validate jwt tokens.| - -| xref:{s-path}/clientlog.adoc[clientlog] -| `OC_REVA_GATEWAY` + -`CLIENTLOG_REVA_GATEWAY` -| CS3 gateway used to look up user metadata| -| -| `OC_EVENTS_ENDPOINT` + -`CLIENTLOG_EVENTS_ENDPOINT` -| The address of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture.| -| -| `OC_EVENTS_CLUSTER` + -`CLIENTLOG_EVENTS_CLUSTER` -| 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.| -| -| `OC_INSECURE` + -`CLIENTLOG_EVENTS_TLS_INSECURE` -| Whether to verify the server TLS certificates.| -| -| `OC_EVENTS_TLS_ROOT_CA_CERTIFICATE` + -`CLIENTLOG_EVENTS_TLS_ROOT_CA_CERTIFICATE` -| The root CA certificate used to validate the server's TLS certificate. If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false.| -| -| `OC_EVENTS_ENABLE_TLS` + -`CLIENTLOG_EVENTS_ENABLE_TLS` -| Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`CLIENTLOG_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`CLIENTLOG_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_JWT_SECRET` + -`CLIENTLOG_JWT_SECRET` -| The secret to mint and validate jwt tokens.| -| -| `OC_SERVICE_ACCOUNT_ID` + -`CLIENTLOG_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`CLIENTLOG_SERVICE_ACCOUNT_SECRET` -| The service account secret.| - -| -| `CLIENTLOG_DEBUG_ADDR` -| Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed.| -| -| `CLIENTLOG_DEBUG_TOKEN` -| Token to secure the metrics endpoint.| -| -| `CLIENTLOG_DEBUG_PPROF` -| Enables pprof, which can be used for profiling.| -| -| `CLIENTLOG_DEBUG_ZPAGES` -| Enables zpages, which can be used for collecting and viewing in-memory traces.| - -| -| `OC_LOG_LEVEL` + -`CLIENTLOG_USERLOG_LOG_LEVEL` -| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'."| -| -| `OC_LOG_PRETTY` + -`CLIENTLOG_USERLOG_LOG_PRETTY` -| Activates pretty log output.| -| -| `OC_LOG_COLOR` + -`CLIENTLOG_USERLOG_LOG_COLOR` -| Activates colorized log output.| -| -| `OC_LOG_FILE` + -`CLIENTLOG_USERLOG_LOG_FILE` -| The path to the log file. Activates logging to this file if set.| - -| -| `OC_TRACING_ENABLED` + -`CLIENTLOG_TRACING_ENABLED` -| Activates tracing.| -| -| `OC_TRACING_TYPE` + -`CLIENTLOG_TRACING_TYPE` -| The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` -| -| -| `OC_TRACING_ENDPOINT` + -`CLIENTLOG_TRACING_ENDPOINT` -| The endpoint of the tracing agent.| -| -| `OC_TRACING_COLLECTOR` + -`CLIENTLOG_TRACING_COLLECTOR` -| 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.| - -| xref:{s-path}/eventhistory.adoc[eventhistory] -| `OC_PERSISTENT_STORE_AUTH_USERNAME` + -`EVENTHISTORY_STORE_AUTH_USERNAME` -| The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_PERSISTENT_STORE_AUTH_PASSWORD` + -`EVENTHISTORY_STORE_AUTH_PASSWORD` -| The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`EVENTHISTORY_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`EVENTHISTORY_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| - -| xref:{s-path}/frontend.adoc[frontend] -| `FRONTEND_DEFAULT_LINK_PERMISSIONS` -| Defines the default permissions a link is being created with. Possible values are 0 (= internal link, for instance members only) and 1 (= public link with viewer permissions). Defaults to 1.| -| -| `FRONTEND_AUTO_ACCEPT_SHARES` -| Defines if shares should be auto accepted by default. Users can change this setting individually in their profile.| true -| -| `OC_CACHE_DISABLE_PERSISTENCE` + -`FRONTEND_OCS_STAT_CACHE_DISABLE_PERSISTENCE` -| Disable persistence of the cache. Only applies when using the 'nats-js-kv' store type. Defaults to false.| false -| -| `OC_CACHE_AUTH_USERNAME` + -`FRONTEND_OCS_STAT_CACHE_AUTH_USERNAME` -| The username to use for authentication. Only applies when using the 'nats-js-kv' store type.| -| -| `OC_CACHE_AUTH_PASSWORD` + -`FRONTEND_OCS_STAT_CACHE_AUTH_PASSWORD` -| The password to use for authentication. Only applies when using the 'nats-js-kv' store type.| -| -| `FRONTEND_OCS_LIST_OCM_SHARES` -| Include OCM shares when listing shares. See the OCM service documentation for more details.| -| -| `OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD` + -`FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD` -| Set this to true if you want to enforce passwords on all public shares.| -| -| `OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD` + -`FRONTEND_OCS_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD` -| Set this to true if you want to enforce passwords on Uploader, Editor or Contributor shares.| -| -| `FRONTEND_OCS_INCLUDE_OCM_SHAREES` -| Include OCM sharees when listing sharees.| -| -| `OC_EVENTS_ENDPOINT` + -`FRONTEND_EVENTS_ENDPOINT` -| The address of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture.| -| -| `OC_EVENTS_CLUSTER` + -`FRONTEND_EVENTS_CLUSTER` -| 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.| -| -| `OC_INSECURE` + -`FRONTEND_EVENTS_TLS_INSECURE` -| Whether to verify the server TLS certificates.| -| -| `FRONTEND_EVENTS_TLS_ROOT_CA_CERTIFICATE` + -`OCS_EVENTS_TLS_ROOT_CA_CERTIFICATE` -| The root CA certificate used to validate the server's TLS certificate. If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false.| -| -| `OC_EVENTS_ENABLE_TLS` + -`FRONTEND_EVENTS_ENABLE_TLS` -| Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`FRONTEND_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`FRONTEND_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_SERVICE_ACCOUNT_ID` + -`FRONTEND_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`FRONTEND_SERVICE_ACCOUNT_SECRET` -| The service account secret.| -| -| `OC_PASSWORD_POLICY_DISABLED` + -`FRONTEND_PASSWORD_POLICY_DISABLED` -| Define the minimum password length. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_MIN_CHARACTERS` + -`FRONTEND_PASSWORD_POLICY_MIN_CHARACTERS` -| Disable the password policy. Defaults to false if not set.| -| -| `OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS` + -`FRONTEND_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS` -| Define the minimum number of lowercase characters. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS` + -`FRONTEND_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS` -| Define the minimum number of uppercase characters. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_MIN_DIGITS` + -`FRONTEND_PASSWORD_POLICY_MIN_DIGITS` -| Define the minimum number of digits. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS` + -`FRONTEND_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS` -| Define the minimum number of special characters. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST` + -`FRONTEND_PASSWORD_POLICY_BANNED_PASSWORDS_LIST` -| Path to the 'banned passwords list' file. See the documentation for more details.| - -| xref:{s-path}/gateway.adoc[gateway] -| `OC_CACHE_DISABLE_PERSISTENCE` + -`GATEWAY_STAT_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the stat cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false.| false -| -| `OC_CACHE_DISABLE_PERSISTENCE` + -`GATEWAY_PROVIDER_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the provider cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false.| false -| -| `OC_CACHE_AUTH_USERNAME` + -`GATEWAY_PROVIDER_CACHE_AUTH_USERNAME` -| The username to use for authentication. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_AUTH_PASSWORD` + -`GATEWAY_PROVIDER_CACHE_AUTH_PASSWORD` -| The password to use for authentication. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_DISABLE_PERSISTENCE` + -`GATEWAY_CREATE_HOME_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the create home cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false.| false -| -| `OC_CACHE_AUTH_USERNAME` + -`GATEWAY_CREATE_HOME_CACHE_AUTH_USERNAME` -| The username to use for authentication. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_AUTH_PASSWORD` + -`GATEWAY_CREATE_HOME_CACHE_AUTH_PASSWORDv` -| The password to use for authentication. Only applies when store type 'nats-js-kv' is configured.| - -| xref:{s-path}/graph.adoc[graph] -| `OC_CACHE_DISABLE_PERSISTENCE` + -`GRAPH_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false.| false -| -| `OC_CACHE_AUTH_USERNAME` + -`GRAPH_CACHE_AUTH_USERNAME` -| The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_AUTH_PASSWORD` + -`GRAPH_CACHE_AUTH_PASSWORD` -| The password to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.| - -| -| `GRAPH_IDENTITY_SEARCH_MIN_LENGTH` -| The minimum length the search term needs to have for unprivileged users when searching for users or groups.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`GRAPH_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`GRAPH_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_SERVICE_ACCOUNT_ID` + -`GRAPH_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`GRAPH_SERVICE_ACCOUNT_SECRET` -| The service account secret.| -| -| `OC_ENABLE_RESHARING` + -`GRAPH_ENABLE_RESHARING` -| Changing this value is NOT supported. Enables the support for resharing in the clients.| - -| xref:{s-path}/idp.adoc[idp] -| `IDP_LOGIN_BACKGROUND_URL` -| Configure an alternative URL to the background image for the login page.| - -| xref:{s-path}/notifications.adoc[notifications] -| `OC_DEFAULT_LANGUAGE` -| The default language used by services and the WebUI. If not defined, English will be used as default. See the documentation for more details.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`NOTIFICATIONS_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`NOTIFICATIONS_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_SERVICE_ACCOUNT_ID` + -`NOTIFICATIONS_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`NOTIFICATIONS_SERVICE_ACCOUNT_SECRET` -| The service account secret.| - -| xref:{s-path}/ocdav.adoc[ocdav] -| `OCDAV_OCM_NAMESPACE` -| The human readable path prefix for the ocm shares.| - -| xref:{s-path}/ocm.adoc[ocm] -| `SHARING_OCM_PROVIDER_AUTHORIZER_DRIVER` -| Driver to be used to persist ocm invites. Supported value is only 'json'.| `json` -| -| `OCM_HTTP_ADDR` -| The bind address of the HTTP service.| -| -| `OCM_HTTP_PROTOCOL` -| The transport protocol of the HTTP service.| -| -| `OCM_HTTP_PREFIX` -| The path prefix where OCM can be accessed (defaults to /).| -| -| `OC_SERVICE_ACCOUNT_ID` + -`OCM_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`OCM_SERVICE_ACCOUNT_SECRET` -| The service account secret.| -| -| `OC_CORS_ALLOW_ORIGINS` + -`OCM_CORS_ALLOW_ORIGINS` -| 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. See the Environment Variable Types description for more details.| -| -| `OC_CORS_ALLOW_METHODS` + -`OCM_CORS_ALLOW_METHODS` -| A list of allowed CORS methods. See following chapter for more details: *Access-Control-Allow-Methods* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods. See the Environment Variable Types description for more details.| -| -| `OC_CORS_ALLOW_HEADERS` + -`OCM_CORS_ALLOW_HEADERS` -| A list of allowed CORS headers. See following chapter for more details: *Access-Control-Allow-Headers* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers. See the Environment Variable Types description for more details.| -| -| `OC_CORS_ALLOW_CREDENTIALS` + -`OCM_CORS_ALLOW_CREDENTIALS` -| 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.| -| -| `OCM_GRPC_ADDR` -| The bind address of the GRPC service.| -| -| `OCM_GRPC_PROTOCOL` -| The transport protocol of the GRPC service.| -| -| `OCM_SCIENCEMESH_PREFIX` -| URL path prefix for the ScienceMesh service. Note that the string must not start with '/'.| -| -| `OCM_MESH_DIRECTORY_URL` -| URL of the mesh directory service.| -| -| `OCM_OCMD_PREFIX` -| URL path prefix for the OCMd service. Note that the string must not start with '/'.| -| -| `OCM_OCMD_EXPOSE_RECIPIENT_DISPLAY_NAME` -| Expose the display name of OCM share recipients.| -| -| `OCM_OCM_INVITE_MANAGER_DRIVER` -| Driver to be used to persist ocm invites. Supported value is only 'json'.| `json` -| -| `OCM_OCM_INVITE_MANAGER_INSECURE` -| Disable TLS certificate validation for the OCM connections. Do not set this in production environments.| -| -| `OCM_OCM_INVITE_MANAGER_JSON_FILE` -| Path to the JSON file where OCM invite data will be stored. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/storage.| -| -| `OCM_OCM_PROVIDER_AUTHORIZER_PROVIDERS_FILE` -| Path to the JSON file where ocm invite data will be stored. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/storage.| -| -| `OCM_OCM_PROVIDER_AUTHORIZER_VERIFY_REQUEST_HOSTNAME` -| Verify the hostname of the request against the hostname of the OCM provider.| -| -| `OCM_OCM_CORE_DRIVER` -| Driver to be used to persist ocm shares. Supported value is only 'json'.| `json` -| -| `OCM_OCM_STORAGE_PROVIDER_INSECURE` -| Disable TLS certificate validation for the OCM connections. Do not set this in production environments.| -| -| `OCM_OCM_STORAGE_PROVIDER_STORAGE_ROOT` -| Directory where the ocm storage provider persists its data like tus upload info files.| -| -| `OCM_OCM_CORE_JSON_FILE` -| Path to the JSON file where OCM share data will be stored. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/storage.| -| -| `OCM_OCM_SHARE_PROVIDER_DRIVER` -| Driver to be used to persist ocm shares. Supported value is only 'json'.| `json` -| -| `OCM_OCM_SHARE_PROVIDER_INSECURE` -| Disable TLS certificate validation for the OCM connections. Do not set this in production environments.| -| -| `OCM_WEBAPP_TEMPLATE` -| Template for the webapp url.| -| -| `OCM_OCM_SHAREPROVIDER_JSON_FILE` -| Path to the JSON file where OCM share data will be stored. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/storage.| - -| -| `OCM_DEBUG_ADDR` -| Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed.| -| -| `OCM_DEBUG_TOKEN` -| Token to secure the metrics endpoint.| -| -| `OCM_DEBUG_PPROF` -| Enables pprof, which can be used for profiling.| -| -| `OCM_DEBUG_ZPAGES` -| Enables zpages, which can be used for collecting and viewing in-memory traces.| - -| -| `OC_LOG_LEVEL` + -`OCM_LOG_LEVEL` -| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'."| -| -| `OC_LOG_PRETTY` + -`OCM_LOG_PRETTY` -| Activates pretty log output.| -| -| `OC_LOG_COLOR` + -`OCM_LOG_COLOR` -| Activates colorized log output.| -| -| `OC_LOG_FILE` + -`OCM_LOG_FILE` -| The path to the log file. Activates logging to this file if set.| - -| -| `OC_TRACING_ENABLED` + -`OCM_TRACING_ENABLED` -| Activates tracing.| -| -| `OC_TRACING_TYPE` + -`OCM_TRACING_TYPE` -| The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` -| -| -| `OC_TRACING_ENDPOINT` + -`OCM_TRACING_ENDPOINT` -| The endpoint of the tracing agent.| -| -| `OC_TRACING_COLLECTOR` + -`OCM_TRACING_COLLECTOR` -| 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.| - -| xref:{s-path}/ocs.adoc[ocs] -| `OC_CACHE_STORE` + -`OCS_PRESIGNEDURL_SIGNING_KEYS_STORE` -| The type of the signing key store. Supported values are: 'redis-sentinel' and 'nats-js-kv'. See the text description for details.| -| -| `OC_CACHE_STORE_NODES` + -`OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_NODES` -| 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.| - -| -| `OC_CACHE_TTL` + -`OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL` -| Default time to live for signing keys. See the Environment Variable Types description for more details.| - -| -| `OC_CACHE_AUTH_USERNAME` + -`OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME` -| The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| - -| -| `OC_CACHE_AUTH_PASSWORD` + -`OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD` -| The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| - -| xref:{s-path}/policies.adoc[policies] -| `OC_EVENTS_AUTH_USERNAME` + -`POLICIES_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`POLICIES_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| - -| -| `OC_TRACING_ENABLED` + -`POLICIES_TRACING_ENABLED` -| Activates tracing.| -| -| `OC_TRACING_TYPE` + -`POLICIES_TRACING_TYPE` -| The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` -| -| -| `OC_TRACING_ENDPOINT` + -`POLICIES_TRACING_ENDPOINT` -| The endpoint of the tracing agent.| -| -| `OC_TRACING_COLLECTOR` + -`POLICIES_TRACING_COLLECTOR` -| 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.| - -| xref:{s-path}/postprocessing.adoc[postprocessing] -| `POSTPROCESSING_RETRY_BACKOFF_DURATION` -| The base for the exponential backoff duration before retrying a failed postprocessing step. See the Environment Variable Types description for more details.| -| -| `POSTPROCESSING_MAX_RETRIES` -| The maximum number of retries for a failed postprocessing step.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`POSTPROCESSING_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`POSTPROCESSING_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_PERSISTENT_STORE_AUTH_USERNAME` + -`POSTPROCESSING_STORE_AUTH_USERNAME` -| The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_PERSISTENT_STORE_AUTH_PASSWORD` + -`POSTPROCESSING_STORE_AUTH_PASSWORD` -| The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| - -| -| `OC_TRACING_ENABLED` + -`POSTPROCESSING_TRACING_ENABLED` -| Activates tracing.| -| -| `OC_TRACING_TYPE` + -`POSTPROCESSING_TRACING_TYPE` -| The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` -| -| -| `OC_TRACING_ENDPOINT` + -`POSTPROCESSING_TRACING_ENDPOINT` -| The endpoint of the tracing agent.| -| -| `OC_TRACING_COLLECTOR` + -`POSTPROCESSING_TRACING_COLLECTOR` -| 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.| - -| xref:{s-path}/proxy.adoc[proxy] -| `OC_CACHE_AUTH_USERNAME` + -`PROXY_OIDC_USERINFO_CACHE_AUTH_USERNAME` -| The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_AUTH_PASSWORD` + -`PROXY_OIDC_USERINFO_CACHE_AUTH_PASSWORD` -| The password to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.| - -| -| `OC_CACHE_STORE` + -`PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE` -| The type of the signing key store. Supported values are: 'redis-sentinel' and 'nats-js-kv'. See the text description for details.| -| -| `OC_CACHE_STORE_NODES` + -`PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_NODES` -| 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.| - -| -| `OC_CACHE_TTL` + -`PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL` -| Default time to live for signing keys. See the Environment Variable Types description for more details.| - -| -| `OC_CACHE_DISABLE_PERSISTENCE` + -`PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_DISABLE_PERSISTENCE` -| Disables persistence of the store. Only applies when store type 'nats-js-kv' is configured. Defaults to true.| - -| -| `OC_CACHE_AUTH_USERNAME` + -`PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME` -| The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| - -| -| `OC_CACHE_AUTH_PASSWORD` + -`PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD` -| The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| - -| -| `OC_SERVICE_ACCOUNT_ID` + -`PROXY_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`PROXY_SERVICE_ACCOUNT_SECRET` -| The service account secret.| - -| xref:{s-path}/search.adoc[search] -| `OC_SERVICE_ACCOUNT_ID` + -`SEARCH_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`SEARCH_SERVICE_ACCOUNT_SECRET` -| The service account secret.| - -| -| `SEARCH_EXTRACTOR_TIKA_CLEAN_STOP_WORDS` -| Defines if stop words should be cleaned or not. See the documentation for more details.| - -| -| `OC_EVENTS_AUTH_USERNAME` + -`SEARCH_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`SEARCH_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| - -| xref:{s-path}/settings.adoc[settings] -| `SETTINGS_SERVICE_ACCOUNT_IDS` + -`OC_SERVICE_ACCOUNT_ID` -| The list of all service account IDs. These will be assigned the hidden 'service-account' role. Note: When using 'OC_SERVICE_ACCOUNT_ID' this will contain only one value while 'SETTINGS_SERVICE_ACCOUNT_IDS' can have multiple. See the 'auth-service' service description for more details about service accounts.| -| -| `OC_DEFAULT_LANGUAGE` -| The default language used by services and the WebUI. If not defined, English will be used as default. See the documentation for more details.| -| -| `OC_CACHE_DISABLE_PERSISTENCE` + -`SETTINGS_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false.| -| -| `OC_CACHE_AUTH_USERNAME` + -`SETTINGS_CACHE_AUTH_USERNAME` -| The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_AUTH_PASSWORD` + -`SETTINGS_CACHE_AUTH_PASSWORD` -| The password to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`SETTINGS_EVENTS_AUTH_USERNAME` -| The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`SETTINGS_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.| - -| xref:{s-path}/sharing.adoc[sharing] -| `OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD` + -`SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD` -| Set this to true if you want to enforce passwords on Uploader, Editor or Contributor shares. If not using the global OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD, you must define the FRONTEND_OCS_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD in the frontend service.| -| -| `OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD` + -`SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD` -| Set this to true if you want to enforce passwords on all public shares.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`SHARING_EVENTS_AUTH_USERNAME` -| Username for the events broker.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`SHARING_EVENTS_AUTH_PASSWORD` -| Password for the events broker.| -| -| `OC_PASSWORD_POLICY_DISABLED` + -`SHARING_PASSWORD_POLICY_DISABLED` -| Disable the password policy. Defaults to false if not set.| -| -| `OC_PASSWORD_POLICY_MIN_CHARACTERS` + -`SHARING_PASSWORD_POLICY_MIN_CHARACTERS` -| Define the minimum password length. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS` + -`SHARING_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS` -| Define the minimum number of lowercase characters. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS` + -`SHARING_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS` -| Define the minimum number of uppercase characters. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_MIN_DIGITS` + -`SHARING_PASSWORD_POLICY_MIN_DIGITS` -| Define the minimum number of digits. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS` + -`SHARING_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS` -| Define the minimum number of special characters. Defaults to 0 if not set.| 0 -| -| `OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST` + -`SHARING_PASSWORD_POLICY_BANNED_PASSWORDS_LIST` -| Path to the 'banned passwords list' file. See the documentation for more details.| - -| xref:{s-path}/sse.adoc[sse] -| `OC_LOG_LEVEL` + -`SSE_LOG_LEVEL` -| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'."| -| -| `OC_LOG_PRETTY` + -`SSE_LOG_PRETTY` -| Activates pretty log output.| -| -| `OC_LOG_COLOR` + -`SSE_LOG_COLOR` -| Activates colorized log output.| -| -| `OC_LOG_FILE` + -`SSE_LOG_FILE` -| The path to the log file. Activates logging to this file if set.| -| -| `SSE_DEBUG_ADDR` -| Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed.| -| -| `SSE_DEBUG_TOKEN` -| Token to secure the metrics endpoint.| -| -| `SSE_DEBUG_PPROF` -| Enables pprof, which can be used for profiling.| -| -| `SSE_DEBUG_ZPAGES` -| Enables zpages, which can be used for collecting and viewing in-memory traces.| -| -| `OC_EVENTS_ENDPOINT` + -`SSE_EVENTS_ENDPOINT` -| The address of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture.| -| -| `OC_EVENTS_CLUSTER` + -`SSE_EVENTS_CLUSTER` -| 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.| -| -| `OC_INSECURE` + -`SSE_EVENTS_TLS_INSECURE` -| Whether to verify the server TLS certificates.| -| -| `OC_EVENTS_TLS_ROOT_CA_CERTIFICATE` + -`SSE_EVENTS_TLS_ROOT_CA_CERTIFICATE` -| The root CA certificate used to validate the server's TLS certificate. If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false.| -| -| `OC_EVENTS_ENABLE_TLS` + -`SSE_EVENTS_ENABLE_TLS` -| Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`SSE_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`SSE_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_CORS_ALLOW_ORIGINS` + -`SSE_CORS_ALLOW_ORIGINS` -| 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. See the Environment Variable Types description for more details.| -| -| `OC_CORS_ALLOW_METHODS` + -`SSE_CORS_ALLOW_METHODS` -| A list of allowed CORS methods. See following chapter for more details: *Access-Control-Allow-Methods* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods. See the Environment Variable Types description for more details.| -| -| `OC_CORS_ALLOW_HEADERS` + -`SSE_CORS_ALLOW_HEADERS` -| A list of allowed CORS headers. See following chapter for more details: *Access-Control-Allow-Headers* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers. See the Environment Variable Types description for more details.| -| -| `OC_CORS_ALLOW_CREDENTIALS` + -`SSE_CORS_ALLOW_CREDENTIALS` -| 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.| -| -| `SSE_HTTP_ADDR` -| The bind address of the HTTP service. | -| -| `SSE_HTTP_ROOT` -| The root path of the HTTP service.| -| -| `OC_JWT_SECRET` + -`SSE_JWT_SECRET` -| The secret to mint and validate jwt tokens.| - -| -| `OC_TRACING_ENABLED` + -`SSE_TRACING_ENABLED` -| Activates tracing.| -| -| `OC_TRACING_TYPE` + -`SSE_TRACING_TYPE` -| The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` -| -| -| `OC_TRACING_ENDPOINT` + -`SSE_TRACING_ENDPOINT` -| The endpoint of the tracing agent.| -| -| `OC_TRACING_COLLECTOR` + -`SSE_TRACING_COLLECTOR` -| 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.| - -| xref:{s-path}/storage-system.adoc[storage-system] -| `OC_CACHE_DISABLE_PERSISTENCE` + -`STORAGE_SYSTEM_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false.| false -| -| `OC_CACHE_AUTH_USERNAME` + -`STORAGE_SYSTEM_CACHE_AUTH_USERNAME` -| Username for the configured store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_AUTH_PASSWORD` + -`STORAGE_SYSTEM_CACHE_AUTH_PASSWORD` -| Password for the configured store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_MACHINE_AUTH_API_KEY` + -`STORAGE_USERS_MACHINE_AUTH_API_KEY` -| Machine auth API key used to validate internal requests necessary for the access to resources from other services.| - -| xref:{s-path}/storage-users.adoc[storage-users] -| `OC_GATEWAY_GRPC_ADDR` + -`STORAGE_USERS_GATEWAY_GRPC_ADDR` -| The bind address of the gateway GRPC address.| -| -| `OC_MACHINE_AUTH_API_KEY` + -`STORAGE_USERS_MACHINE_AUTH_API_KEY` -| Machine auth API key used to validate internal requests necessary for the access to resources from other services.| -| -| `STORAGE_USERS_CLI_MAX_ATTEMPTS_RENAME_FILE` -| The maximum number of attempts to rename a file when a user restores a file to an existing destination with the same name. The minimum value is 100.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`STORAGE_USERS_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`STORAGE_USERS_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_CACHE_DISABLE_PERSISTENCE` + -`STORAGE_USERS_STAT_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the stat cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false.| false -| -| `OC_CACHE_DISABLE_PERSISTENCE` + -`STORAGE_USERS_FILEMETADATA_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the file metadata cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false.| false -| -| `OC_CACHE_AUTH_USERNAME` + -`STORAGE_USERS_FILEMETADATA_CACHE_AUTH_USERNAME` -| The username to authenticate with the cache store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_AUTH_PASSWORD` + -`STORAGE_USERS_FILEMETADATA_CACHE_AUTH_PASSWORD` -| The password to authenticate with the cache store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_DISABLE_PERSISTENCE` + -`STORAGE_USERS_ID_CACHE_DISABLE_PERSISTENCE` -| Disables persistence of the id cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false.| false -| -| `OC_CACHE_AUTH_USERNAME` + -`STORAGE_USERS_ID_CACHE_AUTH_USERNAME` -| The username to authenticate with the cache store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_CACHE_AUTH_PASSWORD` + -`STORAGE_USERS_ID_CACHE_AUTH_PASSWORD` -| The password to authenticate with the cache store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_SERVICE_ACCOUNT_ID` + -`STORAGE_USERS_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`STORAGE_USERS_SERVICE_ACCOUNT_SECRET` -| The service account secret.| - -| xref:{s-path}/userlog.adoc[userlog] -| `OC_DEFAULT_LANGUAGE` -| The default language used by services and the WebUI. If not defined, English will be used as default. See the documentation for more details.| -| -| `OC_PERSISTENT_STORE_AUTH_USERNAME` + -`USERLOG_STORE_AUTH_USERNAME` -| The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_PERSISTENT_STORE_AUTH_PASSWORD` + -`USERLOG_STORE_AUTH_PASSWORD` -| The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured.| -| -| `OC_EVENTS_AUTH_USERNAME` + -`USERLOG_EVENTS_AUTH_USERNAME` -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_EVENTS_AUTH_PASSWORD` + -`USERLOG_EVENTS_AUTH_PASSWORD` -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.| -| -| `OC_SERVICE_ACCOUNT_ID` + -`USERLOG_SERVICE_ACCOUNT_ID` -| The ID of the service account the service should use. See the 'auth-service' service description for more details.| -| -| `OC_SERVICE_ACCOUNT_SECRET` + -`USERLOG_SERVICE_ACCOUNT_SECRET` -| The service account secret.| - -| xref:{s-path}/web.adoc[web] -| `WEB_OPTION_LOGIN_URL` -| Specifies the target URL to the login page. This is helpful when an external IdP is used. This option is disabled by default. Example URL like: https://www.myidp.com/login.| -| -| `WEB_OPTION_DISABLED_EXTENSIONS` -| A list to disable specific Web extensions identified by their ID. The ID can e.g. be taken from the 'index.ts' file of the web extension. Example: 'com.github.owncloud.web.files.search,com.github.owncloud.web.files.print'. See the Environment Variable Types description for more details.| -| -| `WEB_OPTION_USER_LIST_REQUIRES_FILTER` -| Defines whether one or more filters must be set in order to list users in the Web admin settings. Set this option to 'true' if running in an environment with a lot of users and listing all users could slow down performance. Defaults to 'false'.| false -| -| `WEB_OPTION_EMBED_ENABLED` -| Defines whether Web should be running in 'embed' mode. Setting this to 'true' will enable a stripped down version of Web with reduced functionality used to integrate Web into other applications like via iFrame. Setting it to 'false' or not setting it (default) will run Web as usual with all functionality enabled. See the text description for more details.| -| -| `WEB_OPTION_EMBED_TARGET` -| Defines how Web is being integrated when running in 'embed' mode. Currently, the only supported options are '' (empty) and 'location'. With '' which is the default, Web will run regular as defined via the 'embed.enabled' config option. With 'location', Web will run embedded as location picker. Resource selection will be disabled and the selected resources array always includes the current folder as the only item. See the text description for more details. | -| -| `WEB_OPTION_EMBED_MESSAGES_ORIGIN` -| Defines a URL under which Web can be integrated via iFrame in 'embed' mode. Note that setting this is mandatory when running Web in 'embed' mode. Use '*' as value to allow running the iFrame under any URL, although this is not recommended for security reasons. See the text description for more details.| -| -| `WEB_OPTION_EMBED_DELEGATE_AUTHENTICATION` -| Defines whether Web should require authentication to be done by the parent application when running in 'embed' mode. If set to 'true' Web will not try to authenticate the user on its own but will require an access token coming from the parent application. Defaults to being unset.| -| -| `WEB_OPTION_EMBED_DELEGATE_AUTHENTICATION_ORIGIN` -| Defines the host to validate the message event origin against when running Web in 'embed' mode with delegated authentication. Defaults to event message origin validation being omitted, which is only recommended for development setups.| -| -| `WEB_OPTION_CONCURRENT_REQUESTS_RESOURCE_BATCH_ACTIONS` -| Defines the maximum number of concurrent requests per file/folder/space batch action. Defaults to 4.| -| -| `WEB_OPTION_CONCURRENT_REQUESTS_SSE` -| Defines the maximum number of concurrent requests in SSE event handlers. Defaults to 4.| -| -| `WEB_OPTION_CONCURRENT_REQUESTS_SHARES_CREATE` -| Defines the maximum number of concurrent requests per sharing invite batch. Defaults to 4.| -| -| `WEB_OPTION_CONCURRENT_REQUESTS_SHARES_LIST` -| Defines the maximum number of concurrent requests when loading individual share information inside listings. Defaults to 2.| -|=== diff --git a/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-added.md b/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-added.md deleted file mode 100644 index ab8c659c99..0000000000 --- a/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-added.md +++ /dev/null @@ -1,263 +0,0 @@ -# Added Variables between oCIS 4.0.0 and oCIS 5.0.0 - -| File | Variable | Description | Default | -|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------| -| ocis-pkg/shared/shared_types.go | `OC_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the cache. Only applies when store type 'nats-js-kv' is configured. | `false` | -| ocis-pkg/registry/registry.go | `MICRO_REGISTRY` (important change) | The Go micro registry type to use. Supported types are: 'memory', 'nats-js-kv' (default) and 'kubernetes'. Note that 'nats', 'etcd', 'consul' and 'mdns' are deprecated and will be removed in a later version. Only change on supervision of ownCloud Support. | `nats-js-kv` | -| ocis-pkg/natsjsregistry/registry.go | `MICRO_REGISTRY_AUTH_USERNAME` | Optional when using nats to authenticate with the nats cluster. | | -| | `MICRO_REGISTRY_AUTH_PASSWORD` | Optional when using nats to authenticate with the nats cluster. | | -| services/antivirus/pkg/config/config.go | `OC_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `ANTIVIRUS_ICAP_SCAN_TIMEOUT` | Scan timeout for the ICAP client. Defaults to '5m' (5 minutes). See the Environment Variable Types description for more details. | 5m0s | -| services/audit/pkg/config/config.go | `OC_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| services/auth-service/pkg/config/config.go | `OC_LOG_LEVEL;AUTH_SERVICE_LOG_LEVEL` | The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'." | | -| | `OC_LOG_PRETTY;AUTH_SERVICE_LOG_PRETTY` | Activates pretty log output. | | -| | `OC_LOG_COLOR;AUTH_SERVICE_LOG_COLOR` | Activates colorized log output. | | -| | `OC_LOG_FILE;AUTH_SERVICE_LOG_FILE` | The path to the log file. Activates logging to this file if set. | | -| | `AUTH_SERVICE_DEBUG_ADDR` | Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. | | -| | `AUTH_SERVICE_DEBUG_PPROF` | Enables pprof, which can be used for profiling. | | -| | `AUTH_SERVICE_DEBUG_TOKEN` | Enables pprof, which can be used for profiling. | | -| | `AUTH_SERVICE_DEBUG_ZPAGES` | Enables zpages, which can be used for collecting and viewing in-memory traces. | | -| | `AUTH_SERVICE_GRPC_ADDR` | The bind address of the GRPC service. | | -| | `AUTH_SERVICE_GRPC_PROTOCOL` | The transport protocol of the GRPC service. | | -| | `OC_SERVICE_ACCOUNT_ID;AUTH_SERVICE_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;AUTH_SERVICE_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| services/auth-service/pkg/config/reva.go | `OC_JWT_SECRET;AUTH_SERVICE_JWT_SECRET` | The secret to mint and validate jwt tokens. | | -| services/auth-service/pkg/config/tracing.go | `OC_TRACING_ENABLED;AUTH_SERVICE_TRACING_ENABLED` | Activates tracing. | | -| | `OC_TRACING_TYPE;AUTH_SERVICE_TRACING_TYPE` | The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` | | -| | `OC_TRACING_ENDPOINT;AUTH_SERVICE_TRACING_ENDPOINT` | The endpoint of the tracing agent. | | -| | `OC_TRACING_COLLECTOR;AUTH_SERVICE_TRACING_COLLECTOR` | 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. | | -| services/clientlog/pkg/config/config.go | `OC_REVA_GATEWAY;CLIENTLOG_REVA_GATEWAY` | CS3 gateway used to look up user metadata | | -| | `OC_EVENTS_ENDPOINT;CLIENTLOG_EVENTS_ENDPOINT` | The address of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture. | | -| | `OC_EVENTS_CLUSTER;CLIENTLOG_EVENTS_CLUSTER` | 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. | | -| | `OC_INSECURE;CLIENTLOG_EVENTS_TLS_INSECURE` | Whether to verify the server TLS certificates. | | -| | `OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;CLIENTLOG_EVENTS_TLS_ROOT_CA_CERTIFICATE` | The root CA certificate used to validate the server's TLS certificate. If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false. | | -| | `OC_EVENTS_ENABLE_TLS;CLIENTLOG_EVENTS_ENABLE_TLS` | Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.. | | -| | `OC_EVENTS_AUTH_USERNAME;CLIENTLOG_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.. | | -| | `OC_EVENTS_AUTH_PASSWORD;CLIENTLOG_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.. | | -| | `OC_JWT_SECRET;CLIENTLOG_JWT_SECRET` | The secret to mint and validate jwt tokens. | | -| | `OC_SERVICE_ACCOUNT_ID;CLIENTLOG_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;CLIENTLOG_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| services/clientlog/pkg/config/debug.go | `CLIENTLOG_DEBUG_ADDR` | Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. | | -| | `CLIENTLOG_DEBUG_TOKEN` | Token to secure the metrics endpoint. | | -| | `CLIENTLOG_DEBUG_PPROF` | Enables pprof, which can be used for profiling. | | -| | `CLIENTLOG_DEBUG_ZPAGES` | Enables zpages, which can be used for collecting and viewing in-memory traces. | | -| services/clientlog/pkg/config/log.go | `OC_LOG_LEVEL;CLIENTLOG_USERLOG_LOG_LEVEL` | The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'." | | -| | `OC_LOG_PRETTY;CLIENTLOG_USERLOG_LOG_PRETTY` | Activates pretty log output. | | -| | `OC_LOG_COLOR;CLIENTLOG_USERLOG_LOG_COLOR` | Activates colorized log output. | | -| | `OC_LOG_FILE;CLIENTLOG_USERLOG_LOG_FILE` | The path to the log file. Activates logging to this file if set. | | -| services/clientlog/pkg/config/tracing.go | `OC_TRACING_ENABLED;CLIENTLOG_TRACING_ENABLED` | Activates tracing. | | -| | `OC_TRACING_TYPE;CLIENTLOG_TRACING_TYPE` | The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` | | -| | `OC_TRACING_ENDPOINT;CLIENTLOG_TRACING_ENDPOINT` | The endpoint of the tracing agent. | | -| | `OC_TRACING_COLLECTOR;CLIENTLOG_TRACING_COLLECTOR` | 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. | | -| services/eventhistory/pkg/config/config.go | `OC_PERSISTENT_STORE_AUTH_USERNAME;EVENTHISTORY_STORE_AUTH_USERNAME` | The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_PERSISTENT_STORE_AUTH_PASSWORD;EVENTHISTORY_STORE_AUTH_PASSWORD` | The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_EVENTS_AUTH_USERNAME;EVENTHISTORY_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD;EVENTHISTORY_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| services/frontend/pkg/config/config.go | `OC_ENABLE_RESHARING` | Changing this value is NOT supported. Enables the support for resharing in the clients. | | -| | `FRONTEND_DEFAULT_LINK_PERMISSIONS` | Defines the default permissions a link is being created with. Possible values are 0 (= internal link, for instance members only) and 1 (= public link with viewer permissions). Defaults to 1. | | -| | `FRONTEND_AUTO_ACCEPT_SHARES` | Defines if shares should be auto accepted by default. Users can change this setting individually in their profile. | true | -| | `OC_CACHE_DISABLE_PERSISTENCE;FRONTEND_OCS_STAT_CACHE_DISABLE_PERSISTENCE` | Disable persistence of the cache. Only applies when using the 'nats-js-kv' store type. Defaults to false. | false | -| | `OC_CACHE_AUTH_USERNAME;FRONTEND_OCS_STAT_CACHE_AUTH_USERNAME` | The username to use for authentication. Only applies when using the 'nats-js-kv' store type. | | -| | `OC_CACHE_AUTH_PASSWORD;FRONTEND_OCS_STAT_CACHE_AUTH_PASSWORD` | The password to use for authentication. Only applies when using the 'nats-js-kv' store type. | | -| | `FRONTEND_OCS_LIST_OCM_SHARES` | Include OCM shares when listing shares. See the OCM service documentation for more details. | | -| | `OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD;FRONTEND_OCS_PUBLIC_SHARE_MUST_HAVE_PASSWORD` | Set this to true if you want to enforce passwords on all public shares. | | -| | `OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD;FRONTEND_OCS_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD` | Set this to true if you want to enforce passwords on Uploader, Editor or Contributor shares. | | -| | `FRONTEND_OCS_INCLUDE_OCM_SHAREES` | Include OCM sharees when listing sharees. | | -| | `OC_EVENTS_ENDPOINT;FRONTEND_EVENTS_ENDPOINT` | The address of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture. | | -| | `OC_EVENTS_CLUSTER;FRONTEND_EVENTS_CLUSTER` | 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. | | -| | `OC_INSECURE;FRONTEND_EVENTS_TLS_INSECURE` | Whether to verify the server TLS certificates. | | -| | `FRONTEND_EVENTS_TLS_ROOT_CA_CERTIFICATE;OCS_EVENTS_TLS_ROOT_CA_CERTIFICATE` | The root CA certificate used to validate the server's TLS certificate. If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false. | | -| | `OC_EVENTS_ENABLE_TLS;FRONTEND_EVENTS_ENABLE_TLS` | Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_USERNAME;FRONTEND_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.. | | -| | `OC_EVENTS_AUTH_PASSWORD;FRONTEND_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.. | | -| | `OC_SERVICE_ACCOUNT_ID;FRONTEND_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;FRONTEND_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| | `OC_PASSWORD_POLICY_DISABLED;FRONTEND_PASSWORD_POLICY_DISABLED` | Disable the password policy. Defaults to false if not set. | | -| | `OC_PASSWORD_POLICY_MIN_CHARACTERS;FRONTEND_PASSWORD_POLICY_MIN_CHARACTERS` | Define the minimum password length. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS;FRONTEND_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS` | Define the minimum number of lowercase characters. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS;FRONTEND_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS` | Define the minimum number of uppercase characters. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_MIN_DIGITS;FRONTEND_PASSWORD_POLICY_MIN_DIGITS` | Define the minimum number of digits. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS;FRONTEND_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS` | Define the minimum number of special characters. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST;FRONTEND_PASSWORD_POLICY_BANNED_PASSWORDS_LIST` | Path to the 'banned passwords list' file. See the documentation for more details. | | -| services/gateway/pkg/config/config.go | `OC_CACHE_DISABLE_PERSISTENCE;GATEWAY_STAT_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the stat cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false. | false | -| | `OC_CACHE_DISABLE_PERSISTENCE;GATEWAY_PROVIDER_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the provider cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false. | false | -| | `OC_CACHE_AUTH_USERNAME;GATEWAY_PROVIDER_CACHE_AUTH_USERNAME` | The username to use for authentication. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_AUTH_PASSWORD;GATEWAY_PROVIDER_CACHE_AUTH_PASSWORD` | The password to use for authentication. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_DISABLE_PERSISTENCE;GATEWAY_CREATE_HOME_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the create home cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false. | | -| | `OC_CACHE_AUTH_USERNAME;GATEWAY_CREATE_HOME_CACHE_AUTH_USERNAME` | The username to use for authentication. Only applies when store type 'nats-js-kv' is configured. | false | -| | `OC_CACHE_AUTH_PASSWORD;GATEWAY_CREATE_HOME_CACHE_AUTH_PASSWORD` | The password to use for authentication. Only applies when store type 'nats-js-kv' is configured. | | -| services/graph/pkg/config/cache.go | `OC_CACHE_DISABLE_PERSISTENCE;GRAPH_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false. | false | -| | `OC_CACHE_AUTH_USERNAME;GRAPH_CACHE_AUTH_USERNAME` | The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_AUTH_PASSWORD;GRAPH_CACHE_AUTH_PASSWORD` | The password to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | | -| services/graph/pkg/config/config.go | `GRAPH_IDENTITY_SEARCH_MIN_LENGTH` | The minimum length the search term needs to have for unprivileged users when searching for users or groups. | | -| | `OC_EVENTS_AUTH_USERNAME;GRAPH_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD;GRAPH_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_SERVICE_ACCOUNT_ID;GRAPH_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;GRAPH_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| | `OC_ENABLE_RESHARING;GRAPH_ENABLE_RESHARING` | Changing this value is NOT supported. Enables the support for resharing in the clients. | | -| services/idp/pkg/config/config.go | `IDP_LOGIN_BACKGROUND_URL` | Configure an alternative URL to the background image for the login page. | | -| services/notifications/pkg/config/config.go | `OC_DEFAULT_LANGUAGE` | The default language used by services and the WebUI. If not defined, English will be used as default. See the documentation for more details. | | -| | `OC_EVENTS_AUTH_USERNAME;NOTIFICATIONS_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD;NOTIFICATIONS_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_SERVICE_ACCOUNT_ID;NOTIFICATIONS_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;NOTIFICATIONS_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| services/ocdav/pkg/config/config.go | `OCDAV_OCM_NAMESPACE` | The human readable path prefix for the ocm shares. | | -| services/ocm/pkg/config/config.go | `SHARING_OCM_PROVIDER_AUTHORIZER_DRIVER` | Driver to be used to persist ocm invites. Supported value is only 'json'. | `json` | -| | `OCM_HTTP_ADDR` | The bind address of the HTTP service. | | -| | `OCM_HTTP_PROTOCOL` | The transport protocol of the HTTP service. | | -| | `OCM_HTTP_PREFIX` | The path prefix where OCM can be accessed (defaults to /). | | -| | `OC_SERVICE_ACCOUNT_ID;OCM_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;OCM_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| | `OC_CORS_ALLOW_ORIGINS;OCM_CORS_ALLOW_ORIGINS` | 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. See the Environment Variable Types description for more details. | | -| | `OC_CORS_ALLOW_METHODS;OCM_CORS_ALLOW_METHODS` | A list of allowed CORS methods. See following chapter for more details: *Access-Control-Allow-Methods* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods. See the Environment Variable Types description for more details. | | -| | `OC_CORS_ALLOW_HEADERS;OCM_CORS_ALLOW_HEADERS` | A list of allowed CORS headers. See following chapter for more details: *Access-Control-Allow-Headers* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers. See the Environment Variable Types description for more details. | | -| | `OC_CORS_ALLOW_CREDENTIALS;OCM_CORS_ALLOW_CREDENTIALS` | 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. | | -| | `OCM_GRPC_ADDR` | The bind address of the GRPC service. | | -| | `OCM_GRPC_PROTOCOL` | The transport protocol of the GRPC service. | | -| | `OCM_SCIENCEMESH_PREFIX` | URL path prefix for the ScienceMesh service. Note that the string must not start with '/'. | | -| | `OCM_MESH_DIRECTORY_URL ` | URL of the mesh directory service. | | -| | `OCM_OCMD_PREFIX` | URL path prefix for the OCMd service. Note that the string must not start with '/'. | | -| | `OCM_OCMD_EXPOSE_RECIPIENT_DISPLAY_NAME` | Expose the display name of OCM share recipients. | | -| | `OCM_OCM_INVITE_MANAGER_DRIVER` | Driver to be used to persist ocm invites. Supported value is only 'json'. | `json` | -| | `OCM_OCM_INVITE_MANAGER_INSECURE` | Disable TLS certificate validation for the OCM connections. Do not set this in production environments. | | -| | `OCM_OCM_INVITE_MANAGER_JSON_FILE` | Path to the JSON file where OCM invite data will be stored. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/storage. | | -| | `OCM_OCM_PROVIDER_AUTHORIZER_PROVIDERS_FILE` | Path to the JSON file where ocm invite data will be stored. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/storage. | | -| | `OCM_OCM_PROVIDER_AUTHORIZER_VERIFY_REQUEST_HOSTNAME` | Verify the hostname of the request against the hostname of the OCM provider. | | -| | `OCM_OCM_CORE_DRIVER` | Driver to be used to persist ocm shares. Supported value is only 'json'. | `json` | -| | `OCM_OCM_STORAGE_PROVIDER_INSECURE` | Disable TLS certificate validation for the OCM connections. Do not set this in production environments. | | -| | `OCM_OCM_STORAGE_PROVIDER_STORAGE_ROOT` | Directory where the ocm storage provider persists its data like tus upload info files. | | -| | `OCM_OCM_CORE_JSON_FILE` | Path to the JSON file where OCM share data will be stored. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/storage. | | -| | `OCM_OCM_SHARE_PROVIDER_DRIVER` | Driver to be used to persist ocm shares. Supported value is only 'json'. | `json` | -| | `OCM_OCM_SHARE_PROVIDER_INSECURE` | Disable TLS certificate validation for the OCM connections. Do not set this in production environments. | | -| | `OCM_WEBAPP_TEMPLATE` | Template for the webapp url. | | -| | `OCM_OCM_SHAREPROVIDER_JSON_FILE` | Path to the JSON file where OCM share data will be stored. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/storage. | | -| services/ocm/pkg/config/debug.go | `OCM_DEBUG_ADDR` | Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. | | -| | `OCM_DEBUG_TOKEN` | Token to secure the metrics endpoint. | | -| | `OCM_DEBUG_PPROF` | Enables pprof, which can be used for profiling. | | -| | `OCM_DEBUG_ZPAGES` | Enables zpages, which can be used for collecting and viewing in-memory traces. | | -| services/ocm/pkg/config/log.go | `OC_LOG_LEVEL;OCM_LOG_LEVEL` | The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'." | | -| | `OC_LOG_PRETTY;OCM_LOG_PRETTY` | Activates pretty log output. | | -| | `OC_LOG_COLOR;OCM_LOG_COLOR` | Activates colorized log output. | | -| | `OC_LOG_FILE;OCM_LOG_FILE` | The path to the log file. Activates logging to this file if set. | | -| services/ocm/pkg/config/tracing.go | `OC_TRACING_ENABLED;OCM_TRACING_ENABLED` | Activates tracing. | | -| | `OC_TRACING_TYPE;OCM_TRACING_TYPE` | The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` | | -| | `OC_TRACING_ENDPOINT;OCM_TRACING_ENDPOINT` | The endpoint of the tracing agent. | | -| | `OC_TRACING_COLLECTOR;OCM_TRACING_COLLECTOR` | 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. | | -| services/ocs/pkg/config/config.go | `OC_CACHE_STORE;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE` | The type of the signing key store. Supported values are: 'redis-sentinel' and 'nats-js-kv'. See the text description for details. | | -| | `OC_CACHE_STORE_NODES;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_NODES` | 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. | | -| | `OC_CACHE_TTL;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL` | Default time to live for signing keys. See the Environment Variable Types description for more details. | | -| | `OC_CACHE_AUTH_USERNAME;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME` | The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_AUTH_PASSWORD;OCS_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD` | The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| services/policies/pkg/config/config.go | `OC_EVENTS_AUTH_USERNAME;POLICIES_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD;POLICIES_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| services/policies/pkg/config/tracing.go | `OC_TRACING_ENABLED;POLICIES_TRACING_ENABLED` | Activates tracing. | | -| | `OC_TRACING_TYPE;POLICIES_TRACING_TYPE` | The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` | | -| | `OC_TRACING_ENDPOINT;POLICIES_TRACING_ENDPOINT` | The endpoint of the tracing agent. | | -| | `OC_TRACING_COLLECTOR;POLICIES_TRACING_COLLECTOR` | 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. | | -| services/postprocessing/pkg/config/config.go | `POSTPROCESSING_RETRY_BACKOFF_DURATION` | The base for the exponential backoff duration before retrying a failed postprocessing step. See the Environment Variable Types description for more details. | | -| | `POSTPROCESSING_MAX_RETRIES` | The maximum number of retries for a failed postprocessing step. | | -| | `OC_EVENTS_AUTH_USERNAME;POSTPROCESSING_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD;POSTPROCESSING_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_PERSISTENT_STORE_AUTH_USERNAME;POSTPROCESSING_STORE_AUTH_USERNAME` | The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_PERSISTENT_STORE_AUTH_PASSWORD;POSTPROCESSING_STORE_AUTH_PASSWORD` | The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| services/postprocessing/pkg/config/tracing.go | `OC_TRACING_ENABLED;POSTPROCESSING_TRACING_ENABLED` | Activates tracing. | | -| | `OC_TRACING_TYPE;POSTPROCESSING_TRACING_TYPE` | The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` | | -| | `OC_TRACING_ENDPOINT;POSTPROCESSING_TRACING_ENDPOINT` | The endpoint of the tracing agent. | | -| | `OC_TRACING_COLLECTOR;POSTPROCESSING_TRACING_COLLECTOR` | 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. | | -| services/proxy/pkg/config/config.go | `OC_CACHE_AUTH_USERNAME;PROXY_OIDC_USERINFO_CACHE_AUTH_USERNAME` | The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_AUTH_PASSWORD;PROXY_OIDC_USERINFO_CACHE_AUTH_PASSWORD` | The password to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_STORE;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE` | The type of the signing key store. Supported values are: 'redis-sentinel' and 'nats-js-kv'. See the text description for details. | | -| | `OC_CACHE_STORE_NODES;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_NODES` | 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. | | -| | `OC_CACHE_TTL;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_TTL` | Default time to live for signing keys. See the Environment Variable Types description for more details. | | -| | `OC_CACHE_DISABLE_PERSISTENCE;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_DISABLE_PERSISTENCE` | Disables persistence of the store. Only applies when store type 'nats-js-kv' is configured. Defaults to true. | | -| | `OC_CACHE_AUTH_USERNAME;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_USERNAME` | The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_AUTH_PASSWORD;PROXY_PRESIGNEDURL_SIGNING_KEYS_STORE_AUTH_PASSWORD` | The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_SERVICE_ACCOUNT_ID;PROXY_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;PROXY_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| services/search/pkg/config/config.go | `OC_SERVICE_ACCOUNT_ID;SEARCH_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;SEARCH_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| services/search/pkg/config/content.go | `SEARCH_EXTRACTOR_TIKA_CLEAN_STOP_WORDS` | Defines if stop words should be cleaned or not. See the documentation for more details. | | -| services/search/pkg/config/search.go | `OC_EVENTS_AUTH_USERNAME;SEARCH_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD;SEARCH_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| services/settings/pkg/config/config.go | `SETTINGS_SERVICE_ACCOUNT_IDS;OC_SERVICE_ACCOUNT_ID` | The list of all service account IDs. These will be assigned the hidden 'service-account' role. Note: When using 'OC_SERVICE_ACCOUNT_ID' this will contain only one value while 'SETTINGS_SERVICE_ACCOUNT_IDS' can have multiple. See the 'auth-service' service description for more details about service accounts. | | -| | `OC_DEFAULT_LANGUAGE` | The default language used by services and the WebUI. If not defined, English will be used as default. See the documentation for more details. | | -| | `OC_CACHE_DISABLE_PERSISTENCE;SETTINGS_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false. | | -| | `OC_CACHE_AUTH_USERNAME;SETTINGS_CACHE_AUTH_USERNAME` | The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_AUTH_PASSWORD;SETTINGS_CACHE_AUTH_PASSWORD` | The password to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_EVENTS_AUTH_USERNAME;SETTINGS_EVENTS_AUTH_USERNAME` | The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_EVENTS_AUTH_PASSWORD;SETTINGS_EVENTS_AUTH_PASSWORD` | The password to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | | -| services/sharing/pkg/config/config.go | `OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD;SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD` | Set this to true if you want to enforce passwords on Uploader, Editor or Contributor shares. If not using the global OC_SHARING_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD, you must define the FRONTEND_OCS_PUBLIC_WRITEABLE_SHARE_MUST_HAVE_PASSWORD in the frontend service. | | -| | `OC_SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD;SHARING_PUBLIC_SHARE_MUST_HAVE_PASSWORD` | Set this to true if you want to enforce passwords on all public shares. | | -| | `OC_EVENTS_AUTH_USERNAME;SHARING_EVENTS_AUTH_USERNAME` | Username for the events broker. | | -| | `OC_EVENTS_AUTH_PASSWORD;SHARING_EVENTS_AUTH_PASSWORD` | Password for the events broker. | | -| | `OC_PASSWORD_POLICY_DISABLED;SHARING_PASSWORD_POLICY_DISABLED` | Disable the password policy. Defaults to false if not set. | | -| | `OC_PASSWORD_POLICY_MIN_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_CHARACTERS` | Define the minimum password length. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_LOWERCASE_CHARACTERS` | Define the minimum number of lowercase characters. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_UPPERCASE_CHARACTERS` | Define the minimum number of uppercase characters. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_MIN_DIGITS;SHARING_PASSWORD_POLICY_MIN_DIGITS` | Define the minimum number of digits. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_SPECIAL_CHARACTERS` | Define the minimum number of special characters. Defaults to 0 if not set. | 0 | -| | `OC_PASSWORD_POLICY_BANNED_PASSWORDS_LIST;SHARING_PASSWORD_POLICY_BANNED_PASSWORDS_LIST` | Path to the 'banned passwords list' file. See the documentation for more details. | | -| services/sse/pkg/config/config.go | `OC_LOG_LEVEL;SSE_LOG_LEVEL` | The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'." | | -| | `OC_LOG_PRETTY;SSE_LOG_PRETTY` | Activates pretty log output. | | -| | `OC_LOG_COLOR;SSE_LOG_COLOR` | Activates colorized log output. | | -| | `OC_LOG_FILE;SSE_LOG_FILE` | The path to the log file. Activates logging to this file if set. | | -| | `SSE_DEBUG_ADDR` | Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. | | -| | `SSE_DEBUG_TOKEN` | Token to secure the metrics endpoint. | | -| | `SSE_DEBUG_PPROF` | Enables pprof, which can be used for profiling. | | -| | `SSE_DEBUG_ZPAGES` | Enables zpages, which can be used for collecting and viewing in-memory traces. | | -| | `OC_EVENTS_ENDPOINT;SSE_EVENTS_ENDPOINT` | The address of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture. | | -| | `OC_EVENTS_CLUSTER;SSE_EVENTS_CLUSTER` | 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. | | -| | `OC_INSECURE;SSE_EVENTS_TLS_INSECURE` | Whether to verify the server TLS certificates. | | -| | `OC_EVENTS_TLS_ROOT_CA_CERTIFICATE;SSE_EVENTS_TLS_ROOT_CA_CERTIFICATE` | The root CA certificate used to validate the server's TLS certificate. If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false. | | -| | `OC_EVENTS_ENABLE_TLS;SSE_EVENTS_ENABLE_TLS` | Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.. | | -| | `OC_EVENTS_AUTH_USERNAME;SSE_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.. | | -| | `OC_EVENTS_AUTH_PASSWORD;SSE_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.. | | -| | `OC_CORS_ALLOW_ORIGINS;SSE_CORS_ALLOW_ORIGINS` | 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. See the Environment Variable Types description for more details. | | -| | `OC_CORS_ALLOW_METHODS;SSE_CORS_ALLOW_METHODS` | A list of allowed CORS methods. See following chapter for more details: *Access-Control-Allow-Methods* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods. See the Environment Variable Types description for more details. | | -| | `OC_CORS_ALLOW_HEADERS;SSE_CORS_ALLOW_HEADERS` | A list of allowed CORS headers. See following chapter for more details: *Access-Control-Allow-Headers* at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers. See the Environment Variable Types description for more details. | | -| | `OC_CORS_ALLOW_CREDENTIALS;SSE_CORS_ALLOW_CREDENTIALS` | 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. | | -| | `SSE_HTTP_ADDR` | The bind address of the HTTP service. | | -| | `SSE_HTTP_ROOT` | The root path of the HTTP service. | | -| | `OC_JWT_SECRET;SSE_JWT_SECRET` | The secret to mint and validate jwt tokens. | | -| services/sse/pkg/config/tracing.go | `OC_TRACING_ENABLED;SSE_TRACING_ENABLED` | Activates tracing. | | -| | `OC_TRACING_TYPE;SSE_TRACING_TYPE` | The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now."` | | -| | `OC_TRACING_ENDPOINT;SSE_TRACING_ENDPOINT` | The endpoint of the tracing agent. | | -| | `OC_TRACING_COLLECTOR;SSE_TRACING_COLLECTOR` | 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. | | -| services/storage-system/pkg/config/config.go | `OC_CACHE_DISABLE_PERSISTENCE;STORAGE_SYSTEM_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false. | false | -| | `OC_CACHE_AUTH_USERNAME;STORAGE_SYSTEM_CACHE_AUTH_USERNAME` | Username for the configured store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_AUTH_PASSWORD;STORAGE_SYSTEM_CACHE_AUTH_PASSWORD` | TPassword for the configured store. Only applies when store type 'nats-js-kv' is configured. | | -| services/storage-users/pkg/config/config.go | `OC_GATEWAY_GRPC_ADDR;STORAGE_USERS_GATEWAY_GRPC_ADDR` | The bind address of the gateway GRPC address. | | -| | `OC_MACHINE_AUTH_API_KEY;STORAGE_USERS_MACHINE_AUTH_API_KEY` | Machine auth API key used to validate internal requests necessary for the access to resources from other services. | | -| | `STORAGE_USERS_CLI_MAX_ATTEMPTS_RENAME_FILE` | The maximum number of attempts to rename a file when a user restores a file to an existing destination with the same name. The minimum value is 100. | | -| | `OC_EVENTS_AUTH_USERNAME;STORAGE_USERS_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD;STORAGE_USERS_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_CACHE_DISABLE_PERSISTENCE;STORAGE_USERS_STAT_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the stat cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false. | false | -| | `OC_CACHE_DISABLE_PERSISTENCE;STORAGE_USERS_FILEMETADATA_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the file metadata cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false. | false | -| | `OC_CACHE_AUTH_USERNAME;STORAGE_USERS_FILEMETADATA_CACHE_AUTH_USERNAME` | The username to authenticate with the cache store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_AUTH_PASSWORD;STORAGE_USERS_FILEMETADATA_CACHE_AUTH_PASSWORD` | The password to authenticate with the cache store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_CACHE_DISABLE_PERSISTENCE;STORAGE_USERS_ID_CACHE_DISABLE_PERSISTENCE` | Disables persistence of the id cache. Only applies when store type 'nats-js-kv' is configured. Defaults to false. | false | -| | `OC_CACHE_AUTH_USERNAME;STORAGE_USERS_ID_CACHE_AUTH_USERNAME` | The username to authenticate with the cache store. Only applies when store type 'nats-js-kv' is configured | | -| | `OC_CACHE_AUTH_PASSWORD;STORAGE_USERS_ID_CACHE_AUTH_PASSWORD` | The password to authenticate with the cache store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_SERVICE_ACCOUNT_ID;STORAGE_USERS_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;STORAGE_USERS_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| services/userlog/pkg/config/config.go | `OC_DEFAULT_LANGUAGE` | The default language used by services and the WebUI. If not defined, English will be used as default. See the documentation for more details. | | -| | `OC_PERSISTENT_STORE_AUTH_USERNAME;USERLOG_STORE_AUTH_USERNAME` | The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_PERSISTENT_STORE_AUTH_PASSWORD;USERLOG_STORE_AUTH_PASSWORD` | The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. | | -| | `OC_EVENTS_AUTH_USERNAME;USERLOG_EVENTS_AUTH_USERNAME` | The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_EVENTS_AUTH_PASSWORD;USERLOG_EVENTS_AUTH_PASSWORD` | The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. | | -| | `OC_SERVICE_ACCOUNT_ID;USERLOG_SERVICE_ACCOUNT_ID` | The ID of the service account the service should use. See the 'auth-service' service description for more details. | | -| | `OC_SERVICE_ACCOUNT_SECRET;USERLOG_SERVICE_ACCOUNT_SECRET` | The service account secret. | | -| services/web/pkg/config/options.go | `WEB_OPTION_LOGIN_URL` | Specifies the target URL to the login page. This is helpful when an external IdP is used. This option is disabled by default. Example URL like: https://www.myidp.com/login. | | | -| | `WEB_OPTION_DISABLED_EXTENSIONS` | A list to disable specific Web extensions identified by their ID. The ID can e.g. be taken from the 'index.ts' file of the web extension. Example: 'com.github.owncloud.web.files.search,com.github.owncloud.web.files.print'. See the Environment Variable Types description for more details. | | -| | `WEB_OPTION_USER_LIST_REQUIRES_FILTER` | Defines whether one or more filters must be set in order to list users in the Web admin settings. Set this option to 'true' if running in an environment with a lot of users and listing all users could slow down performance. Defaults to 'false'. | false | -| | `WEB_OPTION_EMBED_ENABLED` | Defines whether Web should be running in 'embed' mode. Setting this to 'true' will enable a stripped down version of Web with reduced functionality used to integrate Web into other applications like via iFrame. Setting it to 'false' or not setting it (default) will run Web as usual with all functionality enabled. See the text description for more details. | | -| | `WEB_OPTION_EMBED_TARGET` | Defines how Web is being integrated when running in 'embed' mode. Currently, the only supported options are '' (empty) and 'location'. With '' which is the default, Web will run regular as defined via the 'embed.enabled' config option. With 'location', Web will run embedded as location picker. Resource selection will be disabled and the selected resources array always includes the current folder as the only item. See the text description for more details. | | -| | `WEB_OPTION_EMBED_MESSAGES_ORIGIN` | Defines a URL under which Web can be integrated via iFrame in 'embed' mode. Note that setting this is mandatory when running Web in 'embed' mode. Use '*' as value to allow running the iFrame under any URL, although this is not recommended for security reasons. See the text description for more details. | | -| | `WEB_OPTION_EMBED_DELEGATE_AUTHENTICATION` | Defines whether Web should require authentication to be done by the parent application when running in 'embed' mode. If set to 'true' Web will not try to authenticate the user on its own but will require an access token coming from the parent application. Defaults to being unset. | | -| | `WEB_OPTION_EMBED_DELEGATE_AUTHENTICATION_ORIGIN` | Defines the host to validate the message event origin against when running Web in 'embed' mode with delegated authentication. Defaults to event message origin validation being omitted, which is only recommended for development setups. | | -| | `WEB_OPTION_CONCURRENT_REQUESTS_RESOURCE_BATCH_ACTIONS` | Defines the maximum number of concurrent requests per file/folder/space batch action. Defaults to 4. | | -| | `WEB_OPTION_CONCURRENT_REQUESTS_SSE` | Defines the maximum number of concurrent requests in SSE event handlers. Defaults to 4. | | -| | `WEB_OPTION_CONCURRENT_REQUESTS_SHARES_CREATE` | Defines the maximum number of concurrent requests per sharing invite batch. Defaults to 4. | | -| | `WEB_OPTION_CONCURRENT_REQUESTS_SHARES_LIST` | Defines the maximum number of concurrent requests when loading individual share information inside listings. Defaults to 2. | | diff --git a/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-removed.adoc b/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-removed.adoc deleted file mode 100644 index 47de4f3904..0000000000 --- a/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-removed.adoc +++ /dev/null @@ -1,55 +0,0 @@ -// Removed Variables between oCIS 4.0.0 and oCIS 5.0.0 -// commenting the headline to make it better includable - -// table created based on the .md file per 2024.02.12 -// the table should be recreated/updated based on the final .md file - -[width="100%",cols="~,~,~,~",options="header"] -|=== -| Service| Variable| Replacement| Description - -| xref:{s-path}/auth-basic.adoc[auth-basic] -| `LDAP_BIND_PASSWORD` -| `OC_LDAP_BIND_PASSWORD` -| Password to use for authenticating the 'bind_dn'. - -| xref:{s-path}/graph.adoc[graph] -| `LDAP_BIND_PASSWORD` -| `OC_LDAP_BIND_PASSWORD` -| Password to use for authenticating the 'bind_dn'. - -| xref:{s-path}/groups.adoc[groups] -| `LDAP_BIND_PASSWORD` -| `OC_LDAP_BIND_PASSWORD` -| Password to use for authenticating the 'bind_dn'. - -| xref:{s-path}/idp.adoc[idp] -| `LDAP_BIND_PASSWORD` -| `OC_LDAP_BIND_PASSWORD` -| Password to use for authenticating the 'bind_dn'. - -| xref:{s-path}/sharing.adoc[sharing] -| `SHARING_EVENTS_TLS_ROOT_CA_CERT` -| `SHARING_EVENTS_TLS_ROOT_CA_CERTIFICATE` -| The root CA certificate used to validate the server's TLS certificate. If provided SHARING_EVENTS_TLS_INSECURE will be seen as false. - -| xref:{s-path}/users.adoc[users] -| `LDAP_BIND_PASSWORD` -| `OC_LDAP_BIND_PASSWORD` -| Password to use for authenticating the 'bind_dn'. - -| -| `LDAP_USER_SCHEMA_ID_IS_OCTETSTRING` -| `OC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING` -| Set this to true if the defined 'ID' attribute for users is of the 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute of Active Directory for the user ID's. - -| xref:{s-path}/web.adoc[web] -| `WEB_OPTION_IMPRINT_URL` -| To be configured via the `theme.json` file -| Specifies the target URL for the imprint link valid for the ocis instance in the account menu. - -| -| `WEB_OPTION_PRIVACY_URL` -| To be configured via the `theme.json` file -| Specifies the target URL for the privacy link valid for the ocis instance in the account menu. -|=== diff --git a/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-removed.md b/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-removed.md deleted file mode 100644 index d877a37b7b..0000000000 --- a/docs/services/general-info/env-var-deltas/4.0.0-5.0.0-removed.md +++ /dev/null @@ -1,13 +0,0 @@ -# Removed Variables between oCIS 4.0.0 and oCIS 5.0.0 - -| File | Variable | Replacement | Description | -|------------------------------------------|--------------------------------------|-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| services/auth-basic/pkg/config/config.go | `LDAP_BIND_PASSWORD` | `OC_LDAP_BIND_PASSWORD` | Password to use for authenticating the 'bind_dn'. | -| services/graph/pkg/config/config.go | `LDAP_BIND_PASSWORD` | `OC_LDAP_BIND_PASSWORD` | Password to use for authenticating the 'bind_dn'. | -| services/groups/pkg/config/config.go | `LDAP_BIND_PASSWORD` | `OC_LDAP_BIND_PASSWORD` | Password to use for authenticating the 'bind_dn'. | -| services/idp/pkg/config/config.go | `LDAP_BIND_PASSWORD` | `OC_LDAP_BIND_PASSWORD` | Password to use for authenticating the 'bind_dn'. | -| services/sharing/pkg/config/config.go | `SHARING_EVENTS_TLS_ROOT_CA_CERT` | `SHARING_EVENTS_TLS_ROOT_CA_CERTIFICATE` | The root CA certificate used to validate the server's TLS certificate. If provided SHARING_EVENTS_TLS_INSECURE will be seen as false. | -| services/users/pkg/config/config.go | `LDAP_BIND_PASSWORD` | `OC_LDAP_BIND_PASSWORD` | Password to use for authenticating the 'bind_dn'. | -| | `LDAP_USER_SCHEMA_ID_IS_OCTETSTRING` | `OC_LDAP_USER_SCHEMA_ID_IS_OCTETSTRING` | Set this to true if the defined 'ID' attribute for users is of the 'OCTETSTRING' syntax. This is e.g. required when using the 'objectGUID' attribute of Active Directory for the user ID's. | -| services/web/pkg/config/options.go | `WEB_OPTION_IMPRINT_URL` | To be configured via the `theme.json` file | Specifies the target URL for the imprint link valid for the ocis instance in the account menu. | -| | `WEB_OPTION_PRIVACY_URL` | To be configured via the `theme.json` file | Specifies the target URL for the privacy link valid for the ocis instance in the account menu. | diff --git a/docs/services/general-info/env-var-deltas/5.0.0-7.0.0-added.adoc b/docs/services/general-info/env-var-deltas/5.0.0-7.0.0-added.adoc deleted file mode 100644 index 1c107483a1..0000000000 --- a/docs/services/general-info/env-var-deltas/5.0.0-7.0.0-added.adoc +++ /dev/null @@ -1,637 +0,0 @@ -// # Added Variables between oCIS 5.0.0 and oCIS 7.0.0 -// commenting the headline to make it better includable - -// table created per 2024.12.02 -// the table should be recreated/updated on source () changes - -[width="100%",cols="~,~,~,~",options="header"] -|=== -| Service | Variable | Description | Default - -| xref:deployment/services/env-vars-special-scope.adoc[Special Scope Envvars] -| OC_ASSET_THEMES_PATH -| Serve ownCloud themes from a path on the filesystem instead of the builtin assets. If not defined, the root directory derives from $OC_BASE_DATA_PATH/web/assets/themes -| /var/lib/ocis/web/assets/themes - -| -| OC_DISABLE_VERSIONING -| Disables versioning of files. When set to true, new uploads with the same filename will overwrite existing files instead of creating a new version. -| false - -| -| OC_SHOW_USER_EMAIL_IN_RESULTS -| Include user email addresses in responses. If absent or set to false emails will be omitted from results. Please note that admin users can always see all email addresses. -| false - -| -| OC_TRANSLATION_PATH -| (optional) Set this to a path with custom translations to overwrite the builtin translations. Note that file and folder naming rules apply, see the documentation for more details. -| - -| -| OC_WOPI_DISABLE_CHAT -| Disable chat in the office web frontend. This feature applies to OnlyOffice and Microsoft. -| false - -| xref:{s-path}/activitylog.adoc[Activitylog] -| ACTIVITYLOG_TRANSLATION_PATH -| (optional) Set this to a path with custom translations to overwrite the builtin translations. Note that file and folder naming rules apply, see the documentation for more details. -| - -| xref:{s-path}/antivirus.adoc[Antivirus] -| ANTIVIRUS_WORKERS -| The number of concurrent go routines that fetch events from the event queue. -| 10 - -| xref:{s-path}/auth-app.adoc[Auth-App] -| AUTH_APP_DEBUG_ADDR -| Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. -| 127.0.0.1:9245 - -| -| AUTH_APP_DEBUG_PPROF -| Enables pprof, which can be used for profiling. -| false - -| -| AUTH_APP_DEBUG_TOKEN -| Token to secure the metrics endpoint. -| - -| -| AUTH_APP_DEBUG_ZPAGES -| Enables zpages, which can be used for collecting and viewing traces in-memory. -| false - -| -| AUTH_APP_ENABLE_IMPERSONATION -| Allows admins to create app tokens for other users. Used for migration. Do NOT use in productive deployments. -| false - -| -| AUTH_APP_GRPC_ADDR -| The bind address of the GRPC service. -| 127.0.0.1:9246 - -| -| AUTH_APP_GRPC_PROTOCOL -| The transport protocol of the GRPC service. -| tcp - -| -| AUTH_APP_JWT_SECRET -| The secret to mint and validate jwt tokens. -| - -| -| AUTH_APP_LOG_COLOR -| Activates colorized log output. -| false - -| -| AUTH_APP_LOG_FILE -| The path to the log file. Activates logging to this file if set. -| - -| -| AUTH_APP_LOG_LEVEL -| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'. -| - -| -| AUTH_APP_LOG_PRETTY -| Activates pretty log output. -| false - -| -| AUTH_APP_MACHINE_AUTH_API_KEY -| The machine auth API key used to validate internal requests necessary to access resources from other services. -| - -| -| AUTH_APP_SKIP_USER_GROUPS_IN_TOKEN -| Disables the encoding of the user's group memberships in the access token. This reduces the token size, especially when users are members of a large number of groups. -| false - -| -| AUTH_APP_TRACING_COLLECTOR -| 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. -| - -| -| AUTH_APP_TRACING_ENABLED -| Activates tracing. -| false - -| -| AUTH_APP_TRACING_ENDPOINT -| The endpoint of the tracing agent. -| - -| -| AUTH_APP_TRACING_TYPE -| The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now. -| - -| xref:{s-path}/collaboration.adoc[Collaboration] -| COLLABORATION_APP_ADDR -| The URL where the WOPI app is located, such as https://127.0.0.1:8080. -| https://127.0.0.1:9980 - -| -| COLLABORATION_APP_DESCRIPTION -| App description -| Open office documents with Collabora - -| -| COLLABORATION_APP_ICON -| Icon for the app -| image-edit - -| -| COLLABORATION_APP_INSECURE -| Skip TLS certificate verification when connecting to the WOPI app -| false - -| -| COLLABORATION_APP_LICENSE_CHECK_ENABLE -| Enable license checking to edit files. Needs to be enabled when using Microsoft365 with the business flow. -| false - -| -| COLLABORATION_APP_NAME -| The name of the app which is shown to the user. You can chose freely but you are limited to a single word without special characters or whitespaces. We recommend to use pascalCase like 'CollaboraOnline'. -| Collabora - -| -| COLLABORATION_APP_PRODUCT -| The WebOffice app, either Collabora, OnlyOffice, Microsoft365 or MicrosoftOfficeOnline. -| Collabora - -| -| COLLABORATION_APP_PROOF_DISABLE -| Disable the proof keys verification -| false - -| -| COLLABORATION_APP_PROOF_DURATION -| Duration for the proof keys to be cached in memory, using time.ParseDuration format. If the duration can't be parsed, we'll use the default 12h as duration -| 12h - -| -| COLLABORATION_CS3API_DATAGATEWAY_INSECURE -| Connect to the CS3API data gateway insecurely. -| false - -| -| COLLABORATION_DEBUG_ADDR -| Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. -| 127.0.0.1:9304 - -| -| COLLABORATION_DEBUG_PPROF -| Enables pprof, which can be used for profiling. -| false - -| -| COLLABORATION_DEBUG_TOKEN -| Token to secure the metrics endpoint. -| - -| -| COLLABORATION_DEBUG_ZPAGES -| Enables zpages, which can be used for collecting and viewing in-memory traces. -| false - -| -| COLLABORATION_GRPC_ADDR -| The bind address of the GRPC service. -| 127.0.0.1:9301 - -| -| COLLABORATION_GRPC_PROTOCOL -| The transport protocol of the GRPC service. -| tcp - -| -| COLLABORATION_HTTP_ADDR -| The bind address of the HTTP service. -| 127.0.0.1:9300 - -| -| COLLABORATION_LOG_COLOR -| Activates colorized log output. -| false - -| -| COLLABORATION_LOG_FILE -| The path to the log file. Activates logging to this file if set. -| - -| -| COLLABORATION_LOG_LEVEL -| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'. -| - -| -| COLLABORATION_LOG_PRETTY -| Activates pretty log output. -| false - -| -| COLLABORATION_STORE -| The type of the store. Supported values are: 'memory', 'nats-js-kv', 'redis-sentinel', 'noop'. See the text description for details. -| nats-js-kv - -| -| COLLABORATION_STORE_AUTH_PASSWORD -| The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. -| - -| -| COLLABORATION_STORE_AUTH_USERNAME -| The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. -| - -| -| COLLABORATION_STORE_DATABASE -| The database name the configured store should use. -| collaboration - -| -| COLLABORATION_STORE_NODES -| A list of nodes to access the configured store. This has no effect when 'memory' store is 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. -| [127.0.0.1:9233] - -| -| COLLABORATION_STORE_TABLE -| The database table the store should use. -| - -| -| COLLABORATION_STORE_TTL -| Time to live for events in the store. Defaults to '30m' (30 minutes). See the Environment Variable Types description for more details. -| 30m0s - -| -| COLLABORATION_TRACING_COLLECTOR -| 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. -| - -| -| COLLABORATION_TRACING_ENABLED -| Activates tracing. -| false - -| -| COLLABORATION_TRACING_ENDPOINT -| The endpoint of the tracing agent. -| - -| -| COLLABORATION_TRACING_TYPE -| The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now. -| - -| -| COLLABORATION_WOPI_DISABLE_CHAT -| Disable chat in the office web frontend. This feature applies to OnlyOffice and Microsoft. -| false - -| -| COLLABORATION_WOPI_PROXY_SECRET -| Optional, the secret to authenticate against the ownCloud Office365 WOPI proxy. This secret can be obtained from ownCloud via the office365 proxy subscription. -| - -| -| COLLABORATION_WOPI_PROXY_URL -| The URL to the ownCloud Office365 WOPI proxy. Optional. To use this feature, you need an office365 proxy subscription. If you become part of the Microsoft CSP program (https://learn.microsoft.com/en-us/partner-center/enroll/csp-overview), you can use WebOffice without a proxy. -| - -| -| COLLABORATION_WOPI_SECRET -| Used to mint and verify WOPI JWT tokens and encrypt and decrypt the REVA JWT token embedded in the WOPI JWT token. -| - -| -| COLLABORATION_WOPI_SHORTTOKENS -| Use short access tokens for WOPI access. This is useful for office packages, like Microsoft Office Online, which have URL length restrictions. If enabled, a persistent store must be configured. -| false - -| -| COLLABORATION_WOPI_SRC -| The WOPI source base URL containing schema, host and port. Set this to the schema and domain where the collaboration service is reachable for the wopi app, such as https://office.owncloud.test. -| https://localhost:9300 - -| xref:{s-path}/frontend.adoc[Frontend] -| FRONTEND_APP_HANDLER_SECURE_VIEW_APP_ADDR -| Service name or address of the app provider to use for secure view. Should match the service name or address of the registered CS3 app provider. -| com.owncloud.api.collaboration - -| -| FRONTEND_MAX_CONCURRENCY -| Maximum number of concurrent go-routines. Higher values can potentially get work done faster but will also cause more load on the system. Values of 0 or below will be ignored and the default value will be used. -| 1 - -| xref:{s-path}/gateway.adoc[Gateway] -| GATEWAY_APP_REGISTRY_ENDPOINT -| The endpoint of the app-registry service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.app-registry - -| -| GATEWAY_AUTH_APP_ENDPOINT -| The endpoint of the auth-app service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.auth-app - -| -| GATEWAY_AUTH_BASIC_ENDPOINT -| The endpoint of the auth-basic service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.auth-basic - -| -| GATEWAY_AUTH_BEARER_ENDPOINT -| The endpoint of the auth-bearer service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| - -| -| GATEWAY_AUTH_MACHINE_ENDPOINT -| The endpoint of the auth-machine service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.auth-machine - -| -| GATEWAY_AUTH_SERVICE_ENDPOINT -| The endpoint of the auth-service service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.auth-service - -| -| GATEWAY_GROUPS_ENDPOINT -| The endpoint of the groups service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.groups - -| -| GATEWAY_OCM_ENDPOINT -| The endpoint of the ocm service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.ocm - -| -| GATEWAY_PERMISSIONS_ENDPOINT -| The endpoint of the permissions service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.settings - -| -| GATEWAY_SHARING_ENDPOINT -| The endpoint of the shares service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.sharing - -| -| GATEWAY_STORAGE_PUBLIC_LINK_ENDPOINT -| The endpoint of the storage-publiclink service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.storage-publiclink - -| -| GATEWAY_STORAGE_SHARES_ENDPOINT -| The endpoint of the storage-shares service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.storage-shares - -| -| GATEWAY_STORAGE_USERS_ENDPOINT -| The endpoint of the storage-users service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.storage-users - -| -| GATEWAY_USERS_ENDPOINT -| The endpoint of the users service. Can take a service name or a gRPC URI with the dns, kubernetes or unix protocol. -| com.owncloud.api.users - -| xref:{s-path}/graph.adoc[Graph] -| GRAPH_AVAILABLE_ROLES -| A comma separated list of roles that are available for assignment. -| [b1e2218d-eef8-4d4c-b82d-0f1a1b48f3b5 a8d5fe5e-96e3-418d-825b-534dbdf22b99 fb6c3e19-e378-47e5-b277-9732f9de6e21 58c63c02-1d89-4572-916a-870abc5a1b7d 2d00ce52-1fc2-4dbc-8b95-a73b73395f5a 1c996275-f1c9-4e71-abdf-a42f6495e960 312c0871-5ef7-4b3a-85b6-0e4074c64049] - -| -| GRAPH_MAX_CONCURRENCY -| The maximum number of concurrent requests the service will handle. -| 20 - -| -| GRAPH_TRANSLATION_PATH -| (optional) Set this to a path with custom translations to overwrite the builtin translations. Note that file and folder naming rules apply, see the documentation for more details. -| - -| xref:{s-path}/ocm.adoc[OCM] -| OCM_OCM_INVITE_MANAGER_TIMEOUT -| Timeout specifies a time limit for requests made to OCM endpoints. -| 30s - -| -| OCM_OCM_INVITE_MANAGER_TOKEN_EXPIRATION -| Expiry duration for invite tokens. -| 24h0m0s - -| -| OCM_OCM_STORAGE_DATA_SERVER_URL -| URL of the data server, needs to be reachable by the data gateway provided by the frontend service or the user if directly exposed. -| http://localhost:9280/data - -| xref:{s-path}/postprocessing.adoc[Postprocessing] -| POSTPROCESSING_WORKERS -| The number of concurrent go routines that fetch events from the event queue. -| 3 - -| xref:{s-path}/proxy.adoc[Proxy] -| PROXY_AUTOPROVISION_CLAIM_DISPLAYNAME -| The name of the OIDC claim that holds the display name. -| name - -| -| PROXY_AUTOPROVISION_CLAIM_EMAIL -| The name of the OIDC claim that holds the email. -| email - -| -| PROXY_AUTOPROVISION_CLAIM_GROUPS -| The name of the OIDC claim that holds the groups. -| groups - -| -| PROXY_AUTOPROVISION_CLAIM_USERNAME -| The name of the OIDC claim that holds the username. -| preferred_username - -| -| PROXY_CSP_CONFIG_FILE_LOCATION -| The location of the CSP configuration file. -| - -| -| PROXY_ENABLE_APP_AUTH -| Allow app authentication. This can be used to authenticate 3rd party applications. Note that auth-app service must be running for this feature to work. -| false - -| -| PROXY_EVENTS_AUTH_PASSWORD -| The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. -| - -| -| PROXY_EVENTS_AUTH_USERNAME -| The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services. -| - -| -| PROXY_EVENTS_CLUSTER -| The clusterID of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture. -| ocis-cluster - -| -| PROXY_EVENTS_ENABLE_TLS -| Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services. -| false - -| -| PROXY_EVENTS_ENDPOINT -| The address of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture. Set to a empty string to disable emitting events. -| 127.0.0.1:9233 - -| -| PROXY_EVENTS_TLS_INSECURE -| Whether to verify the server TLS certificates. -| false - -| -| PROXY_EVENTS_TLS_ROOT_CA_CERTIFICATE -| The root CA certificate used to validate the server's TLS certificate. If provided PROXY_EVENTS_TLS_INSECURE will be seen as false. -| - -| xref:{s-path}/sharing.adoc[Sharing] -| SHARING_USER_JSONCS3_MAX_CONCURRENCY -| Maximum number of concurrent go-routines. Higher values can potentially get work done faster but will also cause more load on the system. Values of 0 or below will be ignored and the default value will be used. -| 1 - -| xref:{s-path}/sse.adoc[SSE] -| SSE_KEEPALIVE_INTERVAL -| To prevent intermediate proxies from closing the SSE connection, send periodic SSE comments to keep it open. -| 0s - -| xref:{s-path}/storage-users.adoc[Storage-Users] -| STORAGE_USERS_OCIS_GENERAL_SPACE_PATH_TEMPLATE -| Template string to construct the paths of the projects space roots. -| - -| -| STORAGE_USERS_OCIS_MAX_CONCURRENCY -| Maximum number of concurrent go-routines. Higher values can potentially get work done faster but will also cause more load on the system. Values of 0 or below will be ignored and the default value will be used. -| 1 - -| -| STORAGE_USERS_OCIS_PERSONAL_SPACE_PATH_TEMPLATE -| Template string to construct the paths of the personal space roots. -| - -| -| STORAGE_USERS_PERMISSION_ENDPOINT -| Endpoint of the permissions service. The endpoints can differ for 'ocis', 'posix' and 's3ng'. -| com.owncloud.api.settings - -| -| STORAGE_USERS_POSIX_GENERAL_SPACE_PATH_TEMPLATE -| Template string to construct the paths of the projects space roots. -| projects/{{.SpaceId}} - -| -| STORAGE_USERS_POSIX_PERMISSIONS_ENDPOINT -| Endpoint of the permissions service. The endpoints can differ for 'ocis', 'posix' and 's3ng'. -| com.owncloud.api.settings - -| -| STORAGE_USERS_POSIX_PERSONAL_SPACE_PATH_TEMPLATE -| Template string to construct the paths of the personal space roots. -| users/{{.User.Username}} - -| -| STORAGE_USERS_POSIX_ROOT -| The directory where the filesystem storage will store its data. If not defined, the root directory derives from $OC_BASE_DATA_PATH/storage/users. -| /var/lib/ocis/storage/users - -| -| STORAGE_USERS_POSIX_SCAN_DEBOUNCE_DELAY -| The time in milliseconds to wait before scanning the filesystem for changes after a change has been detected. -| 1s - -| -| STORAGE_USERS_POSIX_USE_SPACE_GROUPS -| Use space groups to manage permissions on spaces. -| false - -| -| STORAGE_USERS_POSIX_WATCH_FOLDER_KAFKA_BROKERS -| Comma-separated list of kafka brokers to read the watchfolder events from. -| - -| -| STORAGE_USERS_POSIX_WATCH_PATH -| Path to the watch directory/file. Only applies to the 'gpfsfileauditlogging' and 'inotifywait' watcher, in which case it is the path of the file audit log file/base directory to watch. -| - -| -| STORAGE_USERS_POSIX_WATCH_TYPE -| Type of the watcher to use for getting notified about changes to the filesystem. Currently available options are 'inotifywait' (default), 'gpfswatchfolder' and 'gpfsfileauditlogging'. -| - -| -| STORAGE_USERS_S3NG_GENERAL_SPACE_PATH_TEMPLATE -| Template string to construct the paths of the projects space roots. -| - -| -| STORAGE_USERS_S3NG_PERSONAL_SPACE_PATH_TEMPLATE -| Template string to construct the paths of the personal space roots. -| - -| -| STORAGE_USERS_SERVICE_NAME -| Service name to use. Change this when starting an additional storage provider with a custom configuration to prevent it from colliding with the default 'storage-users' service. -| storage-users - -| xref:{s-path}/thumbnails.adoc[Thumbnails] -| THUMBNAILS_MAX_CONCURRENT_REQUESTS -| Number of maximum concurrent thumbnail requests. Default is 0 which is unlimited. -| 0 - -| -| THUMBNAILS_MAX_INPUT_HEIGHT -| The maximum height of an input image which is being processed. -| 7680 - -| -| THUMBNAILS_MAX_INPUT_IMAGE_FILE_SIZE -| The maximum file size of an input image which is being processed. Usable common abbreviations: [KB, KiB, MB, MiB, GB, GiB, TB, TiB, PB, PiB, EB, EiB], example: 2GB. -| 50MB - -| -| THUMBNAILS_MAX_INPUT_WIDTH -| The maximum width of an input image which is being processed. -| 7680 - -| xref:{s-path}/userlog.adoc[Userlog] -| USERLOG_MAX_CONCURRENCY -| Maximum number of concurrent go-routines. Higher values can potentially get work done faster but will also cause more load on the system. Values of 0 or below will be ignored and the default value will be used. -| 1 - -| xref:{s-path}/web.adoc[Web] -| WEB_ASSET_APPS_PATH -| Serve ownCloud Web apps assets from a path on the filesystem instead of the builtin assets. If not defined, the root directory derives from $OC_BASE_DATA_PATH/web/assets/apps -| /var/lib/ocis/web/assets/apps - -| -| WEB_ASSET_CORE_PATH -| Serve ownCloud Web assets from a path on the filesystem instead of the builtin assets. If not defined, the root directory derives from $OC_BASE_DATA_PATH/web/assets/core -| /var/lib/ocis/web/assets/core - -| -| WEB_ASSET_THEMES_PATH -| Serve ownCloud themes from a path on the filesystem instead of the builtin assets. If not defined, the root directory derives from $OC_BASE_DATA_PATH/web/assets/themes -| /var/lib/ocis/web/assets/themes - -|=== - diff --git a/docs/services/general-info/env-var-deltas/5.0.0-7.0.0-deprecated.adoc b/docs/services/general-info/env-var-deltas/5.0.0-7.0.0-deprecated.adoc deleted file mode 100644 index b86d40bec8..0000000000 --- a/docs/services/general-info/env-var-deltas/5.0.0-7.0.0-deprecated.adoc +++ /dev/null @@ -1,102 +0,0 @@ -// # Deprecated Variables between oCIS 5.0.0 and oCIS 7.0.0 -// commenting the headline to make it better includable - -// table created per 2024.12.02 -// the table should be recreated/updated on source () changes - -[width="100%",cols="~,~,~,~,~",options="header"] -|=== -| Service | Variable | Description | Removal Version | Deprecation Info - -| xref:{s-path}/clientlog.adoc[Clientlog] -| CLIENTLOG_REVA_GATEWAY -| CS3 gateway used to look up user metadata -| %%NEXT_PRODUCTION_VERSION%% -| CLIENTLOG_REVA_GATEWAY removed for simplicity. - -| xref:{s-path}/frontend.adoc[Frontend] -| FRONTEND_OCS_ADDITIONAL_INFO_ATTRIBUTE -| Additional information attribute for the user like {{.Mail}}. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_ENABLE_DENIALS -| EXPERIMENTAL: enable the feature to deny access on folders. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_INCLUDE_OCM_SHAREES -| Include OCM sharees when listing sharees. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_INCLUDE_OCM_SHAREES, the OCS API is deprecated - -| -| FRONTEND_OCS_LIST_OCM_SHARES -| Include OCM shares when listing shares. See the OCM service documentation for more details. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_LIST_OCM_SHARES, the OCS API is deprecated - -| -| FRONTEND_OCS_PERSONAL_NAMESPACE -| Home namespace identifier. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_PREFIX -| URL path prefix for the OCS service. Note that the string must not start with '/'. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_SHARE_PREFIX -| Path prefix for shares as part of an ocis resource. Note that the path must start with '/'. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_AUTH_PASSWORD -| The password to use for authentication. Only applies when using the 'nats-js-kv' store type. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_AUTH_PASSWORD, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_AUTH_USERNAME -| The username to use for authentication. Only applies when using the 'nats-js-kv' store type. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_AUTH_USERNAME, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_DISABLE_PERSISTENCE -| Disable persistence of the cache. Only applies when using the 'nats-js-kv' store type. Defaults to false. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_DISABLE_PERSISTENCE, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_STORE -| The type of the cache store. Supported values are: 'memory', 'redis-sentinel', 'nats-js-kv', 'noop'. See the text description for details. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_STORE, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_STORE_NODES -| A list of nodes to access the configured store. This has no effect when 'memory' store is 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. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_STORE_NODES, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_TABLE -| The database table the store should use. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_TTL -| Default time to live for user info in the cache. Only applied when access tokens has no expiration. See the Environment Variable Types description for more details. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_TTL, the OCS API is deprecated - -|=== - diff --git a/docs/services/general-info/env-var-deltas/5.0.0-7.0.0-removed.adoc b/docs/services/general-info/env-var-deltas/5.0.0-7.0.0-removed.adoc deleted file mode 100644 index 014b9cc98f..0000000000 --- a/docs/services/general-info/env-var-deltas/5.0.0-7.0.0-removed.adoc +++ /dev/null @@ -1,257 +0,0 @@ -// # Removed Variables between oCIS 5.0.0 and oCIS 7.0.0 -// commenting the headline to make it better includable - -// table created per 2024.12.02 -// the table should be recreated/updated on source () changes - -[width="100%",cols="~,~,~,~",options="header"] -|=== -| Service | Variable | Description | Default - -| xref:deployment/services/env-vars-special-scope.adoc[Special Scope Envvars] -| OC_CACHE_SIZE -| 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 exclicitly set as default. -| 0 - -| -| OC_DECOMPOSEDFS_METADATA_BACKEND -| The backend to use for storing metadata. Supported values are 'messagepack' and 'xattrs'. The setting 'messagepack' uses a dedicated file to store file metadata while 'xattrs' uses extended attributes to store file metadata. Defaults to 'messagepack'. -| messagepack - -| -| OC_ENABLE_RESHARING -| Changing this value is NOT supported. Enables the support for re-sharing in the clients. -| false - -| -| OC_PERSISTENT_STORE_SIZE -| The maximum quantity of items in the store. Only applies when store type 'ocmem' is configured. Defaults to 512 which is derived from the ocmem package though not exclicitly set as default. -| 0 - -| xref:{s-path}/antivirus.adoc[Antivirus] -| ANTIVIRUS_ICAP_TIMEOUT -| Timeout for the ICAP client. -| 0 - -| xref:{s-path}/eventhistory.adoc[Eventhistory] -| EVENTHISTORY_STORE_SIZE -| The maximum quantity of items in the store. Only applies when store type 'ocmem' is configured. Defaults to 512 which is derived and used from the ocmem package though no explicit default was set. -| 0 - -| xref:{s-path}/frontend.adoc[Frontend] -| FRONTEND_ENABLE_RESHARING -| Changing this value is NOT supported. Enables the support for re-sharing in the clients. -| false - -| -| FRONTEND_OCS_STAT_CACHE_SIZE -| Max number of entries to hold in the cache. -| 0 - -| xref:{s-path}/gateway.adoc[Gateway] -| GATEWAY_CREATE_HOME_CACHE_SIZE -| The maximum quantity of items in the cache. Only applies when store type 'ocmem' is configured. Defaults to 512 which is derived from the ocmem package though not explicitly set as default. -| 0 - -| -| GATEWAY_PROVIDER_CACHE_SIZE -| The maximum quantity of items in the cache. Only applies when store type 'ocmem' is configured. Defaults to 512 which is derived from the ocmem package though not explicitly set as default. -| 0 - -| xref:{s-path}/graph.adoc[Graph] -| GRAPH_CACHE_SIZE -| The maximum quantity of items in the store. Only applies when store type 'ocmem' is configured. Defaults to 512 which is derived from the ocmem package though not explicitly set as default. -| 0 - -| -| GRAPH_ENABLE_RESHARING -| Changing this value is NOT supported. Enables the support for re-sharing. -| false - -| xref:{s-path}/ocm.adoc[OCM] -| OCM_OCM_PROVIDER_AUTHORIZER_VERIFY_REQUEST_HOSTNAME -| Verify the hostname of the incoming request against the hostname of the OCM provider. -| false - -| xref:{s-path}/postprocessing.adoc[Postprocessing] -| POSTPROCESSING_STORE_SIZE -| The maximum quantity of items in the store. Only applies when store type 'ocmem' is configured. Defaults to 512 which is derived from the ocmem package though not exclicitly set as default. -| 0 - -| xref:{s-path}/proxy.adoc[Proxy] -| PROXY_OIDC_USERINFO_CACHE_SIZE -| 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 explicitly set as default. -| 0 - -| xref:{s-path}/settings.adoc[Settings] -| SETTINGS_CACHE_SIZE -| The maximum quantity of items in the cache. Only applies when store type 'ocmem' is configured. Defaults to 512 which is derived from the ocmem package though not exclicitly set as default. -| 0 - -| -| SETTINGS_DATA_PATH -| The directory where the filesystem storage will store ocis settings. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/settings. -| /var/lib/ocis/settings - -| -| SETTINGS_STORE_TYPE -| Store type configures the persistency driver. Supported values are 'metadata' and 'filesystem'. Note that the value 'filesystem' is considered deprecated. -| metadata - -| xref:{s-path}/sharing.adoc[Sharing] -| SHARING_ENABLE_RESHARING -| Changing this value is NOT supported. Enables the support for resharing. -| false - -| xref:{s-path}/storage-system.adoc[Storage-System] -| STORAGE_SYSTEM_CACHE_SIZE -| 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 exclicitly set as default. -| 0 - -| -| STORAGE_SYSTEM_OC_METADATA_BACKEND -| The backend to use for storing metadata. Supported values are 'messagepack' and 'xattrs'. The setting 'messagepack' uses a dedicated file to store file metadata while 'xattrs' uses extended attributes to store file metadata. Defaults to 'messagepack'. -| messagepack - -| xref:{s-path}/storage-users.adoc[Storage-Users] -| STORAGE_USERS_FILEMETADATA_CACHE_SIZE -| 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 exclicitly set as default. -| 0 - -| -| STORAGE_USERS_ID_CACHE_SIZE -| 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 exclicitly set as default. -| 0 - -| -| STORAGE_USERS_OCIS_METADATA_BACKEND -| The backend to use for storing metadata. Supported values are 'messagepack' and 'xattrs'. The setting 'messagepack' uses a dedicated file to store file metadata while 'xattrs' uses extended attributes to store file metadata. Defaults to 'messagepack'. -| messagepack - -| -| STORAGE_USERS_S3NG_METADATA_BACKEND -| The backend to use for storing metadata. Supported values are 'xattrs' and 'messagepack'. The setting 'xattrs' uses extended attributes to store file metadata while 'messagepack' uses a dedicated file to store file metadata. Defaults to 'xattrs'. -| messagepack - -| The `Store` service has been removed completely -| STORE_DATA_PATH -| The directory where the filesystem storage will store ocis settings. If not defined, the root directory derives from $OC_BASE_DATA_PATH:/store. -| /var/lib/ocis/store - -| -| STORE_DEBUG_ADDR -| Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. -| 127.0.0.1:9464 - -| -| STORE_DEBUG_PPROF -| Enables pprof, which can be used for profiling. -| false - -| -| STORE_DEBUG_TOKEN -| Token to secure the metrics endpoint. -| - -| -| STORE_DEBUG_ZPAGES -| Enables zpages, which can be used for collecting and viewing in-memory traces. -| false - -| -| STORE_GRPC_ADDR -| The bind address of the GRPC service. -| 127.0.0.1:9460 - -| -| STORE_LOG_COLOR -| Activates colorized log output. -| false - -| -| STORE_LOG_FILE -| The path to the log file. Activates logging to this file if set. -| - -| -| STORE_LOG_LEVEL -| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'. -| - -| -| STORE_LOG_PRETTY -| Activates pretty log output. -| false - -| -| STORE_TRACING_COLLECTOR -| 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. -| - -| -| STORE_TRACING_ENABLED -| Activates tracing. -| false - -| -| STORE_TRACING_ENDPOINT -| The endpoint of the tracing agent. -| - -| -| STORE_TRACING_TYPE -| The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now. -| - -| xref:{s-path}/userlog.adoc[Userlog] -| USERLOG_STORE_SIZE -| The maximum quantity of items in the store. Only applies when store type 'ocmem' is configured. Defaults to 512 which is derived from the ocmem package though not exclicitly set as default. -| 0 - -| xref:{s-path}/web.adoc[Web] -| WEB_ASSET_PATH -| Serve ownCloud Web assets from a path on the filesystem instead of the builtin assets. -| - -| -| WEB_OPTION_DISABLE_PREVIEWS -| 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. -| false - -| -| WEB_OPTION_HOME_FOLDER -| Specifies a folder that is used when the user navigates 'home'. Navigating home gets triggered by clicking on the 'All files' menu item. The user will not be jailed in that directory, it simply serves as a default location. A static location can be provided, or variables of the user object to come up with a user specific home path can be used. This uses the twig template variable style and allows picking a value or a substring of a value of the authenticated user. Examples are '/Shares', '/{{.Id}}' and '/{{substr 0 3 .Id}}/{{.Id}'. -| - -| -| WEB_OPTION_HOVERABLE_QUICK_ACTIONS -| Set this option to 'true' to hide quick actions (buttons appearing on file rows) and only show them when the user hovers over the row with his mouse. Defaults to 'false'. -| false - -| -| WEB_OPTION_OPEN_LINKS_WITH_DEFAULT_APP -| Specifies whether single file link shares should be opened with the default app or not. If not opened by the default app, the Web UI just displays the file details. -| true - -| -| WEB_OPTION_PREVIEW_FILE_MIMETYPES -| A list of mimeTypes to specify which ones will be previewed in the UI. For example, to only preview jpg and text files, set this option to 'image/jpeg,text/plain'. See the Environment Variable Types description for more details. -| [image/gif image/png image/jpeg text/plain image/tiff image/bmp image/x-ms-bmp application/vnd.geogebra.slides] - -| -| WEB_OPTION_ROUTING_ID_BASED -| Enable or disable fileIds being added to the URL. Defaults to 'true', because otherwise spaces with name clashes cannot be resolved correctly. Note: Only disable this if you can guarantee on the server side, that spaces of the same namespace cannot have name clashes. -| true - -| -| WEB_OPTION_SHARING_RECIPIENTS_PER_PAGE -| Sets the number of users shown as recipients in the dropdown menu when sharing resources. -| 200 - -| -| WEB_OPTION_SIDEBAR_SHARES_SHOW_ALL_ON_LOAD -| Sets the list of the (link) shares list in the sidebar to be initially expanded. Default is a collapsed state, only showing the first three shares. -| false - -|=== - diff --git a/docs/services/general-info/env-var-deltas/7.0.0-7.1.0-added.adoc b/docs/services/general-info/env-var-deltas/7.0.0-7.1.0-added.adoc deleted file mode 100644 index a95eb65410..0000000000 --- a/docs/services/general-info/env-var-deltas/7.0.0-7.1.0-added.adoc +++ /dev/null @@ -1,57 +0,0 @@ -// # Added Variables between oCIS 7.0.0 and oCIS 7.1.0 -// commenting the headline to make it better includable - -// table created per 2025.01.10 -// the table should be recreated/updated on source () changes - -[width="100%",cols="~,~,~,~",options="header"] -|=== -| Service | Variable | Description | Default - -| xref:{s-path}/frontend.adoc[Fontend] -| FRONTEND_CONFIGURABLE_NOTIFICATIONS -| Allow configuring notifications via web client. -| false - -| xref:{s-path}/notifications.adoc[Notifications] -| NOTIFICATIONS_STORE -| The type of the store. Supported values are: 'memory', 'nats-js-kv', 'redis-sentinel', 'noop'. See the text description for details. -| nats-js-kv - -| -| NOTIFICATIONS_STORE_AUTH_PASSWORD -| The password to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. -| - -| -| NOTIFICATIONS_STORE_AUTH_USERNAME -| The username to authenticate with the store. Only applies when store type 'nats-js-kv' is configured. -| - -| -| NOTIFICATIONS_STORE_DATABASE -| The database name the configured store should use. -| notifications - -| -| NOTIFICATIONS_STORE_NODES -| A list of nodes to access the configured store. This has no effect when 'memory' store is 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. -| [127.0.0.1:9233] - -| -| NOTIFICATIONS_STORE_TABLE -| The database table the store should use. -| - -| -| NOTIFICATIONS_STORE_TTL -| Time to live for notifications in the store. Defaults to '336h' (2 weeks). See the Environment Variable Types description for more details. -| 336h0m0s - -| xref:{s-path}/settings.adoc[Settings] -| SETTINGS_TRANSLATION_PATH -| (optional) Set this to a path with custom translations to overwrite the builtin translations. Note that file and folder naming rules apply, see the documentation for more details. -| - -|=== - diff --git a/docs/services/general-info/env-var-deltas/7.0.0-7.1.0-deprecated.adoc b/docs/services/general-info/env-var-deltas/7.0.0-7.1.0-deprecated.adoc deleted file mode 100644 index 91f4c78fb8..0000000000 --- a/docs/services/general-info/env-var-deltas/7.0.0-7.1.0-deprecated.adoc +++ /dev/null @@ -1,105 +0,0 @@ -// # Deprecated Variables between oCIS 7.0.0 and oCIS 7.1.0 -// commenting the headline to make it better includable - -// table created per 2025.01.10 -// the table should be recreated/updated on source () changes - -Note that these environment variables were listed for deprecation in 7.0.0 already. Removal has been delayed for an upcoming production version. They are listed here for consistency. - - -[width="100%",cols="~,~,~,~,~",options="header"] -|=== -| Service | Variable | Description | Removal Version | Deprecation Info - -| xref:{s-path}/clientlog.adoc[Clientlog] -| CLIENTLOG_REVA_GATEWAY -| CS3 gateway used to look up user metadata -| %%NEXT_PRODUCTION_VERSION%% -| CLIENTLOG_REVA_GATEWAY removed for simplicity. - -| xref:{s-path}/frontend.adoc[Frontend] -| FRONTEND_OCS_ADDITIONAL_INFO_ATTRIBUTE -| Additional information attribute for the user like {{.Mail}}. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_ENABLE_DENIALS -| EXPERIMENTAL: enable the feature to deny access on folders. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_INCLUDE_OCM_SHAREES -| Include OCM sharees when listing sharees. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_INCLUDE_OCM_SHAREES, the OCS API is deprecated - -| -| FRONTEND_OCS_LIST_OCM_SHARES -| Include OCM shares when listing shares. See the OCM service documentation for more details. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_LIST_OCM_SHARES, the OCS API is deprecated - -| -| FRONTEND_OCS_PERSONAL_NAMESPACE -| Home namespace identifier. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_PREFIX -| URL path prefix for the OCS service. Note that the string must not start with '/'. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_SHARE_PREFIX -| Path prefix for shares as part of an ocis resource. Note that the path must start with '/'. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_AUTH_PASSWORD -| The password to use for authentication. Only applies when using the 'nats-js-kv' store type. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_AUTH_PASSWORD, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_AUTH_USERNAME -| The username to use for authentication. Only applies when using the 'nats-js-kv' store type. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_AUTH_USERNAME, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_DISABLE_PERSISTENCE -| Disable persistence of the cache. Only applies when using the 'nats-js-kv' store type. Defaults to false. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_DISABLE_PERSISTENCE, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_STORE -| The type of the cache store. Supported values are: 'memory', 'redis-sentinel', 'nats-js-kv', 'noop'. See the text description for details. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_STORE, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_STORE_NODES -| A list of nodes to access the configured store. This has no effect when 'memory' store is 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. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_STORE_NODES, the OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_TABLE -| The database table the store should use. -| %%NEXT_PRODUCTION_VERSION%% -| The OCS API is deprecated - -| -| FRONTEND_OCS_STAT_CACHE_TTL -| Default time to live for user info in the cache. Only applied when access tokens has no expiration. See the Environment Variable Types description for more details. -| %%NEXT_PRODUCTION_VERSION%% -| FRONTEND_OCS_STAT_CACHE_TTL, the OCS API is deprecated - -|=== - diff --git a/docs/services/general-info/env-var-deltas/7.0.0-7.1.0-removed.adoc b/docs/services/general-info/env-var-deltas/7.0.0-7.1.0-removed.adoc deleted file mode 100644 index 166f2833a5..0000000000 --- a/docs/services/general-info/env-var-deltas/7.0.0-7.1.0-removed.adoc +++ /dev/null @@ -1,12 +0,0 @@ -// # Removed Variables between oCIS 7.0.0 and oCIS 7.1.0 -// commenting the headline to make it better includable - -// table created per 2025.01.10 -// the table should be recreated/updated on source () changes - -[width="100%",cols="~,~,~,~",options="header"] -|=== -| Service | Variable | Description | Default - -|=== - diff --git a/docs/services/general-info/env-var-deltas/make-adoc-and-md-files.txt b/docs/services/general-info/env-var-deltas/make-adoc-and-md-files.txt deleted file mode 100644 index 68c10ae55e..0000000000 --- a/docs/services/general-info/env-var-deltas/make-adoc-and-md-files.txt +++ /dev/null @@ -1 +0,0 @@ -see docs/helpers/README.md#doc-tasks-for-new-releases for details how to create the necessary .adoc and .md files diff --git a/docs/services/general-info/envvar-scopes.md b/docs/services/general-info/envvar-scopes.md deleted file mode 100644 index d67f86134c..0000000000 --- a/docs/services/general-info/envvar-scopes.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Envvar Naming Scopes -date: 2023-03-23T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: envvar-scopes.md -geekdocCollapseSection: true ---- - -{{< toc >}} - -The scope of an environment variable can be derived from its name. Therefore, it is important to follow the correct naming scheme to enable easy and proper identification. This is important when either: - -- a new local envvar is introduced. -- a new global envvar is added to an existing local envvar. - -## Envvar Definition - -- A variable that is only used in a particular service is a **local envvar**. -- A variable that is used in more than one service is a **global envvar**. -- Mandatory when used in a service, a global envvar must have a local counterpart. -- Variables that do not belong to any service are by definition global. - -## Naming Scope - -### Local Envvars - -A local envvar always starts with the service name like `POSTPROCESSING_LOG_FILE`. - -### Global Envvars - -A global envvar always starts with `OC_` like `OC_LOG_FILE`. - -Note that this envvar is the global representation of the local example from above. - -To get a list of global envvars used in all services, see the [Global Environment Variables](https://doc.owncloud.com/ocis/next/deployment/services/env-vars-special-scope.html#global-environment-variables) table in the ocis admin documentation. - -## Lifecycle of Envvars - -The envvar struct tag contains at maximum the following key/value pairs to document the lifecycle of a config variable: - -* `introductionVersion` -* `deprecationVersion` -* `removalVersion` -* `deprecationInfo` -* `deprecationReplacement` - -### Introduce new Envvars - -If a new envvar is introduced, only the `introductionVersion` is required. - -{{< hint warning >}} -During the development cycle, the value for the `introductionVersion` must be set to `%%NEXT%%`. This placeholder will be removed by the real version number during the production releasing process. -{{< /hint >}} - -For the documentation to show the correct value for the `IV` (introduction version), our docs helper scripts will automatically generate the correct version to be printed in the documentation. If `%%NEXT%%` is found in the query, it will be replaced with `next`, else the value found is used. - -During the releasing process for a production release, the placeholder `%%NEXT%%` has to be replaced with the new production version number like `%%NEXT%%` → `7.0.0`. - -### Adding Envvars to Existing Ones - -If an envvar has been introduced with a particular version, the `introductionVersion` gets a value accordingly. If an additional envvar like a global one is added to this existing envvar later on, the introduction version will *not* be changed. - -### Deprecate Existing Envvars - -See the [deprecation rules]({{< ref "./deprecating-variables.md" >}}) documentation for more details. - -## Separating Multiple Envvars - -When multiple envvars are defined for one purpose like a global and local one, use `;` (semicolon) to properly separate the envvars in go code. Though it is possible to separate with `,` (comma) according go rules, the current implementation of the docs generation process only recognizes semicolons as separator. diff --git a/docs/services/general-info/new-service-checklist.md b/docs/services/general-info/new-service-checklist.md deleted file mode 100644 index 28c43c59b8..0000000000 --- a/docs/services/general-info/new-service-checklist.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: New Service Checklist -date: 2023-03-23T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: new-service-checklist.md -geekdocCollapseSection: true ---- - -When a new service gets introduced, this checklist is a good starting point for things that need to be completed before the service gets published (merged). This list is without claim of completeness or correct sort order. - -## New Service Checklist - -Use this checklist with copy/paste in your PR - right from the beginning. It renders correctly in your PR. - -```markdown -- [ ] Services MUST NOT be named `extended` or `global`. These are reserved names for the automated documentation process. -- [ ] Provide a README.md for that service in the root folder of that service. - - Use CamelCase for section headers. -- [ ] For images and example files used in README.md: - - Create a folder named `md-sources` on the same level where README.md is located. Put all the images and example files referenced by README.md into this folder. - - Use absolute references like `https://raw.githubusercontent.com/owncloud/ocis/master/services//md-sources/file` to make the content accessible for both README.md and owncloud.dev - bad `` - good `` -- [ ] If new CLI commands are introduced, those commands must be described in the README.md. - - Commands are added to `ocis/pkg/command` -- [ ] If new global envvars are introduced, the name must start with `OC_`. -- [ ] Add the service to the makefile in the ocis repo root. -- [ ] Service startup: - - add it to `ocis/pkg/command/services.go` - - Include for automatic startup: - - add it to `ocis/pkg/runtime/service/service.go` - - Exclude from automatic startup: - - add it to the `populate optional services` block in `ocis/pkg/runtime/service/service.go` - - Add the service config to `ocis-pkg/config/defaultconfig.go` -- [ ] If the service is using service accounts, add it to `ocis/pkg/init/init.go` -- [ ] Check that the service properly responds to `ocis health` and has `/healthz` and `/readyz` endpoints -- [ ] Add the service to `.drone.star` to enable CI. -- [ ] Inform doc team in an *early stage* to review the readme AND the environment variables created. - - The description must reflect the behaviour AND usually has a positive code quality impact. -- [ ] Create proper description strings for envvars - see other services for examples, especially when it comes to multiple values. This must include: - - base description, set of available values, description of each value. -- [ ] When suggested commits are created for text changes, and you agree, collect them to a batch and commit them. Do not forget to rebase locally to avoid overwriting the changes made. -- [ ] If new envvars are introduced which serve the same purpose but in multiple services, an additional envvar must be added at the beginning of the list starting with `OC_` (global envvar). -- [ ] Ensure that a service has a debug port -- [ ] If the new service introduces a new port: - - The port must be added to [port-ranges.md](https://github.com/owncloud/ocis/blob/master/docs/services/general-info/port-ranges.md) and to the README.md file. -- [ ] Make sure to have a function `FullDefaultConfig()` in `pkg/config/defaults/defaultconfig.go` of your service. It is needed to create the documentation. -- [ ] Add metrics to the code to enable monitoring. See the proxy service for implementation details. - - Plus add documentation about monitoring in the README.md file -- [ ] When the service requires translations that have to be covered by the service and are not sourced by web, see the [add translation]({{< ref "./add-translations.md" >}}) documentation for more details. -- [ ] If the service requires a `cache` or `store`, check existing services for implementation and add a documentation in the README.md -``` diff --git a/docs/services/general-info/port-ranges.md b/docs/services/general-info/port-ranges.md deleted file mode 100644 index 2e94a82b8e..0000000000 --- a/docs/services/general-info/port-ranges.md +++ /dev/null @@ -1,213 +0,0 @@ ---- -title: Port Ranges -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: port-ranges.md -geekdocCollapseSection: true ---- - -oCIS services often need a port to expose their services to other services or the outside world. As users may have many different extensions running on the same machine, we should track port usage in the oCIS ecosystem. In the best case, we ensure that each extension uses a non-colliding port range, to make life easier for users. - -This page tracks the knowingly used port ranges. - -Feel free to "reserve" a free port range when you're developing an extension by adding your extension to the list (see the edit button in the top right corner). - -If you're developing a non-public extension, we recommend using ports outside of the ranges listed below. - -We also suggest using the last port in your extensions' range as a debug/metrics port. - -## Allocations - -| Port range | Service | -|------------|----------------------------------------------------------------------------------------| -| 9000-9010 | [reserved for Infinite Scale]({{< ref "../../../ocis/_index.md" >}}) | -| 9100-9104 | [web]({{< ref "../web/_index.md" >}}) | -| 9105-9109 | [hello](https://github.com/owncloud/ocis-hello) | -| 9110-9114 | [ocs]({{< ref "../ocs/_index.md" >}}) | -| 9115-9119 | [webdav]({{< ref "../webdav/_index.md" >}}) | -| 9120-9124 | [graph]({{< ref "../graph/_index.md" >}}) | -| 9125-9129 | [policies]({{< ref "../policies/_index.md" >}}) | -| 9130-9134 | [idp]({{< ref "../idp/_index.md" >}}) | -| 9135-9139 | [sse]({{< ref "../sse/_index.md" >}}) | -| 9140-9141 | [frontend]({{< ref "../frontend/_index.md" >}}) | -| 9142-9143 | [gateway]({{< ref "../gateway/_index.md" >}}) | -| 9144-9145 | [users]({{< ref "../users/_index.md" >}}) | -| 9146-9147 | [auth-basic]({{< ref "../auth-basic/_index.md" >}}) | -| 9148-9149 | [auth-bearer]({{< ref "../auth-bearer/_index.md" >}}) | -| 9150-9153 | [sharing]({{< ref "../sharing/_index.md" >}}) | -| 9154-9156 | [storage-shares]({{< ref "../storage-shares/_index.md" >}}) | -| 9157-9159 | [storage-users]({{< ref "../storage-users/_index.md" >}}) | -| 9160-9162 | [groups]({{< ref "../groups/_index.md" >}}) | -| 9163 | [ocdav]({{< ref "../ocdav/_index.md" >}}) | -| 9164 | [groups]({{< ref "../groups/_index.md" >}}) | -| 9165 | [app-provider]({{< ref "../app-provider/_index.md" >}}) | -| 9166-9169 | [auth-machine]({{< ref "../auth-machine/_index.md" >}}) | -| 9170-9174 | [notifications]({{< ref "../notifications/_index.md" >}}) | -| 9175-9179 | [storage-publiclink]({{< ref "../storage-publiclink/_index.md" >}}) | -| 9180-9184 | FREE (formerly used by accounts) | -| 9185-9189 | [thumbnails]({{< ref "../thumbnails/_index.md" >}}) | -| 9190-9194 | [settings]({{< ref "../settings/_index.md" >}}) | -| 9195-9197 | [activitylog]({{< ref "../activitylog/_index.md" >}}) | -| 9198-9199 | [auth-service]({{< ref "../auth-service/_index.md" >}}) | -| 9200-9204 | [proxy]({{< ref "../proxy/_index.md" >}}) | -| 9205-9209 | [proxy]({{< ref "../proxy/_index.md" >}}) | -| 9210-9214 | [userlog]({{< ref "../userlog/_index.md" >}}) | -| 9215-9219 | [storage-system]({{< ref "../storage-system/_index.md" >}}) | -| 9220-9224 | [search]({{< ref "../search/_index.md" >}}) | -| 9225-9229 | [audit]({{< ref "../audit/_index.md" >}}) | -| 9230-9234 | [nats]({{< ref "../nats/_index.md" >}}) | -| 9235-9239 | [idm]({{< ref "../idm/_index.md" >}}) | -| 9240-9244 | [app-registry]({{< ref "../app-registry/_index.md" >}}) | -| 9245-9249 | [auth-app]({{< ref "../auth-app/_index.md" >}}) | -| 9250-9254 | [ocis server (runtime)](https://github.com/owncloud/ocis/tree/master/ocis/pkg/runtime) | -| 9255-9259 | [postprocessing]({{< ref "../postprocessing/_index.md" >}}) | -| 9260-9264 | [clientlog]({{< ref "../clientlog/_index.md" >}}) | -| 9265-9269 | [clientlog]({{< ref "../clientlog/_index.md" >}}) | -| 9270-9274 | [eventhistory]({{< ref "../eventhistory/_index.md" >}}) | -| 9275-9279 | [webfinger]({{< ref "../webfinger/_index.md" >}}) | -| 9280-9284 | [ocm]({{< ref "../ocm/_index.md" >}}) | -| 9285-9289 | FREE | -| 9290-9294 | FREE | -| 9295-9299 | FREE | -| 9300-9304 | [collaboration]({{< ref "../collaboration/_index.md" >}}) | -| 9305-9309 | FREE | -| 9310-9314 | FREE | -| 9315-9319 | FREE | -| 9320-9324 | FREE | -| 9325-9329 | FREE | -| 9330-9334 | FREE | -| 9335-9339 | FREE | -| 9340-9344 | FREE | -| 9345-9349 | FREE | -| 9350-9354 | [ocdav]({{< ref "../ocdav/_index.md" >}}) | -| 9355-9359 | FREE | -| 9360-9364 | FREE | -| 9365-9369 | FREE | -| 9370-9374 | FREE | -| 9375-9379 | FREE | -| 9380-9384 | FREE | -| 9385-9389 | FREE | -| 9390-9394 | FREE | -| 9395-9399 | FREE | -| 9400-9404 | FREE | -| 9405-9409 | FREE | -| 9410-9414 | FREE | -| 9415-9419 | FREE | -| 9420-9424 | FREE | -| 9425-9429 | FREE | -| 9430-9434 | FREE | -| 9435-9439 | FREE | -| 9440-9444 | FREE | -| 9445-9449 | FREE | -| 9450-9454 | FREE | -| 9455-9459 | FREE | -| 9460-9464 | FREE (formerly used by store-service) | -| 9465-9469 | FREE | -| 9470-9474 | FREE | -| 9475-9479 | FREE | -| 9480-9484 | FREE | -| 9485-9489 | FREE | -| 9490-9494 | FREE | -| 9495-9499 | FREE | -| 9500-9504 | FREE | -| 9505-9509 | FREE | -| 9510-9514 | FREE | -| 9515-9519 | FREE | -| 9520-9524 | FREE | -| 9525-9529 | FREE | -| 9530-9534 | FREE | -| 9535-9539 | FREE | -| 9540-9544 | FREE | -| 9545-9549 | FREE | -| 9550-9554 | FREE | -| 9555-9559 | FREE | -| 9560-9564 | FREE | -| 9565-9569 | FREE | -| 9570-9574 | FREE | -| 9575-9579 | FREE | -| 9580-9584 | FREE | -| 9585-9589 | FREE | -| 9590-9594 | FREE | -| 9595-9599 | FREE | -| 9600-9604 | FREE | -| 9605-9609 | FREE | -| 9610-9614 | FREE | -| 9615-9619 | FREE | -| 9620-9624 | FREE | -| 9625-9629 | FREE | -| 9630-9634 | FREE | -| 9635-9639 | FREE | -| 9640-9644 | FREE | -| 9645-9649 | FREE | -| 9650-9654 | FREE | -| 9655-9659 | FREE | -| 9660-9664 | FREE | -| 9665-9669 | FREE | -| 9670-9674 | FREE | -| 9675-9679 | FREE | -| 9680-9684 | FREE | -| 9685-9689 | FREE | -| 9690-9694 | FREE | -| 9695-9699 | FREE | -| 9700-9704 | FREE | -| 9705-9709 | FREE | -| 9710-9714 | FREE | -| 9715-9719 | FREE | -| 9720-9724 | FREE | -| 9725-9729 | FREE | -| 9730-9734 | FREE | -| 9735-9739 | FREE | -| 9740-9744 | FREE | -| 9745-9749 | FREE | -| 9750-9754 | FREE | -| 9755-9759 | FREE | -| 9760-9764 | FREE | -| 9765-9769 | FREE | -| 9770-9774 | FREE | -| 9775-9779 | FREE | -| 9780-9784 | FREE | -| 9785-9789 | FREE | -| 9790-9794 | FREE | -| 9795-9799 | FREE | -| 9800-9804 | FREE | -| 9805-9809 | FREE | -| 9810-9814 | FREE | -| 9815-9819 | FREE | -| 9820-9824 | FREE | -| 9825-9829 | FREE | -| 9830-9834 | FREE | -| 9835-9839 | FREE | -| 9840-9844 | FREE | -| 9845-9849 | FREE | -| 9850-9854 | FREE | -| 9855-9859 | FREE | -| 9860-9864 | FREE | -| 9865-9869 | FREE | -| 9870-9874 | FREE | -| 9875-9879 | FREE | -| 9880-9884 | FREE | -| 9885-9889 | FREE | -| 9890-9894 | FREE | -| 9895-9899 | FREE | -| 9900-9904 | FREE | -| 9905-9909 | FREE | -| 9910-9914 | FREE | -| 9915-9919 | FREE | -| 9920-9924 | FREE | -| 9925-9929 | FREE | -| 9930-9934 | FREE | -| 9935-9939 | FREE | -| 9940-9944 | FREE | -| 9945-9949 | FREE | -| 9950-9954 | FREE | -| 9955-9959 | FREE | -| 9960-9964 | FREE | -| 9965-9969 | FREE | -| 9970-9974 | FREE | -| 9975-9979 | FREE | -| 9980-9984 | FREE | -| 9985-9989 | FREE | -| 9990-9994 | FREE | -| 9995-9999 | FREE | diff --git a/docs/services/general-info/registry.md b/docs/services/general-info/registry.md deleted file mode 100644 index 376e23ef3b..0000000000 --- a/docs/services/general-info/registry.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Registry -date: 2023-12-19T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/general-info -geekdocFilePath: registry.md -geekdocCollapseSection: true ---- - -To be able to communicate with each other, services need to register in a common registry. - -{{< toc >}} - -## Configuration - -The type of registry to use can be configured with the `MICRO_REGISTRY` environment variable. Supported values are: - -### `nats-js-kv` (Default) - -Set the environment variable to `nats-js-kv` or leave it empty to use a nats-js key value store as registry. - -- Note: If not running build-in nats, `MICRO_REGISTRY_ADDRESS` needs to be set to the address of the nats-js cluster, which is the same value as `OC_EVENTS_ENDPOINT`. -- Optional: Use `MICRO_REGISTRY_AUTH_USERNAME` and `MICRO_REGISTRY_AUTH_PASSWORD` to authenticate with the nats cluster. - -### `kubernetes` - -When deploying in a kubernetes cluster, the Kubernetes registry can be used. Additionally, the `MICRO_REGISTRY_ADDRESS` environment variable needs to be set to the url of the Kubernetes registry. - -### `memory` - -Setting the environment variable to `memory` starts an in-memory registry. This only works with the single binary deployment. - -### Deprecated Registries - -These registries are currently working but will be removed in a later version. It is recommended to switch to a supported one. - -- `nats`\ - Uses a registry based on nats streams. Requires `MICRO_REGISTRY_ADDRESS` to be set. -- `etcd`\ - Uses an etcd cluster as the registry. Requires `MICRO_REGISTRY_ADDRESS` to be set. -- `consul`\ - Uses `HashiCorp Consul` as registry. Requires `MICRO_REGISTRY_ADDRESS` to be set. -- `mdns`\ - Uses multicast dns for registration. This type can have unwanted side effects when other devices in the local network use mdns too. - diff --git a/docs/services/graph/.gitignore b/docs/services/graph/.gitignore deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/docs/services/graph/configuration.md b/docs/services/graph/configuration.md deleted file mode 100644 index 2ca0cc0a1c..0000000000 --- a/docs/services/graph/configuration.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/graph -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- -## Example YAML Config - -{{< include file="services/_includes/graph-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/graph_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/groups/_index.md b/docs/services/groups/_index.md deleted file mode 100644 index 05816eff2e..0000000000 --- a/docs/services/groups/_index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Groups -date: 2022-03-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/groups -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## Abstract - - -## Table of Contents - -{{< toc-tree >}} diff --git a/docs/services/groups/configuration.md b/docs/services/groups/configuration.md deleted file mode 100644 index 2e14453920..0000000000 --- a/docs/services/groups/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/groups -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/groups-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/groups_configvars.md" >}} diff --git a/docs/services/idm/admin_password_reset.md b/docs/services/idm/admin_password_reset.md deleted file mode 100644 index 1e3065c37c..0000000000 --- a/docs/services/idm/admin_password_reset.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Resetting a lost administrator password -date: 2022-08-29:00:00+00:00 -weight: 10 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/idm -geekdocFilePath: admin_password_reset.md -geekdocCollapseSection: true ---- - -## Resetting a lost administrator password -By default, when using oCIS with the builtin IDM an ad generates the -user `admin` (DN `uid=admin,ou=users,o=libregraph-idm`) if, for any -reason, the password of that user is lost, it can be reset using -the `resetpassword` sub-command: - -``` -ocis idm resetpassword -``` - -It will prompt for a new password and set the password of that user -accordingly. Note: As this command is accessing the idm database directly -will only work while ocis is not running and nothing else is accessing -database. diff --git a/docs/services/idm/configuration.md b/docs/services/idm/configuration.md deleted file mode 100644 index 6bb9b556d6..0000000000 --- a/docs/services/idm/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/idm -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/idm-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/idm_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/idm/configuration_hints.md b/docs/services/idm/configuration_hints.md deleted file mode 100644 index 5f6d8a5ac0..0000000000 --- a/docs/services/idm/configuration_hints.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Configuration Hints -date: 2022-04-27:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/idm -geekdocFilePath: configuration_hints.md -geekdocCollapseSection: true ---- - -## TLS Server Certificates -By default IDM generates a self-signed certificate and key on first startup to be -able to provide TLS protected services. The certificate is stored in -`idm/ldap.crt` inside the oCIS base data directory. The key is in -`idm/ldap.key` in the same directory. You can use a custom server -certificate by setting the `IDM_LDAPS_CERT` and `IDM_LDAPS_KEY`. - -## Default / Demo Users -On startup IDM creates a set of default services users that are needed -internally to provide access to IDM to other oCIS services. These users are stored -in a separate subtree. The base DN of that subtree is: -`ou=sysusers,o=libregraph-idm`. The service users are: - -* `uid=libregraph,ou=sysusers,o=libregraph-idm`: This is the only user with write - access to the LDAP tree. It is used by the Graph service to look up, create, delete and - modify users and groups. -* `uid=idp,ou=sysusers,o=libregraph-idm`: This user is used by the IDP service to - perform user lookups for authentication. -* `uid=reva,ou=sysusers,o=libregraph-idm`: This user is used by the "reva" services - `user`, `group` and `auth-basic`. - -IDM is also able to create [Demo Users](../../../ocis/getting-started/demo-users) -upon startup. - -## Access via LDAP command line tools -For testing purposes it is sometimes helpful to query IDM using the ldap -command line clients. To e.g. list all users, this command can be used: - -``` -ldapsearch -x -H ldaps://127.0.0.1:9235 -x -D uid=libregraph,ou=sysusers,o=libregraph-idm -w idm -b o=libregraph-idm objectclass=inetorgperson -``` - -When using the default configuration with the self-signed server certificate, -you might need to switch off the certificate validation using the `LDAPTL_REQCERT` env -variable: - -``` -LDAPTLS_REQCERT=never ldapsearch -x -H ldaps://127.0.0.1:9235 -x -D uid=libregraph,ou=sysusers,o=libregraph-idm -w idm -b o=libregraph-idm objectclass=inetorgperson -``` diff --git a/docs/services/idp/.gitignore b/docs/services/idp/.gitignore deleted file mode 100644 index 63536ebfa2..0000000000 --- a/docs/services/idp/.gitignore +++ /dev/null @@ -1 +0,0 @@ -grpc.md diff --git a/docs/services/idp/configuration.md b/docs/services/idp/configuration.md deleted file mode 100644 index cf999eabda..0000000000 --- a/docs/services/idp/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/idp -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/idp-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/idp_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/idp/theming.md b/docs/services/idp/theming.md deleted file mode 100644 index b91f45b316..0000000000 --- a/docs/services/idp/theming.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Theming -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/theming -geekdocFilePath: theming.md ---- - -{{< toc >}} - -## Intro -Our default IDP UI is built with the [LibreGraph Connect](https://github.com/libregraph/lico) React app. Even though this app comes already with a simple theming options, we have compiled our own edited version of the app with more advanced changes than the default theming offers. Because of that, it is not possible at the moment to do any kind of easy theming and including custom theme means again compiling custom assets. - -## Customizing assets -Depending on what changes you wish to do with the theme, there are several files you can edit. All of them are located in the `idp/ui` folder. - -### Static assets -If you wish to add static assets like images, CSS, etc., you can add them to `idp/ui/public/static`. The `public` folder also contains the `index.html` file which can be adjusted to your needs. - -### CSS -LibreGraph Connect is built with [kpop](https://github.com/Kopano-dev/kpop), a collection of React UI components. To include any custom styles on top of that collection, you can define them in the `idp/ui/src/app.css` file. These rules will take precedence over the kpop. - -### Containers -Layouts of all pages are located in the `idp/ui/src/containers` folder. By editing any of files in that folder, you can do any kind of changes in the layout and create advanced themes. It is, however, important to be careful when touching this code as it imports also actions which are responsible for the login flow. - -#### What pages to theme -- Login - - Login - login form used to authenticate the users - - Consent - consent page used to authorise apps for already signed-in users - - Chooseaccount - page with a list of accounts to choose from -- Goodbye - - Goodbyescreen - goodbye message displayed to users after they signed out -- Welcome - - Welcomescreen - welcome message displayed to users after they signed in - -### Components -`idp/ui/src/components` folder contains all custom components which are then imported into containers. - -### Images -Every image placed in `idp/ui/src/images` can be directly import into components or containers and will be optimized when compiling assets. - -### Locales -If you need to edit or add new locales, you can do so with json files in the `idp/ui/src/locales` folder. If adding new locale, make sure to add it also in the `index.js` file in the same folder. - -## Building assets -In order to build all assets, run `pnpm build` in the `idp` folder. This script will compile all assets and output them into `idp/assets` folder. - -At this point, you have two possible ways how to deploy your new theme: -- run `make generate` in the root folder of your oCIS clone and generate the new assets -- start the IDP service directly with custom assets by specifying the env var `IDP_ASSET_PATH` diff --git a/docs/services/invitations/configuration.md b/docs/services/invitations/configuration.md deleted file mode 100644 index 3cc3dea0d8..0000000000 --- a/docs/services/invitations/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2023-03-02T15:27:00+01:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/invitations -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/invitations-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/invitations_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/nats/configuration.md b/docs/services/nats/configuration.md deleted file mode 100644 index 9af5ae0b65..0000000000 --- a/docs/services/nats/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/nats -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/nats-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/nats_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/notifications/configuration.md b/docs/services/notifications/configuration.md deleted file mode 100644 index de4f28af4a..0000000000 --- a/docs/services/notifications/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/notifications -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/notifications-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/notifications_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/ocdav/configuration.md b/docs/services/ocdav/configuration.md deleted file mode 100644 index d9df050871..0000000000 --- a/docs/services/ocdav/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/ocdav -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/ocdav-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/ocdav_configvars.md" >}} diff --git a/docs/services/ocm/configuration.md b/docs/services/ocm/configuration.md deleted file mode 100644 index eab0de7824..0000000000 --- a/docs/services/ocm/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/ocm -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/ocm-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/ocm.md" >}} diff --git a/docs/services/ocm/create_share_flow.md b/docs/services/ocm/create_share_flow.md deleted file mode 100644 index 39890877f9..0000000000 --- a/docs/services/ocm/create_share_flow.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Create Share Flow -date: 2018-05-02T00:00:00+00:00 -weight: 40 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/ocm -geekdocFilePath: create_share_flow.md -geekdocCollapseSection: true ---- - -## OCM Create Share Flow - -{{< mermaid class="text-center">}} -sequenceDiagram - box Instance A - participant osp as ocmsharesprovider - participant gwa as Gateway A - participant httpa as ocs - end - actor usera as User A - box Instance B - participant httpb as ocmd - participant gwb as Gateway B - participant ocmc as OCMCore - end - - Note over usera: A shares a resource with B - usera->>+httpa: CreateShare - httpa->>+gwa: GetInfoByDomain - Note left of gwa: GetInfoByDomain (ocmproviderauthorizer) - gwa-->>-httpa: return - - httpa->>+gwa: GetAcceptedUser - Note left of gwa: GetAcceptedUser (ocminvitemanager) - gwa-->>-httpa: return - - httpa->>+gwa: CreateOCMShare - gwa->>+osp: CreateOCMShare - osp->>+gwa: Stat - gwa-->>-osp: return - - Note left of osp: store share in repo - - osp->>+httpb: POST /shares - httpb->>+gwb: IsProviderAllowed - Note right of gwb: IsProviderAllowed (ocmproviderauthorizer) - gwb-->>-httpb: return - - httpb->>+gwb: GetUser - Note right of gwb: GetUser (userprovider) - gwb-->>-httpb: return - - httpb->>+gwb: CreateOCMCoreShare - gwb->>+ocmc: CreateOCMCoreShare - Note right of ocmc: StoreReceivedShare - ocmc-->>-gwb: return - gwb-->>-httpb: return - httpb-->>-osp: return - osp-->>-gwa: return - gwa-->>-httpa: return - httpa->>+gwa: Stat - Note left of gwa: Stat (storageprovider) - gwa-->>-httpa: return - httpa-->>-usera: return -{{< /mermaid >}} diff --git a/docs/services/ocm/invitation_flow.md b/docs/services/ocm/invitation_flow.md deleted file mode 100644 index 58744c2c5e..0000000000 --- a/docs/services/ocm/invitation_flow.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: Invitation flow -date: 2018-05-02T00:00:00+00:00 -weight: 30 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/ocm -geekdocFilePath: invitation_flow.md -geekdocCollapseSection: true ---- - -## OCM Invitation Flow - -{{< mermaid class="text-center">}} -sequenceDiagram - box Instance A - participant ima as InviteManager A - participant gwa as Gateway A - participant httpa as HTTP Api A (ocm, sm) - end - actor usera as User A - actor userb as User B - box Instance B - participant httpb as HTTP Api B (ocm, sm) - participant gwb as Gateway B - participant imb as InviteManager B - end - - Note over usera: A creates invitation token - usera->>+httpa: POST /generate-invite (sciencemesh) - httpa->>+gwa: GenerateInviteToken - gwa->>+ima: GenerateInviteToken - Note left of ima: store token in repo - ima-->>-gwa: return token - gwa-->>-httpa: return token - httpa-->>-usera: return token - - Note over usera,userb: A passes token to B - - Note over userb: B accepts invitation - userb->>+httpb: POST /accept-invite (sciencemesh) - httpb->>+gwb: ForwardInvite - gwb->>+imb: ForwardInvite - imb->>+httpa: POST /invite-accepted (ocm) - httpa->>+gwa: AcceptInvite - gwa->>+ima: AcceptInvite - Note left of ima: get token from repo - Note left of ima: add remote user - ima-->>-gwa: return - gwa-->>-httpa: return remote user - httpa->>-imb: return remote user - Note right of imb: add remote user - imb-->>-gwb: return - gwb-->>-httpb: return - httpb-->>-userb: return -{{< /mermaid >}} \ No newline at end of file diff --git a/docs/services/ocs/.gitignore b/docs/services/ocs/.gitignore deleted file mode 100644 index 63536ebfa2..0000000000 --- a/docs/services/ocs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -grpc.md diff --git a/docs/services/ocs/configuration.md b/docs/services/ocs/configuration.md deleted file mode 100644 index cb8afa4319..0000000000 --- a/docs/services/ocs/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/ocs -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/ocs-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/ocs_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/policies/configuration.md b/docs/services/policies/configuration.md deleted file mode 100644 index 25e4d9c0fa..0000000000 --- a/docs/services/policies/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/policies -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/policies-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/policies_configvars.md" >}} diff --git a/docs/services/postprocessing/configuration.md b/docs/services/postprocessing/configuration.md deleted file mode 100644 index 2e827aaa75..0000000000 --- a/docs/services/postprocessing/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/postprocessing -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/postprocessing-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/postprocessing_configvars.md" >}} diff --git a/docs/services/proxy/.gitignore b/docs/services/proxy/.gitignore deleted file mode 100644 index 63536ebfa2..0000000000 --- a/docs/services/proxy/.gitignore +++ /dev/null @@ -1 +0,0 @@ -grpc.md diff --git a/docs/services/proxy/configuration.md b/docs/services/proxy/configuration.md deleted file mode 100644 index d8502d70cc..0000000000 --- a/docs/services/proxy/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/proxy -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/proxy-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/proxy_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/search/configuration.md b/docs/services/search/configuration.md deleted file mode 100644 index 1f3e17fc7d..0000000000 --- a/docs/services/search/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/search -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/search-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/search_configvars.md" >}} diff --git a/docs/services/settings/.gitignore b/docs/services/settings/.gitignore deleted file mode 100644 index 63536ebfa2..0000000000 --- a/docs/services/settings/.gitignore +++ /dev/null @@ -1 +0,0 @@ -grpc.md diff --git a/docs/services/settings/bundles.md b/docs/services/settings/bundles.md deleted file mode 100644 index 6771d4a9ee..0000000000 --- a/docs/services/settings/bundles.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "Settings Bundles" -date: 2020-05-04T00:00:00+00:00 -weight: 50 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/settings -geekdocFilePath: bundles.md ---- - -A **Settings Bundle** is a collection of settings, uniquely identified by the key of the -extension registering the bundle and the key of the bundle itself. Its purpose is to let -oCIS services define settings and make them available to users. They are dynamically -rendered into forms, available in the frontend. - -As of now we support five different types of settings: -- boolean -- integer -- string -- single choice list of integers or strings -- multiple choice list of integers or strings - -Each **Setting** is uniquely identified by a key within the bundle. Some attributes -depend on the chosen type of setting. Through the information provided with the -attributes of the setting, the settings frontend dynamically renders form elements, -allowing users to change their settings individually. - -## Example - -```json -{ - "identifier": { - "extension": "ocis-accounts", - "bundleKey": "profile" - }, - "displayName": "Profile", - "settings": [ - { - "settingKey": "lastname", - "displayName": "Lastname", - "description": "Input for lastname", - "stringValue": { - "placeholder": "Set lastname" - } - }, - { - "settingKey": "age", - "displayName": "Age", - "description": "Input for age", - "intValue": { - "min": "16", - "max": "200", - "step": "2", - "placeholder": "Set age" - } - }, - { - "settingKey": "timezone", - "displayName": "Timezone", - "description": "User timezone", - "singleChoiceValue": { - "options": [ - { - "stringValue": "Europe/Berlin", - "displayValue": "Europe/Berlin" - }, - { - "stringValue": "Asia/Kathmandu", - "displayValue": "Asia/Kathmandu" - } - ] - } - } - ] -} -``` diff --git a/docs/services/settings/configuration.md b/docs/services/settings/configuration.md deleted file mode 100644 index 8fb1b92b47..0000000000 --- a/docs/services/settings/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/settings -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/settings-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/settings_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/settings/glossary.md b/docs/services/settings/glossary.md deleted file mode 100644 index c849b8a080..0000000000 --- a/docs/services/settings/glossary.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Glossary" -date: 2020-05-04T12:35:00+01:00 -weight: 80 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/settings -geekdocFilePath: glossary.md ---- - -In the context of this extension and oCIS in general, we are using the following terminology. - -### Configuration - -- System configuration -- e.g. service host names and ports -- Changes need to be propagated to other services -- Typically modified on the CLI - -### Settings - -- Application level settings -- e.g. default language -- Can be modified at runtime without restarting the service - -### Preferences - -- User settings -- Subset of "Settings" -- e.g. preferred language of a user - -### Settings Bundle - -- Collection of related settings -- Registered by an oCIS extension - -### Settings Value - -- Manifestation of a setting for a specific user -- E.g. used for customization (at runtime) in `ocis-web` -- Can be queried and modified by other oCIS services diff --git a/docs/services/settings/values.md b/docs/services/settings/values.md deleted file mode 100644 index 53c1b16c90..0000000000 --- a/docs/services/settings/values.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: "Settings Values" -date: 2020-05-04T00:00:00+00:00 -weight: 51 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/settings -geekdocFilePath: values.md ---- - -A **Settings Value** is the value an authenticated user has chosen for a specific setting, defined in a -*settings bundle*. - -## Identifying settings values - -A *settings value* is uniquely identified by four attributes. Three of them are coming from the definition of -the setting within it's settings bundle (see [Settings Bundles]({{< ref "bundles" >}}) -for an example). The fourth identifies the user. -- extension: Key of the extension that registered the settings bundle, -- bundleKey: Key of the settings bundle, -- settingKey: Key of the setting as defined within the bundle, -- accountUuid: The UUID of the authenticated user who has saved the setting. - -{{< hint info >}} -When requests are going through `ocis-proxy`, the accountUuid attribute can be set to the static keyword `me` -instead of using a real UUID. `ocis-proxy` will take care of minting the UUID of the authenticated user into -a JWT, providing it in the HTTP header as `x-access-token`. That UUID is then used in this service, to replace -`me` with the actual UUID of the authenticated user. -{{< /hint >}} - -## Example of stored settings values - -```json -{ - "values": { - "language": { - "identifier": { - "extension": "ocis-accounts", - "bundleKey": "profile", - "settingKey": "language", - "accountUuid": "5681371f-4a6e-43bc-8bb5-9c9237fa9c58" - }, - "listValue": { - "values": [ - { - "stringValue": "de" - } - ] - } - }, - "timezone": { - "identifier": { - "extension": "ocis-accounts", - "bundleKey": "profile", - "settingKey": "timezone", - "accountUuid": "5681371f-4a6e-43bc-8bb5-9c9237fa9c58" - }, - "listValue": { - "values": [ - { - "stringValue": "Europe/Berlin" - } - ] - } - } - } -} -``` - -## gRPC endpoints -Services can use gRPC endpoints of the `ValueService` to query and modify *settings values*. -The gRPC endpoints require the same identifier attributes as described above, so for making a request to -the `ValueService` you will have to make sure that the accountUuid of the authenticated user is available in -your service at the time of the request. diff --git a/docs/services/sharing/_index.md b/docs/services/sharing/_index.md deleted file mode 100644 index ecdc21f5f4..0000000000 --- a/docs/services/sharing/_index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Sharing -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/sharing -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## Abstract - -This service implements the CS3 [LinkAPI](https://cs3org.github.io/cs3apis/#cs3.sharing.link.v1beta1.LinkAPI) to manage public links as well as the [CollaborationAPI](https://cs3org.github.io/cs3apis/#cs3.sharing.collaboration.v1beta1.CollaborationAPI) to manage user and group shares. - -## Table of Contents - -{{< toc-tree >}} diff --git a/docs/services/sharing/configuration.md b/docs/services/sharing/configuration.md deleted file mode 100644 index 21f7638805..0000000000 --- a/docs/services/sharing/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/sharing -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/sharing-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/sharing_configvars.md" >}} diff --git a/docs/services/sse/configuration.md b/docs/services/sse/configuration.md deleted file mode 100644 index 902a2b5529..0000000000 --- a/docs/services/sse/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-08-08T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/sse -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/app-provider-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/app-provider_configvars.md" >}} diff --git a/docs/services/storage-publiclink/_index.md b/docs/services/storage-publiclink/_index.md deleted file mode 100644 index 1a87d00b43..0000000000 --- a/docs/services/storage-publiclink/_index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Storage-Publiclink -date: 2022-03-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/storage-publiclink -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## Abstract - - -## Table of Contents - -{{< toc-tree >}} diff --git a/docs/services/storage-publiclink/configuration.md b/docs/services/storage-publiclink/configuration.md deleted file mode 100644 index 9c34ac21bd..0000000000 --- a/docs/services/storage-publiclink/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/storage-publiclink -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/storage-publiclink-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/storage-publiclink_configvars.md" >}} diff --git a/docs/services/storage-shares/_index.md b/docs/services/storage-shares/_index.md deleted file mode 100644 index 223ce0f6a3..0000000000 --- a/docs/services/storage-shares/_index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Storage-Shares -date: 2022-03-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/storage-shares -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## Abstract - - -## Table of Contents - -{{< toc-tree >}} diff --git a/docs/services/storage-shares/configuration.md b/docs/services/storage-shares/configuration.md deleted file mode 100644 index 068af4d7a5..0000000000 --- a/docs/services/storage-shares/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/storage-shares -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/storage-shares-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/storage-shares_configvars.md" >}} diff --git a/docs/services/storage-system/configuration.md b/docs/services/storage-system/configuration.md deleted file mode 100644 index 4e58119d61..0000000000 --- a/docs/services/storage-system/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/storage-system -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/storage-system-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/storage-system_configvars.md" >}} diff --git a/docs/services/storage-users/configuration.md b/docs/services/storage-users/configuration.md deleted file mode 100644 index 156fb3fda7..0000000000 --- a/docs/services/storage-users/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/storage-users -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/storage-users-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/storage-users_configvars.md" >}} diff --git a/docs/services/thumbnails/.gitignore b/docs/services/thumbnails/.gitignore deleted file mode 100644 index 63536ebfa2..0000000000 --- a/docs/services/thumbnails/.gitignore +++ /dev/null @@ -1 +0,0 @@ -grpc.md diff --git a/docs/services/thumbnails/configuration.md b/docs/services/thumbnails/configuration.md deleted file mode 100644 index 845255d096..0000000000 --- a/docs/services/thumbnails/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/thumbnails -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/thumbnails-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/thumbnails_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/userlog/configuration.md b/docs/services/userlog/configuration.md deleted file mode 100644 index 555962003c..0000000000 --- a/docs/services/userlog/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/userlog -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/userlog-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/userlog_configvars.md" >}} diff --git a/docs/services/users/_index.md b/docs/services/users/_index.md deleted file mode 100644 index 91f38a4986..0000000000 --- a/docs/services/users/_index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Users -date: 2022-03-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/users -geekdocFilePath: _index.md -geekdocCollapseSection: true ---- - -## Abstract - - -## Table of Contents - -{{< toc-tree >}} diff --git a/docs/services/users/configuration.md b/docs/services/users/configuration.md deleted file mode 100644 index 1f621a58d0..0000000000 --- a/docs/services/users/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/users -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/users-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/users_configvars.md" >}} diff --git a/docs/services/web/.gitignore b/docs/services/web/.gitignore deleted file mode 100644 index 63536ebfa2..0000000000 --- a/docs/services/web/.gitignore +++ /dev/null @@ -1 +0,0 @@ -grpc.md diff --git a/docs/services/web/configuration.md b/docs/services/web/configuration.md deleted file mode 100644 index e003438719..0000000000 --- a/docs/services/web/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/web -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/web-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/web_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/web/releasing.md b/docs/services/web/releasing.md deleted file mode 100644 index ac9be9f12f..0000000000 --- a/docs/services/web/releasing.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "Releasing" -weight: 40 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/web -geekdocFilePath: releasing.md ---- - -{{< toc >}} - -## Releasing - -The next generation Web Frontend is shipped as an oCIS Extension. The `ocis-web` extension is also embedded in the single binary and part of the `ocis server` command. - -To update this package within all the deliveries, we need to update the package in the following chain from the bottom to the top. - -### Package Hierarchy - -- [ocis](https://github.com/owncloud/ocis) - - [ocis-web](https://github.com/owncloud/ocis/tree/master/web) - - [ocis-pkg](https://github.com/owncloud/ocis/tree/master/ocis-pkg) - - [ownCloud Web](https://github.com/owncloud/web) - -#### Prerequisites - -Before updating the assets, make sure that [ownCloud Web](https://github.com/owncloud/web) has been released first -and take note of its release tag name. - -#### Updating ocis-web - -1. Create a branch `update-web-$version` in the [ocis repository](https://github.com/owncloud/ocis) -2. Change into web package folder via `cd web` -3. Inside `web/`, update the `Makefile` so that the WEB_ASSETS_VERSION variable references the currently released version of https://github.com/owncloud/web -4. Move to the changelog (`cd ../changelog/`) and add a changelog file to the `unreleased/` folder (You can copy an old web release changelog item as a template) -5. Move to the repo root (`cd ..`)and update the WEB_COMMITID in the `/.drone.env` file to the commit id from the released version (unless the existing commit id is already newer) -6. **Optional:** Test the changes locally by running `cd ocis && go run cmd/ocis/main.go server`, visiting [https://localhost:9200](https://localhost:9200) and confirming everything renders correctly -7. Commit your changes, push them and [create a PR](https://github.com/owncloud/ocis/pulls) diff --git a/docs/services/webdav/.gitignore b/docs/services/webdav/.gitignore deleted file mode 100644 index 63536ebfa2..0000000000 --- a/docs/services/webdav/.gitignore +++ /dev/null @@ -1 +0,0 @@ -grpc.md diff --git a/docs/services/webdav/configuration.md b/docs/services/webdav/configuration.md deleted file mode 100644 index 7e0f765b4e..0000000000 --- a/docs/services/webdav/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/webdav -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/webdav-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/webdav_configvars.md" >}} \ No newline at end of file diff --git a/docs/services/webfinger/configuration.md b/docs/services/webfinger/configuration.md deleted file mode 100644 index d2bcedef47..0000000000 --- a/docs/services/webfinger/configuration.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Service Configuration -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/owncloud/ocis -geekdocEditPath: edit/master/docs/services/webfinger -geekdocFilePath: configuration.md -geekdocCollapseSection: true ---- - -## Example YAML Config - -{{< include file="services/_includes/webfinger-config-example.yaml" language="yaml" >}} - -{{< include file="services/_includes/webfinger_configvars.md" >}} diff --git a/docs/templates/ADOC.tmpl b/docs/templates/ADOC.tmpl deleted file mode 100644 index 474649f183..0000000000 --- a/docs/templates/ADOC.tmpl +++ /dev/null @@ -1,60 +0,0 @@ -// set the attribute to true or leave empty, true without any quotes. -// if the generated adoc file is used outside tabs, it renders correctly depending on the attribute set. -// if inside, you need to also use the xxx_deprecation.adoc file. attributes can't be defined inside tabs. - -:show-deprecation: {{ .HasDeprecations }} - -ifeval::[{show-deprecation} == true] - -[#deprecation-note-{{ .Timestamp }}] -[caption=] -.Deprecation notes for the {{ .ExtensionName }} service -[width="100%",cols="~,~,~,~",options="header"] -|=== -| Deprecation Info -| Deprecation Version -| Removal Version -| Deprecation Replacement - -{{- range .Deprecations }} - -| {{ .DeprecationInfo }} -| {{ .DeprecationVersion }} -| {{ .RemovalVersion }} -| {{ .DeprecationReplacement }} -{{- end }} -|=== - -{empty} + - -endif::[] - -[caption=] -.Environment variables for the {{ .ExtensionName }} service -[width="100%",cols="~,~,~,~,~",options="header"] -|=== -| Name -| IV -| Type -| Default Value -| Description - -{{- range .Fields}} - -a| {{- range $i, $value := .EnvVars }}{{- if $i }} + -{{ end -}} -`{{- $value }}` -{{- end }} + -{{ .DeprecationLink }} -a| [subs=-attributes] -++{{.IntroductionVersion}} ++ -a| [subs=-attributes] -++{{.Type}} ++ -a| [subs=-attributes] -++{{.DefaultValue}} ++ -a| [subs=-attributes] -{{.Description}} - -{{- end }} -|=== - diff --git a/docs/templates/ADOC_deprecation.tmpl b/docs/templates/ADOC_deprecation.tmpl deleted file mode 100644 index fd340a8f0b..0000000000 --- a/docs/templates/ADOC_deprecation.tmpl +++ /dev/null @@ -1,2 +0,0 @@ -:show-deprecation: {{ .HasDeprecations }} - diff --git a/docs/templates/ADOC_extended.tmpl b/docs/templates/ADOC_extended.tmpl deleted file mode 100644 index 829570039b..0000000000 --- a/docs/templates/ADOC_extended.tmpl +++ /dev/null @@ -1,26 +0,0 @@ -// collected through docs/helpers/extendedEnv.go - -[caption=] -.Environment variables with extended scope not included in a service -[width="100%",cols="35%,10%,18%,~"",options="header"] -|=== -| Name -| Type -| Default Value -| Description -{{- range .Variables}} - -{{- if .Ignore }} - {{ continue }} -{{- end }} - -a| `{{- .Name }}` + -a| [subs=-attributes] -++{{ .Type }} ++ -a| [subs=-attributes] -++{{.DefaultValue}} ++ -a| [subs=-attributes] -++{{.Description}} ++ - -{{- end }} -|=== diff --git a/docs/templates/ADOC_global.tmpl b/docs/templates/ADOC_global.tmpl deleted file mode 100644 index 0e779a5fca..0000000000 --- a/docs/templates/ADOC_global.tmpl +++ /dev/null @@ -1,35 +0,0 @@ -// collected through docs/helpers/adoc-generator.go.tmpl - -[.landscape] -[caption=] -.Environment variables with global scope available in multiple services -[width="100%",cols="30%,~,25%,~,~,~",options="header"] -|=== -| Name -| IV -| Services -| Type -| Default Value -| Description -{{ range . }} -a| `{{ .Name }}` - -a| [subs=-attributes] -++{{ .IntroductionVersion }} ++ - -a| [subs=attributes+] -{{- range .Services}} -* xref:{s-path}/{{ . }}.adoc[{{ . }}] + -{{- end }} - -a| [subs=-attributes] -++{{ .Type }} ++ - -a| [subs=-attributes] -++{{ .DefaultValue }} ++ - -a| [subs=-attributes] -{{ .Description }} - -{{- end }} -|=== diff --git a/docs/templates/CONFIGURATION.tmpl b/docs/templates/CONFIGURATION.tmpl deleted file mode 100644 index ffa87ae79d..0000000000 --- a/docs/templates/CONFIGURATION.tmpl +++ /dev/null @@ -1,7 +0,0 @@ -## Environment Variables - -| Name | Type | Default Value | Description | -|------|------|---------------|-------------| -{{- range .}} -| {{.Name}} | {{.Type}} | {{.DefaultValue}} | {{.Description}}| -{{- end }} \ No newline at end of file diff --git a/docs/ocis/development/testing.md b/tests/README.md similarity index 96% rename from docs/ocis/development/testing.md rename to tests/README.md index aa73d2f015..219b326f0b 100644 --- a/docs/ocis/development/testing.md +++ b/tests/README.md @@ -1,13 +1,4 @@ ---- -title: "Acceptance Testing" -date: 2018-05-02T00:00:00+00:00 -weight: 20 -geekdocRepo: https://github.com/opencloud-eu/opencloud -geekdocEditPath: edit/master/docs/opencloud/development -geekdocFilePath: testing.md ---- - -{{< toc >}} +# Acceptance Testing To run tests in the test suite you have two options. You may go the easy way and just run the test suite in docker. But for some tasks you could also need to install the test suite natively, which requires a little more setup since PHP and some dependencies need to be installed. @@ -57,7 +48,7 @@ make -C tests/acceptance/docker localApiTests-apiGraph-s3ng runs the OpenCloud test suite `apiGraph` against the OpenCloud server with `s3ng` storage. -{{< hint info >}} +Note: While running the tests, OpenCloud server is started with [ocwrapper](https://github.com/opencloud-eu/opencloud/blob/master/tests/ocwrapper/README.md) (i.e. `WITH_WRAPPER=true`) by default. In order to run the tests without ocwrapper, provide `WITH_WRAPPER=false` when running the tests. For example: ```bash @@ -67,9 +58,8 @@ make -C tests/acceptance/docker test-opencloud-feature-ocis-storage ``` But some test suites that are tagged with `@env-config` require the OpenCloud server to be run with ocwrapper. So, running those tests require `WITH_WRAPPER=true` (default setting). -{{< /hint >}} -{{< hint info >}} +Note: To run the tests that require an email server (tests tagged with `@email`), you need to provide `START_EMAIL=true` while running the tests. ```bash @@ -78,9 +68,7 @@ BEHAT_FEATURE='tests/acceptance/features/apiNotification/emailNotification.featu make -C tests/acceptance/docker test-opencloud-feature-ocis-storage ``` -{{< /hint >}} - -{{< hint info >}} +Note: To run the tests that require tika service (tests tagged with `@tikaServiceNeeded`), you need to provide `START_TIKA=true` while running the tests. ```bash @@ -89,9 +77,7 @@ BEHAT_FEATURE='tests/acceptance/features/apiSearchContent/contentSearch.feature' make -C tests/acceptance/docker test-opencloud-feature-ocis-storage ``` -{{< /hint >}} - -{{< hint info >}} +Note: To run the tests that require an antivirus service (tests tagged with `@antivirus`), you need to provide the following environment variables while running the tests. ```bash @@ -103,8 +89,6 @@ BEHAT_FEATURE='tests/acceptance/features/apiAntivirus/antivirus.feature' \ make -C tests/acceptance/docker test-opencloud-feature-ocis-storage ``` -{{< /hint >}} - #### Tests Transferred From Core (prefix `coreApi`) Command `make -C tests/acceptance/docker Core-API-Tests-ocis-storage-3` runs the same tests as the `Core-API-Tests-ocis-storage-3` CI pipeline, which runs the third (out of ten) test suite groups transferred from core against the OpenCloud server with `ocis` storage. @@ -122,15 +106,13 @@ BEHAT_FEATURE='tests/acceptance/features/apiGraphUserGroup/createUser.feature' \ make -C tests/acceptance/docker test-opencloud-feature-ocis-storage ``` -{{< hint info >}} +Note: `BEHAT_FEATURE` must be pointing to a valid feature file -{{< /hint >}} And to run a single scenario in a feature, you can do: -{{< hint info >}} +Note: A specific scenario from a feature can be run by adding `:` at the end of the feature file path. For example, to run the scenario at line 26 of the feature file `apiGraphUserGroup/createUser.feature`, simply add the line number like this: `apiGraphUserGroup/createUser.feature:26`. Note that the line numbers mentioned in the examples might not always point to a scenario, so always check the line numbers before running the test. -{{< /hint >}} ```bash BEHAT_FEATURE='tests/acceptance/features/apiGraphUserGroup/createUser.feature:26' \ @@ -161,9 +143,8 @@ BEHAT_FEATURE='tests/acceptance/features/coreApiAuth/webDavAuth.feature:15' \ make -C tests/acceptance/docker test-core-feature-ocis-storage ``` -{{< hint info >}} +Note: The test suites transferred from core have `coreApi` prefixed -{{< /hint >}} ### OpenCloud Image to Be Tested (Skip Local Image Build) @@ -182,9 +163,8 @@ While a test is running or when it is finished, you can attach to the logs gener make -C tests/acceptance/docker show-test-logs ``` -{{< hint info >}} +Note: The log output is opened in `less`. You can navigate up and down with your cursors. By pressing "F" you can follow the latest line of the output. -{{< /hint >}} ### Cleanup @@ -225,9 +205,8 @@ Useful environment variables: `BEHAT_FEATURE`: to run a single feature -{{< hint info >}} +Note: A specific scenario from a feature can be run by adding `:` at the end of the feature file path. For example, to run the scenario at line 26 of the feature file `apiGraphUserGroup/createUser.feature`, simply add the line number like this: `apiGraphUserGroup/createUser.feature:26`. Note that the line numbers mentioned in the examples might not always point to a scenario, so always check the line numbers before running the test. -{{< /hint >}} > Example: > @@ -438,9 +417,8 @@ Make sure that the clamAV daemon is up and running sudo service clamav-daemon status ``` -{{< hint info >}} +Note: The commands are ubuntu specific and may differ according to your system. You can find information related to installation of clamAV in their official documentation [here](https://docs.clamav.net/manual/Installing/Packages.html). -{{< /hint>}} ##### Mac OS user @@ -486,13 +464,12 @@ OC_ADD_RUN_SERVICES="antivirus" opencloud/bin/opencloud server ``` -{{< hint info >}} +Note: The value for `ANTIVIRUS_CLAMAV_SOCKET` is an example which needs adaption according your OS. For antivirus running localy on Linux OS, use `ANTIVIRUS_CLAMAV_SOCKET= "/var/run/clamav/clamd.ctl"`. For antivirus running localy on Mac OS, use `ANTIVIRUS_CLAMAV_SOCKET= "/tmp/clamd.socket"`. For antivirus running with docker, use `ANTIVIRUS_CLAMAV_SOCKET= "tcp://host.docker.internal:3310"` -{{< /hint>}} #### Run the Acceptance Test @@ -551,11 +528,10 @@ opencloud/bin/opencloud server The second OpenCloud instance should be available at: https://localhost:10200/ -{{< hint info >}} +Note: To enable ocm in the web interface, you need to set the following envs: `OC_ENABLE_OCM="true"` `OC_ADD_RUN_SERVICES="ocm"` -{{< /hint>}} #### Run the Acceptance Test
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�NlR8 z_yx)vb#vZQ#aKk>k87N@(ec!%fk%Ui2ISqv@plHX@2411-`9= z?4EhKFoT+|(WUXp8oz5edGfp#e`%PFwTSk(0)jf*f$%|Y+1Ny>diUwkOz-=FMwRTZ zsRyypzHI3NXVwgJ44{O3gJa2pItUa?(|_`K@F_`C*iHa7*K*(+A;jO{m|(}}2*2ZK zWiynlzP4OVC$3gZrj+Om;(;(O2Bj!AX84P( z^19$qhfHBkRG9dek0-X#SYU+zsJNT{rLCt7-lreD&S{K&BF{YN16oUg6TTN^CKZGJ zgaMysEaSdnYo9GPgQh)%0a*@B7)xZKS&AHiHYU_^(d zrinHQn}-zLSRweN9ypKM>h-MtVzRisBQ8yAll+O0B`LEsn2*zuFkVR%;p-NxtkLv( z?4|%+P^Ct_GZa*D>ma_f)jB+S`+V45Lx0i)1l89R&#NeZHV272C6m4(eP=sZp4y0c z^fK4zIV9nXTkqBDJ6v6yXa7811)@@=su?53#BP5;wJdWb{+)30qnL+Th7HazTWzm? zIMRhr@S@d!bcWUXzMc3-th1@??)}6(RHqk1H2Shpu>4$~f7e3L6*S*{Q~%o|)lVs> zp+^jLOwe7`6CQc- zygX5X`^h49?Ejbrz^!?)-A|UDDP>Q9E;MxRQOI5HV$ZMYN43QNS~FVs+602{s-~ae zKSs^*DK5$r^x5eifv{FuC;tM%<8y-z+qP`nO|hEkxiGIK4v{pI;A1Ke?S$t&KrlGULG&Ba zbuFqljDny@u=LE6#T3b{vlPiXZ;w@uhg*SJHr6#&f}-{kInYXR zTkD|)Ey0$inaQq9ybR)ZHq4#wthhb6kDvQ_2Zvfem;!WLSiWu(N&J}Xnj*ESBCVlP z;j(e(AYQ(+sern+d~5?SP{v->F0Rdfmdb8xA2BA^pz%r1U66a7wDrkljxK1gBO;ur z8w|Bx-SfjmsE1n~bOzlMF8y5YAt<7oe?Jr=DgOP>{hgjaWT*%O@utrI6h1`*5>+@! z@xAFomR=s<(zOG%I*-BzTtt6~AfIO(l!RdM1MGQTCZ5^roL(yQjm-^~Pt;`qp%CTwL{>B5> z$uI1|)BOOjN7pztGwdV6c4I*t+GhFA6Fg(3N{P8|JL9y@-basrl5dCssnQauZGPEG$Yi5G5egqQdC>9*Pmv9Y~;!s5*iXH-BST? zlCGRdH48I9x^hw|!y7-8ON zYM9LZR~w@b?MM&7@EYy4g6~#tB{|s8$LA}b%^R{^4q4F=6o7h9r+>xgAp54s&!Ot{ zYX!Bg;W5{iba)>e>N27{dY2klm?5IJ7 z^IIc-KGRar`NCTauZ_MH{9d8Fo)jdp?|%Sy4+>GLbqrm z1zuCCIQy1Na;q`9mSgcKHUoX>wx*Zs&GZ}Cg5fh)2xyX z=!Wir8jV-SDK-~db{+GQM92ik+I~XlwyJa4z!Svvu3uZeR)p*l9}AXxUnc%WPAkFZ z=KO~GN05xOWc!qP_PmF~oUj@%>r-3Al%~g7>XxL-!$u6`J4yfk(53O+TKbdhkg^Lz zme$b`IB{uRo+6khCEev1d|;zJw*V>%`ro8e({oW6Yj8gG-`KMvkm`70m3iw#(MB2! zh~#EOzRR7D*ONVq$2i1ydx>BR8k@Sa!fcg9qpyz+2pmbe` zFlOL*p_BVEwxM0mSkr>V)k+N8BJkq(Lg6A2^K+FRO-Z37b{KuiBkxhv&sc~Sk=wmZ zU$dyZfO&87VYu3I_jj1yvnE12s)Jav4~zaf*2N&qF9)~~^}WBJMo04@Fs9(8C~NT9 z6@no5TS#isI&}+2BfSdqo9Pky-KDk@xSiOQXOErQE|NUnhO;ib{ck|)( z68?v4N#XzfNSF>Xer80Yr3b#HrfSr!HmZs!yd;zWPHWN);w)`R!~DL?!N|C0lMf3S zG>wtNj&;H z^R7X?fhp~wl3*(_$yMA0C9J#glML4{5F;P0SN3r;jC+=6;w_@@*{Kq5ewzjz9~e0Q zj+VB}9jvo8|0B`TF9%xBmyfIz*Cv37iR{mG^&t^xc27fM+C$AHUtu#Q89}FU;KL&Y z3}o;gsvBLI1W+V9HZzAAF2t++4NekrP^XDeS!x}YZ`bQIG);TgtH~2NN{{o+$QcsZ z=PAt^7gK_l#VXSYKWo^p_Jrss`0Z|JSa$O6N{mD#$w=RPX%K06khj3;tpZPBMvbyPStN>S-66N&LcT?WEo5tBi z{54SDgQA%1;q46x0%_4#Io$Z<(VX~o`^cG$V&atGNZMYJ?;Veg{aB>XGA0RY-Kgg`# zfj?!}bX^>1zyrHwR7MN+R7pSS4n!6w+`~hWA@8JaBzE%~cApM))Ha?!e>^JS%L9me zqA?#_Ta&wF4=Z7vjy2;C|9r(9U5U7#o8u^n#h5t%=u`j?V;BC3Z7G+3zNcFL!r2L{ zWveIn$cjx>?f?n?fHtJP9RW?ep62X?7iB?jKm~^a{<-Z~>nvkGs6_^5oyrbPw_ z9VnYK@C3d^ehP%`xZ?clU7o05f|4t?NsQ=?G;C7fUnM0r;*>ESf@^N5^Rq|JVY?ju zPRRj&_z&Vl##Ua~{f^S0cug-}QJ3p`v!Q_GncNPKCvy+B5@orQBjS}-L+TIPDd?~M z|2C-c4|JD1o-Uz^H6mB?;KyIAzG%TFUz_*~mrr15o8YBQ(*iUl@8p^aX~fL0iQ>m+ z6}j@Nw@=ZLR>g5})&9!pl34>)ZOBr0JRh}_yQ_T0R?^iryK>*HE!+1{d;OSm^DE&> zZ4H6+!{(i+H+JYtx;%>7kRrAvZoo{unc8RWLY-O`& zC-V_eVlM^Wk|Cawf>LR)#y7W3w@#GEV<>J}xKYBgxh9MX2dTvSX75AQOPT5>H=Bqp z>XW7mj@Gx$v*A>^Ga+ITQeDE$t)U3evbb4K^@$`^HBP&kI-JXEmSCZsGmj*BOsqsd zMa*-me#5{wKhwh3EG2ZwzuIM+x>143uY9*R1zLbEG)kgSO&Iog%CL8-v_|L_Dc?{d z|7W^E{}xLK`@`&)Kp#z87o(@e)foHS1FjS>@)01M-ZSg8@ZH7f>UOA@obv`}p%$mR zcKp8)LPS0%Ye?8faxm~ZMtt9>L_C)36=Cy8dtSh=jNrUu(2BwxM4&y zH}A|O8zYXaAN74Pp8Jj-I60y(z(vKNT=1+M#im4M;Z!hh~YKCfr80|OA^ z;f8LSG@c$f>8Uj@l{fSbANTF6aA;7!W~tGFRXJ0QJ!G&OpLab-WCeDQ2XBfMUwgBK zk99Y1?j9a&lJ0bgi@XzW_4D(cJSvacj3eVU?$bOE&2lWTByI1#GohlMiSgWY5+(ik z8e9|&B51=Nk2%dca9r5{?k+aOw`Hf{4VP3I<~)Q3`YVMFtUoK4IjB9gO~`N|df@+D zKbiHHV={S*w{8>SAd^aWx>@}yzbUV$wR}ITI*_VxI6xb=Xh>5B`^eNvFDE8TIyx}h zz5BPshBzNEu8%o(d9P6`%|6x>!CEa)b z5;z)--Dyc0EmeQ!G0A-gyA)ZWJ=Rs2W?{mbm@J_@Pt&`ir)JJYex&2=oVx(Va2zvI zl1T(>zUjUq*mK&4!_%}fjRw|d5&iFny{=QKS9@51&f3?Prid7{FQ*VSVD7wv$pE{S zJnpW!6_z9OR`_Mf7So(G1X2k(K^pvNM<2TEu2d_01yh`yV?6NeVl&br&L?$R+Mz0S zU5}~xc#pK+Zq8sYs-C_$6v2HMgfUd5z!ybe9d7uMzsuL|sV2lvcr|eMSg42(gU!@y zS#x&h@&ZWf#5|wu;VqS}gJVAlooxD~xxjbBTN*xsK0D`fV|YJ^%e5a8yl!dA398p- z0qlOBL#&C(d5wapA2|~f4Y=Q*SCN9BhKG2*)l596i`k_gxyC~6L~~kCmfnpv*tf2 z3S-lLA$sQF4BV1$rczYW>7%`&!Us|5Jt?U z<}buOVeY`kWB;nK^235Js!Bq`kup4Uiuo~))6K`u4e3v@s)zt2@oMU;T@TMkr)lK0 zumk|JYir1K1FZOlAD8m;=4c%LRSQyPz@Xy#yxN`^gg01S&21gB&|h5%(vcalF6C{W zY}p9cjOj0K&>Vv$fvzX7LkR+5owB9CHrAx+81yl}3{E!(@|AU^$}0+zoCwJ+wER-x z!M<@*^5eRtupObG(fB`G4!9!YZ>`PcRz$!feZKuIcxi>gyK64>fS;lW?`vt%^JE?* z{O5s_Y8Sy#2M_~)Ybx#{IH8-eG%Fh6Wv;xJ?OFcp^F#K)%wU)}jGohLCk5`-!|cQW z$s)E<#;{}%`lI;6YNvfrwEWsof{%@RjQoJEFIIuglQs*-wXBJBaTZLIRh^_kk^Ddyw1)dEOeKXjMd!}M?wP{-cZy) zixd*z5}U9Cb)~#8x0CXU*+EGZW6=N)gDK0_grscfVnUD2ERH8h|80QT`-y2J#-#(i zP{SSwI=0)wUJ+nJ{qOr23vt^<_z2cTF|cVj`=yuq=_3L%S)pfTn9Xuj7SsI?EW`pc zlDQxP(-e51+chwB@|?b;8ew$)n2|OD^$PTOJX;n6Ny|`}mQYa`2ydivP_CxOnV^jp*6hYv?XCz<3KzVA?62YoEN-jBSwR@stGn))Z1bsg_v_E zt+*_D2pejcH&o-6dY^6|PIn(6X`*pZfYwg$VomzXm<+p)^nEdir1uYSz}&}Y4WeiuNv&_~UkD-LlcZkn559~x zFI|qjqv0}YEylw}95$u7TuV{VseToWqh-{ra5dq8h&uYI93@mX#PS2le4Cd8SL;%i z9A@Y&)W`(TFqsimW>KQb98N`#Cg|26OEaZ=X^fExF}kn4re}Wgtq9C`R{PT9w4Ra= zupsnL|MyYNMK4u`wrGtvC zTSy8Oci{Vg#rfk^5Tf$et@qG&cy1~KQwK!phjvO9=;J>6J2KdF*MTSxqMZsXOo0he@ z_h=9X#@6WYTU1opbKa~V2GS@vqQ4S60*{RGpPVLZ2a9;jx!5H)HO}4dR{@1i7w*?x zo+3YwMmFGg!`9`yJHf~JIL#>R!p3?J&D!SH4jqWn>8{qESn9}nOb*2i)q*qfcz*3o z5kmssJ+G{|gUKg?{}o0-+U^F4Co*#BW~7b=Hz-YoUxj|=SMcR{N^2IPSDV=ePNHS; zl{|uL+I*DA`}o2AoY(h0B~s~24(>bUJ5QF;J8_mK@VP+!c_^ahWci&r7+m?E1`cgw zXB{%uv9(4zv~`Ya3Wm#yw%C#?TZ~0QCj=?e-Gb$ycux*G$IeCrY+I2W2=*W;$-lLH zJpaL_+mi5=o5boe-mW~O;WBD1@tGFdmVck4rQ`(J6SONMek`z(LX?(Kbtz|n49jT) z*E6KVED*I(t1}WsCv++O6pal@Le2_}5`zL$16?G1@5Cp_w#QE;F84F~2d4+36m@i1 zaXBN+My{F$h)p7>E<89I4CO}zo3DZ#d8EJelIqv%o*losR$NLi57MjO0Q@FhJ6pK@ zWezA_a$NOMX2|smrLcpcM;HjO%HE-s+0{XJimPt=0Nyc$;P%Lw_@ugz;kQPsAPP~9cE52>TOOhxIa~h zg6>QcrX~H_ZN<99=f&k^$)v)Q2M8IZWufU!4z#rB7oNo9pI~_?hOqEDSKtew`nLt?vKiRHx-P^B}@(u2Q3c zHvM`nF49N3ajE?E7jic&cq{*@6mP-Wnwvy!r5RLCnOWY$VbmaENx-HW#!^V_e6L#O zJGK(y+vn*lZL?+}VQV$g8M*DR{bwMrWB*^(!&V--P*qZic+*~f?weX2(1>Om{|LIXbmq2<|NWu^R&8}5*c(#=y0k2J2f7tH#X8y?>Lh zUp5dQ!du0Zy3R_~KU^}AlP^?yZW>Uaq`O`BZdFGG_)X4x)n1!yqAo&AU%`cG+1oBh zf?M12^E}Kc)fO#mb(KLD(I8lfIizQ^W$)}|=C^zc2rDrH9iH2chsgq()-NJ0aM#4`<08l`$zh@}HT)eP_e;oaNV~y`E+EamM!jtWuufHxPY9|BM1d8#`DhbqQ z7|#5mq=IH?@Xg;HG}Q-^DE;iI1+hbYYrr3vCM}W?S$}>sL83!4y)u=CewdzG)H#eGcya^R>i76Mr-+j5r>8IH;!lp%XQRrs!9^%ni&;fsfF07N;(; zEfD>8><3Trx22o7Y=VN?&3Nx+a(Y-1a~~Xq`TYA^rsr0ue|04dqTGTd@iVN%E(-B?rwP>kvypU7`vH1ULv}!c)f~>UQ zzG#5AgR{+dYf)W!f5mb>G_fx|g+?u)IQya{^mh|xe)JN~} zRxyJ5{$J(g;g2{wo<^C7kVug(3{?=Vhn4+0X^wvQJmLl29_v6hc%lU?CP!9j)MIvhNJ00Hkf zBOmz52!yObX{>emZMNv)w*D@C%;|p_#|3%YWa(ux7`jKtc#(I@xEaP(^yqb>&-47Q zCDW%~8Ob5IiZhK{GXH1=T$#PiXulx?)8n)VkR{0XAhT>)3^krvus_XY82n}%dm?I! z5PVe3nOH7y@sLS<8my0RbXUxZ!u=#_p^$!I7TW!TfYR}so-JIuzemA~pQ%PsDp0UZ zC}rs_Z&;*l7%qc`940u^Cg&B$VsI@#|A(Bv=1>s?dYHK;5j-RR-R=))Lwdc4OhkglI^;$H%A74!~bX~e;8-9=!;y0_~!JDfR*;uWfVDFj0H`6 z5uxf*y$#(+O$B;-TXei11&|uJIPkM3Me$ge31IIRZ-Frs0?a%t?nCH3ubOzJuQ&F5 zACqHHfWt=?Z?70~Yg*zT63>;@?|~yYI5V)M%LyvCpxcEewi;0X0cTpEJ+WSZ?0lcQ zD;$&%R~fR)#7@)6l|u*_^?d-?yukk5+6gl_G{+MQqn68|u}RL`yWs3;V7>q`g}R8bRb6Jt<|4qnJb z>wt8jC*KpnS zDSs@2!Tmv;rNnp)$MS4ED#?nteVrD|(B<|RVK?*Je@F_!$dkw->daJtA{>wtZdK{k zk-%Ga>Os4mo7qc9C8WgF{e%5O>t4@rQJf_+f5s5}n>Cpvn0{GLLx7{*_ih~^2$|9& zXVHI|X)38iz)$DY@u!3Rz)^8!aBl@(b#W#KuQY7Atz=%}?k4@8Q~Ug0xd@bDpb*MW zxFD;I5kH-o@4ndzibdwTxFumJ;3>bF~?` zNhy_t^oNF*WdnX{=*4{fU9PeH)JG#l^Xf-ABGyXw_?T%|zoyu`Hx~})%vAN?oXGIv z*Q=={RlQw)_s1ZOeG>@Q(n1<0IVT zh+Zk7m4vp%YP@>|&es6W`i{qy>8F~0<%*q6`f02Gl~Z!(sYRKQbq&7~UPg}BK9-fM z>st|k9K!n@*S9I=kiebxX4{qNF~a|~L2X53Nq$vrfa+KPb}T|7csnQ~?BQU#PuVLy zbETX$6DUioqVnaEWMpgdpp$)&tl8V_G5ONuh$98oNgN80{%QKrpP9Vl$6g6BOpJGZxnvV6=MD^RATS9kODMC z6OGJXd?1?OF~fTE4O4@!6As2m|6BFRLYpZ*x#?V2rB6h$!xR&|d0=6+dhFQ6Vtd?c z=C~9_oLI1|XhQ0dlbiRuqI}|*ag2N6ZFKNW_?Ofz{_nI4&ZO9{=sIOn4=)KErTwI#+F>VfW$*_R*zS zZV~A`?~+n{std_c);M^#&I?%{P2V+2Y0BRzfJRtfpm})y7?ITS-p-AAs($AdFfK&C zHQqlv&!N3ZxvfF6q3g}5Obvi6d+>wJ2-BB)N{)4i^X0$VZXbWMkSiaPO4}BfJ^ENu zR){0)2g+;EYLyf52H-0NX-O2^xzo6rpGS-`z#Jo!n9%IeiSCI-ab0rq!IU=$?^tqj zBA3mm;>dDOH{Hf_X44b6y+D&oHM`%G=etNvXw8_NvcPT8xencQBNfb8%%-w*a4j)f zbQ9u}!_erDx|G{kc^?s3a7>-?pedNvpiy$?>wog7EFz=3`6bHvRVO%xn#W(MbTvQv zN~jlF%i^Am?Pp2E3GvV{qN!-&VC>rISx(C$HD_!FP-1a{e$TAF_X#wV-X2$NIn_?} zE23oZ0U+DrIK%?Oo) zMdBpacDWF%!(&IZ$4D^X_05HxVK>NFyaI)w-TWDWzIHs=0rYVzCbn29QvdbCeuO?$ zDJo_$gY|?_Ty)u$;@IyLVSW*D4)`N;XORgCq)RTSXl}|Zse8TX7o4~rW^n%?GMFpT zE8#CY)|ehddmVkPNOmO25`q!u%Ta`&ocKCW_fr~+4q`l=SqLFbg81*agAbnVp=*D0Iz zAy`>;a%qqGfWTO`sWAO;kO!utxy)SrIq zah#gr8T9zJ`T5}-0zXarj6}_EsTsO@z&RIB7tpI|X;k*|Q!gY_hqBz1BP^*O>FBug z_^2tIYbz1$p?3LFD_X(iA_Aa}2@& zI=#}YQIuy6m`CCslFjsd?ea2uR~6+jL3X0<5==Wc0xz^|w2!5)y|7l+BbA%(y|7Kj zkHtEWkay{95A8^rR3;HB?-Y_`U2Q{xCuNaskn zj$zm|Ne2XknZZn2FI4Wbi-_@S$D`C9w_CIh+)#A8{%-203d_=|i8`Fw4(S)BZ-d9| zpx!n~i*uTVJ)iNtnnv-&Y|e4GY$VoCBo}QlzR&_Fdi>vv1RC22E~g-tDZ`UhX*_(4 z{*mY00?0`kA$L8Ir0ARz>u-Evp*l~YPY>f%0^HQn!YW|2wBjW_0qsf~`2r+k@JLa6 z1rD1wJkBY;=?s*&)p8nX`;fY0Ns`nN;kuqOEe@lH^HX<8feD z4I){lgI!2D36UuH^0Xkj&EI1|twWYFj=iyZGj^kr9<%zAhE6^;`kwdGSyn0G>xDUl61mh9!3Kme(fEj!&Gwpw-fxCxvk zI@+PM8#eLwyn~Q6PWqq4&f9fk-6-FfiJ%xe8tj~AA7U=DS_HVU6r`0KOAo0C-vE}b*OYv8Wi&ot#LZ=0 zbrTV8@TM*y?TJ(U$r-2axT`o!EeouD@w!oWab52|jKG@;MPUr{*Yi?(WGAe8>vC6w z_VICjSLZ0Ey#wZWZ}l9qm;iRgGfb&RM}X{mB!~&a3OyQ zV;zl9{oS5*QkZJJNT#UaWh=BDo^`7{2-7gj_}6Slwj+3RTZD{KvU$jwrBUUYcM!QA zQEiH^Y7_x5CS-=E17vif55M^pT77N9uK|JZVUQJZQHVA>yLiR{p~ke)#EJ!Heuz}z#-;PKsGw6$0RU|0V#inJ~1*eNaNy? zeHXP)p4YuL%Xr=|cdG`xB8!y;@B4Pf*Z^oVUl*XsyrAph0g?x=Rm0$~wvjT|P5N)P zLF*Drqx6cy`w3t35YVU-pP|=ZgWzo|5W%`vK*p#S#rFC9tTqhtGD^JXW=N9^^G6P<|~Uxd~dPr#@{a;ooy&WZznbL)X8#R3fN9Vo&dAiw8wF?4+7LeC#{Yd z|1iN4bc*=hsZfFTo4<_FiwRSsVclMMo*QbbuE&ee-*m=rnN<2cMK^AMvKSYqW3!SPq;1#Il;xhB2(Pt z%HSHT)T_bvVGD%u57mEq+x>n=?iUOUwtWUQcN8udGw0B{D#d?jR0*wq>FSY@M z`I|2J%HiWv2{zs16;bQfUUUC@2P9M{@o8Q;XxCqKBK`%Q?Q%sR;|lJ<9?Mbt2yJkp zx>j%wBJlQq|LpybFZC?b>lMUY8Mhn=$>&{lr_<(9kaYiV8NwF4Cu5b_-$;JD(n-oS zv^wt4^}j^HqP%QrP+u)|nJ{bLO#8}c5Z7NKTdV@cikW#6CP)e*!i4v80K|Jq0h;xekv!?=%6;^8+zpWB?hn-`QT)xckf_U+geQSKb&0yZs~KIKZ={0A*(g zjOEzzbCEBF>R0lR+pF6G&SrEvD-MPR7o1;pt8oRF(h=>ZoGn3H27g2DC(DM zEBdV1T~bPcY1^3nAdPr$x!vQ#EaRot-5u2vGf&_!XtqD^1=NM!4Eeae+iwt_oBl@M zlQp*^(cg3@Mhf?KMNEKR^B$_;cZs=?H$+AYfsw}EDsd>l^A%9Jak)T7@oT(26c@8pYEDKESvsA zg`3d<05$NU;M5l#*@AG>er2A0qr^}rD> z0kbwQBwP7mNjTjJU3u7_e){X0iIwZ=V_-T^4k$SfAxTKT{cnkHj7x}t+X$$C_lBWbgM7JXy*e~4u2T1Wfn=DXF6@29D*i5@vGKz z1%GqiG~=$+f8fQ(H&QCA!XQ$qYM*YND$gmPN$0!(+R!^&40*Gai>{*8-Z#;hCdINd%CO67!cy0Z-E58+LMyJ2xbMI|5bY_E&)u#>sPJ4c@m`u}mJFy(Kuu)i& z`SWv-_SWM9O({k%~p+xU&zS zjTsLq!$obROyG#aaf!C}<4sKTl~;J2wlXxQUpXQkoT z7Xhd$J_3Zl7?d+f^2E^#!3cWUJI6(sa2PbZu3|Ubib923qk+Yv3`CZ4^pz%?{JDF;Kh?_B%gZJM zCQSp-sLAqEe|`eBrFBOwsnE}Ai9znVKMW^O>e6C`g*TI|{;8Kfr4zeX{Q(rsSsXQf zc7^{2lqCLpBlSypbniT|smy8F+|XMa?1xEgoJ&sfy1|J~b}s*GX};j!Nc^8gq3R|s zY3_d0A!j>Z{>@lUCo~9XN9EpmZCKBj%b7gwYuTwFz;ve~)Rv(SLd;D+5xA)F_&hd} z3M#2QpaMtZ=BP`jiC)2x0#UI2OiXOUx(6i;h5^`8t%e59A7{jZjR>3DHW`>g3%TJr7%sY%S;`4$sgv-h5G zNUwXB2-@d|He8$x2f&UR%gv_fMU$oNC#x!5h2|BCo>Q_BNodvqXzRQ)Ij_U4`ev%~ zNoX!D+`gwO-%~~un<+MH!Xr#~6kO4N0cRUp%yGM={&DVR7c%f@Lx}I4CN;<5OrydM zL-VgB{UU#M2yT=3q-28nK7Nc$%&ZDaDyc)m_}aOuY~P3m3?G>~E4~aF6@sF+mRC=z zokja{!exYsEAfE9?y3Beh-R@m7{Z?fh|6_7L=2mhbkiUk7OvW)^$7j9%thJUZK6?2 zpgNtlLk{_HYcj|1`v*BKh>XBx`Hengc>uS#G0ftp!ERI=QD_ewd>g3{&fR%8;DlyJ zt6A(MpNp3Hev{CfD&%0+#dFZ(*_&azl0B{2DhDNuzv^Z+vTpu$yXIx`oI%XpDrBGf z?N&p5||%mrH|WtIV$P!JDJ0G*_`t$%bKw z?BjptOIIQQVj<3ec`?ma)_P^Y?~H?PU|*B8fg&8PL~@B&N-bX+O%8F2vjO)TZuP%4 zUyFtNFwCZVyx)imi=x&KvHl2^f79R4a<*q%iG}2;PVOP^W?)CR68^!>38&*!g4bkQRv zkL}f1n+VsRu5qCI%*2wHZctYc@ND~N4+Y->Trmc4p;=j}}6gl~jp| zY-ieML#!ZC5Sf9b3k9+dI+)-mpDQMu7sNrmE2 z9Y&JX8>EL@Kq1+Q{-f{=7N=MCvW0k9qyV^n7eh4g6=TA|e9pp_6W&8U4SJ}hDMAl; z1xmxhRr`ksj3y|S4|(>i^^YR&k_P{vQ|2^oq#G^8Y4I-UB_;GFcueHl6SkRSwSUj_zXZUT4o6r|bJG57RJ1r)|V-Iw`q? zAD2G!NkOMtFe_7VpJp?f;z)iD-j1vCpNRG~twvEaU6>z~+`^vFZB_wnk(|d37zD2% zsvQmB-%!-Vx@2U0hsR)O1=e4+}jV(zM&ObMUOrV`<=V78Mb13ZI()potewA}Ui7dUK z!rte5v;*7DL0@hTB;FRbA^-d?Tql=03s1*VYSERdC;XSynQ_zn4wb;lw^Zw}gOCh< z%R(LW=t;A2*sw&Y4E}+}1RhQlp|W05h=f|5PVr)BrK zkDY$3S~b7GePX5-fO|jgSx7cTxLytrUlvgnKzC6 zS}u|09^vxktC$-^8Z~y{bS|75ZbP(bL#_BeRIa$eu4xo3)i!`OvPW2j>)tp#VUWql zK5HffkzuVyqOL=LTNfsAJoly zlCY0r{*49*&pNS8kv=yW>KI1~v>n5PTg^g|#tlcV%VE4Zy zH4T5>F(tB94|}auAB6x|JlZioVY$h_|I#wg{42$xl;*`}w;*&o+!JIu$S7z9m>f&0 z_@)peyxQ1f&77*Q_5(=(MUp(Ay@ZA3J6*InR6G=hCllaMX z=g(=dIwM?XxT;GJ2SV_B6R}hrij|>VLQDx`Lzv5)q5TmAf#rs5@3%xd9!A9M-QmX< z5%wCymfH1Bd6kr;+84KGzla?AHO;1PWM7enCmKEEzjSVUg?Fx-&T0CZ?MjTBI4ofU zFIbJ8(^Y|uQ)^^M!6K&=+Kxph9}_5{4P1ba9792f_}C>tfL707@3LMa#e4<88O^@` zw8WqBBH)0J6H3;`p_&ax(R`ai4yZjtck<_`7bu!_-5dIKDg;lx;tG0i*Sq={(a^Lg z4j+=p`UGR0c=sjm4}DZoRj9uX?`}=429DJ!w})yp)b?YEgGLOU$%P8L%;CDEf1!=7 z4&E*Q{wn}csGIiF9pD&~O>s;5CN>O`*jm~}?w$flXxfCl zMXjtZnUL)}mVBN}9fKq`Z+|Vui2E{n5gZXb?+ZJv36CP9r}m+;@gRN@Dz<$GAr`%9 zmb-St5V>bOg4Mmzuy#RLObe+nw~x!)S?v-P0M!6lThh|gYFx98ewS`wa0bLH>$ z62FVicxn1emlGdf`iF!~vd_BeIS7hvS4ow|!z%B|@~lPp3{C09-!}+}2-nQvkye3H zR*RCU`7!_-G*|uk3W^na9z}bXhDlv`f)@TE<8C)Y7t;ybNkWn3ByHzkxYrc`#v(#X z*P!*|WikN(?M_6Oxc~<_K2GC@~{xzx%!;=u&XP;v+>n+-_4@ zZ{fhzC8J6OSx#>m%{~exgCHdg=3foJ(!nEc{CG)r)GzK{Ddk`H+<>qmmwpiqX~do~ zU}n(G-fHLSE6PJL`bUmJsXq!f+B+c(ZZv6_dfi<3}YuavpVt>87Rx zcv0Hxg<=god|zYF9a_R3y6de|3`eqtFNvgVDUXXh3A$cWu3(7Ry8Z>im1>(wF+&3e zCKw!4N9>@(J~PHEXyKWn;e_2Ch#BQ0j#a88=2d^Y*$SD2d#8ZBfrPSgGw#EDr>`w= z81`;DTH3W_)ar{PG#27kx}JPx%~!8^KNrrhPn8?n*-Z|c9KO1e(y=~-hV}j4FqG=BoR2~{pe)yUp_H#6M~1G}61D~f(u5;#D(LtYX7UY^^z;_AQ!kt8F~53$ zQ`p0Na~OLqe_OzJK#qnYM+gHy|NE{1>jpDn#$CRYZ2=?RyRUQ@<9sP|(m&Qrc1x*8 ztgX!L(x&f+l+BH#^bt>>1D&a#WP-$;h4TN0!e~X%VbV|JI92SIl}o@Ww%Fne(c*^3 z5m!Su{)F)J2?Zbe_i_F;J9C-uWmr4`ST$klJO5LyP%wJq=Od<^Tun;wh;K5r;V#?Q`7Fvz<&1ndg0NB=Fn?5T2iZ66!aDt{Zjg=S zZkA+J2eUNH13k67-RK_>x^L9Tpk+1l^u1e7*8!fyIfk_%W0PJakYRnpaC|X<>TmUX z-vj@B49MFK3UOn|(fz##@C81hDCskGO}je(z(kLKhBPGz!}hq5Js35WQHonm zkPh8?$Lc0C3YC8r0x$CG#Du?_S3-W;Vxhz)-dFK%Mc!k(+ z(47WVYL>a;1p-^n@W(u}FMl6#AeO=kHc$S#h4O{S{SZ|z5)yX)SB7k@pRB&+()A+e zP-h+RE3avB3MS=oQrInO{?eWL0a>W2rrC$IlsNR=&FwT{?PXupWG2?}fYnpw8;Y9+ z1%REuMILcnBf9-PV&C&xGys#x!E+c-b>@%6L=UoX{=o9*QTa3x{JYy(?_o)e7~g{#QIy4jGwQ;@&$)EEm8n(q2xlE?za3Uf`2dLrAjCT$uvCZiL4dayBi8 z6)+_B4Ullt9Hm?o% zBhs!XVCL1N2Y#4W(vgSS7ZnWlFI%R!9^^~<5+YZmI{HP!qYfm&AyUq6vYx1c@>D?6 zM0!=BPI_D#cHMq;kZg0$1i_WpU)+|seH|yBDygXd7}#hi5bB~r)bng(lcgS(AZR}Z zQuN`oXTpE~7IlSAFmHai`;cmlDOql~zpWZH@mVBR-hv@;8w7>MTc^RdU`eW~;iI6a z8-RQ@bi^Z)=pccxjAG-VN`8L+k|{#$4Ay&5dVuXB8iBngC}#y7x(Bd zp1ZKsu{G&NAE7PpH;FgjtCbMu%mXSkvTdCzx#IA@w@u-I9qK=MD_Ee!O?t;Y8XJd5 zE=rcFHhfc(5vfE0n9<#vj$AWpCEshS!>YRxcoIl*NXvH8er((8Dem9}()aYh&Zwc3?{|p)jobXr6(AJC3sC*%U61SMjg6 z>0b}2eBqxclH|tr2~eIe=-7Li)L$I48C(!4!;G>9wG zpGPL>^pJmIXP87Gqu_Z))DveRh|sEVAS5u#suyLE$14e?EY0_LNSil%&sgDC;t8a;Jgul_k%e{usG3GG<9T-Gno^67qejUt;&?o-~ z-=V-n{ii^?*QVqrG%TXax^MJuIPs4Q#qLNwjl#yMufh(9dlGIZ^g;sZ&+;Qu%sR`8 zY6+`Mj=7L^D)CuOSE3BTm62&P$OnGq+JHY+S3|WE!+d&_=RM@sgT$Pg{_QK6_g@gJ zk4%p7>&wUmMS(9t=57nK-PxD_@&{R3KDt(n$#!tjJB4*%#HOIKw0*Z0qq;1h8XisO zT1uaP;}=zs8%C!d>X@n9(Px#;Gn@q9!CgA{J3z5foPYjNHmZMSl=6Yo7^RzdS7s7q z5G@GO3W|_UQETFyRB-7Rv$`b0*tgH!!cgRD51hLQm>hQb`uZFAY8w3AIj25!8Uxd< zjmS?v2Hi-&@*=_T7D-^gDN!Z2)D_V=VdcyrtT^MYK;PlBVf6x3fyr|~kSxdKd#5Jo zk@1}VVjWz+tyc~>n1=jD@JaJ;N)C^c#=sNiO@Uk=NlVq|IB){G{c+FC?9SboRDEedV)qVZ`U{2mc@vkwwj{F9iMzX|5!0J6Ipk9q@&z z98{Du|E>Rb(SiDnYHrh~(*#%o4m?P4AI7$lZRHu{j>XIVZRe&-TA!08oc(=J4rPxWYx!d>f`4Nm7oO(_>Kn*U_lHorMcRz6i{1 zzP~(4ua7p9zhKQ=VfLo1?#AGfdmR?@-9F)(Jl)%Tn|*%F9KM>3px`H6V5mCKTUI=c z&zdErHmxjFTYQmpma|>#O)V{dH<*5c@WG+wIGiisJUhYzeYM{tZDrE|*(gVn<2TMH zO>(%Z{ge!6C4py8xPt8fr5jZ7K1cU0Q7lHj6 zl>dxZTy`}lyJ&+CkW2R@koG5Bd4@YmC$E5|Oth<1 zxXmRYi=lqp*L5?x4rBvgZ&gR~G+pq9#@MO3HW*!uclpf2PVn45tn5axS+Fxi+y)AV zEvP@q$Rc);uCw{3B;9JKMW>M;?q@#k+FxIu(8JEw0SA1^?1Pd=)OQ!b7b%UouMVY9 z)Q%ZLT=d_`5|f87iTjkI4IQ1EEsn~=82&!&7N#MdTn4BgWHXdF6V zHmg?Q?U|0?a^eLS@E;Bh3Ejcip2W2CscxQ_^(r)4AX)(PSUgSYOK45Lhxhe%fm>_! z9z;|*WtPYOL+SJV3>|sW=}onzWT^YIW!CUzMzDR%zdn|c$P=)b_2F=5E??Mnsn*On z%n_cjl+CKWse0c~q=IbJoc?PZ`_m+}TVHn@mM7^w*OukD9EE6_Jq`vHp*ViuV;%4m zh`G;DX^L*=bB5OmD>k8a3qZC2hIVCXHh+H`6u!xCrDp?0q7(aS+Vl;y2O_a^nE_Hkj(B-; z06877{ohWVc0bH?&9LyB`MJY?YhQ7;5bn{T!8z}FqNog z(ALFI)@yNXB?$&svh1_o7|mrJeSi*WhFCBH?yU=VO?15fE1y7bG&fQBFPgIFZeLT3 zruDG$^dXVOi|OtKjZIk==PUK*N7Zf`%#UK*$d$`vf>dD`E}rp*7;wK(yE^E`AivxKj{v$ z++3%?CY8#See1*Od2*Q0lrwZp<(+DuwT*v!-g=c2y$n%5RqHuJu{df?;b1Ceb=RsL0#0w(n9YJEMoDS>At+3{-mS zXDEP7-P;7q@Q_ssDmBY`*am%evs-ENV7WkGNi}5;;^oX@AA#NKo zU?@=}GRB+%T;@NIzwL1sNgz#Y%V>-cA$YN%t7oIO&9YKRe(Z%AuRq&nlrjs4e&zcD zPJT-HsD&r){Z;^qarnG;w9PF(d296A%V*1l4-+644`ojj2j4&;H=xIj;@~z^+Y`>& zioj;3qWZG2pIGp~)bA~%z%7hN8cCe^AtZpD=C$d$p2R&%2uwik<>?f+RK48#dtA=92ytPD)IS(U*o>hqPjmxJDT6T$F_d%&VT>lIMy+<`|KX% zk_)cF;U<0jC{so@Bu9~{K+mZr{(nBcR&CWvCP!#0H}W%y@PHZ0b!EiY#3`hDVP| zKAg%Wf05An)v(E*`Wiw3fi&;Zf8P<*lSvstV-1{A5pRdvSb7#9tkNx7I}OtT44Jw6 zR2Gar(1yd5MM1hs{M7|3+7$C6*T-@5GIttCIAfY;uQc>)N50MRZ*Sq(1jn|VU0lXt&GF);C*^w_= zpHS6t_j4t$taUI4;bsC-FZQB*$A;dn+CW+XDph)l;F}HPC%ZVa+tAla^Wszgm6UWa zlyr5u?v5&a-Tt`JJ`6B?-4zw#zB5Do8jysHsBsQQPbdU7wkZo+vvWIO2u6fAb{tXHzOUOjM1^{8A zdnEQPI)L%?TdqR}&*nD4Auzcu6mQ;l>6JjuVCbD2h(pZ)W@vR-rsQJ@Ap>y_Pdx}fqb9@N)YR~ zw;uIGK2k)_AnUVkLdn#H6>7BbsXk4I>u`V+Bk(ZC3ujN844O8oY~gh9UI?_HL@~u* z;0Z59lU!BF$64v<5oSEJofy0bT;fU26~vI-Hn1!}KyNQ1&TCr`7)z`Lc3X{*SOx$2 zNTY}I0ZK0sG~&I|B044vs0V$Mg3;|~Q_5)(yH99Tqg2FVY)c$;yq10jo zy8&@emZTVlU&oe&gCg19OZ+Rt+ln3;$1L+s`K!AtFQu2BFSQ%pt@i~+-2oGl>ez2= z9c(ot`G$6*Ot8Qnlct!Nt@Oxq;Y~{zVj1>WtuecrDccdUFY+&M+RwmHc0#oWh2sA zTENI-GzS4|9Iz57|K5x(#Lgq&ID-h8i-Dt}TB}$5to^!hzmGevi2nr?)Ru?22VC>v za=!AC-qf~bV4XAm_kaUQedWdUAJ)RaA9%4BC#`A*xDVAWd z=siG>549AZgu|Jksz3k#u>>&+28=oC7}ADK9i4v0ZPiIZk#?XvC3$2=XwK8|E^l3{ zmg?N04v)5(@V@O82j!vf`)n78{^m;pDQxpmXXrq$_rzhcYz{e4srIWtZw8WEG3BQ9 zkeekMW;)x2^YHP|AP3g;uVcv3Aa|hqu-;8R+#{UKxouqV|1t<&{Sw9K0nqHrma=)^ z@^ai(C)`PO@%3UGv(EgZ)vj%mdq`Bfsn>^OTw5}c6z4r%;$->2H6@1_uO96wW~T^E z2Cy=9P>zi9aZGMBq5fuQb<5n%{Cdr} z>`Oo;&^_qDl7KI3_PE*F~&+z;DmjyoTolK_yz6FL`&nr;S^)n)C=(|BAx8$djD} zqWRrl#M(i2WQOtG8gH@QtC;2@q$+lO9moy^d!&9l3HvX!NDi7~bWR4SFbC+nc3kjo z-hf=HMfnpcjQ~Qz_6yDSvn{aTbY1U;D ztIe?WUjkJ)6wm;XhwXRQtuHS~vLii7hF#lWgOo*zTdju3rEf%WcWcIjziv|!oS6dW zOVm^sMyO4pLAn%wu+(GzIu225X@CEVKF15 z`DcZ&*xbt3Qiaq7UU&mamN}SF?1ix}b7AEnlXhN$M}L}i2ixfd@`iNQ25ST(u=Ao$ zLCrr4vFqzdq@IuW_d6f}fzu&0k!tV#4k1y|4jKFW@j@U%;hpj_1|&oD|5j8{$P(|j z&=B$OCbj%>i=?Y8^C0}WVw)LYK)g#C*ok&&yY#}vYefe!qnXXl*W;2bC;B@D&RTI- z!Tp7FS>8PQEO6%?L0@t6L#@W;yqr(spy?dzGA|mYE2FXj@ric#i;F4qyV_Py@6aiL zrUZrv3h%-My_E84G_M~qJ~NHd3W|Y78{@&aZj|U6c1t^VOeS40f9ff$-@5}i*%_7j z(LQu+CJ-O<3{ROMs0SAjGYXgh{QEnnzP6AlE&{(B5Oq-yDt z8+`O|mfSrX?tOId7N3ra8%{Xi3Rf13w6cWbTbMDl&0mchRQ8wzdMkl<3Hh}DB7?Bad-XB^QK zp~72MO;u*$;0NR%*j=g&IAjk*hyA&|+t)G--Y%F`KQ)Zi0+HKOOqV}Y4CO0&10NjIvF~77(W4`WzXv501p)m=2l0- zi0PboP=*hiL?E|P0T{dG)a*Prabjub z2N`bd;oqdLq&5JIVfVP59RfUGl{sB{kNNW3sP!d!t9rJT?l9@<)pmoM^+X`)jYt$% z2_qnHO_aaYv}}UAnAC><9NzB*5JpC$5+}65hbgKBpLoSg2bE`t{b;FiDiVK-0^N_w zBTL^sR%4WT%;1?H%mcI$F#<}-KDJLkFap)hPlBA|i=ciFOA`Q)@rZ~*^4`=?}rKoy9g;Zw5#`-6tY zENC81T4wlsN|jz&ah0smsi6%gnOdJ~(N`x*;RB72A@^z-cvg%2tf(_F!tFk3#G#!s zaN|3?F~{n5u5S8G=7pdTBdI+7l$gxY;#9q2%G1FemD?jg8M}E(c2EtHOB<@*@Mx4@^E=z+M@-5aC zWiJC$%hL#b3a~&^t9L*BxG;uZIG|KAHj4hd>?lj-77&3)^7U-_FyzVVrQNWH1u>=@ zKO4Fz%)W&bx(Q&&6=jBciH|437j!No^3Z_fmXxzw=^m_@6@t2BrtRatzyB&@3~hs` zu$EcmNZ?g9BBJ=VN3xUx66TiT7QB@)1r#})F_5H3b5M|t#?#O20EDMjS3e3eGmjkr zbrd5Y@3*Favv6jhNI{rnZY)`y=sgs~bltiU`Lg`F)004h%9c$I>0MskmiFrE#M14N zNpHSC$H;h12!fnV<3I4^7Fjnr(2)nh9?GB$y%a?kj04j95KePb*KQ5%$rD9c4asmoVts(+nxL5z0A z(3rHDQ+?c&nz2s?N?WG(Txq@9Rba}6@SqRhjl7=74dhj|H2BWDiZac@ZQ&Eo2HC!T zZjME~8lCv8SFJHx?^d$^{g(Khn4f+%x?}eT%@`=iy4w$3rdf^;bQROP0VUk&ySx3% zD65h^+|bEEZ3_(&2A~NV*AyrTx->*?YiH(%aUFUWG_g!0<(0*F>(czoKzm<-WXVEL z(AGtps%@$MtnY>bp$@`F7Mw4slpW;-mQ#5RkLxIN^H)oTT43r20wBBenvBIwLNUIa zB+i2^dK219g|HFD<}9+wHD}_O0sMVhqWriEDgA_Rp){knqDr-!G$w;*D7#+n4V!09 z6f@g;QCDEGRoV`U_P-m(l0BXZlW{Z;_!6X+leFa{ydSNe;S7&Hgx>3IaCvk>+rXOt zmuHDbLc7SHFn+aBV-j0NaSTy5=IehVV)cI9Y5FYw1Xrm~XRvQK(kqda8TKRlL27yV zkWAZt=20+A;N&Ct38N50n$s59y%F-AZ&RLb@8@9Xh z#}E>_#n(Q4BVdy&9FG&{2TMkEl||u3TV2}O&^=iij*b{MWLt#JpHmi{35KPr!gb?xi*NS$ z@&0J|b`1T$2k$PZEurA18ctmMnV8y9bv|jaG_UNC-{8e~-twY*^lQ4$V*M2u!*@swDc$yWYgEC3lG3u*^xGx;q#OTFrNLS< z!%M<`Gj^3{zF1+=KLq+I+WF##`O>_XXPyeGju*B{Lx*)-rg;n62cTFjP72WV*uN;CkyROAN9tzak8=bL3s^x41o;?AaS%(H+eOB&y`eQ6^xQ~t+$i_-Xa za8WTm;F-%J?o#aS^ds%jvmzI1NJ@+&3yndrFiy2XHIYUo)5} zF3Aoysev8h^4i=nhmYK&ip#8igux~^z z5lg~tm}b=*5!QnJ8*zvey&Q0}juYabki>AZRM?yy1-@m(flKQepiu5w?lp+pK^S-> zdS7Dko4-+ZZR-#yN@Vuy4p_EC>g7c2oWwi4#fThZN7l`|b}GsO$y=s)(M1lTutA`F za=x30ChLsG*hXY)F_7w za#|<4enzv4MTmApnr}T%3)Y&LtTYoIAx;pZmqo?tS?v7kbwle@j8;aq$KO4VenD3m zM%B>B?4T*r@4`VQMQJIpD46K0IbHwO$dcshW$%q0X{ha-&DeI&yrQa(9OEVHyf-?= z-sKr9f19#(N1mky!#mZ(8~AI2rhX=cZDDFlsZ;~}g0hFb$AWsy@`+;DdzTM1LvnR2 zXbv{biEcz;SroqMR+0Q7tM71~65|hsZo})}>}UUKwip~B)`E$2 zNr?*~&P$MLwI-{|+h6^dapdOReU@3HT>^)wte%ZmRq*1k&N%2a^|jy8D_sclxcI_r z1Z4@I`1vgQ@CGgO$$gOGraKW?IC7LQ!#fM6%qnp6a`^+u0_tiB*Y#^TiWIchd5~%t z#krX^f61Hx77?ZTzcF{^z9Mdlwf8@9c-86FIJUsuuIQp2-_H&o`Pg{7L6y~%)!K@@&8z0q}C@dhbOymr$eLig5;F>Q7;Euj&YwH);NZ5h#4=xfh~ z8o>Wib2jyO(7-7tUZiP%ey+`kY9kYt)6~BRFA`=mByiW=5>K|z_1e zc;0D{$8x(cf&9V2F}F`}QLSsMXge8+-h=l3z`FQ?u!`Nx*LomfcQ!GUV=p?%hD0l| zQIZt75d41Gr^rEsEl>ZNvGcv$96mvWJ`w_XYp|gIn_3&$$!0>Z*PE^N_1DRB7dkAab|9d~Wv^ z0Qh}c9xM8eeQ_`saMPs!y82SLgCCicZrWS)L+PDjFT$0)ca{cbv9^NSHe-K1zK|$k zgZ@>El8#IYWW#WyFDU}5tOMiA`o?1AQmCu<{Pnx43n5+q#x&5P&qn2tKBQ3S4-}TI zm4cUg1@Yr&ySs`rFeE8YFJu=Ef>8NH4jBh?ul3X*etOe@V}dp36@Qetbu5{5E3!*c zN{^r1TMl3mx^FtroeclgCG>h#A#BK@Jiub7K-e_6RY1);JUq_qmzf-uM+;i%vPl&; z3q$tB3_K2ObBj2vQ-~C$)gU~wtyd0z|2OIGR^;$1xAn;Y=1+wpSaU(_jYuy1{Z&N) ze&a+aPHYFQA0$)Eh^Ooyu#tSDSps2>+I4v75rg_D7aSvJ#hxw4HWo(%0jRK;fKuf= z_1e~`h|{g~mKKR%oH!GgI>zTwVWFRDK^sWefmnhwziktfqV7-s$vn7Rfx+`rWSmb_ z8(fp`hE+mH4@$>?Gvn?Bv+YBBNg54EeLEF2y}UB>X%nfC+526?lYiC(&VIwPGf4_3 zd^!N0AD5pEs-C?_G8JSRgD#G_`(hf7u^q*=ul+~?9qo2h{=~lBXW~uxi zc#bB7hY9|b(lkm58Esl-Fw8!9NLJ9wq;!x8VP-WuB_;F{fB6;!-z|fG@ z&G3veQo`NYY}8JwCT_r_t^$8q;w!#A5IOW@-lC8qq@csKKgG92Al^y-0Rft}qtbR( zD#EZ)+CdHEgTBNW8yIhQj-jb4hgWEnf`RNZN0IKtHwMzCy(!i}vi;--=-xvhroPpa z9mx?rVY9sFrW1&Flm5z{-mqbds%g>_f1ZG>?+zdo@JlQ zf)BBIsih1RFdvw0JmBk6MP;aC^7B0~NAW5`_e>xv-6*rMm!I!0#Q;!!BBcBtDo64k zZhj{cIg&YGW+U3hP?hNAN<~n{GKhxlWD?1Lctb zO17_Wz;o)n*}Lq*jwQ@<;}Hc(^2K1j@JgVPQVzrUh9fD;-2Ke_cA`27X5u)sN=-7Q&8QQlIs>6Z{903CCuj{ zV0%!;M7o3(lkGuD)g4_9djN7Xo;MzL4fCutcXtqBUr6F=@~y;j&M>-&T|IJ|;Phq( z*C-@>54hiDQ|3K0V=r@}CNxCOXkYD--2=`V_bSO&_5uUE3TQW#sw;;(cu9xa3@2uK zn8!To-!fVn2I|LK(vB>+OQ}}^82O=VdykHII>ysg(7U*l7V7S{2JIIFY|u!_BPo}l z9MJOD%AzKYPXxCWm6~RHzmp=9?i2-Y6_M3cy0#iCT?okRf-JMLvULTbLJJ)zYz5-? zuJ^5`{-<9gp`E%u|NYU1n=0HLEQEmV*$JVos8|z-lT41<7oa$NFLyNFk=$CF`W6!h12AC_O?F=RwUl}%!K&)h1px)qNnZ(bA z;ax#mIAU^#UE;`)68Ntl2SUVPH#Ft3v)Mp%^zVsl`Gmm#CP7}tBma0KbGilMgDRgr zLu%0@Ei|E&>};z;Xe3J<5VUmn$Jm zPXZkkU^Mh+Fwo2fG$e67Y#^Y517xcCb^8>nUf!jUrW=giuungxbMhbVDru9%DX&Ig zIgvo6f0HZHt=#MP>%4qjNeYplS-2)YWe;QeG~s*|<7g-`SAl%L&WxuFK`9j}YoQx$ zw2Bl|wvq^>HnEHnd$b5KPjR9HgUp}6*dy;g~k>BLCIA5@SqX^9AtCy4d3p0^&+ z8K)f8Q(-~zS0qw=Z-m8x2~e-ph20e9R9}3P^!<0QZ#M(svdu&PLFChqBcibGf3}Zw z5YxvJYL=Sua*38fJkP|ml9h(W%6W@cDGzpaLlxC>GARzt%%iShVczzbfRcUN?U_1zJ!Ql=Dlpw_!$+xpAUCQi_K1sw;+$Q z>nRvLO;@AvZhy0rfWhdHF*MA4>DUh}jVfJ9|T(M6n3=8o`)2UBDU# zq_E87?aS;*P{>=a*`ZcA5Sj ze&)ya=}fw=56t^~&7l?nn);5MGXkQL?o+$QH85)IvQ)K zKf5*-cbpMv(9=B z=PbpB64pYo5bcI6nJrNJ@j}Y_R8MhB#A1rKQml5=#`U6udSl)4IXJVy2X&~@xmghm z7EHFd0UU+$@}fNVlVh1u$UKtJkC3EZr!0H&IZq+fve|lc6@S@O@NxB}WmliKeHO#-#n}KcCHan>%wTv6L$@suw5A z%KcFN?hcbuWW{XvNP*>i2_nH*u-;55QiIbl1DuvSJ!=6qWbp4OIgH9@t|F;OcKUg8 zqVw*(Y!ytyLcc-RrG?EdD6FA=C0>GG)pXCr+y53o#Zlwyj5FfwZiD6tR|;EVYLx~R zp6{P8^A{68Ww4XHJ;~G7;}b^{mI2GwA?=xn6x~y5^3z_Iiy!6%3l_KmNH^)M`q8bH zfXqU1RjSFrl96DrYv({QZWYfQ(iXZ`Av^p`w%0JUiJ$TgazU>hwWbSdaew|4bB8#5 z2Q8Kq2|dy{+4S*&ne?YEvFMEH)M(b`SM+l?Jtv=JXPRQzKdc&WwYqqMgDY$(S~wXp zJdeMd(Q1KhoB2h7gWJ?4P5KEVzNRa{rl<1W<= zp=lO&MXU=UXmEFvKCo66pPG-YSuvb%Wx}ULmz=VKt&Ge4!ZHx~M=Elkc_v7wV)NQY zUdnc{6%u)r89W_{Tr@(tpLjzj;ECd zTUPxk`p8}c=2I8_a!tP=T$E1-U9%K!J~()SQn7?P#|egcYh=QCsJcarc_3%Y78kzm z)igG_40zuW%T}6*=}}&w$`73phm1mFSEBLuTK7CIO|H6N(qiR`L{a*LhU%({u*1r- z4w$E%n-ZCzOJ|(iUiijdngh$!t*Z8oeUURdG{AjJXe68XqIC<>T7L1Pa~8OHp(++m zVjh(%vO~(wC$B)njFPXH6;(82di>9>E|}rT6eHhZw#+k_F_{zau~$_Lb0(b>qE7<0mz|Eye-=a9-Mj!d}Ff5Ng zaoE3~odg3Rfh-GofhDc{B3@ECp^fz2JLT+Ge`&T`kOq^4=A?#>X3(r<5+-&yVc}e{DgdEEZHq9WBs&XkUeU*B5talr2 zhhafJy?-QQR|s~I<}JVf|F$iDUF7z$-cf9V^nIM4qAEyOs8q{`UdgLK^(~Pd1!sVz zC6hb`rSSSM*M5wtt3}t&>IFn7z41q2O6_Go|FV1WZ-#YgO|^rlgsO@+-a{PV?%Z7Y z`IbDpm~qSz;ppMJKB2WDF01@9$lKbnFmN7-<#Rpn2lPEd0fXl>kEQ%Hsckyakk=Gi(s2{8+7TCk~J5e zpC*vx99%Y@SS$AiD(T*d9hm7v<{m&oID^$VPiW7%h)ef@x5fX&+Cf{7TZ1wpV z8l1Z5qvFet|FK3PBmA{Iu)AGr5v%LZNhEAc7c(wN5G}Y{PBg-q38@@;b@2l5{ey*JeA$U&%{nr~Q3=%00WekZjy zLjPa81KJ2S69aMES(|fv{4)r*s`rJo;Bk9}^jI)EVHu1?=#|VvZqPf|Z>S}WLu@f< z-5zC0k1!nwcdX36&ORd;t?k~Uty?W=*8ywiUAzB!(}R3A%CM1qB@YEU!tE8e*t}5}FY;wo<%H zfmo%E!NuIqU*A=#x>}2`&;Va?b`~y7z@?9qlvxzB8I9{wm%a5~ts89U1^baHyt0po&zO2!$+&gbr_294Al!UB~5kn4+@<#vPh$7mi`I!AI8ip-s!i zsU_GBxmtbCu~ML>^BQxaIowkOHp`UgO{t;zwy)uE)-f*#7j?4p`$Ah$eeX(!02N%} zxfCT_r!}?g=m@Bu1wrZml2c`z<`jz<`?0d-Fq;V#i5`O;h5+zsH*dMsfJxd2)u$WT zAv(q;(ck=^;r`0NWPNxqK|4KxU50_-eRYu*&m&oBH5lb9-qF?71nG{AF@GmRWFi4X zr=wg)qm73%KM9_rXSf)jn1FuZq;PcUNTGZJxZ(YVc-s`w%G;`ab zZ>jK*Prj>X=fIso7`Oi(0QEeN5xH=+j}wi~wbj2rVtT_t7reS0Weg>`_t(7r>g)pY zQ(qei9RWBmVie-H%|(N?sqfhC<5s+H*w8p01&b{FT(rIZS;{#&{viHI3tm{Z|E8UA z%e;9eF`;!2Dph4ybLmc-Uyc!&@?@7xM132~UlGUy(xkP2qQy|be>~YP!@zqTfUN_!(z$y!#z;6u1`pEBGzVlOQu=1$TU{CF3GgAVYqP}zlvcmH(vQYMvw2@$ zSGC;g$vEVc5J86=ldk%?<(H*yW$!DY4S>Sb*BLhxwe#nlCv!9?+P4nLUK@(^fitErF#unj6g0DMW1Jo zdw)M84!V1zj-G6rd+Ywp+KvXR4s&3Zpq683BMV2$@oNZ_vaO(6I0<5wPu)6n%Wdk! z@Y`C0n`yl4-9iw`s|Udgl&Igh%Nu~EKzK)iw*CGYt6S|y;Dk0MZ%2*A+0bq=MafGR zIep%FmbxxtLp1pqO8aLd`6=p7D)RX$2D#*izeq*`NTR@KsiCwKwiROqMzba6{=r=g z<9L}ew*-nd)}nVKUHNJ32I^ax$3zw^M!C>jAmm$r`SwZfE)>dQ8^m#k{z#GK|CCG& zeYMzlb-?)yN_>eE&JiKcMZ6Tioq}R3Rk*jRupOW}(7I_;OM(BYkoA#tgTAEGd!emY zO=qGv_=pL8t&>57o?`*-FfUS^4h4g-)}Ap&oAH>=hTnrWC*2S5!lH`n2y;0uXq~?U z>w{VlA>Qzv`lqdoC95-%!uxUCW39JX{)d%YjjNw7Nfe=}beqK+jSGhFUcrkGQM23G zGLTSW2!O1QGIm_kGN9qyP8ZF+j?6mGG^Bgv);{ZSLi2&}*(Xh!HOzms*?BZ}xX<;m z1Ist~BqTpnTH;rmNAPyNN;m%%KU(!q_8M4%;)V*V2tvBocRFW%pk@V;57XUFPg`I_ zAGq$l;aW$0MSuU~bQT8`*ac&1{E}&^SO5}dFqx|ib}L@t4K_WRDB+;TjKVA(yDqIUjjALlHu#F)DKfyRIAB3GRaX*_T*!gVI9*! zB+hhvjJjWLz_pm|@aQ-gAKqpWj#BS)k`4e>M7DWg4p9e)ob|KXN-pBf-b-Q#Y@p`- z4CEXh8ZJ1=fsea4NN{1N-g(}Fj3t=tdG&~L9H~0G!n>;bv$I5pvQjMs6EI6q!RlF{ zwoKk5PL3##xtnNf{SRt;c)7?rUxN{W)wkiC#6cx$gocWcjxlB18uadu1tc5Kabu5;JPIqfJg6$oHbqz) zie-80HCFzPu?X^$H|W_z5Th=wxX}pwn2I#M7OVy<2j7Yd))Cr47xxd6adb7G&DP^G zE7VSTL5ZU(ZLT;xelE0om_6vD!@JG#i+{_G4epA652uJpM_PQ`A~J{f47A_u>Ik4w z)YBaBtRVmik*wyZeN7=3ttS-O;JDC{K^E8Krb{MEa`?%1Z}O3GpBfb}H_Tntre=K? z6s8(jvmu!;mkJF6Yg7&1+%W{;6+0|ZN8{1ZGp)!~q%gM76P0vr&L>U;+||K(Ydod* z0{18XyC3TpCy`|QRH1C}a!}z(AaT~-ae;sGlEG&E!1$>6o6c=kdH_UBC77evVvuxr zrH)Dl*Dp*WriXq^{Ginc1t=`ekF2?c=f8grX|Q={(uvbjs{iD8(Xbkj4KLKwq&dR6 zFN|vd^v>060=Q;4h8K)n>^!9vP|Ir&(-bo_l}m<7D4#IlEN1KRLOi)RwEQ0e=hLs%!1RX}-@Rj_&t2l*1m zQ7@Wq8mo&CnUtt1Z|YuK^+ON>>~WF*`RBBQ=FA4SF;cj*UG63kUa zd6L_x(GonVPrA)Bt_g=3A0+s5)RnW?G8V#O&S{(91y#05i$GorYJ9fA;2GwNpS9S( zaH4DoYQ5?wXC@~atY{yn(C^$C3%PMEr^792%h@?7tBp$t}5)Nvx)jh!H6ognrOhfy&S+&%`h9yr|5pjV`m24YIyNZ0I%0Qn(O9&F5AX2ZH| z8P%B_8pp@CVKI;(JYI*nJc9u}rk)gb(sYSgcN%a$ar-@wK@hc;Ib^IKq_6KSk29M; zkK+9NJNN%K@tq(4_xHG{BI45ecJ3B=hET$CP3@-~LDr>NsWQa>(Npf(ju?YL+VZk8 zZ{YomXa*R4rIu|+v?L(3dsEC6&Y_=h%!kv$Th$=X44D4(%KEzx>-|BFb=QxHJyRtObd({ueLXNh?GQ7T07=4dn?Liv-y z9l903NW|ARA|_wj(hMNXf1~AfmEV<1MoMx-(qu9~TP_ka>x_LA1$9nyWJkRbE-?pz ziB{xuq2mm2XV3rcO=lJ!jZz5&TdL!cYNn>XkAM3WZO*M0yLK>8QQyA}q7WNPj52Qw zIS0Z!)>d>F>!w{MDPDhHzvc1~yZcNIF7hqQa9Nv|V75yr z(hME8!20dT=f8IS6_z$L*-eAb)aP-H8xMexsabtG^B&eI>H7x+qv*DU3E^Thiq+W0 z9_$n48}=G;96nGKYc;PXdbDToXMU+uZ~t8t8NW}zR9m4Kex1ejhKB=evm3c!Z*{MF z){%FAHM?a#^MDq{0hPUwp0-$4J~=!G#b9Rkpuwt8BC6(Ygn#zPH*o89>ZpW2XC1^NVz04p)u;eY-~IdMTaGO61XuL0ZA zSvc2q+@#`ODqn>nsFL$r7}#x6z1 z`1xl8OUzFk+?V_&3JpC%nS350+NEtsFRYecq82OG#PqfY%@of%6uM-zv5K(0JO!Y6 zi;E|zg=zU`i(e9;b+BE{<@_1`T7sg9(;)^C;aDTf>jUS#wfGC+S+C6DT&zu~l zG>8AaazI!ZsXF_;_42KW3}(vqDWj9S9=Y8vuJ%WEy^H4B^(pN|K9JIM3tS}?R7*CM zXa@jVuUe5Eh&`f9LJ0ai+1xH-V?1DBB^L@Me`l1rjlLCf%27dsz5b8N^wZ(*G-Pj95zmj->m}o=>tX! zkJEbSV9*7YiNet1aO~c$H9VGgdF@n5o?SNriNN+<3V2K1n56QP6=*nGGV_~nQ8=7g zJF@;<#rmy)XnULV0XLhU{zmm){lkFnecmsqsCk7X>4?#vG%Za;r0LfW<67F0(fGN{G=n<5-v4`o@Q{KVPq|Q}e!&Hw_WHMRfm|~s)%41$RhfwB zv#8a7FE65!3}iEjJy0-WhPy44rw!7avb?$~x%vZ|+cX8Pu?c$}gt~xw<8*rnvmum9 zU6Ge0lr)y_ZUV6Y4q(30U2;EYohFPXZT}UfFes+EkhgCy&ZM8P5U@ii*|;2cZKO}Z z8Z>u~Thn=v3UEl+!hy^Coa+IdOCxVeCmt0oQIhogEc>Or4VUB{RM%(VkaRU|Dg))Z zZcyZ}0k{&;*d>vRX2|YP*q{ZE(7l~KTHuE!jr`$I{Qmv&%za4b9**FdHg*{EIcXTg z-LJ_N&MbvEVj<7`f1Ff*=*9&$JekAw>YGEodgQ@=@F{BPC6q&xOAVcaV~KN5Q_RB6XxCARr{l@Jjba#R|7v!>9T{KdnioMb@y~% ziO1GJFvs31nKfCQW}sB87i`b{_gFsoBfps|dnPpL4Fgh$hYozj*>Oatf`!!OTPZfRopPKklU$WeT}ZCMTcvV9AK9>#FhusbjEyt?S7vwh8i z;J#5 zw9|ZNJ~H=W=ZAbRArSHfEJ*~x-ssoih|GA)K1N&~qq$AW6l8R0t?^?2*fHb=#`fC4 zZdW6&pC*7UZe*D*r2dHIr%-TbzH63!(V4bUJKqIeVLY%4v>cG~oQk<~RswnsrW%q3 z?x+svm|@$g&xw*RYS1pHs07u;kROl_3q(%1tC^qH#3jZWwW-6Fb2NyD~klyj~y)Ivv=y^&vypr z<9JGyr&{hWXZoj5W&s16JZpyn{1g-HI>fCG34y` zeT&oBMxU@geWyoftJu1o>w0w3{qpt-NR@L1nx<_8!PIYC{790{4TUgG+cK>i3#-8< zLUelFo+1W3Mw+OGJ4^(%?XqrUc+bho{U2Pk))ROOCbSSq`0kr1m^k z2we0I%(IH2T`0TkRj8cDVOA6rIChsQ=$4Zf-yQbn(?#bkz$wF>|N6hqo=`v8r=w{) z2%rgdVxg4gl1Q-wvS1~FIUp!+PQc4iJ?fii?XBxEk0SfM-Gjxjxo=f(fB7Cz3R`tU z8TcwKtUBx>4l6M5%|#&D#(KHQUnrWIguqHmfM&x0_-|e6%Y|j@uEtmgtk4X;!vBG8 z%_3&Wv7_{pk)pfp<+UQ0HNV0Rjv@Id&)Z_!ptM&&n+Lbs@<=1~`73)0iutBu#&g?! zSKM>av-Yx;a~g#Y#DbxtQ+&plqJnGqvs&=)t$ap_4_1Lja|r?luM?$1Reo)GykXZ{ zY@~>Y<*H8}8O^Umb{Gs~6d5oi+zI3}@a6rDmnAaWl*lNPUASc@KY};fLYXBx=>$hd zPZz??GxICpBJzZv5GYN47GL|Vcg%~1P_paKYu?=KJUsiF))pq}o?lgO4r8ioJ5lT> z!3mM7{LB17B-VP*GBAn1`SWqLgT8-O;BoVWRQ*8*vK1t9GQwInWL+$`%^7k_VFGX! zE}D0_^wys{GLNWcbnA(EjD4IO{IOauFSm9RHMBrYXru7H=~fO`PfwHSRlFOo6>*^` z)pZ|fKvP|dTQ znT@@4>SL^e_t9w^%jBiP!H5K(yZv;e8ZH$buFjQwOp!#Tge7iirfl?(m$dBL)Gph0 zebv^B-~a+#z45Obs}B$cN}Bdops3`?`zLH(Fvu| zw0vhxyJkDS$dCX0Y#;i@{+|Sus3+8!6AwIH_B{iMiKz&J&JKu4=}602y~<8>3w>of z+OxCkBcbE)qmzTk=ltg3-kafjMFRNPE@6fVHKj_ypmhFAv2lU07D;`sI)Zu86_!F` zH^Dmfd8RQ*=$;>s~X(QR-sHgSGtl$|%q)L-&HA4i_;sa{_ z5(kUs43#X;5^&0I@f<#Wp^29a0rP_Fk#kr*gmFZ*s|G-lBQO8{9hk`z+M!6^iF*Jq zUy`~{ndp=mu_Ma9i01mG{wxlClHz0Bu1!S&S*VDXMKQYvi(zu!rkZg193X2ImFA8# zn!`rdw_kQhsg1us3>M~#@wbpC#(!4`)$zaq40}A0;0$Q*edK^{FYaVkj(Ne6LM|U+ zqGOWQIzlC5OnY-A!ADF2`%Y^*my-#9SaOo|x2=PB-<<*&G1&r@YSzNWL^!#pCk*Db z0A0$~UJ5$~FrCyaDI_>ic$X-`;I5HtU_|zex#Tg(?|wr!Wn7FqVug!WGRJ z$dpV@f?-$pS%ahxOli>@!gT~Hg&C&eIa&lnA#GhL9<{t^5;c?`&B*hNioOgvT710$ zDQGnNs0xWkxPuQ4PROyX74TX{&))&JVfgm~%2wmpZS%y|>R$q`8ybUa?O@a^@#`u0 z&ug46Gj?mk4icrs$#B>kby7CZNhB zLM9oJJqlq@SGa!}ja4EA;Ia~d|Lf^`+0oaQW^j8RkwB!@3 zu=OKK9PHqf4bJ@DJ43|_<0-8KZ#VLShS7K0-LncZSfKh7vbyta>Zpdp+-*A2sqg>x zu#ZKZwpm+>eOF;=&l4yWA9{er%Dh%iDg3UD>ijTC->yJ#_qZGYrMv43$~3ky?$2p1 z>j0mHwTU40K+6*Bkadm0M*?3)-BWX7NE(B_Fw!ac_qOk_^(fgaZ%rsqtmLSlMY}>XqZQHhOP209@ z+qP}nwrv|b@9pk4BVcxVh;Z6DU#7~;kAoI*`oAX@%oKRq5H_N==)es=b ztC3M85%y4yENbT$J|{O2q)5Oit2txF!9pLJ9qE~cc19)VC3h9JM*;+|&!NvOz}hUk($4N_sxFqw@eJX`)0DfVM5ZfRqoYsE+KzewMDH)% z7ilrEwwE(>$14IjiyCyxKwAQ_SUaV(9!msx1*=vDGvuJfF09|wJDUL=peVlOvX{Po zTX@aOBPzjmx;c{PL!-9Ckg^ilXP@kc4F6DZ!7uW|1$#Kt@74E%_GW%q!pup_isC+zq+ftj!l(o1Czch4|P zw&Un>ATHh_>E>Pb4M?;FT_WF6OXNEzPsGfRVpHf;*R1KXzT`fkxGg(Xn?}Hkx>~q` z8Z^M5@GPrQmxufM!RXAF*#&2l^XzAtXor!T^dYPJKpVY3eL6vji~|VFP;ucoHcI{H z96?`*ULkO{b*;JBvw((KB~f!Ra_Z3gkkHS4Leu*to{(JX<&6mv^`5$IUSc!s=3@yW z@Q+ecZH9H`b~VSew1F5)y7RaiM;=~1rxvgs=B2$ue?%U#xGGx=9yW<0*77%~rJ=45 zU>Ld(V!Ly+;++vAKS4j@);6s2tss7QQ$7Chd&L12{L%rQ$B~>aaDm^||E`sL{(6!V z2x6NHj}S(85Q;Sw3k*%cd~@1{ouD(X@Q(p(wp^MC=yc2@ezt3kW1*q72y+~6Qi3%* z#l*;*LzftspOY7NP~0qqR5*_?2Z|%x(=FVNFc%V(2PtBg;!1lFMY7zMjk)@tkkL+F) zlJv{9c-Z3%l3>_3Vg0#G(bk(qVgyBke0kLA>{y!Oo-&t>7L~3NORfY=qG?<|{!_p% zRU2o(+&m8*g9`31tkcx3rn?e--`X$A6D>pIFC!0pxihv$bDJtwZNC-#i=7tLQ5T%c zv3~(>l1_}|9xsEQcsb;B_0~8y4H2F~=|CpqP>TYR$YwM~N z+1z#yj*NNWI)7Oatbna07&!SKIsji%(w<>~sr5rN@WeN*W<(xC3wJ($RaHtQU`W|s zZg4xZa+tR9%tw!Vdq;^CpGv-=$~mczn)HrAI6*DFqa{r1#fxZ?obn9{Ad7Q$YQoc)2wD}q)HD!~LBF#X}?bg=YDLlW;G+zrQff!bo(A z5VNU|I?Ab%-UEv8%`7}q47`_1O&Qa9=(RTN|S@b5P6MYVedZmfm=BM@AK2 z`_r8}puiNGSKSu0#hw$sspEd(TDkQl7Wk1f8t@ZfZ8QJYfMgx786>gjfC-USDwlXG z8mGfpHsVC0B7OF3AOTsNEbi&!KS|K%mRR=5vDB5PTE-2~vt~l%?V}ZKi8JeD)+b_= zz`EO8Nssn45XsAOrc>empv2wN_zxepA*=@xU5!Ds&wHADAD z*ITn2nq6GQLG-SnSAm9ypy2l>_--QGfbK*X8PSyH713|cu$?h%-X77*y((yJ_a!(n z5N-Rn3jTG^KRp3>C+?&zX6{`NpEf+-8q3CG@reM!sfet#dm&rBM?^Ao1Q)oxU!aE# zQV@;astm-tq#t8^IXFW5Ad6|x9{GSdhc4ML)5c4at3YbQ=3yUe zk&iAd_h(28AtVlx!ExDn4mI&EQqhB&bj1{95xsFw+de4IU4Run`M7T$uoW%P#s+pl z-L?cRWYjfiu~hDB84>1RI+`u@nvnKVj+_+27cEWsvp`|m_$v)_&e15IUZzKjZSq-x zTepxplBFxqx-d262t#eK{=c9%Z9=B@2qV3ObYy2IE7omI(q;+XjITFM zdu;uR#}!&00h1rkr)vy>5@kX5^5YkcPU(}6Q1A=xdKA1^nN1gC-rJ8_>_ECH?xC z$UjoUH$Ej8&_%38lr0FovZ(n{g-ykMeS-xp?bN_Dfb^lLP9?@F1PBI2 z3i8_Nj=*wnf988ATmV#Eh8-@+Q)9pHk#%kJIa%mVY1GS4DPjj4P^!TR$Z|4m3>*;o)a;0GX?Jym6cHyL{jM#trfuF$ky*s)OF|(DxGYNe&fd0*(q?v>UxgKJ zYIe(A1@8|RPR2Z~f)pL!WU^>e*rF3G+)!?9$NUDg$=ICOe3Av3{vbJ%tAf{c5_+#R zds9Qj?XuG`on>l7$_f%1&+xJdf&TKL#;4aI4Fxy;wueC>(0)(nQG~u5Cl?0URO_)?PhJmrbCz7?aIGy?!`>dvL{~`zV~Thkbo?`%HVF zA=}=QjaC=E5B1U#E|A!d!)3T9Fv?EH$Q@u>H)U@+fDurpxh)`v75PxsoQhWr^u9Uf zw1k2T$W0hhOVI<6gm>Nfp>tJt>>%tw49r(c zz7%1Ar~Cvag65WUu!3)rFQj{esn!xAnv$JtNx7elx!5$8iSh;8pyc$f)aoVSKHGwo zOwHsXbV5+mP{j^&GC^H`DuN(q`Ph(SH1TKeGI@J4_u~{b582C_!=Eb%)onKlEa^!j zhH!orY+qQf3kyJK87r?@eRwHe-;^Z6FvY(u(S)Oj0nT;CkC`~LSMjK(5GnM;Wp_#* z6MHL(sO&+`_tzQm{M}9X;+%=Akl<$*Tl*J`WGT!IeH;#`;V{ zpCjPxhVM0`Gn7ExaCz>I0~Hp%``_X<^tIZh8mnlEGciPGi&4 z0Q&S>wD!73VKPap#T-JNnu;_v7_`&QTEEVVZ@bG`4iO^0SKat9Z{+3+B1ji;tF@Lv z1Y*OWbY%QCk$+xas!I-@eNN}jN(TRhxWeU`tjxjX2aS2*)`G^ij}j9@|z(E-tjq7xSp! zSMx1vqEUKc4Mp$`CdYW|D(~l&*mao>*>;K+{w@czXnNj7trs7#E1!f+(W z(OFQ4t9&`G21A#oYX(#+Ys*Ci;VFnDW@7tREXxn;O#S)0WtCcAo0=RWoHM4%i83Z zNA`*<+^&q((Y|TEcdLkjI^8l~idPveASLT`@hD3+6niIngbn;1l$Zf%>k zQP96>N**&F1a~-mU>WqSJvlZkiyy#M86TO4QCsEYE=jD_YGe!K!yoGTp`YB8S-N)I zRfg)rA7p5SOrGPVW)o@QJP9<|zWvQ8-m*NQ9TbIStGTGnNICk=?I)2l`|xZrXBfGW+0qb+yra81PPYmtj!^+^4~Zv z2g~vyzjOmFpsepTW7JXkx{u@YTz{|wRvL4f6wkt7u5m1*bW4408r|Uhj+}X2qXE{S zxp|j0F~FaBV&m3x5`FR8(FWcD>?Al_8`sT?Ff-^4Gg?r$$F8r#eF%iU1^nQPL zZGYcve?L=yo11uS(YJc!lKw?1&7kU*x{km@IL+SnjnuOs#2K`gZwl4!I0~r`)gwIq zwJU>I?Jv)2``bpqm3F^n|KJ0K3KKXr&&SozxIpwJ4O<;hSi<`*u5R|g0#u;a5<^vM z6B2{eWoit`$dVc{KL#iJGhQ#3);~Moqe5+y^_7*124!j*s?!u~<(8;peO~PLgD!Ul z*I;=KAm3iI7qAerTyeBP^GG3Euum$~H^mY0vtBU}9qNyY?WdQE?M~3!zElf{Bm`z% zlAq5m-^_=a(rGl_HGbLXU1%W(L8bQv>}V}Yra-00;RwO>RxsKKOe6k4Kw2xD2kO^eniZ}+FCJ5Vy7)kztj(&a_XzxImfr2O%jskMu z=Sk5SOfVWejfJqxnAbHZ$>ebf{tCRj6n2gjQCL~bvUwn{=oSmc=o{{%Fu_*}X?xwg zIn_o_VWi@VM4{yb=ee@>lox1(78#I}-~fZj+}K02UAhIW^6yXb;*VM^{BV9FvHU+J zsN>74iR-J&(wUL!INz8r*Tr0G{-=EvuFC2I%qj8VSOrZQ=zPmyYwRi zFp%b;3+U4gjbcoJS-1E-A#L{hC4btFohB*U5dTgN?Aw5%f43zBF-E6xyYUAX@O!jl z}dq zHr;X|t%zV@`*Sa=-5M?jJ27}C!mv#`a@3)I2xexmAE+3env>#YC3YgWBy*T>_i0!o zq#?&6%2=@3NPZdjCb2SpSBArOj#;k^;Dh_88**|9j-GT9QcDA(qj9-S$gixm0=h1G zKiDZA=eYf0VKRu;EcCnhg3 znTchfP}+lJBqRvjVc(&o(xY$BO%wn7`1G%QXnweV5ZW4B+^%NwRUeI2;0Y0So3 zG~Z7Ij~uo5cDuN1ziE>&l~I&EHtcRI@?G|R(q6nR2Xy=Z8ZbgW`)x*A1O@?j^riZ0 z3&9zHrh0w#q7zt|Em$L?1$A>2p1~GcOZbzo-1o;O@Qg7KAPz3hVf>`1ho{YtAAjW( z`+;qn2_x=fx(SXU^hqU33bxmLC^@Z>B}ORr*!udTGUOwkJNYxV*T1bunRb-r^3Q;jW;%PWY zi;2RBUq^x9lfJ+3Zlg480}zwtpk>b`UTpGisog7ryKCRG!?AtltDDIz#%3OOS0qXp zCZNxUcg+=0-&X5*$m^hVbrE#-Dv0$29m&s5td z_~iM2E8=SDhVDbt{b^ZWlRJlNyt+XcBLXD(T?|{PGTubI=y0Cg9Od12&%F817oFPT zt*-aXgLsW7PJ!`gjDxkPhWV(kAL_sJWz~au9Mr}Mo;}x>(m4c?>E`q@{@98Cf%pa6 zyi|ecBu35X1N$gLXPWn|ROCfu>f)UwWU+>Yv}T zyCsP&>GI0vNGtjRFHa_q*y-$NavQy2cHtPBYZ!xmp1*q5K?6JNl40+{GPcCiylU;Y zQgkJLdi-}}XS2tjRH`OnHTE(mZK*6bDouz@o#>_2FK|k?!pxUSRb0KC_q=>q)D;>y zUzy2r>)bpLl1N3IqtQHDqx+=ayel>$;f#V8d=iI-nB_%mCp2*(d&&arem`BIDZEx|3 zuHoMz5e2H}J*Nj_d*?T{YYI(uhLyg4H!z;YM?`zLzprtXPy)5y)8y2u>tel|YC~2( zl6q7~dtC7lr2oov69RcYszlFf9C_Z3J0=Y5AEIw_<+DYfU}leJHAdy&d&^kE)b|(Q z$x13=$X&odlY9jVAG@FvcNG>8^IGGENQa$qNxAf02Q#)DrI-obe1@GzI$&D`8T=Pd z7u`{gY)lF`8sezY?F6rMAB%lPE3@^E5?3< zs857bhE719&fyg6XP9GLbu^bl#>q?q7tp@d)rw{*B7F+P^1a4RaRG;|G5Jd}*#iUR zJ|j9PrR`mnc-sp`bxrkCvPi7$wOQgDEYDd6$%I(>3hKhkU;`9v?&~=eJd*DK|Lyw$ zESS1+Tje<@{9uh8G-t0y2xFAvs+(Sa09h+qUN-_;eBMh$BNV}aul8^;{_}`;9E!E& z?R-r|TfrhnH(U}s6z9oR9=2K>p)T6^;BY9a@xEZKabe;sDs|RUs-AlBC zjR5Ys81ObIu49{m{2>aSUCM|CK znk_562;3Y-`r)y9?zIUH5Y}aWZjA+tp3SWGH-j)lya;I^H!r)KOLP!3wrG`K|1jdf z+R}~qW^o7hu&GfqBWSxemsl2UrwMB-?Ds=eU7gcaX!g(Q9fb(D@$?rkBU_-#t?nh zw(3qo;#&n>O0UMAW@P!mQ#SFx1hY_qjj@AWeIZ=JggsDfZ-AVU2}aLMI{9?dO{VSO zdt%jsoPY%L6UKY&L$-lY9Ehz9@45|W7>2bpI1fVrG6OroOuI`RM`tVI^)kBZSn#@+ zTakE!Fzam?OF8yk+lc{u#y)kP<9WypoOCpq;X1h}b`-l9v7x;mThOz?A8xt`%U3KN zYr_F)^kO|YGbUl(+C|BzFlowIREgncBWtFqLIw|g3dP>Zdqg0+?Xd)i@2PgtzhsF! z83qD-KhgcmqEtAm=GVZ{4Qiq*`-5&kV1Zkv@(fw+!;f=kmc9I7i|V0A-i?(ufr6S& zO8=sLxko$=tHD|7>Xg1%W;_&T)AXvWyWGHkfA0}`>)ON}P{lGn6aDbP_(4M41q+IiL@d0 zp4d>13r7qdTX>s)=xM9h!W`AD>~R!+!Ee;F*npC^yGP_JBURe`f>x?uQuX%oskEaX!ZL~5BgAKmZGSK0C#JI$(41`9?>!)7X)TuIEWKaZd^X*myuW1S$bWc)%&;Jd2kV zq?#x^Btsue1FS#ha@KyGphdvAIuy7cAbg%bx#`ZGj?9ybKu{x4O;upGQ?g0t@O{Y4 zkV};uvws+l8g{xB66{_iWblB70v0j0#&a#8c^O8z6boo*o{t+7q&Dx%L-nXr5{8NO zWLSg-fT+^2uNy;5^XslfjH_JF0Zcg*@w~6ZCA+1!wh4v}wd@AJoB|ZAgs@S=JfLlk z4cBXHFf`f<>nWBB}2?xnac6|4J zgWy6dcs`KY40mW0KNDo-vghmbGiBY(d+XiHFJlaeVf6RfU=tQpqwJ(bQy}Zpz#HE* z=s{Q0F#arjXLA2F!$5uF(;UFzv7jC}B|0Nm-_Fh)_+W~BF6_@e@BRIm_2p_az|rCE z{jsPmNbp$1`t!MYUNI0!{5sL*ZboB*Pf-o&_Fupo`JrzVOSaxFUVoj6!(Qx!i?AZ7AG-r;^d=7Tbd%OK6YzT4FKw!xTA|{%&!p{V*$&x^wyH9 z{u}l|hK^2afA>pp7PdRSvRBs{r;GH(SxugP(7G*#Uph`3(*zQtz^isw&&F3%U9u%6 zTT$>Lw2)%yWilFPi`_?k&XNwqpcsRu^*S(Q(trBTeE2Bt6TxL&3Odqs2m4h>HO zb_L1jxVcK;x<;p9xfR1drSh{)F7m0&MAbaDF)?Je?S^8&h7aI!ED|TM8;b%PdHG%4 zp~_8JhNmWh=;qnXmPe|L(of#8=~my8^GRiz>lzbgqE+2=Xz& z7s$iO!%mTCABo9_K*HV(YKv*EQi>k38^_mcMLe~!A~{pU>(FVc&dYO73(b5MN) zItZ?`e(8wm4aO)M{|}Gls0MaNkbDqSYu3nQ#X9j=j4rZ%H%sRHm+ESJpVH;t1VS}B zst$R(-thP7wjw4Lf?kkBhMv~h+vaH4Jnba{r5D(z@c%vf+1*hM+OPom1pG1i9)PztE38G`T3GG7we2b2^ed z;M(9&C!`paZCk39;K<(AfZ0B?nZ98seQ%Vpa4-UIg-(6wzb@Ap<-*N4E?^V`vum-W zBtaP9^V%5ILJUcWJCa&fZX?c${G-@BH#K2qHgVJVxBW9GQ41@ckX$ zf%@&ENh)-r@oD>)HN;zfusw+b!vrWpYa=C36%B4&V9n=)NetFW*;OL?-(Y#h)Ts-&WPRVF687cmPm@WHGpt$E{@MWnSAE@0WT8z zw`>0cNhkio?)eHk(EWp?6L(KODHH}jvrwhzS@2XCDa<*kaMAl)E4!~-nrnn4#%aQ0 zSD{@yJin)U6~_a&d+!xfO0Pwl%VLQ4JYg!55;VlVix4rP0~E&edjE{mn7zfJ>^J*% zmie!8K{LL$7i`YICXTq%v;7WF-wwxzpV)^s-m*QnLQpaQ6si?Z?K*HJ7Mai4k^u%710Fp$CoWBUJexv*p z1%Y8Mu$=BXxaW|6a-(p~zvU?o&-WKSYxXXyQ<{Zbgw8y3sigI^bpIosqIp7GF$+D_ z85YS=%X~+${~y*4_m9;(3ASu#7O-~Fsfp6iX0#x_feKe=YRckYph^RS3c-_td>=4z zTpSWKnHNEA6=wyDPVInJe#Y^#rPJi>a&}^RV|25Zs=8%&MwMAKF6{o7xhYufof*ov<3?`F$|gDaFpi5R^-;(kG>;N*#t{I!uJK|h47h+O&E_iE|DbQ@qg8#z0*R0r z^4*DSgCJFu#!3<(lyOj9jF#A(K}_(`)&E7p-Mz8Cf>0zhSJ65jkLC?p4q9}uVNxLT zgdSiKGw9omeK}NMQQp9R_E^C6#uK|jsqC_f(+x&s#!x<8G1A-BE6sTSKJt@3ELHD& zJLv=;o;-vzzrB2NhI?Ie_7$sR`(ZM1=bKS02VrpKpdMRE@c&-bxms?aywQ-}*L0tW zXg{9NC~eXlYL_vyGl1`e&UlTbWEU|ddNTHzh`E}MV`=YtUVXno;rV?0C6)b3L1qyk z01Hc%5FM>JCM_@17*m3Q`?nD%F;zu;Sv+yjo@P#LcjwHOQcq(r{D)gQ=4YM-MTUR= z$1=+3TXqCe3$H1ZwFpGR8br4MTfMF8ggiBT465 zqQbGZ)T=KO$h~3aQm^o68Qp}tDj8sb24sbymwyNJs$;bOM|Et~s0EUFe@bGjRwkNh zZK;en&;jIZG%eG7np8ru`viZ(uY=|@U0VB3tX(P~WTLfs(;{qQzZl`Dku#Jkw+Dq8 zW7PVsMX)9qO8+trEQYBd6^6e)l&TwG+-hHp0|YY)sD;qfIL=7aINcxDlPl=s zZJHjg6{cUcgOVyzD%}5xbbM9O!vuzHIp6?fy0ZjyaJ_Z=K-O8R|B%3W`5jj3TWE}e zj!B6@DoENZo*SRo`;&xlBgjAr&*)vsik=TB4681mZh!0-bmHEcyMQKiKIn4y2wrRz z4zK){bK_-SLuQBG%+ry%3uRhH>l?$JH6YY9JY?(vv8r`ny87Le8d#*-7NV^ZN1bM& zY_4}roHivH)tEwH`Cn!Ur^hhSWEhI~OgeKihN?)tbvbFHPW$-ofWR2GZN?C5b7m~k zY(7_dYmQsnQ|;RZ7`wOkpP9t`M&K4mY*4WM`JaNTgrrJofdE@`xi?r9j35)@1Id}c z$-8MyZ*o|3Z`0wIxcxNU(7fg z?22b8bDsnN0KfnzK$70>q3(?Pb}nMF8^B1ZGDi1sw0v1EXj z>_rq4gk#zp&X%~J^v)`LO^#4WB`gv&4Dx?fbW0zI0oH;1CclBgW%M8My1u^p%$yGd zvOwpUw`8jp(WE6!9TTGrF3dRE3)?maU;}3Iy-$0IGwp8p5%h`9i?G=RiJ6&GE3?kU zK5z6|qS2vNJ!Ww_qBl(tHb@?nhw+c-O=rAhY4^swzMC+Zo2O8Y3hrvxk^6tiEc)O={RLzj-kV}0>tjW0jLzA@bdhKT&_sKDf3N>YdYu%u#V!w=h&n}_jCFL5#~$_~ zHX<0{UswnZm-RH$DZRCBp8F;=A9VAw{~K{}LXYZ~_f-w1-0FJ{lbR0pHxi@Z2M2w} zx75Ied>ez`d+ETCIt51!r*wTq)D_0!N`b``8vz00c`6TQugbhJ*^$=pNFpDjah2Y* zmUMp(xk=aE=8#ZyJg z@iqHGSVg*>`#5bVG@)Yo;VJV3Chr*$n7NKu^V;!j7x2d7SHU|zTO@=SOfh9EF3}g< zCm0Thn2qBb0T*rw0k6Faavf&jiJw7ozhAQq`I8~4rb!l$CH(24O+sjCT!e=i$RfCHV-BCE+t`o}6C_V~>L%@9 zR1o&i=t1xCnoz9YH@293ruWJxQ(;(mc=uX?uP7`(Gr!eYXMeQ%^?e$&#_vmNvY)zG zDK0&W#I#wEo}BCTY|Goqv}AGFE{@&$*eS;}DAsE_)$iYPgfKqQW9!JndBg^`#@smT z+-NRcy*F}*TXM1d;1V{SN<*b4HvJdZTze%c`bp-Mxl8)SbD z5q_F0n<-mLUrpCf!`fjkbRqXhUOBxp>&E}ncdO$)>HGT{G%RIhwi75b ziT-tkD^_ZMCf{X5v*yaMMOYLRP!LSh~QzPuT8 z0>(PRNS5GT-4Ar!QH=gaUf4S9CYro^rXBrn128V1mnkl#7ToW|!lw(5j0RMXehF(p z;QI460NCo0QLr(Lm zDD?vj*vst)ce0NQhu|_h$uNh{a(Lu&F&FRS>hrxMHQ)AkAxG|s zb}f-!EjCkG*;L^H5}Nlbq!-~4+j}jJ+qE|ESJH*|=TH)}yR=)F$3OFWxuJ=+9MeFy zcN&ts$YCz6Y`3?_lwH#h(+`RQz)*t0z{XHxZ4BHcK`wwebc?CH7eB6BSXkfNM2jH=!I!%l_2Irs-h~9UxYl zD%Id#DSC~Og-0uaz!1i5T0UFGce{0jb};?<-jz)IQZx`&qD~h*crX*8WS(-(3ZJ!fgEYhmmI{_seLX`EV;W- z&3j-&Kf0*0=EV>~kX8D$?5-%KA@Fd;Io_GIIctP^Yi#23sjclGu0^i4?!*5o)5d+r z;uEO-QU~|(DPLDmv28!+X0*m!P3xHKG08k5v{Bq52#J#~VA*UUu|`~|Xe#*~2`|cX z`yJ*ZL^RKDkXAEL>>j!58M=1QS(ELHkf%zP9(-=1bE;EAW>dA?a`~+z)bI3XF%aI+Nq2xi|-NlW~Y10Oi`Swj*$b z3%;@UY(KR9X?=A^mgpllM>D}_7`4X@E@ao}!l>E>!hFI ztYvIijcq>>heprqh9mdeWTqMj1^hsg=|KMV7hdn4mh)Njb8Y3WN9s4dI=utw!FS2D zE~@gX07lr%rEc?Ifz@|4EANt~YE6ovP7}K|A}vu)ipMLLK<4+&c}KK%o3Nk_0J|-B zwnI@?UlMN~b`P&8PKp1a;xa)0-X;*3#gctwzOo9t0f?@0G_8G&^LHVwoa+FF+ z>QVA&g{wZgeA$~1velW%G4Oyc=HKoI@$CjHrRQ`-4FKy+A!TqTlY<%8KyLl!N*+g! zB8af3%w>A30DTXp6<)#ai|4xhx-H?Qr3QLQeYLAB$hvk+*VxU%&L|ozvw<*RFTJ5J zDbML^Ojs}&WIpQEd*X|4`aB?tTd~3E5U;O1{ax2zW}QGw4c}&B@^hS6pTCK&uN+u! za!Kph@ zdM`{_Ip{!L1Va`8lUu{S%By(qNZlff$nO5HtCQb8ZX1gVS#|O#8y9@{iX7?1i&u7& z{+I;)kn6vs?-Eqjj@)sTUOFlaOsA02Ql&2Q2e609%)FW-bZptKB)~JiB1vxtUtS11FthzW(7>2tb|>aVuYpIjk~jLZPTHLnAj`(I)jFO)l3sP};GaReYipx#T0 zXFclIi|n?`oawJeT9ugFQx&CZbRWj?>UAJ*ZVS?$Fijf|U|xL${XBYj|W13SzdfD_r&G z2fBQUAdLF}B7thVu6ne4n|Ou!#f^s{MNVXrx4ieCCrXU!-xsOr9WR`rX0TQkag_6^ z8~ONP9>s`VbUCo?J?7Ns0&{)Lk_MAce*{R$-sdbV_on44d%nmOKG{U6Y^Od>F2@@| zoNKP3Pq9Ug3h$pL_av}DNYTEapl*WW%9?J7fM`-S5+qvvz>p|6My8!N%$(LLS8xdu zOrxOS3m{%l%0f|xSF{mfFyCKtQ{MIivG+XNIBDX>ENtAyh7NLH0+IH8T~!>>)6Tp( zAy4~!o^!?ngrqE!-vFXg^yjXUh2mj?%+tL&d!*O0vNub*BEq&tOhp7>ae9J$TfxKv z4}gIk)GPxB39D$N6)Mz}oIT&!dV@bT1y=;Yd=MF(1+pCWTG$I4zK?&`oH)aDIR~0u z&*-H3o<%(UX}-qu)^f8fOw*ilPxOgGoz&oK;{?qxYH+RFjG*I3=guxnLgwfiI+iUu06i~zr}gr{;k|u; z@8&F%XUJ(lx?Az&*YVRqYts@m{q#ev*WM&Ine1#NhaQPPQhlFz#nw=-^Dt5Y8vC<1 zGessXSt&MC&ewNkcyxHC+luHt?8xlLDd0|ht#vDVGDGWDn zVsu2J5o$hngW3(`v zAJ)peH*yVZ87bn>XP)&PU;=AkS+C_Enz5;Ss_Rs^kW0F-t)t*zGbtg;qjE=w#aV<{ z2R?A=?tl3nW7y9;IQU*}(BYBCpWTQK`k6RTv7;>)uYu)N61)?hTNU%KWwIQ|FEz&H z{9ZcfEO&f*5ci7=KO{s$YygCgC%g@I>Hqm1HgnCBvDGK4kt)1`7UH>`58ssa5hw77 z1uysH`RJh_>Op+H(+PU#?SONG0)S5j5X86=(P9}gmGPYj6;DRf36Ud2<3A+g^ad5pD*|-l_+ZW^v>$WkV5E zcgLX;zC$bOwS?t^kGrzyaICs{LuOJKfbO7#6gglODygL~-J_7d6dZIU$b%P9hv(BR z8V!MQ_n0LaODP$l(5~A67fw*q+ckgQ*^n(+iDu*oC+);+tfl-BMb@%>AJtr%FK6B& zgFfWsZ|IEAFD!K45Un27uV=2ty>>Q;l(go9nCtS8mwIT=WANs?mq0?opI2pBr_?1E z#oz6lo|fkA1P~HRAaV*PDX zN1m2HyzExiyJsKTy(WXGLg2oeB0e4T%cDfz>w~7M+=jlU9+_&EWz*H(Zd5r%228x%6nE!eXUs-wag#S*h+ zq4dQES~2Lj)I^P0I~z(HnyumX_pe}7*^cT||S8eOxjnnPRmWzOhTj^9$8{6G^apeGm#-8)MN zlV(ehI}-V#wtPq7M5Lab9~rqyOt%@!YDsHlM+80N7Bv6C2_PP-Zft6RSd zZ9LG5tp;c;Jg?;uxpXi-cm#!vt&K6~yX&bXe|AzcD_r9;gQ*~)4yxlDX0gKo6dT`6++<4@82^ySl zA@BCQhDvJ;6zcDPm8sVe7|%QMuv% z>rQR-`q~%H@62BOnpp^sMi3E*%VAYYK}0t}=QjeXT;4i^W>g%B5ju7l{9w;oHvv`8 zZcSki;biy{EkQyX+trk5`sqsWaZ_TF4L5f~#Yf=G?+EwKYI)%S@F+WKb}#(USl(Y< zsygwrW!0r=%D(3pl9!{Qx8MwT&vg8CPL7xiapaT#Df4kGQUe&1X0yezs!u(%cUa9? zM;tAb>F*$4$`c>{V>aycZcexRkH0<|8j&-TuPFVA1zllcG`PY+S($U97ESZur7q2UlfvFcu z-5!N5)Cy-9Ie-nI8BxbPoabFe_|gKCvGV=7o2$z7e@AL49jlPO@mamwb@VRLpFczs z)LNRc5(J4tv(m`4+9{WI%e!BSbep5PrVSOIE6Qtq8aa`TWLs?%8#aG9lE^o--?jab z-3n+>K$uynILq&_enMY8u`K;ZFz?dyZf4#bg6E3Ubx2Oac~o-wl?^;a4smy!CX;Ya zfBw3En`3nk{tp01K)1ieyq%|>T|r@qveB*0p(6j|YCX)9ULjF#9UdSE0naK`S7CTV zH5l$uuzR{v)8B%>pz_vF1ZL{uIW^&NTQV;*`Bh$nRRUm(?>7DJeT&}_YgZ$|4{JP( zMo*#h5%ZjGPIQ5j=$N&HX000935*NY>HOMk~GtfdmrZb%QdIagtfjE6EU*xRr z!?-5jR@rv-h8!}u#xhR(E-(a~3sSE&xc48`GX2&M$JVto?Pc>50ld8G9c$?QO&iBO zG12foE@T^j8p7b+VneNjj9mzu7rzB$twiWLG(dxpFwx2@OT$VwOl|X4K>hn4;W4mu zenA$QWtq7^?3<67VTZ*UCFVE|=yXnQ~a;}*wP-CH$`4?4~3aG*6C1UZvF zVG#AC0bGdN+}b-K*C56%(F%u@P8zr=9Gm|K8_W*|vqjr2{tI;k3a1uv5vBGU5G3kO zpXA3Wham<^4QNuc{KSBRD2Bsm0MBIQf1h7kF-^LaW|Kyu(^40lUOVj`c@b22 zdT^e<^&PL))}#*BQ>~or3lH{ojS_>^3<-mVIf0f$53bk~cF>1t9HS$>gT)*^p!iFKKr=kidx~He#+^|?&Fp41qN5SEuH3jVg#B^P5ifBXDAUro zR?EMRY6Oi!H!bz^D4Wbdwmi~-N%c>O-};o@O9PY3t0Q$?C`F!5ci((Al>{cW{A znKwiAJZ}XH@cyZr(b)Oou6^lV@rE2_5UVVQ!3jPY4AEuO8LY_4rVha_yEeT?E2 z>A{x{lGbcA9t03@4hx5(-MjeG|NasXyY$^sK5A=ntm3Dps(UG^PS#G_k^0^R0sjTi zV8_MxI=YbWHPvkgF)qgHsLp4XoLR|XP!vpT+Drg_;YaGJAf*0}TF~-+C#xt%yBDRt zFutAX`~lpcday1_(jt)#af>X)Ulj{fX&RC~E*cwOJXvE*SWpqJxV&*|5BwxsW*Xdd z8f)h@s%miB5+U=)+3Rw%07_4dp$}-2W~fvh+9$Qc6vNQYh7oV0W_TC;?b~7|szuhS zY((@Bhhf>L*XP6Psp2V&XFHk{@=X>3luC1lIg_$$g*cbX9bx=Njt=XGmbw9%B*MQ~ z6}MXEl?_T#+b@iFXT=o|;1b6l)+2E26T^Dz1^}mqW&#K_Md6s87}W~1*cb&u!gj~W z4R@f7>h!|Wv&mbmcvbH&b^jzL-pM6cd-*5Uyvi?K+XvWD#~W~MVce)&^~*lWy=9+N zp=VSdYAs3(!8BA|oj1nc_t3a{``1;9##Nxf8_|Kcm>PifjWl`3q0o762LK9Mm_ar4qEu-})uckFNT?2pYMM8ukhLkInFp;C^)Dc_p8Gu3!@q!H0XJuJl#M1aADhuHF+H(=VRan zm5jwH@~@JEQBtAbtk~PlnJ2p-FEr zFso9*6Np;FkIm5LR0%bTzcfzn4)8INuf|5Cc#{vQ%m2Q%KDhJru9M3oNMyw=u?Oq@MM0T7bAO%xG}tGd*>* z1F+Grin@&*5PN39+27D-&S&}V`8$F_*0Ikhwh{%s5^cyvh;#w4*TK#|FT*TBx?k}r zu8!)JW>e8x=J`2VHP}C!}kE6@1&I0rsW_La%kg3m|h^H)rK-i@5b&9hL|;-&_WomsPb zL-rAFpo6DJwGx#27O%G{sV zL7gDdi)*zNf5O>~zyH}~^uiT<8Mjw6H=BXNnhX$kGwn`K6img)Y9tPpLCsM|U_Co8 zZn5zD=jeVT)u1K;HCpZ%EHL5Kwlj3B%X%3={!<*0tkK^nY^x9$iM?S3v)e7K{VN)L zSN~k^D>r~`5>OU`wOq!wi>I$~IBNNqw6}s4+CPmS%}x)=9Z6KOV@TbH(je7HD+c&j zPJgpPzA2L?Aqkm2HCp-Z2GvZX#~uvQk7G<^Iuecbcx6P`+In;nH=jKj4RoZjC(;n+J6VL7w0QkKIhH3& zSg`so*u?#mm1-Y)LnLoQjqd+mVa=ESykaFG10jw;i0ut@kuNd)%MXFkUL;OHBF`q+ zt=zLtBJ=v#IQ~m9O(Q-S%|MmA*y(bC*8xU`ZnP`q7x*FN=_bhy+loQSqj-7RhLxL{$nFaj}Z#Kg(#6`A#s& zr9lFAmAOg(owv%QHH6f=12j)W;-LwxzMzV1q2|u4Gt;CTp!D#tRwieaQ1PcP%2d;< z3x6M2DtNgSb`dW8PoCqiI{9 zSifvXGPL01K!MV*;!wERDy)pb56IJLnYJpYgsrHkKA!zuF!fV_B|2(%oqV#N`aRV7 zoS{goBH(hRDY$CnE-*jIOK|dEw+FM^PZv2X7>$^NXjST^0Lg26)v_pAZ9Wuv9w)u7 zF~CKM)vHphhmS-9{KD8N9$^>RT77qsHzRHMyBO&F(vbamPl(MgSbE}yO3!X7fLNT5;ARYmTBH`QQhnTct)Z! zl+@N6#A#4_@wpaV+QwjyfM>{gT1R%gq}>CRWEc$M%|NoWPVNS=I2z25PjvB~3KPHT zfJN&rm1=7oLrGDYh!7e8&BfC}7i3?84s`{w{4<0!scOU42}MlxpigGRn-P;W=fT-I zDd~6gM!OHAWv*uBK`t$x8>*QsZeMP#e1~|kqHobvm&{o071+)2z`@gB%}|{s*lcqf zeLNq^U;UUAh1(FUHmf6eZsz3amj58|MO$m{?;hY~?`NBNm%>&Ddxq@imC6L8_t0yyB> zK_dw=Q001JwFYQvC~~#vNe&xSIv{6}noi9cDh#TzrkA6T@hzl1V39(~J(=CUht_W( zrVE9F%j{C0hxSG6E{wpih1(E(s}a8ZUkx#(sG-eROSKgJP`0OBL~dYo@g(N;mn<33 zVf}X~n2){E+?SC564)zNbHme5zY^dNvF}wJ#+#D`qn9X`*3=e`k?ew#FE+%;TYOEL zi%ym8U1XbMfaY0@tMb=&yG(a2^o-nm2gllV<1PDlq5r!l{tOa8Gpo6u*7jJzT7md& zlDkL7e%RI?Aw(&~vFde50_hrh68cue>$h+T@g*QRovpq<@It6NDA(R~T{4#au zdvMRCmGN^qvJ%IN%UHy>6vFN?c=e&iw!`-bl7i5UI^|{@dWTe+c9DF*O5BI#c%#-E zj38eT5(X(Lm!B>!vAyAf51?vt;J{8sc-?T@ya-;>|5o^qRTSg!uvA0WIv8dOtOb{^ z7B6l>Uj%4t&U~d5YfHvaJJd{-pJj1h|J%p+yE}ypK2!f=(4m+-2>k9)4Ak z5M#|wp&Wyk2>@}!ZQ+xh;1Ku5d=V&e;bM1u^)=YD1s6LTmEA^Z4@oCAtoiW!My&X& z&;QlOI8~y**kY2cdcKrFjscf>I50jA^ygvl9v&s71bVjeJCyLe4K#Z(w|h-9_v~x4 zX2s3DnOJ3}EWyWe<=s4+0l=e{z5wNOAg7$~I5fI;IYf@5r4CYLOV@2wcP-{v&vap{ z<6gDR!NALf#1WQku&WR8#k~OfhDr|e-)3)syi3iMX;8b`ERM#feBAe|F#Bo5pQC38 zf>n)BXafkJ?YD8WR$Q(~OH?J2__Gmf%U+%&*+tes^9SEn-Y@}iR@L`;UW0V8F2{ui z{r$S|FG02|!cxwflVYj#O|jk(V}K!$^yeW&?_wkMM(Ym1`k$B!AqR=PsK3>g?#3k? z7IP|_E?DgZ%quyMX)Ci|<=|M$(%RW|b4&L~0nVXa%vp#E6nv`xPW&(ea7m)G&7T(3 ziS><;8UjvwLeO~>IG7t}f&mK`w(G0MI<429FB>!Z(~9J|b`1^|07O^qb*PFtCXe4F zs{fRfe-K`ET`MNJfm^M~cp^ZQGWr|z3P;{*?TY<0H)Bhph$q3}Nlh3h-~ma3a2%+6bUj# z90&I|DEDc^>$YpY-Yw+r4g)B?5iazI2w#hW7|}XwO!|aV0bl|>%IfuAUsNK9z8ldk zgRHvZzGO3$RUQ#}Xm1i5qZ0Dwm6z(%^rogvnm|4y&j($rflBXCj5Wgm0v8-A+k=YY z%0xNeAI*bOtSbq@ykLkDpnmX)H3*lH-Re{0x}}IZwFE3#dq`rwx6OMHaV!TuL z7HA1FB4kU2vhwF6iLPGhh|GMmXpC#S0(6z;mzGd3;!u9V8pX-m(Rs)i;P>l)tiBLq zlE}8b%|rN6o4$hh!jqtEhjhFyYf6g`XU@1_+^SbYuV_~?SdBzimx};yB=>1MT%FR{ zgbw1s=o&;7RYhg~hd&+-Xi(PRiKAdqZID&jG57{;I8GWzHn6d?w(dD=Cbn72Y{D3OSb(9(NDK<5s>3*Z2hNL}IkPh`5 zw#W2awq%!_&k6^P2vQ~{Z~hZyorSLatWKM_f}>tx4&h+oB0V{%!%HY->OG?SC%1(6 zRM>ie(<^VKXyhLDEr3tUAzul7!ad?Gp5Lu}g@2MjHdJQpjOb$!H9TE|52wxfX$d*Y zTeY|N)M?hYT&mbu#RQ@xmoav$R#F9O`7Ldc=x~4jB3oMf;>tAlttsQ&D&Job${!NO ziz`g(_yLSyK00R>e#7tGWoR?u8Oz>kDB<58LC8l^jTt>JdIkU}FmO|auosw~) zVvXnF1eXFpCc^;H*k;~x`o{NZ#GmwSnAnbjg!VYMe01rC$WnqzV|D+(qZBSRE{5J6 zajdG*W&NnJE(BVQjxZvbR@s~Zo8dyy*_7k?eVTo2!YbXpLwT8BnH)`19;s_d%SQ4+ zo{IY*PuqEDoZRJwI}Ngn!t3Gp`#Az^C)r;r-zz*PZ+G&tH*tty^1{XQ7s-kNptmEM z&socoIwgShlsHaRM7&rs*mkAU)?Nu+pA%4y|Ly+!4M~aVhQL8SlKw8G7m5y&nl3Nw zhi}nr<+~IzUkJ4)7-z58?)_(4ke&br#fBU0W8flXN{^$J{^^uTRxpNjDqwMLdP+FrBK<>DV7Gl6IN8yt*X-2q0}_-@NB>JuQLm zHIVhx`WR6*xlQBRYw^`9@vFlgyTH)>FUn9%CO!Ybs;rTrPVvwmP2>2lVo=8y=d#V9P?tZ0cJrL-0xD77L z=8!b);sjDKl$h(N{h9uE2&7;(6)nb8TNprlwo& zsPrAqlT?^Eq@X67nDq{O)80np6TvxInq1yddHh12VAQ>!7ErPu8Q6OtSVQ;@llU>)%loF9}$(7h??rS5!Fol3-68S_ru%m16j{u`rrpZJc`x*~k|Did5 zbH}rf@VMxrsN{LmBGT_d^s#&R%&3xt#LK02>GdC1 z`N;+JWe&6lu4Xv}b>YH{C${v^zB7s$@y>+%q_NqxBY~n5g&2zHWY|&DFJ)Kp62pez zX1xZKs~hxxY>!$71*RKiq5ZV}oPnS8cQpNg5ndn6v*+xwpn0mcNHUi@*L2QfpUAy} z7(o6K2|qi2s^QFlB--Q8#-) zb#c^_^k|wsp__1LexQ24(HpRih>AOKTX{bk4aR?M`nT;)5*h#`_Z@R!j}`8lLW7#WQYSi+92vutCwps6oK6vcZmU(B=$Mk@#G|0AoJ)R>Kr zz?(>yQ}=pS7FXJ1NhjY8Az%IXPpl(GV2h%|j0i-ag6*=zUQ@&z2u7wTeS`%x-+yXn zKre^R3z7||ROn&ioD1-+nmqNh=l6%$9~;WU6iJ3GiXxW^BYwK8nxL4WDNHg7miN|1 zLtR*EOk&_79h(!_G(fWDX0JJ&ZQ*9DfyCLO1WLdQT|=TAJn@lVi_PhUfRvb~VYqAp z@M)-Nx_hV!;Z;H2!kDOVY6qy?pH#$FChWdxkV3$Gox73s8J$bt>I?2Y&D2g+a1%Wu z9gBqf-pOvPB9jbh;IB{#rJ0L>h<1U=G#289a|m5B+T9ol@`OC=G$WPq*yJQtaESMroO05c$Q+aW z+{+U>1(AMvG#4R@@=b05f68YG4H(U)eFOt8^AEkelXPZQ-Q?~t0009300RI30{~Vl z$N$#19?&R@-k?)r<)1p>+ObA@vj#gac`3QC%tid9Cz-i%jB~tz_ISidKK^*=K_RkD zu=;p#3b?S3^Vw$!&T^^x%ci zwj7!ya5Hwi4Tn!t9cy2WKEkK#;bs5oBf`dqmjA@LikfDgS8MHzWn?u7l!m<7VW(%> z<49l)_4GCk;MpU+LYzYh_O-!H?!{w!3n5>C^wF_R^%)nF+RflCyBNW8eI(oOI1GC- zLBq&mRdMWbJ@t4JxDcPkrFiS%gr9H#;cXaqqR&14>y@Q5P1=8+{Q(y^i!2RTl6b~u zB1ZH=zh1letH@y%1^o%Yul8d31YEqEdpACtu~<{CHB7h36myp3kFXv;a00?yb}9vr zzi@}fc)+Q=R0@ceF@{Zh`3(v)L>gF|Z6;PEbpvkbFY z9u+Mu(15L^y8p)43gF+P%qwq&D#WKZ^=TsZTSc!e4#n8wfoBVEc815a7KB}{Wkne@ ztTe)OP%eG?)q@>U(|9WjLnaZLIvM~fSLe+ziB0ejx5%Epgb{DuC@ATMJ&h5QcDKBu z^aEI^{N{~6z=T2zNdNxX+qF-j5inY|cz2Tvo!I>Y55D0@(P>RNJSr}8rSM3!rdpgL zBGLWkKJS_2(9U!BB`7iCG(U;4#xLw5edZM42VeT5-(pD3Rl;^0cBvx|HQ!seUJ&%8 zQ*e@%BOE88Pkw3$jpyo~lYHZz!5f{{qYn&KTpK{S9a%$b!y4ls?WJBeRpi!0Np;#L zRK-D<2mY^cPD(6<2R4QP|NsBS_}U^UjM*;9>LFc4k-F^52l3!I`<-=j!Ge)~K%yxa ztzS(o+V!60nxODeKHZfwNs^Pyg{ncbRg@;F+j+Oo(fAdS$50J%tL0Ep?!MsIBMl6(>R@&Y^^6VyFJuBW#BmlD>MLTnfCCnJ{v*=KB)2Mn89f0Q@>8}#+YOYU ziSkqsibe2YHTb2CZWIxj&z1t=^Y}zj3m>Gsx6{n&;+Ho~77>aXEk}kgByw=9#978Q z$~)^WDd8kKy~H4vvjOrMQ%3CU_fQl3?_WWcpDhF`2StNHJ7p46Sdfc!+t-L;*Ead# zOG^)t5AW(Hc3q#uj(ART;C+7UrnElQ8Vpt_hFWY1$3OkrVuQi*5f`aOfd9-Xb&Pe1 zKHA}j;UCAnc~5sS{d3kU6%Lb1OxcSV6rNb|k;Yj#r<%W?yH)m@$kaPITt zU}!oC8>lX{*1}9o4=%Udf;H?Dat*i9cqXBAsU3@)eGWdx3}f2%6suUf6sC4}O?g>~ zHx+o?xkb7K?vJQh&gH)=DzV~f(5Q+|RG@Kw*Ata4rRE=E=QeU2D6x8xHp+bz!CkmG-oFf3hc!9QY#xL!=GT7Td3Ylr^5aW&@(7($!%Y{2Sugf--j z|Hp67T+J0l@4q@o!yGh71Q4|_BE5V*M{)D8pC$Ydrm^&KpWZ|Os>kImX<*_*?eIrn zKSwFu)Pz@1Mw{}WeyuEcbHQk99L@Z_szH+v=*oZ^JePNUj=PQ*iNR`I=hSsCZ6_so zr@wU9g?tB4mNqs&ud9c`x?B`a$x@8QMN1`X*K5h!&on}A4h|WSEcYg7d z4e$Sd)x<+viF-2HYC6nS7hO!LD|FJuPx5PnKvflx6MkHe>xS$LyhzbBSC+E z|NN;k>}J}aURotuitH5tM7JbJe+#||PoZI0;#0!jsn%MBD-pgC}vP9eEa+(NQy{6J z@li-QnkkI+wRe0iW~x3W%%~so01OUhLE#F~=OYHG3#+b)ZGBgCnwOtCxmWzzv$~Hjs~WiIJg+ax z3zPGIw0;a@`o(Xy;Dg8qFAX>RLweLul(RsiUT4Ehs;lGjfU2k^3heB-Au?QJi{ay9 zS~Q*5g~f`mOfCqHRi)m^z6P*J0Ky-!{R4z?CIiU3+cbSv*hipk;23x+vLz-SR_rT_ z-T_W2B%YjMXxxaM%LG+bTlZ)guuk#YM~Wekme50ew8Cj`e`jb#dtff0eQwKhNonli z&`2QfzanfGx_lm`&yyt&AnySp3ysX!u-h>x=xP!j1cR>euWCj|U^cAX4LacI>U@Ts zRA90BFcF%R-*Tf@I>EO2g&mGu!8zw2)o_`szN?FgDSu9D*Uy+%d>>Sd{itofk9uS> zZMcfA1( zMp@YNt0_KbYl`qzq(d=;NLtdbA}niWXu^%@|8fEGw7un%k|tl^m6dp;GPuZs7K4v?+kFJ^g4fVD zJ{i>>ugs4%5(Yi7FAk=xDbDURlR_B>Be(|dqArUHn+{@I4(c`U_dhjnH+9Z$_9o$b zEyEFLXDoV%LI2vOCKe7D2v44EDH@QMWsNtSOQvDeHsgd!n|DZXN8xF04mQHN^Yofn zhSvuD`gn`^ZO>Hi`N2@bJ&jhnY8M&X7d4Zs*V^I zFq+bBaIM)ma5ya*QXmXD$(xl&y4?b&$|h4&ROItTMfF!_tjJ$f;idJ}C?Y|FX9_04 zHf6sao#&}iQB*ZEZ<|A%Ci60$%1JaNM&Jh`O>2L}6ecIdm`16rK1#h1)1qZpa()IP zBt>>WDFIH*?NpPS(6j?-Z#*@WxAAkr1N-N00(rl+-fMuxTkL$;mKjMw;%pW zl**eJCHOEkIFd*fMZ6@Nnm*n^63vS}!y2?jR&?KS%?{YhKm#qF=;UKVJ^Ryioru8S zwp~qfl+Gd_QmHj`YBfPDviEK1p#^AI#}QWMG1Fk}f_2#^5U>r9U!FUv4ENy5VJxIMLF?dStPb)--& z{;fcSbY0aqE)4S$E90JB_C$y!3B>v;-(slT0%wS`1*bM&Am zC~-q%hZBcrCZQvodtKrDyZg1+5zN8yGdim8K!HNK3dHE*uV0{vG)q zaf#(LkQLE*{O%)U1npwgo0fmKg3Ok{DwI6++b6Q|r{HU;p1Ka6?S!7nlJZT1dIJ^F zL-^x?6tmdZ8BG{d##u_vmeeic(q&OWfL9t_6-s*^JE(4(Rlv2gJzza|1FO+^N@=ua zfal%}biAoIAHe;&T5rQfkKx`MkUVb(*9w?Vbb@=DMQH<(Cor@3g%EohetT!st`VJ%6)rSV_NjG* z?6C;+mUo!X+h++?W$V{Sv(G@cPX+Z+bcgZ^T1aQM3+tP4GvD)rlcm~am1lwF)Y|e_ zE|J&)?X2hPF7X_YHTxGkb44g6C8Pe&N|T)zuqPiEZ!7s}Yqi^91^xmfPUCoR6GwI3 z|9%0YEVM3tDcVN9Q-m5*tQQwY$DP=W1@=vEa-nDoS)}<%owOOG19-y>Z@hpWp|;rD z&!V0VVGE?)L5HhoYjL!qc(!Z!jR!U(t6VDGjn|iYxb<_qy|f+;UyJ z1{MxFFtP_?a(7yF>8HUoX)jUCS}!*;(6$f0!#odcQAZl!>yl8?4qQRe@*hRHf*rr# zEQ_*-O|Wlyt11qkS3{v2m>2{S4|7ncK$TazJQ9hZ8GN(b(@`G!#=r8})x4f~V1L)X|VeEwVJMsPI+NopB z(@UETjmlRPhA~F3jy%Fy8xM3!QS|=3cjU(D8`PIE_;=_wbqK8!^s`~(6=I|P^b`7- zOtW(?PbGhcG1zX?v~`Z02Vzl~==jgmdaQ3d>NM5Am5Azk*^DOKy56h&F!z5AVZA(O zuZ)PmBXnMG_(G1a^U3&Gd(r0lpo~urG+32GUC`#>ZxkCk3@Gz%j3>Hx!<2>eOJkr2MDfI=K~0oZ(_wkSj4cSRs_yKU z#Zq)VeDW*JxgZ@I9M|f3PsB5DHh>_;;U*&!SkMAh-lODz6r_36r#x;~zEa{bW0vu` zXvWx7w+(6$O&mv@LkTd3bP5lfh0^(-h>JL5YyYkH)0hAM`vX&m<`vQdWlNa5St=p( z(jmSbH<8Aa^zKZQ(-X4Zs%EnkGEw_)Ia{`rvY1lZ$OB{j zY#38v<;)cH%D6%RmL(;bKsu{2$cS7?&Eu^9B5&*IT$qS&;*)9L0Yp|IW15$K$Urp# zi=g*bBq zn{8Qmi_x*?WaM zXZxumCe)ubq`dZkZw`8Yusp5@^yImq(yT;qpZz&pAG}&QWoDK8tx2qZB=t`Z`}FX~ zhM0?mfrwro3czk-vZQ!#?O{M^hxUjYaO?gf{VJxdyqK!Oo~2yYe+mLq8NU zpE>3uQpDtHOtLs`ikVyuX**Hu)uBmXbHD-(wd)?NP(&Y>a#xlYqe&5~BSuTYzHBK-C ziBC3tVfgU|1x6SoM2T!2H``IsM2s$3%fvovC5>c%*%&e1S^!$^#OI(^Z%rCzYK>41 zyQGzVxuepI3;RoTy|eFYJ=9;_SA1A;#s~8Ls<+E76=pAMbE`tg@tVUJBDIL)Y_)u8 zrVd)D(3A;4JR1VZo7#monBote8G6#l4c~sZ)@u9I!k`N!G8~^qJ$jAsrAa1p1zPr^+x_5FTTiX+*1Gsf zRBTCPVY0F2a+X!Z(X?y2m~v!fK%s9E29sG#+aV8`!0{jPEOIT&v|`3;>ASD%+`dFE zI-w$$9^H^%`LXJ&4(fhEMI%@Xk^0-YRb|guVeYR0W%YUONrRQ%v}U3XmrKbA+N`37 zFSB8+>WLM^-Mrs@^`Zfk({UzUNP*=oh2G5rE-|oR!<`nXA5?q^oMl#)JfC#{;#h_> z9Igd@**aYKtQrlo`$%;J;!zy*s=p(?wSKlq({OY08v$^rTx65v^73}eV7Cd&An10 zOJ{Y$eA9I-K+6ZtT5=YZ$N015fBy;#u3gQ%-Er!CLof02@D9KKE6}DGIIAL@$G{2; z&=j?jxlyZtZ_^&Tcs5XhG@To=`KBsCW!Vn zz}F|#O|n{ry^UAO+M<<7;wiv&iiY9ScnNPx89M-M5MufdUQU-^z8YUiH9U*1r#Atg z_DgYa+`wwqmpU>QpjW-w1M0g#v>Eme1FKHSN^^=*XsB;yUA#ed#44uCDPjDgBk1>^ zV9(0TFw)r5r{a1!jN`fmO##aJO3!cbqOr}=lSXSVQX6k5{m7c1J~~m=w2&4Z5=9!- z+1({C{`l-JJmZvaNri{asVazF4e?%pq3N)%ac6`He=6bi*Y@(d2Wy^xzjaCueJdbL zIq4(t=Q2nCm%QzsH$$cH@XLMOmPbFKbYg$s9o4AB=P3bwXt~L&+Mr1IfB&#cxVkp; zbg5R%;vfmEGclXB$ z6!WpSLF@=y^+fX3m%7mMH3I5rT6HP*dRZbKtU4`0_kb9&`r47fT1D2u@jr>4OE8k7 znDu}V0he59$!&qQadgxC#1gwt}WBYYBnB^f-qywoJo+J9?cq z-stkVV5|L_eH6a9%XWr&+KEk%BaqYpa;{>xx%mJ&0{r0Q=14`KD$w`Q4i^FTKmnsS z@@vDz45Wz~#14D+zKxP^8vQ%ubCtMWu1bVhfgRC$8EM+MbUj)Q`>>lgkBD9OTy zuKLF%M768e$#f%6*%M*c0O1!2gsm92N}jPGOHns6nBAecbZ3`u(3f07O#xna z3vo|fQ_f;YWEh2K37sHMko~X(B_0P;!OU_pd+lreENPScO5VUQ%)&B#wk-2FKB25$ zj|m0lJ45p9Z#-&1eBBp$(Jrn{$D27kCz+Se>SH$7qr1~@d>Yxr9b+Gdd7S zFuWaK_gPRHdtPB`h0kgJRZL8+;wTFn~imFqDL@Qc;;cz#&1ItfyR7XO#pAK3x=Yr zi50hmR+?VSP`akW0%53WiLibw!yi|#UnS8NpdTDT1qqFov=a?XUTtp8@yL6C?0}Z( z+QfyBpi8=lUO-g8Ma}T0*}}c{2sVM;{;!F{vC(7|_yY?C3VqJtT#nu?T(A_t8BIQ`+p;crY|j5Ytw}d$LLJ z2*jxYgU#)-7#zrBSo}ZWtJ^CDDlqvpiVKry0h`N6zE=f}z;4$x8-ccopv{lxK@+{y^Ej%70`QzkgrCF?tSj*adfeUK?dQu_JSX>ULFD8#)s2Y2kSXC z8z=R2hK`lDHFIl4PFNe3MV6KVr>g^~+9zDay;s%vj(5sImd{B3;nMxCQRo!HM0<_J zV4h>y!^UOzjiZnqQ_63L)7&0=_R&C_pNU%99)|ICAR+UQ{S0_6q;!Ju}$yk=%JzavxXnpRQaAxl59(R!Yd75h4D13;EM; zeK*TeO2?IH8el%d6=cq(tt$dRC#ssx3_5%Go}Ge2h*6E= z8<{Eq!cvN-u(3^Sz?s`-PXB&(RNPMP?(5Y3X$}6Frpe*RHnyZaSm5uv zP!_31FU~%bIJRc(AU;|=66doDe|zQ*2G!!oV*7HDiJ-9mzzR%{b@Dvs%lFi}@Pzq(W@u2YFL&acl?Rih3QbdVq^J|0| zkoQ+L^|D(l!(<+npgOfaSgi`nTK+c0rPykXk7|(E_V5LGze1qyf*T<)4zBENKqw9E zl?OEF`9CBp#>6}VCP0jFybgm5+2J9!0?aJuB~Nn(;7j1s z4d|Qd8-U$|s)c@A|MRdV&Dm&x#;C+^ISC2AZc#!|!;6$?qHpw;z&-Wd=HnEW(N>-m z6LB|;sf0epQv>QpdLO+~uc{pJ7m0(D_pw6naKyx%wT|4Ppo6&JF2}S*(z+qaa`n`u zH(mz#LJ@YdW0kxS9jy`&w^OFs!-2BG4wCzP%P5P=L5^U>C~)HuF`QXW!0EMZdufg0 z9O~F{S-drym{B~Jt`%>h*wqEx5h-QRxsRT8-EHJ*5o4fwDd%eV>l)!3X;_5Jhm~c8 zPo_2J4!7J-ZHZj_Kbt)t(6df+Wh8YmaBdqo8;Lq``HK4K(DWS{&At|iMkB#&%kks8 zuW34vxEPbtMo8syoR=4oq9(yQ;mFl&TNMZG&s*XPr*RxMD4l$ey({AmL541SJx{vL zTgLq^8ZYN_|)cW0>xpym0lo?)`zoCbJ`_QhFJdoZ5ziD7fbPS&6 zXw&`oMD`5peUU9^y#}pnUx=EJSOO$cwjeD<_+PbPN87cdtGk&XPQBDH<;Vn5KhqOe zCF4_n@N6GO{M`B-4GpW3iYb7^E*lY(r<~dLqSe6 z?=GrT0wJGgpJ`$KAQ?eAN~Y)d=fFA&_l_+Ukph@k8z*6@n_dW)dw#)m%JX$EN)){PN99Ki@8_QRXW_IM zeQ1V@6gI84N&o-;W4)#-U@RcEmhWn!+N9cFQ35I}UmztVhCl9;KvnVu`k6Z&vC+)3jguiEZ0wG;@;@D^LrwyZ`XEkP zWp|m98%s)STLZvf=AsD@9s+SzK6qYv22yadQOnjMBig>3Zqq~?)1GkXadSx7hFJdX zzpPw>G|Qhy8kEv>ulADK&nd1$_i{WHNKf$NOnORy>Q6xTGB6hcPM0<0nF2)@mWRCT z2R_;s%4*^)Yzt|l{MuWYzSD{^#!cKyvJixoa!`$)Y*Ce)@0Vp0{OzQfZiCsl*NLHo z+n|yQQWZK!-QSG4N@{}UfaG3Ao(3|6$uUBPxInr<|F&M-Y+)Pqa{`9D>Oqej(~mroM?yuL_oX0%vj2T71`-c zT&$&%f5kOBL`@C{_@k0hR)w}Xft84WF7JZ#*bc0`3+fiB|IEpD6IZ;tAMRN><)*f5 zPgq@1?w8MsfMnc0O5WU-s5QrUr}Pyw{i!$G(ET@x$LUYv)g$K{@^_sXQqn*=XPiJ< zqySm=UQ$WWzdL~ci&;9@>aznLw#zB0WJ?2|xV#jdetj8<9!h?PNj1PR+0f_k!LtOTq@rS95NSYR-HN7Vs%f(fy0SLk+y!fI{MR=$30p*gU25E9Hgq0s2_ zT_SMnlNri&ide+_S;V(xEg)jyKoeRaAsnMm(ky!)&-8MMHW3B)S&Fy1cm7;lm^la` z=$0@EFT2C0OL3}o6I^gLFAn1auk3Ah-Ys!6RHYDpYEN9Q`To}O4OGv5E4;N!)Rpu? z=G4IK98kV<0MIOY^$I6{=7j*DSR~p$TEkqZNx6>LB;|32^xe3F>H0{ouC1;0hKeGask2E3I|=Y+PZT0i;<~Q&JEvT=vzoI@bv<$f&JWobE=jXI#Cy$|3&#WW!qo0)9KXAEic; za_OA1W*k9qWjpK4@|73lvJyx?e0dV5d9;BK>60_+bgq$LgxQ$|eI ztTLSbJpS|bKJ4Uf^y_QkyRNZ3q$+FFCt0`#iGV1ukW?PyEgCouS+(u>F*xl3oZu%FIgC39urx zd{E{b6mc-{xkdhmTKrb$)NoL~-JY^k0ujIpxw`R5=+^irqzyXy*9YR%h|Zhh>% zxbo}1`kf}U1cmAiBe5w>Hh*j=9Ahy$ zakqIFCZRemC{0J1IR!H-yBTV}>s{<_@|VVWy9;1Kdh0Yy+vK{H>RqIOc%h>kt80oU zS`H%E`vA)}*N{6*nOWiW%BL5}0)zN}FX5q(^L5anGZadxhbAVbS|rqu7uhfq0;7x2 zU5C+z&OA7`9~|qizR7#K`djOUhc9>Uj^SQ0n?-J>69y3er04vgj%ig>p{V;OK!_aK zm;KmWn}nu#B~)s4@a0ykFXmgLpfOdO<)I(i%|$=3{quE`5WS=szMGe-jkJae<`fgO zt2z}Pc|R9`fALrBpYHDo7|b=XpadJ=u%F@`Ec-Zr46c@_-G0zTr*k)C!LaK59k{E7 zOtu#anil2BZT6_r!0Ug?HMf@d@Tq+Zg{LkkY2;@ZN-Q>yVr^*T(iY^TF_YDRX;Sq@ ztYW|r*z;;Ck`?j_8Q&3H+6*`&Qt@_$iZW$(kyzG+Ly$4`A ztW!yvQ)$<*QBi|E*m>#Y|6uC(p@RRXvmxGDeU7zl%3Jrax#a?IjwZ&~V6ilT+(A%g zX=w+cjD>X4fE8P43(>DoYQ--ZD`SNiPg}Z!p(VxK`~J6xvZli!4p|B0b6LL^i7|0= z60PQYy?(8&p0*azLMY2YD8N;1rZ-=fE-xQs`&oXz_LzG1q~Kr-DWx>jg;l0S@dD_7 zQQs>0M^5G9I#~wxg_6PBypl%(#GYI86PA^&zLP4&x`f0Yo+=mqbh3kemqUV+n4f9! z8b4^2S^7~=D8qr!5baT(s*p_6$9Fe#@R4z5C{4;^-*CUUUH#K$2wki|H!gTIoimb^ z1N08Z__|JS`aun5INU}zgP9@ccO19nBQt=X8?Z5 z?a(?=D8)&9nMgJ?v>LwTef>)EZ|eT3xV*79mAa3 z#}7ECElNO|nFWeDVbS?!{_1F}b!zqMPj&3;DFb~{WmX5JR62}PmE+1k%wLP#+az(p z`oB15u%=|-y%!8eejXES{2-Gi>J8nQX1c+tSDN;-Y!m4hh9}Q|r^$vHC9$@RzS=K?kS#l0dua7M_V%gy@f&SFH>aomSNQO^!xP5u%8lRO*?*nJ2IKAg7CH zUa;6Dvwy9nAtc6zzYL1hgOJZ`2=ug?;D57s6;q1gn@=Qw!L;+TP_`&W!681>1%O;o zFaU{hevU4eCR>4k8D|ez&!_M1DQ3_SC)|PkK0rC`aI;VhpcsTl- zCWVlhhg=O+)G^`UekWG^dHpfZOX>zME<|O+gI|!8XR^wQtGl>ysr!FQqY5JI*X2Cii;!^Wpg3_JyU7}7g^yDkf~pCa1-#&X9| zqL;(x(w>$i}DDWD|p(B=0$(jZHYg~WiToa-7`wHEUVhAs? z6%@!IC1MHOL}*MghBmlYkY_Nna}@)=>&Fucxw$tt$g-)Es(6>(6t5v^q-v^rzk7tMzs*LUd#vPd9$`I(>AYT)*+>z>;G!Ig z%`!}NtpTF4)@f^nfDH2cmVKZc6I>^?g`2Q{;1?E<{{Fc>`IRVsJ+%dVE`%mqf~k0X zjqK;PqUBJL(PN3SU$fTQ9UKgQq75|je{o!;MZ(+p&t6?SJ72kFE6cV9JL4#Rx~1o5 z@&ckMO`I3m@eUEx{lL7_TbZ{dw=O?!2={|R&AZ00@wh_?*p0jCt;$S9a1(Ln=zk?&J0uj+)xl0slv3It?y#wu z8n5i{(K-(5?WhbiQXfN6Jxhqmts;hZgeffs!X4s?e6`9Y%&(V;ZzB9{t_i|(ML?>p zwv~-@Kx_qDF&T|^phz)l2mS{6h&(w5Zt{KZL4Z>_qG5$K1OvX@PnN6LB74zCwsIeQ zf)1q-sQy>hZEt}ZF*qMF@hn*?@@0evZqyF|R<-(9rrRf55)=55w3)f<5OeVPSpFPS zma%~^!7U_krs+pqgA#q?A`|}O!B%wPEB+pIBZmca4j{EY zsVYb~xDK(6waWvVWct;kj#4n4kk=;x0jDMr)82_0VRCpV9#O6}2(qnxT0ezU#z8rf z-ar|Y*XFV2ld!NGN&?}yL)x8=K!;9RTW;LjJ0}Y#uKBW;2K>i|eX!-3glG;1EH46k zZ-?K7EKG#}F=o70ruXzbe8b-cJ)9-)_7cC3mXVQRuPix3^>@VdR5`>0s{fPoga^9f za`j7}G!YG9D=5(=;V|?GIg_a`dqAX9fsSBO@ZftFxnQ->-}7mJvt;2OAvbv6a*IvI>V(ug$wQY%lj2v(Jv`Ud_OQ zkI&^bCn&UDg6eM+_NE%G1HpdbZ%&I&{VZ8Egntx;d}f^LL-*bY3OJm>*x;}ACyrP2 zDOc45Jamh>&wG~|!!KSkdv78p4lMFRKM)HtsXkXWZ&~6QlyNqz`+P8cX$$Oy!Z{c_-JgX*|jVuY~vW~OKA<}^&jz5kJ zj})6u_zD{KTx%fL1x|dN;0(3-u%fMs`uPOrP;B_KDz5DKE|z!*?@lx+=?@(Qd_RN6 z5A@>qVm8CxHSF3OIBa#$wa~c#c@FQx1plkEWc@5|N~2W{NY)%E%?Anf`aFLOV0t1G zHWr4aaAAIG4#e4KsqancjP_rysgqUmL9#6A9WNP=pTy3Q+n{DPk7f#ZOt63q@@9%0 z&7Fm@PY?1EmWhlVz`49#EET@vpLJx{qL51BL)T2}a_bt~7@0NGs+n6TBZg5l3I5B- zpjkbCg!;KC-aY9>!W!Ub=fA}hT$M5(eqc`yE*y>+BP}`2{lq0%cJ0qW@*{Z$U&rsU^RALk>XQiQ6`S(@ zz;RrGrj>I!XVp-CC2BO;FLI&;Jf^Dno>SBqpL``~PE||?Ozk&uqE2S5f8kmDK}>fY zk*?>CzJ{FGwfOH{?tYfONe>AOp}*`W2*~UnB%%C7=;JxWip7lqxn4Ok&`Rz;rAok zB2w;P`dCRH)xbu7_Qr;Z7BT~*F-sy(i%r#)vG_XB=WswuHnvd`X2DU0`E`Ndl`QxJ z-(Dg3A%j;*sHWGk(5~Q~^~p)O^p*g;T0gakvXy`oT7O0lE=zQs52;c)p0fgD?vX4{ z*{myqEktKE-Bb@TmZs)_wJ;Riumo=T|1Hf2=uMXw7AeY9aQ|jfrZU<_6Dq-nuPc&% z>z+$BmD)-9_Rbz_Dri_f%!t$9(3WS>{)tz`5=S60Qa zEryY--3f#?F5hE9EZPg10CrrFBv+Fhxmd(aLW^NbZk=Zt0YbQPWM{Q`6 zh2Aj*6cECR|Ffy~Bq|@dVe2Io!+@xTZdY00(EIzL2?e!$(i1Zc@8JVmhS^^w<*I!4 zbY9N)+Yys<-sn1*#X7=gZdU!zp93t8s+O_J2H=s0?VEd{D?yrpKrB^ zK*~cE6@PQ^n11p_8h8mV!GcVW82L5a?f(vbLx5oCN~|S_YKbtPki-pz_D{&pGB(%t zo7J;fubgDww+aJMutK@*<*#u6|NX)HN}xWwE1+aEqqshb}@TYnp(N)qD`cXDt6Z=Wd z%kpdoVY5BA!^Dc5iZ!;8gO(y%ucZ>cMn>9C>m8Y9Y<4d(3|8|Jq@LxgW3cGz%AhjZEY#t};E(B2A6&2`He zw?bcmjL=~*8FJYrHx=AIXyS>?qr6-Uc9Q`q=XX8cV(w*Z)R@btu1Ld{Ma z1=~NtBtl|HG1RX3tJXDEv~E+CHLfbX;zu{(eDs?s{3{mtSl4Bu=ClblJdA_=;_Q!` zw%Cv)>Hc{j^t1n(U-Yd6%VTS`agPg_ReN*p<}WpHQ{OMeq(OD{L|26NYDF{}jdj;` zABqM?03>{BW$tGobvgs^(2CjC-}i?*nd7NO0<3{1{nQ6*AKZa5P)~C&{XmWCPZfuyC zl%lEZEK^%BE%jp$Tus}}_uU2~IMdW}fpPh4EKL#Wk@Zefa#-}5_JU`OQ%eu9a7#O* zz*+$+_N#Rva`kHhh=93z(EU$0?n5>CgjVM+YcO2VR82(~B$oTcadr0zJX@Pi%-ARG zIR1R*A$jiY&Df+>y&Y$4tf=%+G2l*Kvr#AyO&>?(^yRQQzWoOw6I8yIVK-bgKfRA4 zaRyUaC&Q9$!HBVG8s!*9u-f^;*7eqmO(4CtP<_HE)hHo6-UXACB)%_b*KJ<+2={TS%+iuf2K!G z>&K=vv!{ds~Xdp4YJ4Y%`3FwpY7d zu~jd166T^5Zm?+YxQif~@jX2GyN7x(F@DvidkE8E_LeNA>FY@-(>=r4jL|TX`aqJ? zUp4=tm!~Obf)kAc8DmcdZ6<4+?!*vx1r@DZdTixLaQt@**omjes;SzPi{TdXwn;WW zDLe{C5R8@8VM_@^#4c^Go>n6N=_Urn*|*oI=a36EclATqM2r9a8aPyFU7k+eO}RS1 zZ4Lr7(QJ^6kpZ=K#=iR%i!})^4{5P<^+V~biZg8MO|>f8 zL=Z02DZ-yAe{6%9iaCc3EjRzMY&A)XF$^n0h)a6aMgkljhuJ;%z>T-ae`Y!bvR9I} z#WxP1KV9N~_+j>i=ZqAwE<;fh$72=%IUm9iUT3MQp-R(K&SK91agEnHV@ zdKQ{rqplvJBSD{vVRC)fDol8mG7L^&t4)%(@kphC?GWG*R#3SzF3A9IRsnF@A1uoH zS%0<-pz!{2fwSM+!M1B9dwfhZtO5?G`e>MmJ)Bw|GNUaL6|GHh+lo}_B&^(Hp0Uhe zr1iAuV63rUl3($M`Pdi1Lj+Rfy-HqWNC_9iM%I{I6x=|Ku}}Z~9o%8}ckRwPdeBXx zqN!J{JwZXY=V*g^9jbJ=l`hdw_8WBe>%aQCt!w?>uE_QJ7Y+#rp*C}32m1}R&+&Fg z&{fB1^HB%d7=@^kC`&rM-@BCtTiyt^Fly0%Fcz~mOJXRT4g80>*QDGL1+4LFZlsg) z>H++~9}t;gx~I%3u)cra#`Rlz*EXgUVe(>T9E5)4wiz*XG4mmgg*pW|A*-2-K@BTA zDrl}4t8D312;`Lw2ym8qES2^{8lODd#?#Lw7F1(bVyypitqnJNAnY@+N9iI^Ld{ z;c-^is#Td%sGAHzCp=^VJ8wY}wb|?!e%Y{#Nh!fW@uIpbbR$ z(ege~14KXHfSUnPC6FC+W<_N(Sb|P3z}xw!=GCC>}87{Gezw z%3d?w|3R&%*Z{K6r4sKilkY4><&mBK_fCn`JT5~;+*nlM&UJfg64&aYB_9MWa*KrZ zNbCYb5pAF*CV$TrjHIK{Af(gF+BHVTG~BLXxaJYs;HV1VTogXoCg5whsrnjZ)5%5m zsvpQSR0|*yjEw)w5jC#Vahe0wnQSXXyWRzVD_-(lhoAKUVl>yk&>c9fo}Ae0#(8^J zIJaGv#ay`ultOse8r)pd4vqlTJj|nUd?3ylsdJ)b3-e%Uuz|UHi>D2;b0!%=;}i#Q z#<_^y_z-3!#;il>AzwrW2bt8T{?M|FJryD7a)l>cm5`%E-Eb6Gg%Yt?a!9kIAfInd zQtMNbGV1=TNF-H_&Yc6WLtf>G<}$U(l@91KZVhq98v&)-K!``*DIrtl8)eT&d@Rug~<&_^2*ZR8mCFP?J*?g(_OxNV6VVf1 zcmO&1^r=!sM62cA@8 z@u?l)v#oFt`rP-TYL5P9B~|I^e7U_@==4>R%@|7R$=Jeq-``_Vrzxqf5j2G|@ozw} z&n3moNp{6SdU^vmlF?UnZZ%EYpv5ScmRw%6-oWm-yvI?DPqC_hY_QAbSlzVXY*6{N z1s?a6FeNtNib_t7=rT3`|NV96X(Gz{#d{wA7x#1o@#27Fli{j6dJ&{hL$k2tKxBI) zwyAu)7H-R4(QJ-1wHbNVP`&!7L8o7U`=MV##?TMtZ_7rnS7h8w`n+#lijrcnL*i$$ zU-euuvQX!=I0l9Lc(+-)HIL%e9#``d zP>98F8>+dy_{GUL(C+W=TW$N-0C`3g5eTQQ^rqY+&Q4p0OqTE*g(K&@AWAvK9)duX zg^!+bjc2(3^m1HqtPLRWTB_u3eBE*EER`m#K?7;{H*Be&2bDe(dUR*s9fbN8t_BYO zaJ;rCvv)an(qJTo50B>!roR4mlUEr&I~=~;%Q<2Bmw`e9Dob%#g8IeJwyf0%$xXBR zA+|L(&+o|!RB3s2K|ots@V_r|M*Rsn^?|$9|I>vL4p}_KRpoXIFtX|qULJ0g7VZ`M zNUt*gMDCMlALGP0jZRlga2B{aG941(G8ue35hA|$%yENEZsi8-&koN1jU8i7uT zYHiurt7c5~rc>QjZOiT?t1gE~wO0UZ@qucn@qmiE!s{RH_URQn1(M97&nYW2F`v-M z{4rT5OaY|#)OuspbqtV8n_bXM0J<0VQk|~eAQm1hi}OGiR7Q7q5*d<_4X_$0+F`T? z?R$?&lAin#e1;E!MPr!z|h(DmB&Sxk0f?nnL{jM-9;IkfdH zor0b^9$2@bIvr{{)|poGNWuh|k}U^M=lWu7-?2_6TN;&6D^evA3muHzxjqYx9-2(7 z{Bat-shYfxL8bdpBk<9Kw8+ZL6!_t80m6azER17YKBsyYW932Wgq#+je^pgCvzW;~6pQom!X1GX$% z&|?(-&;a)A54uJzu_B;S2cBD)&=DX4$a68)_oxz~1&o*m8st=4B^%NQ-I2P5F~wm) zRxQ#nuZNH|t6DYHKsQ1dT=2|dUsZpcCjpJn1~W$VXPPHeD3Y|MU! zS;VuOXOgJ&F_3wS7brzm!bsuwdZhHwItw%s{MI-;yWEL&X8uKPUr65i71{^kuff01!!M#6>nX#yDAsOUQ+DqQy12p^8QYe%O zP#_-8Q(}8=U{k}f36Td`w#-rhRX(j@0P&H;D4+lT`M1lk2spQHJBd}?UbdzlnU5qp zm00sEes=B$gYR2^6HZq6mSfsW3c!XOVjcbZY@0CGDR2y&vAFGH+Qh_ju@QM;)IjIQmB4(4vUMdd16YX!vqMKh+K z9WTf(pAG3nbBEd@Yyv~hA+RN0{zT!s91Hr``)FTTv?JMp{j#Dt`r~yqP*7&b~C?fI~9fqO@ZtxLQN=tl*D#$h0m|T$OI~hSjTOp zu{ZM1ZIF~i#OQ~wiz$=;QRhZw%uz;MQd&W+Y|0$}|~FIo0@oI? z8Fr_FHllNAV4V}`@B(@doKDG2-mcKh)sT=f0_SUO$fn((eV{^vW2wW_hb8kCi+V0) zNBVK2JCqdNSk?;5b!}HA_|b0~T6-+$lA*CicWKt#3wuL1+I@D!+d0?<_`u|>9Dlqq zmu*@qLuoAboM#@%%PY}OK%GGF$+9WMzVv-;w&s^hI{-SEB-7Pa3n~+MM9MgnN3JG= zL6(zAwV)7`(%(3nRhn5D8kc$6KI(HrHoHI`e2;}RCJl*k>PKxOZqsF8XN9(}i1OoP zeHq*J2YSHZ?y|q7O%=O-8`kwM5=##jx4MM}K68yvbf}v6Q0&QjIu@CJlq!2iL^j%u z%WQ@D@P1~(R^nW?6i}_wq@A?Xir)3^b?%Bk$R&cR=^oam0Ch#$vnOY%FCL*~SgSWy zclXtv6&G@rTf9mfps6ub9Wg4^Qm(*drI09;cUXazIb-QlLn zs6Ieo*HNAcEd`Otc+`@@CIqC`(8JR^>;PQ!8yOz$CPj%sLZ0nw@8*Ke_j|YR@mEU60^yL9m8!PI_);?FDW4CUe+I3(3l^W}!Y0?!2xfP|oWRgx>s%MnKzD@r({mInZ zb8K87onJO#6WCkwc!H}(FX4H$Y?p4bmLq8LQfb4 zJ{~_>|3^5eS`Vor6X^Rzdze%03FQrh(!0{zVF*Ili5jg;sdjBqg!Ap^;Xl;Tn`peu zdQsU|{0sl^hYg#}Z>HdgNlsz~V{H!aPjahvK1Y{|Kc+m*^U zG-GhnLB!E!0IZg9Gk-*%OwMcNaVKMi?29C_y!3FHH8@L_>KwjD=z{Xim4a%KSbVe= z6G!I$N@&GhhR*04oV($g5EThmYa7gPxP(qpEX*#s4vp$ETPv1ri6f*I_rsd(K zC+)wq0c0RUj?@gOiK>(*G*D@enpo7CFcF< zn-}RC@MZS%w+MiZm0S4-VJH#FL98H|M^5{&VSihjOa#329+Nac?$k^1bMc=)CBm-Y zLf|1!SmY$);J<;wQQJvwcd#Zhk%fi~#4`=PiK!t?Ye`wwKcg)(2M@arHlDNOPOCH& zKdb$r28oLI6$dfXbD!OHxIAJeZep}|qjTv_MY!C1=_+vIpH`(?4)n-N zKluYIwT z0#ZiELZPg1=DF>x``87tVN?Oimh_bed20nQMAn&IBLTS@k?!*flDqk1kGQXxpFM2G z7feY~39RK)p=7UX*WH@$z6l%AUA&f%NO6%K(tIIeL)LqQ-XC8r1HA{`hVp6n9avJH zZ;I!K`H({I=+@iS>h7PSjwP$1hMxZXNdjGbd;kCTm!Xb*6NqZ*5MASlTTYE!h&`?q zO^nzg8Hu|PwX9q(*~E+XqL$>7Xu#;3;J>FqVDDdAtzTQqH$aR3QWJq}%XA0<*c%?& zV+tn8^;tpKFLREQl3cU>+E;4|tB(g%n#!x~7zAh%W$KoTX3N>im4}Ve1p*zx0E;ravs;JqOXGfs3 z%bhCZDqKk6cQ1K>mI0QChwe%_pl7&e>U8`hlWc|hjV8mjVC_~`$z>gR6LGLht$Ns! z!y8dCS^nBXAKXfQTF5I^uHIeER4CCX?9cO$n1BKsVRTf#iSWm`bJREP(P`e#3{Cf^ z6Tx)u^Z-X+l(oK)F5UtfyXKU6qN|+O+!{9qmT&%)@sHgdv`H({I@O>y;K*)1X zM@=PAK%B(NZG3c%9tBgkzWo5zId+e8?761_Z)>`dD~B4=UCoA&5tErz*N984Xh5u6 zM)n0o8*T=`e|741y*x&s&#v-yLJat{n8^=uK-Fqn2xM^+XmV@9>J_~8nQudcvdJe7 zQxl<61-LZeJj!|7#)_Eg-eke39TAEL;mw4aIzL`U$vh9jpjjIgHlRm zY3XTBTdVsi%g>K1v8 z6|=BzZ4O5u#G+Nxm}o{Xf#di>FoCTef$cyjJCD|8CS?i$pE${(HdcahjWD~1QF#i| z#m7xsLh*hmPzc~Hawo`43jaeoW=xb{h&oX8lkK%`Pc8IvwurQs>!{gX#}Bt!k!aQQ z+8)@M^BG6nyT1Qd>sl=)8_gfA<~f7o`Vu=??y&l+^##vVf9f%tTcp~bPk0Pq!95Ep zq_Q-J{SM^bqc3yP@H<3|8oBa<&Y@uZz9HO6l0bKmDF#IVY1UsOd-TW8Av=d6&E*9N zvs-#;_rz*t!Ma8S$Dv3?aK)@!3oTerQ*oSnK@EWm2KCcqHO8S_yQY7xz4jHi#)x}P zAz8;{D`gdO*g={cTF@L@+*2wI`7RyN2C_&2K@EuhH&IN|iL=rS;i!B>(^RsKT{rWa?+ULwSU<_IZ>k<%?YG`PYdg zYD%p}2a+fJz()lWb0rRCggEcd>DMyzraC64`+|Rv)`wsBp7|oTQx-A)MXxVNJ)giO ztAww1n1VtyceVeK(A~gzTd&GRd#BQVB|!~~aI@DwKm{|+cVZ(WNa!6%`tvKb$~&Dn zuC{=mh3B?dX?_7B#GA4QQ;O}PFAFS5qZe&sqKqqDk%%426AX6Gxqm$b=9|4upF#cg ztglonKs;pbRC}vq3T|*tEal0y3MZA_)A=f-*(bxt=?JXWgh=NQn~s(1ciW2%_3EP6 z=s@~l_&hAJi7VDbMbmE?aA0)j?@Y6aeF1eFXZz&;Ff^=!q@x%Rl;A^ z^auWQMAUT6`FgF*&&=Ynp=dLV;KAmo{~BF(R{>^?sDLZ>gG3MUEFcsjLFA%NB~XR5 z@>vS#3f_3M4;fLH@3BYuiI0l7k@^e4%t}KufQ`eSQj-SHgmSo4$wKYYq7_H}$Ise; zwtG@TN>KvaAP2o{&Vl-US=&!+ZZC-;1uTrTxk*rl6r$@=1ZHpC##jF5TsYsokPSJ8 zh;BA@aLeBO19VBP`4+gDrE$;gVlh+yOSfhC<7rsVOQgtsD$1|Ldcw5t((;D+(=D_o z@o8QOdFha=~50{29K>-hqin zmGseF7s$CEwU6Q$b2Ow6(DmhFY7+9W@WaFQj$X>~`p@!e224qwJ34GCb8}qUBz9BN zg8@m(&mS>R0fP+14L1jr4q>i$9dFHgcbajP!+IJ zx#m5$&q7UFi%hH-BZT>zF8Ry!ZD*H_ms(WS`fS7}$K`m8-DfVW7#BYDW-$^(o zaH}?03Qz|Lp)yyY{9ko3GQ1W1zM9L6&-Q@osZj52F(ZaQhDTKiEvIiJGOun%X#Tbn zk>!!E-o|6}3_kli3$lU*P~Z1buSk=3tI~pMfvBtxlL`WHS$k*hN(h>5J$czM5Z4XNb8 z;$<*|7(@wyEDy}b@!nYXzi`0pYMthQ{55izUeHf+t{w^}+p?imnI)8DuAtqGF@<8d zx`R9MH;II8&>K>J+!w9tYN#!fQCPww{;B{ABu$i7jKh?fV9^|%S@N2^U4tN(+Vue>W6aIC6N~2xmW6E$-?GS?iIW$Ey+qY$Y?X%QF1Y97Tn?irB6o z&6&6VmCMD+2b(re1cR{hQ?^3d;UM^eFdT1V*!YkH<(%xNW!o@iW%Z;*fX5*Du-%V! zsQMDHAL^$fO6HFHCdj+_qP*j63BN?IRlzh|G|3$9O`V$zGRWv%TS`qjqrj6ic;c5HJW;){T43id<; z-Qdj~Ro>C-|L<>Z>n8+72r3?dbEWI2kT>%CJZQq%Omx2#A3*kq|Me(6Kh`HKgshVm zjJJEmpxD&NV&}_1RydVRFTlfTw=mU;%+uHt-@s|LVm0L^Xmoq3%GOG&HyDX7{CiHM zac`hwjdiA0N(|(`(PJhiT5m!B%=?5v(0PAD>plZAD_8Wgc-1au8-%2#C)*j`Og+ub zf;y|#vRuw%s9J9Us2j?&xXLat!S47+lV#@evg`P`##RAd6b=@{J4jp|a?cRg#8Rqn z6eiLA#>+RCrr}CgO$gtT5Jde?-AOANqsVWL9_ul`&{G%wOo5zb1E?{2tLVHFLX`4_ z8kOK+MQQz17gX1pX5sstIV)euYV9f1_fOnDPKU@)$4PfB`B_vCF(2ZHq~$Bd4OH+} zrgeoQ@T}bC&O!oAVL#}hbpZO%)YYB44kg2)C~(#z7eyG!8A<#eJ{L+1<{sYUH0p7% zAOB9nt#;&?%6{!bi$gG}lXAsse>lE-8m3yAvZ>?&$AR-R7v#% z!A8f;(P3EW#{c}@LO?5XcVIt9G|z*}esmK_F67HI!sBGoc4q;(7UmuzF11jGTz^RIcD{^QwKBU~eF6OVxZ-PJ<0&s@61z)LK;%HcsYBTu|& z{~6F9_*Nvm#KJOfOPstoCvNAE-VW@XJ~R}c5?d!GXs)fB`JBa${Syq`Pw6_LJ&ce| zz~j|n4rY}PSdMjbnidrtjV_Y@GS_htVxoNbq?e$)l4Xd>O!KD(sB*#Bc{-Ak zRZ@Ld(mf@=$wgof9N<@+7%CY=MncjeBIMn(fem)uDBy!?$Ub8@I}wg@WnInnj3?xu zr=75w(J?!nXG$lDP#HVMP&dE+7)Z6PoF(kbWq%+vpsTR{oA~iaV#uu+o!ea($FEM# zcX7sBmk!z>7F^t`CcD8^<+-`nf)bsW`J?Cj8V%M_j0B^6k z|64Ky5czAwi_tXJ)q!ATG!@{bV@}l^2RNg?2QC=vRx#~j?i7?A^{lhFCmuhxfFmrU zI)fy}N4#u^A|0y`F@RAYYoziwqfyNBIu0}xblkUB7wvwxQXl_-E8jMR;skBTuf^R} z@QZv1nLX4JFJ+@dilAGM6hkoSd)2I3=hZUvx$>ns(#_8ceQs=2vo4-!>;ib~U){XR`{GubWYN@!k)P~Qa!fRD5^w)gyieig)Jj6VRHIT|t* z#?Uou=hM1zyONZB?)spo9oJ2#vsoJo#pvdIU(PzLq2bdp$V~xfnyCu8`Ul~>raeni z^XFHU|Iikgj!UWOY%1I3d45n_XtnF8gKZA;Z@xxAA!cb4bO|B z6rE@|<;)hh8{h4O?)`Hb6ABQnkwrzjavp_@=s%dAFHI1ye-EU>Tni&5^3=;aE??EU z^*}Z{v=_U;3_M^(;nQmBdr4Bub;1~;7!lg@>Q+@=>~Y}wq*=y@hRr8fQH(^MGeYb= z1o3dNS;;=l!Jp8<$q;r27m;=gV1~)z*ugwQP<9?bBZRc{!y&9d2vqds<-0Zis zyR<-CJV?L1z*x`f*D)h{WCCTl=RM{eb7N%~MmYC#dCe>ID1~iE&*`O^V?3Ne526<( z`#jI0D;mNouf6BdZ5+7l z)c0sIs&ZRuZ@MG;Ox*)_AYgYb;Mlfp+qP}n_Qc7=wr$(CZQHhS=WBbr`X^qTb@sE@ z&kkrG!QNaAVf@yYLv7@~xJzMC4IwMtYg&InvRCA;rIqzbr<2F%v%x@G33R#a-SFV){M*|9DUQ@R~d-p~Fbc%?_9%QBzo5Q8blsGtQyexSnw!bjXXP6f zng}9h+6O7?_G6r?+k_~AGTd?EOQ7CazP0E4T&yqScRIAk48gy$U9IYEa&PSNzTYo; zLl-t_UIXxor1`xLQQCb@%@{Z;d)rS&U6vBB^JNiag;?yoHPKXdfs$a2o<^YWR)iW* zQsC_Dn~cwBuRNC*6-zo1W z?3rd&S=DGNoNcXNYC`Ut=4BO-L3RzcvqG>|jpGp>;+V>R@`#PW7jl zuDCp>KtI+uEONyxn)OZE`wyjJ#=63$e4&A9yiW9=iDp{XdpoZsPl1Nu9xtnadvlxc z(>^j$+Y75JN-A(bnZyw{1@ND%(cc6EF9 z(P&mB-I>*Y#I*Sa*DMR_uvaSwLmM!*#xbq(g2F3|--C)@kZ0|Fh-at9vcNkwu)K$r zANRj9`koSp9m*dnc9Zqrsnh*bOTFg$5sElu*<&|BTl8T{k)z z!S*XH-0r9>!G1HpF(4BoKGH&dDz39Cfa}v+i&2z271>{|UpV|Vd`cJ*7oVFd1k!Eh zATdm!R?lb#=>ul3eDC#qu@?Nmhr6~2`z87DyKZm3V)rSHo&+V$TMgnTFuwD zmCPR5mR?UOnsv;1S2R;=;FiOO@5Y0+^U3Te_w%8p)JVb)NkTS30tNKoMa_x3Lv7k| zOMjnbi6O!^Y}|6*D3*jI7>J%lrJAD6uRfp>jX=zH(X@K&{|m!HD=TEYt34IkL)CP< zL;Zqe)?(ZHyA4I4esEq19`@M>)J0x!zmZWZL-zX}2Ho>+a zcntm*w+TlcdGlX8b-9KK2cq6pZ%SqTAHm@Snw|bkn%w(a2+EHhsI)9_M7%*VWQ{*+ zbI#YFhX&LEC>v5AGd3K=IY!Y+F=q?+<4b^dFLJ|3Fe68?41>*T^Za~XMTTOx#l**I z$_<+@$67C&E`~2ZSk&qrNc`cK7CnEneDC5oOTs;HWAe3AthjIo`izju7r6yqkuKza z|7wy}^AxL<>SVO=y}&5{X>=dz`0_|8A(}Mw(CfpZiu+IxFkV=4Ob!6mWTkeK3tIwu zo6t>i7*jC3iPOyHN(3eHVrIiIm{O5>bpxpN0-bQ)yM?HiQa{tY?=T=RfoE5Ege@qD zFZYr_$RZ-~6f*V-$41m;CVvQ7It_QUuH6;0ZuwJ3uXMEct?vQ+)R^rA8FKcm}wIM&5cOjn4P!A3G+9z+Y9%Dwf3>WTa2lpwMGjPe3Q^@`$ zZftVs_4ZxgKlW7!lO>{tS?Fm~5uC9@Wd`v4S4XZ7Okn|8`fKeg4wB%gk;YqEGEFrm zkox&pe1sJ4z$vX9{`bAD4@0vwHOeaBaj;M%pz7Po>;Me=r_XNI1AH-j#+&)~50hV4q}Jy%7LA8K-zNyN& z3~Gn#CA1-1c)N|>YQ;C``ib&bo2?Zq^oig<769afU9ao$Ja^psSSRxRhV>OMvK^~D zNyz}5=Wr?9Psz#h#xUD$HR(Vc*`0_q>I9ZY?~gCgzSB$rF+8G5k}YYfnCDDXyJ7>y zZI3jQt4xy+&HZ{X_gE zo0?%S;vK#e6QCr_Bud@U2H!i)tu(WXg&E#{T&)R<;$X!!XcFA zL4*`aTys9C7otHq8-f5o@*IYa*t;C*L?_R4Gl${G#@i{hOEQENU>Q8xOwx08_`}6s zM7;|4nC$Cyh-Ma=_^df#VjyY20LMmx%1(RU3&vnPK@VhB8|P)SLl=(brS z$){3luR^LV4p&awm}u*Dq3UePJ@nw#%Y_@}Z&8?fRmu)AeX~zXY#(7_8Ho{J;AgZp zbgpNFSY6;)`}jj`I=iW%MOU3z1{Mf0Vs@&pf9+!Iw2oz*d9jg)Qz#)sICIJJtPJX{ zRY~Uh;xKE$YW4j!*Q-WMo6fiwU(<7Ff%nW7X10(GM4CLmS@T)BQP!xx!4qjQmqp*5 z?O-07@r*=#cuOb%hoGZXDgDrEc_uW|5K;R<%^Kl=$D5hGI=6?1E>4e9*D*$IHAgeG zSy!kK7`tfo)VP6t6q93p16qbtzi@jOZHT@Ld|LyWhL4RIDhf2na;L~}8K6`Z*p!xj zf96orbK>lwN|*k3f+{X{`xLXZAM8aTxO6#Sg%-U`J@Y=6!2Pe>c@`2M@o6mJ0FU?!%4 zl#OAPcay`%PAyizUwH{|6A7Qcu7X|?I>-ONKa#?edJz14YYCGJU;+A6BVym!xY>$~IHvS|2jc4Pbz&mW_hwD!3 z7@+H_;_=w`fV^g&b4sfl09Phqu+P_P$S=J};!#|Q-`}zlv^M4H1SL<-+Cgkqw|0!*lzaTSr(U$OnB>Ak7Q=mZ8jWe?cYUQY=B zN?=BzxX>t59-W#D1+oVs?0I>9#)fc6ceX3yQq|xSyx@A%$n|!tYJ|E1(3@zjPCYF?%eZwD5 zmnyp`=JcFKdFLsH?b;$dWLkd75+Bk9$^B8os+ znH)Oe@;Kt$oxLdUSc1~-&2+y|;Cn9GEm*K&moenanaeh_1mOjnG$5LZr7T(iptL{^ zc20cNY?I-cX#Q!N-B3j-&adj@qr<7iewF&K4MKmwSH8i60Qk0gdM)ur3K|7Li+?Ocf?to0CJ>=n>^UgQZb<>@Rb( zGbPgnnN!|Q$@MrNj!tNe5VfK=`026p>d4EhSzK5%;d6YFFUef)u~5%=6Ey(tlx@QW zbSrUeZcHkAW#Y2HGp7dj8SE$xR%_of5^j7Nqvf99VW)Uj`0&ffp_z91%@{vwy7keD z&IV@`Zzetg*v97BCj#y>GvI6Nx0SHTy&FB3d%AVUFnVFW({*X&`8q;_p&EnK(kas1 zC)=`G3YH{Mpx*nJ^}qnDS36OZzANynY3IF<#uy|elm8Vc5SrAOj#0)fArXY zAJ02qbCua2X<6bcuu{D;)a1mSL9$#g8|>rno<@L>Ic(rnbOIM<2F9uPMOD%2khYFP zCW3SG_-D)!_=DMeUCv&8X1L<}_Hedn*7BDz+{U!M@w7e>jpJHAi5m|rZL^?#GXQ`p z58d-VhR@=@e4sioGt17i(Say$h|QyY{OWF|F!gVvnNPNJ^9BidyT3ZnBpNlGLmY}ok?fqy#PZkfyiz*Lk450^phNFA?CwJTtdgDae<1g#_RHpB2n8zRI_vqEN+X3 zfD9@uA{$=foq&8NCFa_ela~bicA{HjwWeUDso3tQjOYmG2nwfXuNs7ju-C#lCFZ1< zvcKa_&(wPt*$lMU(^Zs0z9-j+Owb2BqXG zu(lmZ*bY<*K1ennuf~h>wZ9Iv!BUOSq z-mQm{AB6QB`F{Kgkf=LblHJ5ese%8TEKd+OKnWfDk7&k z2g~b?(&K;3Q9(<`@Sg?&l$7@O$vWDvVlMCYLXrTD*cv+p`uV<72Aw406aiq30K=5^ znBw*sqc!uh21WL0dyDIoivRP~i8{15freI$F~ih_1=XYHh)8>3N(Q z``bn5FC~Mpua_dDaF)_Z&>Dwe$vA%U<{j9VW5YgPn7IervT`Szk{u})VD-^Av0Z|Y zqS#FnM;FHRsg|zqFqgEmi1T;5<0ex>X9LN3ROPn(+PgNC{nz+YWe0!oJV26^5$Qlj zedjITT{Ya7Kc)q#^aC7>Fu1zWI2)EvUW0aqGsO@=T7bAx!_%H#vP!?z{>8E%LkqGj zoEWSU%=6s4s zwPkVAe57bQrbukd?~Nj_1(8eSYpuOXmawLg#w z!K+JxjC)b0lvyGY)GJq#*-y&2dM(%gw!pi6>}4^l(!XO_lzd zHm-U?)_FHLgVY(-H?(Ha!<#}A#~T4h&Ue)7IEX}|08UcreB));uO zKB?t!qczodL*`xi$sK3pA-mkE0RXQ9m`#R=6ouz_w(O%N-DNgtk0mB6K5l58-J#Yh zTpJEPm$6*V3cxUAJg)=FY4;LTjjB+71^{d=1SJYwtzQ!wJtzWGZ)72$QEiZuPmXTo zb(7*)S#sePS?)s0FWVudi;n2h6h?aT{zAC}t1jDztAfX<9ndy?lZ34UKwRpLp^=_| z$hl0^8UnV&@-PpK_Eww)w*1DARn202?uZ1OASw1lc4k39WgiDxtfvn^hOMo|&rZSr z!ERIa_N^D;-P6qE4Dlr3Q}mYhMxnf*_5Mgu0ba03i@7_7tf zq^?BH!&^(Jowjves3ADN8r;FluD)^w^EOZ{5#s^6lMm~}BVeOGgrKLIjG?3rgUT|q zgtirke10NDYc}qrSAk_L*GXKew!h6#Q__X!p36o{*Ld6?^cxB{j}y~K9g~4-8~*^c z--Ghc5aY^<-{O^Ru^VloJjf zSVSPfMAbB^Bh8`K+b_KZU2d|}E{ObPj4=0@D(XiWMZI>Q7?K2^a^zU9EDY`uPTGTA z^Ai_$`6R*J81`1|4kLzkVl?CMe{+|N3JQr#c}ffxE4oWUyRav63&X?gGjrJG>mjn8 zRGuk?>gGWe#4hidY0syqPa}{r3QQq`eA4S)t~@-;yV6a00MU_7_uKRfeeHbULPE4x zwvU+eqaSCb@$KWl_lrdp1`9$xmD_QK{Y~`P)%5j0NCmhJ>r((w;N6F+v%SaCoSVK~ zX(XM?f_a)U$(fZFENHudFpF7BbG7Y&lr-4FNZT9P1;~H;1(vAWmxsMi95y|M^t$yc zap!uPc}q;jX%oo>@fG733A@x%sJ$XxErOu$vv*qy2RSme_arQ`3Jh@hd7#hiv9x3z zk_FMKThN;m8VctpW`AOXwK5apOQW^#5o*fYbZq#ge12W_!4;B1^w(B4-qI^7)h#Yu zr2QNJe|}Q9&HmOY>!%;?9-v1vSE|C1Y75ldd_W$)nC?rXI;Bn7FB|F%G61HL{n`Dh z?AwzPX-z?8pqxA$OWj657cRAkI?jam?p@C1_-az0Ea6IxQ#mySErX{Zn83s-0Z^peuo?&y;u=TWwQR>G-bg*yb|?+Kw-b zMaIykOU0LwK2Wu}M83@QYZrXPe8{}85okBF(ra_eXlCC`&2E;!iQ6~+V=E;SIyQa$+QjL=va#^)H~aOE^B!oE<5D6YDK6j=oC$lf2=#pW!qvDC2d}oil()Y zQYN8^?Ad*MlpLmZd6WicZMVRY#lt*xy3`HrKUcuq)h z6rZi<5#zSkrPFbLoB2L$YkTzcYnbXz=bF_DkW)NSxuj+hVu;RWak1C4`{hWbP2ISV z(M5?y@`GD47xu5O=s2bYF8JHRoK%dP^e+pz;uJq}m_GeK*?vaKL5q0ss$pC{u zgePhN<85Z&g)cj`PS99|KyMnU@-K<-J{}GK>apmM|(oj`()Uf3H$g zyBOvOjRgCa`4E7FypFd3)qGJ>zn`C&l7X%m)@z$L64s^es;JVR-edC>Wku#83mfoo z*yt^wr4PXp;!qk;>G-!)iecoX=Ra~io)ku9Ujii-xyj?L=UyQNsx7zD^J(OX{J5RY zc3jD^J0-;cMABLfgJXQr@*cz_t+3`jA=Y#Enua@gbXWoP4xC8|Cz&q6xEf7p6k{Fh z>J|*hDSuuelCFjlBRf*oq99rmVnJ+aXimqpAVl!I`Tp5pSjc}{u6WhD?t5WxW?h1 zGYTXn*@!GmnV9qVEP$(OTPYg@@3Vc17l5O6Ge}zINicxEhIa1wQ?Hgfv;5#VN{aZu za`i8F!vDzCJG)oTF$j9+aAh@~JGxRqEk)i%pw4WmAA67U)}2SxQ-2;+`ZK|EQmsm- z#}z*0lUV;FR}22a+Ulio;!*$`gar@v14Vg=v>BjM_%Li))!)RLEe|t1^9d=4x-cp< z!fiJrs~%-DYFrNo3A4-kEv|dg)9gV?p$4`&_w_N>HXO{58ED)^CgaNML%J*M#wSgq4i3u+vSKTB5 zpmOWgf~Sz)jL=x7c>Ej$1IfQ)b<)PKj*TcJY4LaV8LrA><06Ksm+sh9NKIVPt$lii zD-U$mGL%BWT*D*@b-9-ki5mGKYJ({F&3}@P zzGskn(Y7@brB&A@ApZ0ui@>XQ0})U2*R*nWpy+=Y>I1OjC~(jhb4K^#NYs`wr7HUU zd(1RLCE-@UU50V45BfWH({>2!>FQQYC*gy+C6}wJvV{<>fS0w>#%+L_secrkX-tJh zgCIyX@GltaSY6XSa|Pe^e$yl_CUXF44IKUST{4+v5f{MqQ^MpK-vXA zuJ$*6i_PL0YIM`WxQRTTDxOPRNh#yk(eb*579r+ke0n#bQZ641&hmHIhWm*EDhJ(&p%-*x7m&^JaJ1w5H*TcX(^B0Ewp@35 z^&f%}8mMI%b$@6gQ3d-(o@ch<{0r4+QLI0N(e+-{pIu(^&P(Kc8sgrxrbz)G`x{?T z1&J7XLwf{t&sx>|K?8=i$&Pzt)-hCsaT%|z10?Rz_p&+^huiQmq%&;=z zk6`b6+6!3mbXh3uRRQ+nx6BGEVF*8f_KjU9TsD)b3yW(Z10{T1&1n<7^NNTvEl}ENo>0z9QsISDJ|hv_IsU-=u*A@^Sb}BgE6u`4 z{(9W1Sh3V9djbF=ln?pPEp=2+*IN@P5kL1KDRILNYmIuk#joD$bWrwN!1ptML^@Q1 z``R~A#x+JJAz`;Sc$NY=$dQe05H!4qP67jH+vqC-nE0|J37}$AKrhMk@Aw& zwKv>45uiZ=NvfWHGdVCoE?Id=5mhxEeHgm%N6fqW1eY&ex6&AU6HN--_EEf^6;}(D za$rWdSWDphP^E;G`%BXNl z=|0iHltO0G=+M5OL+5A76hfzlzxdakC6_rV6>u4D?7d6Y?o%Mv^jPva%86Nc$?oIm zVL7z^vB>-{p;2ewT!RImqJ#J)QghL~xfeTafj##~FEE-ieHR%K*W`{h zgT*BL9t0DASN0CC?^E_)ELd?SesS+QMDK_kL9**tNkc}A#$-`~cw?I+jAx;A5nmvc zV^06l2FX1@A%oNIGMnTbb~>)y^A-RZSWZb!#Zll~L3tW@nceC|D1PV`Q4?C2~QN4#li9gW9_IOsgZa5gG1IIqHlL(^kjz zf86P4s{eJTPyg4Q9_IT0?lcw-#@?g%00+`mE`YyrB$Egl2;!uBqf@weznm5tZpn_RYUyzX~iGgzI*IEhPB#)VLaKn&6kP_wEDGjON~a zI|_^!$YhOx1k9Xa(RRn5Z(G%DW)}Co4e7|X_Er~6&pfM2j?{LlfL>!1CNt2B`+#~9 z@Axka&i;3T**v`qkVEfE{sJIQ#c}p=RcrLfPcBBV&n}sNmlD0vr%s5;6zfj;WJPyR||$EJl7435W(oSM^YympGJMCJPvA8Fbc^*>q#ai9dYm*o)mCv9Y;)zyln zqq1J7Cl|fu@}D|@v9t|Xvkg91Xx7-NQ8|cJecmA69}ZyMM>?p2FH{usB61b3GP_K# zy?cQ|EzbBZJ+hL;RiobRGE8$doMXDNb0|B3@eBUb_b)y6(588x0q zj8)y-R}J;sos=nWQu-Z3CJ~UY?)1ka1VLP#6eFYWrCaJn=Zx7SRZ+@s^ zD59J7TD%sb8VE~XYtSq+mzBZ{iCVdXt}(mNPx(>%bxGJCaB|jL2-Tc){-|}-$Yfb( zZ_s@>ptmX&i+s2Es+DoJ1V&QJN!!8m38T7;DXR4W(ADQi24C4TavXr99VI-P0z`LhF zn}`MZR~mvTOW!p|y7mg>?+O88{;HHw>hf30^1ER@#^&^ocD47R^)4mwdG{rv?upqq z8XY9{uhETLP6Cm>HE)rwFbLWZ9g@AARnr0Y31D*mppk+SuZo|5xy!O=_NeS8y0h4LQe0L-4!g7VL(cpBh zlue=M#iP+BRPK?+0P<@kO>>6Uz5y^#&(U@k8FWAv99U(YZ*KbkveQ03|A(ChHZ%VZ zI~|>kIJ8c`erXFA1B#KwZ;`4uAqB7VI{V|in#vEo(!(A2aWdq$aKw*@CV%%4vC?Dm zD}Ls|Z{!qwW%?Q*w?6DbR6*OR-NR&y>B&IC{BIQ=Hk@57gLJ1OCAPv97wB+0-W6B{ zmzW&AJLhJ&GS7GHXHi3ZsFqdNL2J1hdBOdl-tDEwb8H83g2a&AHPzm5p_p9k^Ur5- zx~r{w(t2JfF=jTx{0&diYX{tsc>*W1%6F}s=Hy_qc ziHJBLo9?&xV?gix@iqts3gBe1M`7GmRAyq8pWIJ!e>*y@fMHQW=a%G^h_y@|%W%V? zq{0|NJqq;yW82X{6=;w3Vq2rNomiBiss_bM$LM2B>&q=;Ew9cGe z`MsX%(N6x}JH4d<|@JI1LyT%u7L*KvY>w28tIST)+;o`UxF1uW0v-4nkCSwn=$K4J(^^=W2B}@ z5%*mpbH*#Gz6e|t?7T}hkuxp+OH`p(vHUA+x0N*z0Ahs-Y-$dR(ys)7n;gWq^J_2< z5B%ukGrM(NIVl{1jN=aCha8K%(xY2?S%IdWY^Ij!#L!Yeu~9~HT8PorCLmaEUROI> z0ZK}nXC&_>5IBK*2fE=WOOuDm$auG&`jCVW zJ<^C?(%m#X!;F}1BqKH-Q-6PC@E&fHzfApTH=POnJrX#IWJNbXrFZyP>|Gx~=6455 z=+>cs+A%odgv#@%8w#Bw7=Pn)9Jy1f0IYwH3|CXqQ2%$WG9_F7Oc?b6hZp0|)kn8+ zOLVrV48QY5J3Dlmwtv+QVcdKYC-R5OUWS!8NgLZxD(@E}8T3!Q_p86-;`!<;1WE5G z_i&3*0K;5w_w#Eq!KlZsc}wK9`CS(Zo@$~@TlS-|rnu%&+_^x!=q6#JUrpPL$z%I? zO9=ADYg~YY8w|mc67vMYsz_KjS*!KkW|g0WLil&Ot!aIQw@6b{40jrF z+_ZnidX+?xJg}o%E`biK$Up27q{T+ zXD=gJ)V9DVby;w`!Y({^F5gM_dFF&-wxn#WX|iM>I9>~iV{@Ie0jjR}w*eJqwGD#^ zy0(65H78a#{)&_JYj{`#k~@#aIZay`zQ9PT>zghQ#qUQjCy?u4?5s zyg*bG_EUp8gK^^Q{%kkDzSO)pN5jYp$rzuCHu>NbagoZ4lc1IO4|o`Q9_PYjF0b@S zB#i~w?xT?S9ekC#O5!~z2eL#JlAJ+vu%epaGS?k;#r^?KHsoSJ6{1BLi;$DkB0rAb zO8vpi`PDj^8pspgHkLGdp2JcD*a!Hbnq1B81U>xjfI7@z+4@r=96v&pI>0&^2iix} zAkd~17gI(2k$)TCCP+xMflW;r(3ZS>1RtK3NrWcv@Cc|pqc9=;d@y$I)Z(A81D_>; z&Rw<5u=6B)J`v{~_Oe2^dbl(H=Y_-BZEPEq}aqyR?P)1wcZW|`R7k2xv+z>g}KV|g0BfBf5}peeej-LGU0SNFUfg@p?6Nc&|stwvbV_cy7dxHxZV$` zbw^*-Mmmgcv>N&9)yqCFxCB>T$9zs&gq6l9p~S`GVZ;FQ5BR+H0Fx*-Aaz@sLJG5D za#_0S3|)s7IPla+X+fKg{0Y+6?4Ch3zN_n&%;S~i(h;mo$zT^V`srDFpY8Z7dEIK$ z?`~y|Ene=P6}rhrc}lD29}7xw7=6-bIX1pGe(h^to?ec-e`|7C2fh>NYo=XuWnZ!L zwsH{pil%eXqTLuQEb7<#f_^?_xp~`e#W4Y0%+~_m8Im`uIOl0amhx|sPwBQWu1ST% zuSg+|i=z~x7$cYwn}N?0a+vW89#zME9s#^^w@9L{nj@~w%;6T_RkWU667Gu^g4ESm z&ThG~qwe+56FGZs!;wxUZ`aJ82Q)9JsZQ2CM5|&DE3f;>kBxGGp-N${ho4NKK0VX! z@M69;_~XuOOv)ar&QKxC@M+uzM`=gg{&f?PMnY`m@%fWi`N+(hRD!I-r*E7=>U({s-PAv)MocX;YCA}8Gx7+N1C(oocB ze(p~z=kv=F_|$tQBtJPjr9e$AK5WE|$sz#N>Y3T&h;c6gMCj(nz|~<^T=dcw_>r;g z&4{At3_}d)r<;X`n;tfaI@Eyu#2MSH)XsW#@poHqKpH{CJ}(@1?MxPwswE6~5B3AVATE>^X&#v1k^N_0L=h6Gwg9L!v zTx&KOZjJ)k{J^#rJQX?Sq=C)#0w1%8I(5c%EZoPmTdPIPy^97zr)9qb*uK2zz5y5L zuTf}e$SV}V++eB93r`eSlvxg%encqBPudTAku0rZvap*`f(%>LMBtJdl27n!+e-ur z90<`cm;|+?l2FkBz5d5c^GDfn0)hfER9uS@K+jtZs-EeBWqweS!1ZGI7oko18fXQi|iuuo-)CeGxdH+vsg!InB7avdGeoi| zaQ>v@iUI;P(Mc%W{>pHX#nZ2{TsK$%5X%9d=o(87onFNb_f6n~piaCq#Gj7|F2>S3iXaq+@fn!#*M`V1ygb=qa484_=JWWyebo2@t- zp4{a>NrY&9gN@kE zLB&RK*|Nr@^RKa(6;kE|~E9(g-)j(Lqrlc2|6t1POiE$Kl; ziEIynsg|y;?#E}9zNkfgq)1&PTy<#%14zd9PAWVnBpiSnhl6TP-ib3`AAh=Q!btf( z84xbPCR8Ss{hV#1j_N=0uc zr4g(7oQ4jbCoy*xyXd2=w!hW~`FPf2D&~Rj4&f_^IOq_?Fv9n#I7?1=NL3{4I@RMa zK^q;=Gn>txCH&}k*Q?NSQU~;l0=&tGzic~}=11DZM=|vbh~JsXz;RjJ6Lbp6=ra%x zU&72));97m^26Dmc%TUDJ;E<+TavIUVi-Cb6{du2P{JDZ`Bxhv#>`k=^*C{5E%z1_ z*`3;Ku!Z>n2@d(0JRP1=OR$%d4s}e!_YEq|aOwVZTsUubVQunT;(AtTDQHL5fKj)X zW~s9{+CpSxJmsijRy)*}QUZ29YFu8ht%V>6KNSRYl6`52&BLcCU@@r#q+|HYie7!y z8G!EhgOu3G=I1>II+-QPYw>ekSaT&|b8J+dInqm)GGVOZ;sty+o{`_Qb+QleS(V(D;~oGfKlhk->gGzME>F|x z2(4>q^~~Q+66JF@=Pw#bI>9Vrc1aKfP_zXMdHYT&cQ8A_RI7POi;_N-j?Utfng4!7 z-@+0B84#3z&^c{BL>E3q*j=PN#kI*7l9J{F1>Kj>$^t0bSR5Ve>1pq7EagmtDWkYR z719ld&@7tmgXoW3Sb`S~f}Ie;;HXcnME{ZJYR8GlETABM|9qd*Vl<3Ke|}_XPP=j& z1HI^$GnSKEFW^h%H!pr4gl3>Ru;_}MQtHOgpbC592H`qbBE&Rt55K(umA@MX&7GLi zO}n~D9An%pc)Gp6<`rL_8#X8DvH|5%ilta4&t!$4$Nls%O2%$M2%r=mXBa$EZof2`N$Oz+02}*Fex%i`BH(A-Es}{tlqJ$T<~x=cM;8Cfx^B?sIB z08VjU6!(S7{9>a6x9@BWEv&@JQ46vK%>YbP?InHiS{(K7#mD#u!Sej4EAYfJF8b!X zC@py9+ZnAf2%NPX|7r)a>2t>7*1W;L`N-rsAgJbs5TI4vcTpmR<#>(5xl zoH4`AZGEeeKPq7P0p#vNUC#z^^rbkvvh~&1;2KXF3Gr)A54G@w`I*4{FABL0>EnjL#Dwp;ANQd#?X z!fK`H+UU&((+y|&Z9&6G&jMRLPL(%W(0`z@wfB)~)yxc|X;}zleZTVV!kGnS|A;hM zTOM1&cR5={bj~22oxgc1@@MD)Fe?cNec%7Z2EF4WUcX+8so2da3=tBN88Hb?@Dr(a z$!8q?W?$B%z|*(yUN1x~(En^a92R8AF}%hQK*iJ!7#{ zQ|CY@CL)5)#G+K-z?$fZ8aALp^_>5G(0P+z$PE>GQr%9qzrv~}HW!4SQzCt<{ZbmA8P(Z`cJ*ocvtR+F(v{PUn8tWUwz^(IK*Hso7q+Am zxuVBePI7qoY~PYalpts6f}3N(R)oM(NI@G3zQ1me4Hq_?5!}^ia0r2^DCc-`$*K7~ zIAJ4E`F$6~DCD3b42a8O%fal14N0Kze$o^N9DwFnKRDj%P$nGX7>nW3&?17e5nMb%|aBiH3!kUgegj?YljxSjc;dEoe>xRZXGGy#SmUY=(&QIBeC8M* zibQw|ck?dh)O!)l9jNg^8ygy!&LF z+MJ@D3D&>Qt?TCkx^}OvaS0vU8=@tLGT4QeYT7EsuPuSI9*FNURGvH{zah_hRy$u- z;)|;-F`%1_Y>m0zMz?~74EKuxPj;~fH%n~=#9+VpzGpEo?uJN=6aCA6AYY9_9Fq{C zDFzfUvIeZ>6p)C>Wqgzx3ddw5U==3|wTRf(=j_inv}|KV!1yZs=_*0CB&<2RD;Xhd z9yh#s1ulFSbpK&fhBRnN;3lt!)XG1z0cUSv2p+twA4KaH%MMyYUZu z=#)GRt>SDL)GRF1sCU7-%pgl7SKGi^1)- zNd}Q=ltGM~Q;I=JJWnb@{jnZrjX)6xJ8S<{%Y)P-4uQPj zc7I{I3~`kA`weJSMQgAFPkaGoh3~RzYKy)~?Fi%kO03I3CJ{%(neAofSmxj4nSBT4 zhRH}Cg+7<$Ij#Q8K&&H5b@Lyekj{rups97qB2_pp$Zt)GQ?}@wcexJhBud3p9fbK0 z{e;v~!O5W#zy0-W(Ql!@5<4x7AlE}=UjsT?G_BaT4$pVw4S|BTq zH?Owg(l`Tqs==21{nx!Gc!l+n`L?9Tutn?`hCEaMITAlZ2#DaO(aa+YDnq;4#WKol zm{5S8zeUyD2INSak{yaa^_-^J8l^)@vkZ(bpS@-pY4y9 zCPuI=!_5JDPAynADe11%XltSF%{o`PFL^3zQG?jzr@f-2BeP28mGG?7iU?&2FX7qm zkV`z-Lx(*0yUBFq8bsod#0YjwsiT)3k&sSt^5i-OH45GIE&?{>V5PJka) zD+DTdZD<3GuEGN^RfxhzyS<^zZ<_Tv$hKn2!gsasLK_l;={v_zFGVG(J*j+MF$reS z^!JrhYay~R&e2IQed9(*L~~+KTr{l_M)nU+Mv2S&1ok3&4o-)3^?j*S(+k84%++mA z%WV0U;!{yU|$g5i`8J}nLvp<&c&jLQyJyoeMr}Ez zgxc_3j>(A9Es})AD8(j;%1C9#x2A=%c3bI?KhQY2rD-o?_$rrGpnaXr)$r%Bot9_V zea+OWp%o!tT3JMgqk*bsJ-fZy6j!(n^ii610JM5rYxWTWsA>?=cu;4s;H(Esdf9Op z`7tHfM2BA0)btaEF$1nDf>6BNfW#W|INL;^QKBjF`I+<2`YsVyz^I9Y^bkM)^Rj*e zVQ>OPwS9fOL{)>l?s#`kd#0L!%NHcmTMfz2S?^EJ(5@H=e3TQgbHXcXa?^uRhusS+ z-NK%9Ea;`Sj6qGk4YiAIM1Ve>m@#`1JHux@b2IAc;8Og!VaTWsw|$*KKNo{ z)!sx=%v|?T1)F96!+P8(4MxEa({Fyljf~ron?xQl#r@aFT|cSW4$D7 z?c$(${#iJu%JL1P@u=mS8MfG}#V_@&woH*7W(vayN|D(B7pD4M;O(aCTxdnXgBr1=7V5ebk zf<)k(0w}IqmmxD`ew95Zt?pg!Fkis!w9pnHe^lMoKk@c=+cM%|T&;1TZCz1t*d#{= z0!!86w&3{?Ae-AY}_Z*lI)-~8QXBN!=ke3T|vl`z<` zprwarjg5`zUM5SyUuNMtk4|_zf?g^^FAmb=I;DB@p_aOKE1YXC@=-h1H#0Y3==rLf zhZ}x~4Mw*^_`N-QO$q{}=+#okSRppT@INi?S_Q5xVm9N_7#Or00ePvrUU>W=+spI3 z$QU(v6Q?Yidn`PPU5~WNq@Ex3-(@p#LW$e9rgWx~mTMV9tpZ9f9d4`2A$5zRmQ9up zzRBSd=sVWEG1ULj?;rwI*V#)Rg?qQeu*l^V5b@+^LFuO&arDIa_(xGcAyqn~LCM~m zcwgNbK7v*`@XzR690`gL#*^Ja+rHv*hT_r9udB!NrQUFZlDuPL{A$k82*Hk))(uDO zMli=MiA*3Y>;jIXn#8@SNo8B+W_EUSwZ)&5WnQz^1Xr=4=@xQUah~&@-h?!Y34w&6 z;=9cJ^j`MtA>Z;})u?~}z2q0JsTsh_Ge?7eq`}^Ilt}3r?iSqV?6*u4D)GAGH?=2r zgo0vurLI?q4H&sLNT2*!-R!4sIbM}gN%U^B6-~38y$`vhRN#=DbaP;loP-cFQjbw#yRhZ;a_GAsQqI1n?Uu%@!qS}zW ziAYzw|N1xQDYZ;;GG0E^lUpkr1IlU(ba&**Sr2&WWP<+g6Pr2-{;{1#B5vUmZ;>cs zO#Abr@3GjZ6Hbb|rgTV~1Y1m7Sk!Upd1TJ<%;sYR4!GS3+2(->PmQBWo1^w6bRuM^ zgxr{1Y8r{rz4|i3bKm{7m|`V5qOU3foz=P06GI8*FmKZDn;{I7rM<>_ubZVVQN2afWnq~|M0rp#Q zFc!|`#vp!LuqCs>gOT6>_cwe z9?;&+@}wT1PVDGlBv-wVm+Y`)bV?YDL%zSbx>jUp^vHUYFVF5wD_R$v+ImFl0W~Q_ z>}byq>RUxlR0~(T`#AxmTR(mkBld#m;%n^{b*LJyF=5gsw@#lbLYrySF!m4kv!-cp z%yW2uJtuqs$}nq=>f7L#^d6wt=VJzr$9=qugUS*t%FIj}rI>ZQ`f|`Q9U^JFlf#W4 zd32z+0Ei6r!$=9P(&O6^F)7eVhHN4NU`ta2aSlEq_rrG}hPF8Gmwo># z4f7AYLW^Jo|F#=6__a3c`2r10P-VA5=BIHSd!4^@2S40XBdXWIPWoDa4jL8Vf`IxE zt&DdS!A=kNhJ;<-!)F#bI;${75M&~VM^$)Sc@|rH+lK!7)`ud0v(zQlaj0!EKQOD- z?P|i75Ak(WVlm5NQwS615l2zYVqVmwvaR!*Tts8F#h;XAUbEIIvt1mS7c_mFq50kr z%-E_4frO#ryUja{r~<@Gt}?G#$K89sf1TP%HuwDZ=;<~T&<>@T@u!J(usbXBUrBt+ zf7o%NmN(3%|A`O>L7QHzY4q?i7TwOd0($$8bE*TKrTzjyqAR@kEx{M z-;jK1YYa1QpUz+@rDnOytvqL1pMEVr#TNQZ76j;?`7s5=Tga4}LTqlQH7AGivBtOb zHH4DKZ9CI*U|AotN?NY213c(v=jc1b-2j|8k9DaVIO3#r>gumhfo@*$!X*z=XJ!A# zIxEHqPB6-*TGRZwuVkhUpVWcfn*NxR76-?^{<}CrxSJ-A=J_DYnjMg})=LJj`>uEt zz%ye!h2L^+=if5^xgiM9;Zd~YP$??_Gf|CfFr~eMzCkKNkwZ>YU` z*NDgC^eCdJ&aqxGW0tjS^0D-*&6nrW*s=neR<=4OY8&;@ty*df`OD~6iu=ye*E0)}To*1oSiA8Ix$P%h0xo(e+-RPr^X5HRVdXbf6 zFArOf4h4Nah{+Dsq%4R03!l6F3j*vu!6z)c{AIF8>pq#W7xj=Xn4cH+4beq3FO17N zNiYzlyTr+R*rZj z&=*!mNA-XB!SkCK>AAq$@EiDn^}{j0NY*IZ2tO7oZVhKTJM)joe4;FAbyZl{_kdoU zokAB7hGwKfnpw6}V(h%`-84o}iMhJhG17R+6p3aXi3eOH#5iBz1e+`dzq)e-3H6Mx z@k1Elgx<%=C-x$#nZB@7Ds0nWX~ag_=O7!Tt1oihvji;vb-gOJE&O(1SKp>Ix4L=~ zgViF#6ziyQQRz8jd;G=s@HI=2`87+!y0+^Q{SH!=J6oOPh(xGtyO|T945T&u%X*}tsTelYkZ)EE6I;pAbr#82+@~d8%J`-xe4}W0*dv#U<(Nv#VX@iUAC&h z76`Fg&`RB0%i5jE8&Pnjv&ve;`lJy7YIy7wIv-))PT$s$Z5Y0Hl{R+YLR zLqQ2O*Z3;5)>G}K6+BIfOSf6lwIs`m?rId6zYg5(-&EepE1Cwrn0&f3)}q5I>gHZX`W7?nEfTW)5sCjohi` z#R{VG!%wAmpctZB1{RM{2BK5H@17gq6Y54ofRI`zyI4{3LSr!B)>%%EC!5+1Sm~Jq z8eGM!4#yLigt69Xg3--E^I1m1IBlrN=#MOTd$~JN8x2OorsV~5$+4gt>}tf5z8RS5 z63(TKdhg<@%|YAzY+mime9)N}BluVRpJJ3aLoAA~ppwMYCFNpA$|`?4s;D=#iOM9!!!rvxW=X3)n=$<;#-ET%9bGzHI`92s>9{930G z`#cQaT9V9!75yO0od122=|YD6*e|{|GAG;-!hFq_eC6n_+sXqz$Og0hAmS6_^1MZs zM=ErR1<$<{DVAX#(e{7#a~1D%)Nsdwe3&Jhu6GjwYI z%0Mlnl+n{#9Z_1#y6B;&Bj-HEc}a^HMdh&dCVrb39igM8eeRIt2e;B{e;jAM_hjME zyvT)S07SZ#q30rU=2e~PGTqgeWm6#xIADF56-kz}CMTmcm6`*BPtw4FHsSC^psvjXVkd(gO z`398Lc>sIXMy#f`!-r3XUL5*EsnZ)XwP_HCTV2QuwTG6OP`G-n)9)&1JBqk7d{^=yF@o&~z8pkN^Mb zyc^>o1;laH88FDRR4}qj@YjG*HI+d-i;43-nY1*fj73xSMZMd>CsEJrz|~BWOj1l- z{UPYyAs~|R;sv5AFCTI@9}EPtWk z8cT8eE8FPh@TG;vMpP5r&9lRM(Q+|zh+riK%{4NIIH9VKVV@1g3A+AQ_e7T20z<#9 z!FVH%%)Nho zf+C%|&XjRG(VQtfWXBu(h0_eVV=^0{B8xH#h7J{PzD z%04iujad_h2KNF;TAi=5t?Ha{R=V^4q)6~f!Rk2Kl8pZ_k_3Az`z1K6elf3e_fGt<*u`y*uGAmsQJ%p?9GmtxEGd02t{8M>@^!(%74+(T{S z>8Mz#91J0)mB*J#i#cAFrVx4-%y*FVPC9=|{T#g5sANzcAGS6tPSnxMBga3TH+k5H z5ho8*FUv&O&X}h!ut$YFavZnBWj9{NN$Ws_@gh&)2mCTpzjyp%7H&(3Ipm7Bdj4Mu zU0kP%f~(m057aJV7=$IzRX$tbL8>B#>nkN%Y@3Qyagqb#gRkPf&Vmhl@;cCQCqfWJID6&I?EFu zC-(A^=mzTLz~!)Y0+!^S+|^&knxgo5Qm(iUs!frAk+@#QcM8*c@s)mXejbS1xB~(d zX@$a(IH_p+`ZO?{#Q8bQu(b-fk=_kdNX7L5o2qY2Hvv?bB&319Kmqrrc`x^E>bJP% zc$3wx^x2bB(1os}_F9h`vNV7UOvGhnqFz@iYC@ejb`GPB;>+j0HugD;qfpqo)WX@t znD*jT``TtyQ*q75JmA4^jPAU$FfMHN$kqLHsdCtg5`?>g(e=IpV{_9I$f)N0I_g-x zYS5ap`vK?I#P^cM3kp1Ya3ugZTIb^hP<7%vMJ}{BBILw}KcdO1KR%@RTt8jMwIAX> z660y+F?a1&h-KepUp-D_V$}0>p9uZEWWrZ|9zV1t)7hBtmzKrD>~21fh`=rfgj${r z666yt%f!Axr|@Ftbxq@ci8vss3NhNB@h$X^az`wih@>8(eaOa^^=UhoYJ z*OuVNdsZU^hGswET!*w`7>u~9bkoh@Vh%qh(7NmImqkb)9`w-jZ?3W>1Ts!!NZFPaMRBte`QKF1}FoeM??U%7q_JK!5C z5IAZ90Z;+Ci%7x;?j!LA+mSi$FF$@)z!6M$9$mCO|G6R*I|eE#s8d81XBVMW5+vlx zq>TS+6I}WnbzXb$G~vx=^m^#%ZbXdARpz}HIgQNqzbNwn&)U%_7uxj(s_x4Gnu~8T zv2PO7c|TncA^*HMd!q(_3Z_=M-&%qjo?#Y6p)l|*-RP>p>P|?hGQ?LJT!Hk&!mR^0K?Mr9Zy=vZC zvm$8$&&PHzSoT=`PiXeP|Cl?|1gjb6_LrJvY-btFSc(8V{;gs8D z%B9nNhIi<1SFl_Qdj&d9`acpUt-xC13pWcd?-)~!ih-FymVQL2n|RV33b9IOl%#VM!rASyIFIACRe^CEXG zB0IBKr)$y(tlcQpnF z`rsImoCsX+$5-EXipLTf0E-o9cbJ^Fh{C*Has@`wnFf?`k@IghxR8yYveTUu>LR$C zlgvBWw|p*G4WUrH?RdOFW{yJpRrErs9?I_jj1yvnD9@!?}jYJ}>y|TNne~ zUc|tMtkspp`j6&A5weZQqA?OM_`q1#v++VbxC)`<6 zzqk4aOvjVrra zcmEN4dViMHqKUYM8Y^KGJ zJ!B7t?AIV8>{M$jvH5Rs#gFl+-^0FlAW_V|&%QZ_&Sznc{2k!^uLBE{yL;}>+k&>! zJ%TW38kFiXUth^LvKJi1&~0$#l~UIWC1O)}BDo;{#&fabPU4rha93uc*l%(lD*4*B zEfdB)xX?ybVO-~{YgKpdA3Kv3IDW?LWM8~(a}Y1o6Q!Ky$cSWE5aOgzWm80z^4wLD zqRrBz7=#?dbX^s^esXwvH&KdU)x|!ok<9*j1idFSy{eT#uGqQ9avR$;VQY60lbWWG z8{RcFenKSZLKeops$Qws;>WMYg`Wq~Xr>sH^PRc*|7=UeIr0y32pwG@a>LwbFA3tT z)r)ZRkd9=C#QF}a@Gp2JR}PcKap!5Hlfp+seCR`UwsFh{~kKp!VW zNx$+4R)T2oDZ2hv0mYZ?&^0E{Wbs$7me+>slanp66p-t^iO;mRtx)K0@UIUQmGrY> zhRY%nl&N$C!l8XsE)KJ@^#+o#DeExy>cl}S&FIDX~)jGHQyQD_(N)Bq1uz}{G73+T4; zh@lHF7AoojjJFCUc=bQ66QmOK^IwbDJqP=Q1VMVyR=Ew|T+Zz?PAgC$07p3Kthm&U z*205WIV#);RbSgM<=K(@%=L7$dt1dPl8>FV^LO1-kI1xou#j4QhZxP$2SO%GI%Kuw zxtlTUzS{W6-Vw?n_U8U3b0ow{&jr2M0Lrq*# zwZTfat=Qu$7{=zRe#dfHTLe$Id%3;<;<76UN2cM4N(xK0-*)9xa9@RpPkm)OZk>JK_HD$Fq`d&-U99@|Tk`Wf%qh}g zug4PI2`t4?#xFrgb-ZT~%v*yFs30;pDe{3y~ax zUfzAS8!~+AoZ(wJYs(Ddq+iT`oPs3v`$^5q6mW6#PeL}tD~6nk%`AKKIwfS{NW50IBqWR( zn8#ebob?3Kn7T?QX0tT{y4DHS5} zD@^r6YDJ!FT=5ns6ix=}VAruEL!w#tx=TVq-*9tXJqJp$c-W?=W}&tJ$mdC)cNczV zSUvp-%39bw7D6r@)R3oQbpA*YY#$-hU9sWL~%=-9L5tv-^$stSD{lmjDAAB zSsoAOiSyGWc8L2JPPgmZS@=~x>hH;o_|Ew(8HmH!lo>-Wjp5Z+VT>20i4vpgFyqzO z%4Bg(8k)Gb1POLMC9c>9{xBALcGER(1D5!u73Y{s_h126uhCN(-U=M#3}uz{Z`U?C z;dlNhI1sOY$_ZEnn$+=ktZpVyJ*=B4s-%@1c`i98|q8CdWoIrae*~ccb29Ou0{=OtbZ3{ zu&vVc*b^f9jwwB_w(0Onc@pCLW zEM-i`3)uQ&q}ExSk~fg_f9e)$z7Kpq2&%!mkrpSBGX!e4F@Imkk*0ZQ0Us(dBSXC3G%!2 zh*@l}Dc98+(KJqo67UGh>4ETHixAk}^6sDQvTNVf2mLNStFL2Bb5)#4FOIr3o5KE- zb5S6pP#yXnX$(QIQBJ_V{YFK|T_6d2&IOhOzQS*T@zf|*s#|qUDd(PYaZ@4$kABwL zO}lB8D9MJZZ-sB%4*=Z({ztd5MtJ4w3_TrK%bi6dkAdYD;G0s{yN|U$`C}gc{ozm_ zOvzcUDI^7)0r|~S4b>_sxt;%jSm49<`h(d9b%yX_6n+^bwg&4zA zQ3AoFaD@+_$knLM&8CAUjj;l<#k?{meP$Z?Zly0y+2_*__`jhWn}TOZe>uf^wk|pP zf?N~UxK=XQmq-T0)&p>*msZw0l`vfW9}gigP|C$JCPe-tKIM#Ady@0Os}t*eMKjJK zY=Cv0FUA$eN+8@&Z9#TgsWI_8gg0o!pZV@?AE&q2{iZoMdy4C?? zlJNsyk`oX?wAz-u%Z7Sy2x9a}#Sai!hWmQ#-K++#5V((#n1iI375O`gy`CqJB{c_; zt-A9FtB5Pci_c45KUEbxe#<4?FleGq-biUFhNH5}`8{MY;etLYZXfesXFr%EFy1r8 zV#B(BMZhBwLSQ>`U&WfZVT5@eKjlhs|9U=z&maOAGMpWKOclh4XJu`G zWhO|j1kK3C@+n)VA7EH8Ha?6Cg@{ryRgo^bA1>S=ZqI5DwXxX4jcD|B4SoowEKP^9 zbBsxhjl@XwO%-$EZ>S3yA z5>M|Fe4WIr|CLf}azsE4C>X?NXw4c=57L?5ByMW-Y~?pD6IqG-iBn3MuKg_bod~oC zFaE>uBROM}1z_GZM-5pRVoi}?90Zk7c85VD!e4zdv73srG}a6yyV+3)32Lv2>@Ft3 z*2%Jv2lHW{D5%5_cdg48SK~96d5JmIOqs!m913QbZt?DzqOCztncR$HOuZZvTfG znRihop&0Ym`4?)>dY=!s@%1Q*4QT7*MzZw6%`%Rqs@P9E0{}w^4DF<`zLL{5Ku32V zBZKE}XRv0}L`QmYp-q*u2J9j8AiV%nHbN%fhDt^BmA>biqYxVqyItie2c-;89SF*x zA1tRTuR5PA_V`Gq?Ozx?4w@zmx@}R`G3WOU_FYyS*KHYYR6V)^kFf~Q68lO(_0gA- z*00Io6AqtXjADR#2=h8q*lvCz0<+lsy-G%*Ibx5rr&Kh&k+%=3vvBF^xzE$Hs?6Yt zr?jaa$IR6|`$;<@nbsSSj&EK}j7;%&hh;ZX z2q=zJ67@*beYOXD%oy&fvI~){y!z{HjJ20Z`EmFs@khVInNE8)!R?-g3yu}do!~NE zlMwQV^Sj09R2gk3Lb&A=<|60xZ&Gog+3}fEDmbUMyef#*xy|wH`%RN+8wJjNHR_A& zjT|e}^UmG(L7F&0u~$6k^rX$BFMPCI1saF@*FJqfrl`5)+xed^;hW;Gln)xO`0yhH z!eRp}@++$W(V_Cu_+1QZxi5EbQfVfrJ7lSdfBMn-B85zS6B2No=lvMCidLSlHJctP`0@gQ4^xQc-G+x=;~o9=@&o z?9r<>OPQkD`@t&!y59BlGSQ!^6pkjc{3l3k$d8X^NP%DUQOG1&ne9;icLKcJ9ir5% zAHxGUYdASgmvQXz%7Feh${!T(kEB3@+9=u`G}iin7xK z(@ZVHk0~C-0Df>K#OBAj(>W3rbkl+a{k{70%W?_0MWFxxz!9YY7^8?Ob-autPxYEj z>S!OgrGXp*ZGihmyj^eCxIfe^+Z*g_K83HD24%Q?(p$-lm898@dI0EkoL*TAoo`=N z?$~K!EgrP%pg3XDn4L5W%%|GZEk?8dpsmwZq{f6j&B$afjVPQLf}JL8A_ zWG8!0?#A~>us#Nsl!r_6w|;aBUk`2nRjw*$nYznebw5eYmuKF|&WWo^BhsSAab`?Qp**B$vWHhmA1tkd<1Ua%;7n z8otuc=2gxP_$a5Zn`Vn-vx%Jn##$GLJ@*C zZYP^;w(a-Y+~`r^BY&;a>afBt&putv&cKdtVI%gTVw*0Ijyzztg*%t4sO%Q6?)SQg zf1#c3N{NvT8O+wj7NEXMzyBN;L6Z2!d&fzK(07m|Djg|&L2jy7#QQo#=kv$-;89(V z24dok1@rqh?jf8wDB04N{jq3ndueTK&43RqZ?*4%5^SCbC;%-HHTJ#!rN$}vB&DQ- zqlVu@l+j)y>NtDYt*E@6eMvLMe{P5_zckfb^_@HZb9sVcwwB%?vaLw0c=x89?Did+ zJ_uLSte#N_@IDX2))* z=XH*ndFaH|sjSI&;GU8#`$jV*_sd9J;(4b|^ESyaAbMH!nCG0OIAA~s$@?!UffFqu zobjrZ7WB2`!W5c5bF;k)S*40}Ptjp|Y;^mlCJhY&vOoh>JuL7I5FR-!Wu=Fy2XYM( zoL}cLU=kfR!X!tfVFq?trc@_t4N0d|!zTj(Z#(w66~`2GMES+jh5bg1&ZSEzC%90N z2LM96eOF*opJ|{n=_^5gRFt7wX@vHI9rZ{f&G$15{=iveF1hN1$7!KlzO3~`#}Z6F zQBJNI?9~uF)tIk^lwJ8JLUh# zd?gXN^c@WOJd#d?VkJ5}(@xgHdBA<`$lvvF8Ss&@r2-I4Yo>xZg@i@R<~b)j12|i3 z1G!J*N$)<%480x*sEniuxPT)}mAl-_ z)w=NZCcTDR-y(ciV)mGa4DQSofu@^dA2Lrr#vDDH*2f}=NsnNN@yt(Cs6De$eaG`QZmUTVz{R7qE$Nt;9$v7Kvs|* z&&AZ~rzDWu@WvMJ+|iiq7ewr*WQoQ+Mu*P6dabs9YJhqi(IJtY`}>WzAHwd?J~M^OrygsTki}4T#8DXmlgRnTpUWUw)Ojqo&&0MZ&g&**rlj1n}Bs*S>nS%nbIFWO`!>GzYE+;*YC<>ABdmV&1k$+$HW3g#zb49# zwRqRpr>Q8V5qc+Re2HSDvo94tzLi5oLBe63K>P6NyFNLLs6v`g%r$lb%|IcpL3Z-R z9|xA?7KeMkl~r_byL4DE9lRJ1WF{v25}V`Yj>oSipBcJ^<2Gz;1u?t2}bf687|L} zD)iU~CYm(DIO-nfrZdcz|9&G!;Ip+)!l)`t@qT5*?y3B_g!g|`p+X_5PVp>;wq&W{ zyTfO;LR+DH_3x<6^Ddmmr_CY3*Zl8}opy2?fu3Q~ORQi2jx)PbU`P6<-9!0;K5P(F zc2<|5ylFU;wB?&xk-n9vgfP*SZq zodG%+B3?zB-fK73i=rm>zZk#+nE~!DwUh=H6IlV;FtYC>RlRnd>ietmOAqELiB)kF zx`d!&8KF&w4qY<{OB6IjuFfMLJZ8M9q7z_btV`LJ$;Xyel6`f;>h}ca$O6ACM{nQ% z|NK@L)a9R;Qrn4yqo)mwRGS4bNduNDQ*V!2qyWGHvC^gujFIhkhyw|xC3r(6??oj{ zIC%8xQI$RI&3kB>qSg`P@WRQ^{~UjR@^twj5qW37w&QgZp4Jj%_03v##*krsEtE?9Jpq4UlY1QYMJhk+^UWX@N?V@ zgcEVKZHxvD70wECre&j0(i!;x$QIY)I$DOimag3NnHpU->`!e5_&wO_22?csirO_Q zFmY=l$j+G6R07Vk?ZPvU;llGLjv0w|n;OV$8wZy56KNn~(4bsWOz;2e{KCJ3)+8nh z$J3^_D(H3kWT>}2;$_<&ZPgM}OChZ*qkR$OP@rxOQg_Rof#n0#xj2)V-F0C_4t+bZch@YoS z(m;DRym7*xq&?aF<8ejiGHQ@ zs#TT>7qcY5IVE`aB2%CCAU`6x{JD@0`aQ@05;1bIl~iAG(29iiIvR`uOXp6yr$J74 z)*NswkwnNLBpk~?DLJ!uXxFaVpxhQ=WOeY26O*5ZNPd=YZIw)WHyj%3y0wU(mLJOd z<-CeJbe_O3SnPG$xLG|vqh8QaOy%m70Z$V=nz!`{s+@+dkioHUkY1dQ;l1<+N$?`f zIjoaklofntCi{sPCqTQ=(bmyw0h7A^O$p2c-)GUUrYA>)DzD{wSlt5{>TI~XH5_sJo3?d6Ol|77~%w-jcFxQ>=# zVf4-L7gC?0Q5C}i<$$>ACSu+UBpY9aYhHd)*ieT^=q~*iWIkB3qhJOX#b$E~)9rB1 zHR^Q;iGw!JvtR{S_c&6;JFN`3f7;VO7|QbVUO%`rp0DYJVduTjE7rItkN453R<5d@ zcF*`?GV*wspnyBkhITaL+~||S$mn)!yM-A>qld8;;lI%EmT}XS1w|N^Q8(l2fShDE zwyR@w!K~z0smv+AxP^LfWy7SjiXAICSko4S1vEkJdxuQ1hS=prU%J&$OVvrD+B3L) z;O2`yU9#9x8u5%H&pSw@p85YTyVD9qku)}Z8^6%G;?fTSPd#ePv{bT{nO^Q=?Pc8& z+jPxmP`H_-O6tQ}c}w>QFL0&JH&4*_cRBLT+8ZCp%wmfvpO;8iAJh>;+^YLa(d}MD zlcAEa|3VePupNu~hjqVV&NfI+ZftEU1Fvah0s2`7BSs;l7#%8m5)#aAzE6Jo65;Ie z5_?3V@*ZS<>SrOnh!@PDOEnFA;eUkAyOC2NsDYBzlsq$>)d|Vzfi33T;$%xBZM0;7 z_0RxbC3oOyO3qDL2&p2ndTYl7-L!XSaFcapybap}KI4~A!1Giyf> ze{WZe7_jUA} zy>L7FFEv3EG*@P7*x^PK*6yI_Yy!b5x@MUygVj0vt=TwN$3Qg*U#lAqMvpbUWV}6k zt}=+CS4N5azH6e_Q#aS1BUf3TJc?Djmf>dGH+IGisduY_Y&+)wL2_jA`X$GlTH=@Q zhKX$JrxSZp4X}Wp9!r^$2G3ma_ojdTo5-%fxfEMA)vxEBO*Bh7QPpbH|M``mPy8v* zP;ey&NNR{sZVjG9w3h)$<(OUN&c!yh<#UI6esMq`@iSV?lZ;qGd=QN%fguG=fEF02 zjCCJ_^qd=p+aq?84Hn|_g-`dgY#o8zDq`DIDc|)^7u6l}AH3^2n;0FSYmFa&dAT}6 zheXjTvGNk+{h;H*ystXPqRNpeuUh(;jbwZ@;;sV2bi^$W=&a;eSd%@rG@C!3NM}E; z03Z3))0RiNPLf%@0T1Mxl7j;K%~C|fmWD#LYmt(p-J#R)a}WbOmj}J}P#zGC}vUbL9(Tq~%;F zC{`b^-t21^l&`lVKuTX!7y-tBd71LqfLV7tC-OP()EK~XHikDL>##rSR947y`8U!4h;3~*M2mu8 z1I^lXkj8}_Jm6}WGjes0Ill_ShF!rzbu zMSo9DwX~W5B9UkNx)5p-_M0vw*KGeEkt@QtW=qzbvv;WWZgjV?ys5!5eU?JAb{$p&cBQ{P0VV;J>H#eCw*0x z^-QYHCbGXt+7lMIs>JLr{=UnQ!S&#j3LrB+p}(Y3#`Tx}q&?C;Y9AyBoX70beskA5 z$0f2ki(3fLeie$uQ#S}ocH_Pg>3=Z?VatKygK`=0w0-NK%-Q~!5rz{^FQgFKa9$s# z5@rzGLOr74s%QW}tt}n(9G6k4Mk4kyPwA!R_~&Ep;5PN(*J2gcL9fCHTV5>)7#8E;vF+_+9QzNBn~*;LX0Hlfs9+C6%Qz!Hk#AAU$kBJ`;De{ zgceVB&$6_(BkDVom3S8s=Q82!bGmvqCkr z?-}J2C&ryEJ;-tFUXBz1eQbpB;+I15N0Z2Tz@TBl>>gNSyaz<=1OQolSRF;@J(Xxs z0Latw6oA6C_FO23O@&93vGV{ZR&136FYKD)^)s$aGG&!~weE&(K z$cm@VJUsd6bu-Pp)UIGQ4hLRa!TVke0u(ryuR#a(y`i*pGh4?$we= zmkF+%!pAp>2b|~OfoS1%-Xhc|*08U1I6}h=23gxaciAqWVc~rGiMPONFZ3+)_IPoW zqx);h$+Wh6|FbI@$Yv!U{VoAMaUWZkEj&F`avfRm00 zqU#T?vh)7Mn`RPT%MufU_|D}KNc-R)c)Kp=$@&NcjS)TX@l4q94)z1Z{PTWNj>nwE ztl0$q=>+>rAP*gz6~1C&9@FpA7Ff|7yq|B|Cs>Yj>OPh5CtH8zFyo=vZSCCe zr=b=9Kl_f}rDGc#R1u{BvO``*Nq#e9&ah110ZZE`aqiKfHg@gyU#~?8*nk^ccPsL& zYEutM;#0JVQ=5X=+XCvP=9OqrAz%uJZ>bv5)$!sTZ)D_N`NQg+-Tgb>SFVtJd{Y}A zmL%{q3b&sC%kaCKhf%Ze17)>yGo^nV%V(JW{-(*z)i&m8R`XHCEgn+dUp9&fzM&q+ z56^wr9f05e;FoGPWcFwp{OlgNIHH`a%d0j0!TgKMRBM)|zysmCQHwge1H)DF+kcOb z=Zd3m@K*95@P#|2?YJm&Rx)WQ&?|5I=Vt?n&v^?`%H7epCF(U7q%sOkH~?$5CBK5SLpVw@QjfW2-MCYu`3xujQ)BgY+?wfC@r*j>2R&UIwY$i8yApCx zsnv3b9^pRjBU>Fwv2kBnHBX&_1fb^rwB(7p@)d(khDER0m-w@)8$sJU9f?%T5Vfr^ zz0HOq*I8)%rvsD2at+6=2>}WL(igUSgg#$N}5qON&!sDgm8~b)#Mq9@aN+o>s~HzvVc-G_>+G&CaE9<5piH3VH~VS3x3AS|cJX#UXl6 z$!1~Cgi9xt_Fe_;QP34{*>RUB5pTW5etV5=S>uZY&5xUI`LDFtnyesu|Nr}jC~OwB z59eT#JK6HaGiL{SCZHxf*@snK8ysz`_Vir2@{1!KImt}`)7XDT&C2Wm69s$X(eNEK zLwj+VWexGj4)KdzRsolelncYJ@a+EZw#yMnF4S}`JD;K&2JhrAE73QC8$5*uN|&OR z*5mL}MovF$D4PT+5mA8mjYa{~Vxvyz?&*~#;#Smws&xzFvO{le)7F~xw9?I2^|t;N zBP*uvyzBlA^B}LnKKUDj9UlN#{;)Q&Z(d^qfTU736}X|{D@$gVTn`QiVF1(;Ve<5k zcJwfDat3(Qfsjwbrvci7|qNl3h}Iil-9n`&K=v6|n$QK&-z$ZzG7$ zalZ-gJ$~A}*=mxIsBt!0WwI?<T1_q|%?>Vi|;yHW{?#w4dA%vpX^>mUMEYbrL!fIjK5mNQMfM z+D~@983M&_r1qLSG~tk~lSI?)?;x~m-n1D0!_mVBX?esLxHx_e6+mbI{o)5j>z?4Y zfMFxocAL@tNmj?D{xZ>*^PI-+Z5W?Mj`B+vcnWbp>JIL(9&d8vMV!@TlTY zIx~`K(3&=$ya83~XJN9&~KBF=stU?DOhccopvmhHW}F`5Zk zQ~|VQU7a!_)4`fCxKPNZ_hFVVJ*;kLkx)UE$igCWevG0XWD2~awF&+_`8nc{5^Ngb z$}7<={BazTPBIezegQy$vwN&BntbxDx}(m`A3?ySAv!Z_wwHaC8e9v>)<@6Z?B1H8 z%;W5*J7+yueFD^q>waJ9yBu}}bFiD#q14dVEKmN^1e`51_FF9ohc*6p!EJ!97(0)? z2rfKbtQCn~0}-GQD`B|k?3~}#cQVYjN8A7NtdU(zCNtl52P$s?xn-QHLYlDxu21uUJUBv8yjCAyte)NKd5UYM^T$h z*PATEc(l&C3(n~K!jklAxkLq`S}=J*bbr<~XnAJ`3LNNwYf$CRWez&9RcRI)%?j?U zUHHEo>vTYcM!sb6?ee~oy(Lyn{QngP3pFACC1CE!MUr)oItsIcx^}BYZXs1nzxaNd zQYlWo_72ztq7pm0)`e9w%)JF}y&K`&E1Nx(Xu^(jJ?|>1FT_&@sA(@SUL|ofnA2|4 zkP}rFME<*SXWl~m@ysm9?*CTZNbf;kQ%$<$r$P)oi4M6p(_=Wxj1HdaV4LBaSd;SR zAD`i3RkTN2;vc47zN|M>b>{iM55P=gC*lknkaJFI6IQt$`&6iO3zUXTm?;|)8d}7q zW-%Q>e6t+ti1BSotdmd($u@9&`c1=S%kOTVjYi4tLqFi+4-c!>BSwq-OM;F6?O9NK zG@x}~B!1+h0fJ?ExE?8pHSwjmZB8#)P9w(GZtyRv8*-T_M`95mEBXQtAxQs#mp~Su zJr*w(VzR8650G$n;7<`!U?K}Qxcb`wHiBn9YUz;!+cp}iyi?{pwKhU;x?C8d0g*I9 zpj1gLjkV42$&ok#TeV!;?XU@y`l%`lnpU`P_vE|U*6}P74FNirMs*POT>Zbgkk|gk z8me?o*WyG5GH9%L8ajQiTPkNFTH}f^3K^onGi^HtoRD$F55LpYfPF6wDX~V}OM|j& zgv6G~XYi!xK_WRkP?DMt?KY)Q4}xe<;VdVq%NBOepDbwp|0xB8 zt#o8Q|E`3PG*_cKo^tx9!`^Q9G&@3bxQCCR2v&OQUMDNq9mksMLKg&*?nLMIYxK5E zo6n<7pHD6ly)IcF@@#sdINA-XVV75Vwux6*orKZonrG5DyGh&l&`QJU?hPl5W6<*+E>v*IMcbtJJJTU0B%?-8@P}O#rtxm>SSI!CB$bF*m3C;Nr$KW1(Iri`_U{dtxfZb7jZGGz6 zL2{Retz7z>btOW%p`+^QvO9E}FZ$abDShf$LT3Ed({!bGq`zNs6*6Qot;j{|7w;(o zi}T&a5KjxH#j^56zau~#&}F@QukrSUx=RM`DD*) zTrsL3le`UGeI=KBDr&i+4_N8mI*i_rwdNZxtKU|nLn?zPkpm*UP!AH%u2+UyJ9|al%1dp7!bkOQ#HGEO*<>dA>wbCN zsEegnA|#C z?YRKl5Jr+WGsS3k#^JwfS01yzK8Ta~r+JBWFh-~L+igQWcfQx$d$Q^Zrq8*YM{;VE zV9=%a^`AfZBz#)fFSq_Y7r;paX=N)i*1Spt+9NNqN?X_tCQwh3O9u~lpjnt!y#DaV z6htB-w@UB81#O&H6jK>)>ZeB#v#;~?Wjl=Ees^N}L)*W+;COdF<#i>f2FRtH4ofQf_-a&tR+ zXEHLjN_$o<=XFdUf7Hm**9iIm=}?Aaz}mg|xU=oX;|H>2eR|tzURCvS_`5eL>dE3( zkeXp~=!=cEy+g!NgxZwS@*!)a13wu$<9FJPFGymGB(3#JE6{*G!hELA0#`ZI00GU- zv-}H_WXbAxBB;OkwvjC12OAu&7i$a8AW|%}xMc%4{NrVTQ@-;7-oyR#Bqb-vCBl{_ zd~74CiJAhpiPiq`S_(X8Usi-V!nfA(Bvw0)g;d6QbuJ~Yq?1X*MGiO`F}A$_ktfP) zwD(y6&)xavD!OT-^~v9A@u?#Q#+=5OiUig)diohIBB41(u;RGvj{=KM_J~YG~d3&V4V<5+3ea>Rt?ESx5GO zO=^}SR?-VJi!5q{df1IwP2e%QB-6bR{L5%~cxeL&!|VV3*9dGpejA4r@{&-AUgJC6 z^w}gVmF-$+$%yE6V{V^s6uze3V-IJ7P#^lyhDJ=M*B2n*1SMw5(EBTuUn}aAJ}v{l z!>f$IFOlyj4y>M0ftV<84=~JjU9YK3B4Rmk<;+V{o zH^7BnwPplsv0Vn*Zuw$)U=Y>7+vlOhM2%lo_`B*R&sQDu25dd)FQoB~u}H^gFc7Q@ zLf(?uKmXb>%;nEx*_K5Z0fGTC3I%%0I5Ypqm!UX$4856=&0gKxO+N5KJNC8t&Bbj= zfL}mzp<(M7kJpZmYuUR-5XSQ;{S98N65e1B)m$EF5ox(a?|awA^A<^!#ltPR=_8k~ z%%=ZNk=0Gxfdy_TlmMfs(h+I4CpeyC;r??tg}H$T>Yren97-tM#^=fBj#5UG67zS~ zo>8?T%H7Wh#VlqzO$3b*X2KP1#NQj1IO(0x3~8_%Vc>3RKgA?np|YOwFX%!CGc0m^ zZ(K!rl{KRC>mx$B-lP@>N`qxo;W>~S%Q-;HTXY$RcDPd@uEK10$jVi*UyhS@7HA61 z?ww=l{6V?zC?viZ0#+h|4yRlr8|-erZ(FBIo5X?tWWk`ZGkMD$1U-8J^FE>z8f#qiE@ zx`O8K?6K!e-$1!H2c{%H;BRXJw*qOSLqrye#QXqh6G$-kZ4sVdJ3Jgxu~`AU9Br*d zY^3tH%xq1voj-BFqdD3dX?N#4!0&`cokWTpB^ziN;<@Z`zr(XSi~5BIc%PI?n`I6M z6FZAQ3GlthM=UpO-zB3z|38pF=`5sF*u*vQ7Uwu>GeJ(;V&37l1&2c8f9#Je4k+@X-pM~V1z7E!|eaxwxowL({m9Kwtj$P0oQGc)!8mq zBnl|t`CkJdnxaqlhMtCxro(XhULL<39Y})kL}@o!_!w8$_Qq+b9{*9^|I{BXt;na# zi42W5?H6|`Ey4Y>G?C?4>(Dk2SizsMz2O1JN^#A zWSrRh=f$li6LEjVf#f=0qp>$Nmy>Bn_wXkx{>o5-hf~l^FKWaOXecV`i-b|f7pjQ79vAhUnyuf41G`QzCK+qOySy7II7``#zLc>R%mMtzhuEn=O1loZZ zM(UO?mAjzkWDbJ?03Wec-03N!5+Lc>xc9cAsU(&A77uzAY;jI$odx1&*O zcXSRw+XS|7hU7Orhn#JjI-0mQ0QN3eP~)FMT;0T97+d=YfmAgJR*mEegg7e!(;l`* z^s7-bTIfbMq4G$pcynZcA}-4(a*GpJLWWdPNHEN8Adv&MP!clYN^3}04GuZ*rEAce zPk@JYM_AW#Y}HlcXKTzx@!V@=SXAuNfYXzOiCGLt0i?)qh}D)KC)-7pZb;D-`5Ci5 zdHi-Uw>f<^1vSidAYn$;{fBobZ-)?io2!rjtn08xJ2(d2V-bxRB5n-hY+^VxnLcAs z)#I$D{W7l%gk1JzJB7;@Y|c4&CioKi0OxYbqQ~IGUmc&ZZ|$~wp)`e8M71A@?#dr~ z@nG*HxuzCo0}6xr$lVNF04ai`l109*Pwo_78VVIz+rswW`K!t*_kKAC*)nZy=g#p^ zpoM+Wb@)4R<5pK53Z(hm0zR)uZwyA7+0wB5!;8NG;!WpKcgmZqu3|t#y&6v?@VQ%1 zo#k*|eduwZPY>{-T%S@Z`W-wa>U=#u_Vn*}5Ku?tc9K87Lx(qiIqT(8OuCDYqO>armyzP z4TN%+mb8N^^WwzsJT*$Ac5hFU#1%j-#1#q_c+IOgnhHK>-|E^XW3J@C+xq253K-sy zmMu1D*!NouETE*4I~;fwXUzOZ2LXdTc;!K-tkicqT&%Zx!aM)w_umGgxfP6(wS?Oi zcKpp27;+oXLYl=cp@~Wk+<1H{=guRDE2g%=?7?3hyVOUM{fqUkBv>cbgs;lfsWdkRK93_=Pqk7A?OS zmB~!^j*Xl=s%=Kl1_XX)7@PZylyPh*Bt>$U!SAWEp^af8yl~$$4wJfd2PnyRm8l{b znYEPEQ6}$mDe6z+GwxXE$If8rg)VG(R$l(grSU{2y`U;OxdjS~alg-Gb>Z;sVX{e4 zs8~N*MGik`YIPK8g7#%?7Kkb(>q;l)4gL|G60At@UBQL`M)_!06`zB8`#xyX!;P-P z?<`DZitiXUf#^?5jFIa?AdlKonxyF^tJHAy?>%BQ!K0`IntZLM8N4khPjL}*0R~b={44Oo4J1y0R`XI$^%>Hh z?EUnCn(_Y)FMo`NX&}f~B4w7SwoCXas@+qHI?tL!8SPLLS5cCIb2Cf|S5`>*&Xgh8 zzr{A~ck>Y+F@;Or5_-7u@OKuwc)a~aCm30wLze-zT_~o3{cr}ygrWY8zkzU!AejLx zOBhyBg5^^*KOu-440L*}A^14%Xde;csKJ>M8Po4n?tx5kWVHVBRb`=E+IDaC?3z z`-s;$J4xyMVa{4#(`R6XMGRJo=Wk#(J+cZrScvFcVQteN<483sBrQ+r39Pn%64b;4 zWN5Zo_l3zfulU?`|B*j`SYg8}jAIj9Z8-{T^B+?~9&DEZ@4Gs|M)efRk_7n(TUdlRXw|v&vFwnT3K2VhdNayYgH*Cx#Z*o#GP= z;$tR+E@Q@OvzKm`2A_XA6t9DPu2w1P;(>0#^Kl%*Ez7;DH|Tcf0cOt>vZjAD6(<7% z$O|a==hXo9$WLYgfZAxT5a(%XBg8sgM|t~ZPrYd^T$k85p>cRq<6X&%+I#XHUkIzaQ0q!}&Lx0a=rft+WkLc*y_=1yWARdr7j8WQads} zfKz|xb#R&9M*f4G2{d}}qsy$DKzM7>z!&_#*w>7@k}hmKu3yby?>dGyHvNAui@%;`_93dgJUln1zNy<(*+m2o5U-H%$F;!*=&!4NMg@rgQw5 zyX_9uRu681j;gR(P(mshaRO4xR%f7FmF_0C=7JHTsB@e6Tu7efl-fC zr8BzGFpa*ou@f7ELz!2XKE_0xrktk3#x)-Xe~KX$kQ1)RM~ z7@CDmfY|=Lu8dEj@qYygSh@^^Z~g6~=JG*c?!)c z;V(K+$Se)#yLA8LfeK@W3C%ptR$a=u?!Gl2@)LF_2+=X60I+Bng@mdgDUVq5wWQdI zS?mbr0mdL_^??6xhEeMs*K{U|c6Il>X$K4XxA7WOrAWhClZ28wJgC+*9CuD2rs8u} zERfCsrVeEau+K(sAEH4QuCW$L2|34DnjBC)95w_-2H|4N@QS*Rw|DecHBnvS?0_P4 zjd8Chw;DKIBro)ekCywfUI{;ZgnT5na!;{(4wp1!&sd$2QppkOBCqUE5yT| z5V@0gKhLT*`JhG8ePk@`RduWSe3;XN#Qp&6Y023u3~UH12LWy0Y*gGe=SJj3Ys&Ms z-pl={sx!Rnt%hS4Zf%s8!B9;NiZ$y-1?8qM_SQL=B6_Cm)}j$d`g|qwHG57(CKy~! zR+GErE84x;f*RZ~a+Nn2oN1m|c`oAF>_51Lr=(;BAoSqcJ++dXV+5;az>H8Y>X5iXcLpXlaS`yCq~MWKw%At|8!b)h7vQX+5MH4zzE!sn zJ^vV5$#A$}?5T@IACvow3l%tzjrN8(b65V8EX+=qkMU{6e_;N8)hl?w!avLvP}uj zp5?u($*Rmr?lz6v7|KVf<;#7;0fDBsm!B+w-Ux&a$n5g?g9Cv)C>w4O{+2p-R-=Ylilsrz!e<=&+{^s<@(ek7AgWsaB&)( z=H{tktY7Y}NHVsln%6*cBc7>LSu+R^ES?U|!&G}g{KrwZ)%>|%ZT*jRNY!j2b+jkO zsfFR!zSbqMIQ)+i_^h&iP4n_db02Psoq62SOEX&mr=-b&RCtZgxV}CRbyvD}yE(nj zEADJr!6mY+wc;B*S@}t{d+3Oyz3I5ZKxW!#!(hm4f~BSns5fmi91}!fG!?Y4#WEH4PEkB|mVgMZBzK;>ktN}&y;n*q`o2lr#t=vW(r!g@t)FKa$} z780csVx4Vg`=;9!)ii2|!w%c$@|l{d!DT@SACs2#-Q2%NneC~{v%vU`8j0{&hecr{`QbN^dC`luFSeT1@7Ze4Z`sp3*w=Kx*`N9DY^EhzzHNpnvfRT@98uW8)35~2OEGl2l{xD=Rhn91coiTarsRmr;P~)n) zmabu}(QD(0Vj}+)_^Uj`cP}OO?#e3rOp7HRq#1Y-m9q3H_HA3Dg;n8PgXY~Px+{=Y zs2F2^?}3SWdKq&>^#4t^T`X^M)|{W0utQzVn{%rJleH6nhO}M2AT$F!SMoH7avaxQ z1QilJ=Vf-}P>!LRMUYF~wRX)Z5^GO`U zx*5GpwN!{`w&19&Zxmenw9Jix$phE|WImWL}#Mh?`hZSdX z^bJ5Y-BQl0j-nVTX4)=y7)QK=?c1r1akQ4qQsH_JXQ%)E;o&}t?+kMq=uEqT?%1KH zUI{6b!}6)wtuLzzlYyW+R}hB6Qrf#p`~)P5q!_R{<~5eYzHeTD3&t07EIyA(^Vxtk zQ8p|vyXY9|*}ekuh2<6}S1yYes6xJndr}{__^YhSAzP7o+K^XU=o=mMq*=1x1wj`! zXz{5R`wbKWd_ucDDXW!122c2=r)Y_x!2cAQ)1KK@5@QO=Y})3H=oP4CCKSz;6O*&N zfA|S?eF9Wz^LA$C1ib-^R@E^6(FrLoXXs0#l~A85qDgKQ4_A~PIX|d!V7y@(U!MvJ zTdrpES*P$M^z#l{wQ9)>SxFVE5X=zFN{Scfmvng~^sSN+_lMeEgZ&0FKdeqMP1q=A zGs%zeBBHe>no0qtoZ#wvSvU(4 zBS#G?9U4Uexqmwn4Pw~AOlU<~(FgzaCE5J{>60YYwkCCGq=g~PLW0r|K(0jiVjgA= za`&$tRXMW339~W!8leAtO57w)GL2+VOSKk~1=$igSPZkdtCl?*gQoqy4^)t~Y?jw0 z2NH+WpQE*fn&KdR9 zM`mKSIJl_NzX2?q*Cv-CRlmRSh56UiF%C*|A~3;c8qrL;V$?)E=XZlcKS5P5b6q`t zPq-GsvYygdRs=7G!QbDe$+Hb|5cA;?xQM8W+$v}I#JE5)pvVDwqPdg$4{un@-%i5b)s*vBIE zNFMoFf|LL`D_#ps-513<2$>iA=F|4C4UULdv-1hpJDul-=WOh*iQpLZj23M-FjT!R zp%4F&OvuP(21lQs>|3Jp@?s7I>#Cu8KqQvB;k#rvQ|3Z3a2)6L7y9X(;3IiLg$^Y^ zc&>sZZ9?YmuEE+8T~&x(+W_$!XCn`zM3JuxXRvSeD6(Aj4Ve{Nu-)Q|v_OfJG}~0p zB|X~RN;MV7TRKIGrT-z?NuS@d?Pp!dV<;&2;SS@bE%e7tm0aR0o=F~dRmXN)o7TIx z754F@9J>A9ZJrU$I0)7GX>_lq7T-h?x?F@bdihjd`jj&G49jmX{qHVy5`cW4ozh8B z)Xv?Ac(3Q?{@oEyY4=XQBLRzvNh81c!n{$p6)JD@;T1}gT?fC9W_&Nh^|n=a+mDpk zc4F63OA7yS>1m;tY#r7*ydYXvZGsGoA6iv+>nTF2!CC9VY`1BH`IP6sTSLmF^@P3H z#JU)1cM?HME6^+yB*lS>>Na*K>sn3~Ab??%_IjE+yYwRt*U<@~u{f}q&LPl6=zjkc z3TpiE|ApKwifaBE5t&ngd^8~|!Qw2@FcQdC+4pq&`x4L`4-@tLjL?H^ZzyC+@}=KN ziN>|n17J1!dVat$ea#T!PUQ&dOWOn97yw zIx(VYU-V;=rg+$gTP2%+3KRdn$6LsOGuoW&k3~P{`?SJ+-QNA8Wp-Gm*WuQQ9v(Rj z0AoaqS&Z+gM?>NbvQid%%!mT%kOj6K?J@FLxJIkQn&o|Qq-p03eIz6w#3z>9CtikD z%C5Qyx1D{FC?C7Bp;>^;=5>M}7+b#S#I01j3*hL-yn~yQ9>_X)JuuIY-Ltv z{VmOXX>KYskJ)0v1r)|ZH+LP69rx_1^dv(_qv6;2#I6V`+r~R7G^g0I0RG-lJZlK& zQ9@g7h&0@B-{m!I#i+yhx=d^o%StVCaGe=hu2SgRVUU$~csjs;8FOGsZLGUL^3 zBRZ!LgFKEW&Obg35cc%v0pcahc~XN_OCQ>a#w-vdCi>oy$?oDLbCXyfea++{SyFSG zbK|o2{g!UGZ}4Gl^)jfYm=kcgQcXN?#jC-1k|@UXMtII#@w4#f?MYrzY+++o~ zB1)CLQ?mlKn1B`Pd-WAvB-Lg4+S zoy&0mExFd-m-AxoGN(mZeKlLm^KiUEnrYVkB}`I;#@H5m?_k#V%`ZsRAA_6M>^DH= zlB*K}l<4j<+aT5gN1l)$zKN9mowbw~IRZCICWMrwxH0PhR!u2HrPK;Sr>*q(gbGjT z5T=0n2JL3yH6a61n!LB2!}&HE)PUIkvDwF&C&VSPe8j?#3B2$a5@o)^k4<&@3`M-tI?>N$mao&LnXyu z{1T53X%v)ZEhHb|;V-D!TJ|zo8kPURsY!Lq%0ad3ANx_Sv0pG%j+*A%Y6snCF^>T7FYNqt7Yk{1Veo;HLMx^fw0Wd_?#=+6?u7Bt$k{9>eri`m zn%chVwsTxH7y1);Bg=7h)C!D@C00(cvs0Z4QZl7G_>YQbuJ#BOegb7*r*i4i55EJq zPna7j#{M6hQ9`}HF zd;gX4P%*k0;2p~1??gyv550qSM3Qcwku$y={RVUDvj42XT#) z&rfqTH!cdlw+0=_%A#|uIw9T-Qru0UJ=AS_tHYR#|>)BYOGbd)r-eH4!Sq9#RyzBn9FbAM;4KBt_WrPoe0FEb9ko zO{eXFsQ|FXd=il7VLg>cD^I(FFFwyCf_t#3}^|4i86_|yiYMisuRFiHbKx0oV%Dck3q~Va0oW2 zb(#%4!We~^8r{)10m7dZXMmpsY?v(fN$`=7N4Jx6GO|N9BQTyLrN#lPrcCWNX(;b| z&hq*GAP;+^N0x8fH^g;R>dvMtQtW?mMy+(ZxlShci)*HyoM$P##2zKm_(Rdh2xE*u z86g=)+*X8J_a@SqcQ3&B-VXI)#`aMGb9q23(YA1TI_HdgTb*uQ9gMj%OI2+0 zJt`)+!(lcE)IPjj9BKEvm%V6#>d~NALQ5%b zMKiru?W)4!8t{jIBDims-?v4YLhz3_fFk?{P0PFZNHSOeRg`HFX9s(*&mb7 zI4;XI0pt3?FxF6!r+t?#MPB!^0+YmZW}54I?y04VYew3>ak!Znz}xk<&={BV!x5cp zlu3UN%vYh!^C8+}X_eGc*9?%L>uK9KHf5^cHV=c$9@0gKx%!5TB2|9r?C7?y%E=bH zgZIq_u~?eEeWY0figi9K29)Ww{q<4whl{sH1K>Gw@r)luR`iuj6ilIGg05Gw()SF6 z4&2NHd-b@Ep$O$b#CBmYce!t}Mo6rP&+84^C}~oVa3(U;6Ji_vtM#vwN4l)E_SSuj ze~_8_&p8o!f*%2PD;3Rxwm|cjx^vCmd~)2)_38^nn1ENCBB*xFE0C|v6wG=0Fhb?F z(AQ}e9cEo;{Z-;a;?-=}wT&j@4@Mm4I{F!ZxIcwhKs82GmBE~cH3KizsSn`3P;}<4 zM69QSXAeSxs9%hja&n6SDz!Rli_;#L_3IA=#?e>=| zZ(Mo+0nn4}>EG$jW4dVL$2$fN$s#Z1!9nkzqoz~XN82PHHk-hTD-lWHttuv;^u=Cb zMa3l$ty+W7Z&_7b^D(*QzNHf=OZ?2fvca&Gx{)D}I-$CY>v>BT<478x^@ExkFHe>(F51gJpEJDYOG5iA@fWnXc>bjXP5e8s=OXGyb1f9xb__ zaxCl(^X}2jcE^v&!hixST;vJ>Du5&T!hB=ich0sKoKdy)=U9>b?O<9zlG|6yO}AR^;}V zUM1i!Hj0I!JkHk>u5*6JbI53~T-oaBt>i)Zv1boVdW*>f?rpWUm>d6O2RuOeMAGl% zBy6?yQLXtoAxSTe22z=i7u;eAZSmW{Vol8q6;IzPl0wq2iB2YsAEPvZ!We1*+S1T> z2esRL52LK{ywX~UNx9BS{sQ2yxr6w>Li6sn#(GnS5~J@CZ1(+2x_{-_0NGK3y<ve9?p{gB%UhG+`k=c*g$g$mwV*mI=4T?Z{~nzU!XMN>EEFUPy|4M3 z^YO2AkN=O07R&3nxr@E!9m^9;qRgqeP!W zGJ8W+Gr~K02sa}bs&7Q){T5N#k~=Z#>-fu@@5PLd@Bbf!Sow;1x!z1ntHwpcnv8Q{ zWBzLJFl%s81q+H?CU8u!xQwwV_!*~Sggh$lu*Co{1eXw5N_xk>eq&Fkz20u4^#}KT z1E3$Krb#6G+0I3pFqGR`p%tLj9Fmbu`69yKW+Lz9D?6AU#!f8oB;)WgGE|2edvO z3zyG?^|J_)=7j7Vg%*Z47aX41GA8GI5p)q^dM=;_kaZ9yF(p5hdyI<$0Rviz;;oX_ z1peQXV45$FHSpO{OkZmVe~b`M7OD^+6_4#lDw`K(!=;}*L~)4NY5C3)y_o2UEfEe% zL*!P{Y12oHKb9LQ77WXqpyR<6AcTmnfB~O{8iUv#PSfPVZ#@KWIy`=? z@SG#%+URq|c`#{R>^4OFwVwk4^`FtlaR1G!ZXf3b3Mxc0O(5nui%FqFSF@ZA^XqD= zzaogi^zxEM^z}c!wwJiGe~MkfR)LfaEtvcD&Oer(Y$AYPKaiQFHR2OXq2?~%kfOHx z2#v?!1}M$~{@El<63i(*3z1}aIMZ6_8GHC7yim=@BH>8KPHuE*-PYG5Jpb9Z+dmJz zY?AplZWPQh=UbG6!AUe$X56v8qnV65KJ34YqXh0EX2H4HmcgWCIChhPdZfX{B>^8ua=A&6(hQh$reN%ZX`t$Pn z7MgudLt5$voB&qYtScwI?@@VMxsB`hrVU~U>3t;>+_J#MyKR`ZPNP|s%_rBjA^Zz--J z8D>!HKzin5kXK$yy8i!qb@ACgHCAf=gDB-3ox6!qcFPD%9i*|D(C9ALFFVfbf_`#+oMJj)`vblK;3L{=|Bc z{~zFn5I=;1PtPRLP&Q^1o$`RrS(cO}v_D+|39+B1a%sYnO+uw;jYAsYB>Ip;UrGSq zHq;mDdc>~zlsH&|RsS6h#pXZ)IU&F?k9;!@TPdym+eOef12Ya#Y8B=93%k2;87?)p~A&ma8oCwEtgfY%?_+jmEFrdXb|KS?m#R7#m& zZ*VlKfu78RW3p#g8sx=h`CrbNFTa(e1CYt#43s7StE?q#U9Y6g)zmcRSIpoP+=Jl~ zmnZUMMo&zs8OX{I?&~bXmK*IE1J5`wB-Rknb~b9nmZP{_j`I>wYZ`+(y^d4CEPgne zh_}WLa`y7Q^d#%tYfooZ0PSyTcp~OM5U#6>){XAqA354S-^bcM0wg2x3Z*24N7ea| znud<&@L(owZRWJZvJC0L&VPmM-TciG=tK3SzUV1DE4!9t@T90P|NkRkqUTetA-yor z#rg)Hm7t;TEfUdE10Pz*>VQo9$kQ9{wdCL14!8-FF897eK|ZX>?KVT?0J?`Ui?i)9 z_+Gl(F*kjobWLVQznSrgmgqv+i`F_ zAvYjRK6EriHkigun8x21c~qm_2xbge`X<7zzde~U@Q)i3zRf)`jUb<4fl!nDov$wK zTh`S8c+lmHDC*lb#ye^XlJrqbSF;8D%Rr=Juzt3(7yl58>DkOI9)&$Ey`Ug`U7}}q@uBD zouME89KY^@J~>aeRTrd#=Azp%K0Y*6QsUQMqd|DqoDe~msk zf8b;11J2=WVp=Y!eUdnY`lceWH)Zoof))eh?c9&3%<5kMPHNzs(Rc4q4E8W#Gtwd0 zxKF+8mg>SOFo%V;>H##fF>nzM$Kl7O=8}W+G`e8jvlPRio?OXNVG(gZbU5_cBoRBD z2dfcOQZMk7t1x`ajgo`g{qecOeNcw{whK`L^9kE6zX5u|bW@(e*H$^V?bBaWCOl2R z(fHpIY9>VLhW$B_>tU$H#G0LV4|DYpi56#q13>|F2OLyg@jX`uc%kuUSGZvpQ$0$^ z^81-$ZhA5=&nAN8F?4D??F>d2+);m{*wO8eNbUl7%c~_}m?+)W7_Ape{Td6&y|_@UWRdKvzLlNcV+rKJB7qTo7t6L^FRkZztdo`+UG#7dk++K6$r z$AfNR^ESW#=i-0X`$Q-*j4ZDBp0}HK`d%9Be^$ACcZln_eqSQ+Fc%(49>@8MHUiBd zBI6UU)?M80x}KfczwREIr#_6b!XAuA=A{pMg)c_Ugm;8nxC#SKyt|Txtgq|0<@;=n zr#5m7nb*buRQk)sa3Md7O7YPFN=R@3;cXaqqR%{Tf04`urtLq^T(YbAJO!~~(Nu=L zAPe+4V6Nf*44TC!B9;waIGCBfUog70Qt)79noQBn18EU833*s{=bPG7+-1~0)h`1j z`PqG7w9l!;4YUbp_?J>M7C1}L*9rGP1}aRALrugn((-js!^#l; zR>$;3zyHq;xgDva`sACpew}sCmho(VR=IJ)C<@`b2W{!vvpxN7&4vG)Y^pEI@)P!9ssQ;F3PwU+~pFwY{K$^ zYl}Tj5!!Jp=o&qzq{E<3{xHB*;I=qp5Z01f<{>;bpC9EGR!ge|NYcFWwQ|nGRPc}G3^d(qk<>V z97C-NJ2%5s#<}L1#O%XmY3nlA?yha-Qy$(i5Oss8e`!A(F@%wxY4y-0s=Ioax@utS ztX4f&y{RD}nihj(N5pX!7V0ZvxPT&N&iwV>bZC2nCbPRu29sXNhlt?01W%Hngd_t8 z$hQJ(a@w!|l)jmq`Cu*|KZHa>_0;Bp$mJ!yv7Gtc%^mm0Ru+Irjvjz68tdvG497JLqunqAn|lBErX;9)C%lV~K&Ss8eg(gc7Cm!3RNULV`$9N?^!h!V zn3RD?+H7|Q#%xY<=YMsomE82z8Vpt_hFWY1#FqD|siu2~9G_K*Kw76EhmWzN4Fm)( zDnm8byyNgJtl*!?rF${VCo_=MWP4HflB#V#S$$JCsHRcXz^qgy+KC6i?&Q1R69vgvnzHI5Q@$GjQNlKLtFqQRy)XqPR3WaLIZ3{0pz(ink0xW*FnO>3+bcO9~T)QtK( zQ;guys){S<(Ce`)`iQ^u(j%d@CdxAIoZJV3Y8Of>2P5T)tbL3a$F=Mu_pj=53g+x} z2;FqKcMz^!^B5%@w{NI8+IhQi%WBZ5icV6{CY$xB*1wJloGUjuvygz0SWo&WH8Y~x z8k$X!P0&RQRdu|X*x`8ZSOpg3ChO3uR%qa)BxYFdK>wrQozEUo{^V9b>$^(a`RI~5 ziWO^H-SLpyr}Q)e0K7t#gLf0PVY%1BjIwOf#hK?A86CTM)v8#zpuvaQfpaMgjZyCJ znG*|Um*SH(i}PRCws18U%t^p`P-Hyifz=~bwFXw0MR5pEwxFZX z3|nyt*AcD}wh70;fA1clT4%0ZWs`9#=G#;T8>Ce1A(?t^Pq=4*DyIL+R|w4d|3RGo zEyb6Z*Xu>W`+OgmIAA`sEHZ~^D8A7FBWltSqKtA%Y{uOE)UJ5~=pUN!zS_R}d2_ji4b9$({d+{*1s z_|63aDL(Mk7N|WHA)}~8G8gnNT#}27KlCK}MkRiFcgB9GIwmK+;RxD_0H2wtTxNUW z0OPh8w-WYcvcKnx7-8Ofr7;wIz&@xD(N){X=Yo(f8LnO#$6TnGtQD;--lKp2|7$)E zMduA!+a~url$R8>E|i(8?PiTJvQKPxfY(nvpo+yU6w%4-I~FRnYKe&4R0<*>mN>N; zmtWKr#|BqPUJrNF8bI6FikpwS>R~;@QeN=9FnFOLK7j?cB}2MDe^$$%U-&-i&LEgV zQs&~Dvl8c-(r{=a&Y$E+N*9(z;&&-PzzPF+b=~c;A_L**<=5JU=$F^CM;2Aj%Gil* z{`M&lmUEWy$+Zsc!tDA(|6Fu>#e5xCmJtz#w(xjfhO(?`$0`MJiRyC)$Uo>qG#J6` zl<5g^j8dAo6QC6r;9_g=*GXpgYF3CmZ4XD1MGGGXwIe&>b{Kr$OgTl~I>#jf7f8lg zBV)jfby#$N-o;jO2kU7zGmZLs@E%j3qJ(d_9hRjZ=^>cB$p+aNn*lNxHhE~lK830R zilU)1`Xl$f{CuHO5wZagaj5N4ZTS_(?qq-dk4EKrQpb+-UYCUTl|g|!q^G#-A5LZ# zjpS`^kg~^x^6OwD;t4ao{~&k)SpYK16t%YaaA+Ib?G%9gfMlZJT<^Gsl_JtOGDnQF z8p`7eX^l(Jcm_K%XYxr3S*LR?9s6hZ6NB3MhUqmgK6@*F_XJ0qKKKBwq^Dz9;GcU& zeZRDQI!@wOm)meb@m8%sWZg0NT+F%ax%% z`t5++_($~U!#GIHj)F3bKHU=#skx5lT)?5~HyKo3xD@~cCv=2_iyT(eC{Oe}di{a= z!USt@*=1vgCHG3Ee^~t$|3lw5nrfj^O=ScelYe&VG06n*(ePk`%>bJI2C4&RJ(|go z&bbJaVk>Kz38lY6$A>twimyAfzq4>>^fV>UBQA>1#l%-_i}m0>S^yHbYFLG30=_?b zH?A?X5mTi0NH0b**D-~G;q1}x33WKnVY?6)kBQ2Sum%!XwmheS2@hB=zOb0l)w_bm zwmRL^Kd?M(iT!%>UcP`Fjv-YvQ$XNt{Cm?OlRw)8S=K~|Lu)D6?cFcHzX%ID>hS@P zX45$ULTC&o4Y1N59I|4jOdToR!uY~aml87GcH7<~YTvl0IVJu4LHW?FdO11hK3x1W zt**|qca|D)uX8>yQB0Mbp8h+VKgc$B!$v1^Nxe~1D^zry^HgaO2A#E~`iIgLJ>6f{ z#c4-cRIODI4{RO`?Z5xCz&&1GZ#2w>rT2V%N;TO^-CKYuJBrf<95-cFhv;bob`#IZ zt}lQ;l_uboZi0sxb+U;b8etPemd|)13#lA(V=AHxEQ#pm8guIo>BB`>LTcUXxWA;5 zqbGKymWyo#CiI~_%Xo@l(RD;ap)|PUr;G{HfRx4JO0FuWTuC&~8 zceMLK^ZDiNJnh+3lR?h2&a^5~qAxOo{w@}W6`&6+XeTV6*4iVnSnic)#sH4t1O*#8 zmUa><9EvwfG|t8Jk!|WT3>Y`}EKS(vjtibKqh@hjDUqwBEi~=Mu6uvM^oFyBV;Mi1d1r&rTgGor zNd?sU*OaDNpC5HetD{k=qef)(kOc@T_%R;#w=tvCc7Z9T|0v94Oc@r=iM`tmA|kW| zKc6iq7pHlVkc<&{<@7KwAgmw8J|K=o`VQc>22H6$)F-cWEL0?Ok88X? zmwvkHR5`dgRQL`7etn5~II+eAs-YH!ay&~86y+F2$PqMgxngi$-U=lMz7w#gsNZDU zT1>NT{i_J2wW$J=v9jJNc9Om5dSPxuoos59BIiS#o;lTeFqk&U z_k$fTi+FlfZClp$KH+{s=2Jz#sHzge7*BM9&qw=%mFxoV)IWyUumm|Z6p_F`j9xlZ zAYs0`VA5E^d5^xV2@20Cg0Qsg^v(o#(t?MGQELIsg9au$eX?`+0r#nPh3v%&@p+1hV7X_z?4i%xL&%9spn@J=Nr%X&7x6vN0&!ZZHcZ-6Ou|Qh!>QLY} zygH--CAnMtX-gVCdD0vhpp-htx~S2+lm0@BRoTVkq32YHuujd$aj#Rv^71yVeS#l6 z7;_+ST;_eE{kqj60}#BjWV6r@bc^vSCmQsrN%y^g#P#-8w0k&qCZaFCW?fvmqi=|b zD4r)j0poMj&&w=|7>>>39ah5tc^yT3Pg_Ow9OL(dfj(yF;7A&UZds_@$yfJ}0-ZCo z4{!SVD*f8VvDND47E(O@Z4?p4fPSV0ZM`I^x zH@`%!_C*~25lCqtsC%qyOc@7;+2}ikPp$2LFjaYrL)QHZ0#{~82EZB~vjXwrOHup* z9XGejk3u1Z{FBR{>puZuROf?+z5ah1eyYZKg_T!A20E@9@SVSscNSP@a_MtfWv!%_EP^sby^F z>?K{INf%X~opkaYU0BD@-#o-W6u)XZHq+ps59>2vzhX|>nRk34f35FNXR8<<@QKX^ zaInn{73{lgXakWW@!^VXNtSFMn8-)aM6$e)Tr`HD7A7hmzgGm9xf7EQV4vC7wDA4S zgy-nYrxbgxnI+_>U?Tumu=X5b;+$gR%@7OsVs9F$6P z>odLx5)a)1Ru0OpY-y`9zsuJ%0u82s&&Rz+IIrc4U957{gec@^8Bl%gW01Yx9yWqrlRgGUm0_4A39uK#oTZ%(8gG|K zDX;tSiB@q+l(iU3Yl@HqNM-H^Eg{Tw{YvM%@(crEyUv>W+aC4#uR8-RdIoJ{uXmLp zzNcHrR0JUuN`0&F$!fG9NZx%e#^qub{f2#=@emnfoGX+;P1bTONjppC(>T z8uu-CbBHsY*wIH*{-Bk6*Pq}aPk*mmczTfA)5E1vWC)8kpR-UsNwUWAGGFp(j3}dC z82=gU!$&;$9;vqOCAO|kS0iP42nwpavifW13{uYsLQvF(tfPQ+Y&t)V{EajThc9e? zI}G2!tE3MNftPi-z1FN4c(fFkUw8482}YIjoTL0LDi7YyPm<9G7_P9Y!MXuV8+cFp z$TYit=VMyvWjq+G^*()T!K~>N5^*luP=mqyX^~u26X)o+MIE{*Lk^=-^r$f`4ZI-) z4(X`nQ|XztXe5KrBxK8JGxojrn8tWVV4ImrVNsY~4onT+KNYZUkJ4y7NT7l#zyp4u zB6>M{IbH3p#-QYx$&`|mcpLJL9G8}<`S9Hfa8_y#Qc>oqG(LEp|A82K`^Cqe2~|Bj-?v1d<%1&ghvaH4Wfm6k{Mj4mw!2ADwPtf+%(Qcks_fMND4#M-AG)?U-WMNl&QKNUR4|qVIqA^Np|V_?7+aoYD4(yD%}akqbBFr z38RD1SA11XL#aY7@#(t~U*^(JaH8u9SZH6osuPBKASEa8@g-<8rbj-2^HL+A97D_X zT$9JQ(QuQoR5|?fha{3JV~rvF&uUO!u+#ig-U${!sYI_5PRQ&Hq`6WBIuZGO6r+&m zc`x{Zf#1e~;ua21i;2Kp%0Bq5^_2H_m9C73(od_5MVxKdhieJ!iIz&nm|%2(vco&d zWkHkI?7aZe=et!WRRANY4k0+*I&n8^5Cst<1X8{#)X)+ zO)CLVk2kbim;>O?sHQ&l>H7tZHMKe`V4T>_b4F_EyRYlqzB#Z2RXS_GF32zZ&8Jv< z$UDsFp$9}T(5P=hE_2oxd#k=Vy1e$J!OHJiGdpp@DoI~$R#8Kj*|3H4YnH-p-fzD8 z(EzKpk1J4RiLyBZ_3%?_k?%kA9t?X0e;9%AhPLzO*d0wfb>H%;?ff%F+JQlup4>PS zY~s^bC6*J9!S0ds4(PX|0j7;lwX+c)%HV>iJS@>8_&L`eUNibMFyoY-9i0+r#_~2z zIuwFfq|I4>|CL3F-zCJB1vSraNz5g(nYtZ%rLqzqkJ^~ zV1gIsy8Zrn7C$j80xQM#3XPQ&1&l(*8iz4c&qAI~;ga|FWUNhoA$z;fR9g*f9h0nQ zAPcdISmB1%X~}QO81XsEPC;F7pjW1tDSe(j(qx@P^sq$W!EDsv-w>|PN^0e2P;aZr zdm3vrI3MEHsFPy_6lEb(s$*DBrDHN^SzqNX#OwuFB{}PbIYjPuo(?iN7P(->Y71u| zdR=JVJ9yafgSElITcgwhPMu}h>=IJ;!i{6Y5SbI?Xh#d3#t%R1v;DlJv^73}{UOvb zj4e_kOJ{Y$eA9INQnm z^O|MP2jJ2{lsC2^RWj;AUyPLBquzajw2(g8&(mTYNqQmf zgrP_%4p+)ndw+!qN=t^{o(-Dq<`%t;kfJ01pR~Xu5Tq=av^tIgGZOLT$&*SSbE3yx zKy2BNwpqcx0_@@NNeCgX{?3ROvk5NS%3HqC=;lg`A2Hx)prXx8Yr~w$AO2qRvMJ{u zj5ifr@j_U9DxVk~89aAZqdT0W1@)rmCa-FNBjx}8^(W%!+s)FYTQi7&Z^_I<@rylp z2j&^haV0Kzy&^?be|PnwGdub1tKX&gnwn29a*gcarQ)9H?gR;M65bX@6xvM=i+CMH z)Ru9|pzFiUW}ws9Stqy9O#Q~=jykJPfiJ%a%(|#!5zqcQMiKmy4;&a_2}WP3Q1JV8 zLg#^=E2O$$XHfwn+YKKF*NZP5H3YL6bQLjMVD44A&t)%Vc>nv$fvV(O=!Evz6F=g= zl7aVkMl)=N2%Gn4>JVBxOMJFVochQ=Gu=UX=C$T|tN!L|cUDYIJ-KRc1UPHW;aE~1 z)5o$rgx(ekxpmUxe|M|Qs5H>8+*5J|I}oj05RtA+iLiTGEpmsiUnS8MR49_2LT^cE zg4r|_!%X|k9)8;I=VqMb;!xg_D7@CYOmu6vB#hXc(iazkIF{(fLGju^3hZNmJq5@{ zet+RWop<$f-DtnrhEYZ>S`CS7RoK!_eYT)9^VrI1{3#Z}PrT1MSUgwb>H=*D zKyqJrS7HNT8`**r7pKqrBqAuI46X=qy65fw{tK^gm`_B2LLS6p%e%qKB0}K>H)6b% zA1E)PzF+UUh6gCv1|}TziuULgE1}MsE(?r@VV`)p;o@nq>+r3U@7(TSaT=a`6*cz` z3HchWM2c{0SYVNJY9nLGMII;|0#{Ih+)e`5%PTf0u4+*!TJahc@*Xv(Q5r%WLa?WU z$}YOF7t>eVex?zgpe{7uV5(|F=1M+9t%%V z8B=EzV>KHME!?yX+CDqQ&N;MWn(7jn;@7`S$qU5-SMrb0W9+Ah1|$knU@)+n_eZK# zrQ+W{K2ZUw&(%122nKaGDFOzB?fL?#5f_h`+>i4LR|*JiFc1KuDP349kRZRK7%ZxB zwN0z(LeLI})rW=Tbb~d!OqEbt_%`yWE_0-1!EL;|Sk$wQLqV1H6{P_0V&>^Qt(Z0Y zMu`-R)eu7%la?^ZAlx^qZ_KC?@bC`)G(MWBKPy0bpPinhG<2=GtD;%JN=)#+hKPA? zvk28}NO9CdX^W@BdQl~QTRkKDhfDUkMcp3KW;kqU`21vdhbXd0*|v~fI@xOA|5?U+ z_R&zAKV0LZPu+g{!G&J(b(ua(6hUJqKk;-gHE5rvowo=B2V1G}n`U&lPkCqg{er*w z&rLPJRCgX#T!+>HkLRf1tLLMMt0iPkh>;=6bNZ6P_?zS@C1c98jW8c!in3@={Thxp zL+u9{HA>qr>pn^V6_MaSAcKLt`aC7)nu8_7*9vm=Zf|$=~nJ z%A1MZ-Qs*pv#l8Shyeh;k1vSTApb_QQh@aeKt`e`47_Ymx{9uQ?kI{)^c+h@wT}6B zDARGa-vsY57zP8QnifW$7ZIM+swEUG=x9Bmh4v6WVjoOk^{F0Hl;fcorQaJaMVixrQhysZilWeBgR^&UW^H2prh@1Ri<#aj;5*7VRAjQ8Fd(@_%3=f z9g@-N^*ZilHin(8S;#y%5b;hpf7vPzsCw-JBWLcV0kmH`a*|(2H{&lnFoUyO zH#(bg0O5kI**(GR$^~I6wdbCNA+WQgf{DNZVE%4@%owEa8YrnHJ1N*5Hm$FRskI+` z&cTbXu~%bUG^;H|Tj8iU+u8VR+;o&K8yj`Ek*GzEf$4vPe30k%XR9Z!zt`l^nZ-}c zZqLNvU`SCv@|rbpdOhoaCUVZ1R?h)`zB;ZX+nKD{gj_$R*TM4WL+<^L!vl6acXjP2 zQWpafdVlrYu2YiY@-##+CtNuit&4iHd2(okL3HmKz8GIVOkyN=+4vs)^K%@{)=M17 zSunEOd>l)uNcyA%_<;)HJ6fMxv%dLc456X9VIEQs-~P_pV0*Cw)vCBV7OMCYu=$qBa1Hvv2T8txq9Gz{dX!j;*PN?Y) z41jr;zGZ8Ld~P5Y&95PpWof-6>63iYbPR$#oP01-Jt#}{(Eu`b6i<>0IdaXmsWSs}q(B4onkeHj}@Ec(?h ziY0wHjjrr<|NsA%|55xawYuZZx8)XkewAJX zG@Fd#5Dq%$%1VDfje&9n`k6Z&v<3#nliLdw3UdG4XMEeVGtgP^KmblBdO5SDdQ*Mn zjhcLxM#+$nwsuGQ!5@uO80P^;{SYTDGSHjJ4W*?ut%N3T`KW?K2Y{Vn|CSe?L6n>< z)N;{Q9*Rl<`7TU$D{d?L#mm;Dp$#Wg{IuT6YrG%2i0g}7U}dE6Gwru1mK&KjkG%73QzXC~(UM5JY5?$6vZW&%FaBEq z2&z1K-Mm6ktNFzVpm}=4L7!!eAt;h!@1=6BHf*=SP)9&M{@h(}{#det71`-cT&)Wx zf5kOBL`@C{_@kqNS`xN7ft84WFQ)MO*_I=kp&CmM|H>rhsCiDu`)l0gM0W7sj zsCCesrR2J+x(?L@Tmb6WI?e3Cgx$JTt{iRdJ;^70M6mJhuBQ)Px-_t6HLYyy8cqT1 z@XR#+lJD`waCkViTfpN>dlx`f1}C58bR?m41p*X$Y@ZJzUoFr(lJRvhI$KfF&BptR zpphot;>VkJdl~*Dbf2U&QOtVODR>_zfhD!)LmU1B%QL~BR&gZFePu?UYXssska)K@ z7#^l4uWHeGS)NSwI}Ia!p>(PxG)$M{fs$J)ft$1#3CleDgef;_Grqx%c(ccP{6X_B z-x+zhDpLs6<~0kpxw{?B^Y5&?F<1Bhj>G}y^-OVts}dT4TDE6e;U(D>6{_J~ge1ke z*qSQI6LS|5ViWbfD;05dM%c=BPAwDmApE@qZYVLCMUdbHS`ZBtF@Z_=C=>CSpHroD ziv%Xj$SgZ2rX7Qb3GFaN!;N8-=ke$FpQ-rjt8H3raC`>uIP?hO*LE2#L(v8mO^Wj*%lD8|(zvdMM3B1=6C zQ^;p0?vhHrV?A})7qZ?aT-1rdJtLH~*W5u@f4;aeiVKe8fd^{pe4rPWa0I1}KiOUV zNSM`Elr+BzeibVY{4#SUIQ!?7=`Nhw+(7dKAu7%p_5EwZ-saS^|D>xQ3Q3A#9@A0? zU&d$Nq1DNOUa=J5L-Aaoox56Hm!v7TuFy->sbovNLRA7Htkbf{YnSA^>B zuH| zo3g=EWyIr3$xd-XCP1IkQ=xKURLXXoJ`p>q3i};VLr=5UJb34(e~RJt``TSR&VXhb ze_hr~<@lI%1@f1E$%>BIfNI}eXw@oo+am_Q=l`(KXSm;b#YRtjjJ1~YDNQKN zr0V2jF*&kTI{0#{RhRQE(a;!B^ol8;iP}G@rayhapx>q}#T^a+78mRD zZjCn~HtNoWN~6!k;2-=|`zQjt!bURMw35oz4b*)VK6 z!T4^_s;QR3GGk z^&nsib&K*S434gvPy(xM0eUs+4OxNnC2Vk`3F~)IbR@qUpMTcz7F5_|AqcQ5MN+3R6#N+P_p5{v~_{qJ-e+m9WxL;}GiNf{Exrr~2Z87lbl&bqBO zV1HSW1D(Gj$&p2aWYWktv@Dhm-QmDhNm&kMVSz-}HhS&B&GVD%RKKRDqw$GQKVU?=S6Vp&<%3l9(7!| zWnB^bMXcy!?B9*dX&cY-FF{6>%14SH#1d~m)Rq$wMZkRZ7@mTxv;Q>v6uJNGLl86MphFGtENWv#6ydBMWMTI2tfn&9 zAqNILr+ah`lw~jgUnWuwjV%VRxgUItzTsBcQ8KMH*SK%Nwt5&r(#l4R`b<+ek!abb zUeS6>tZ~E6Da%rjCZ-u;j#zYlS--lPD&Jw9dXwFII?6!eRGC$Q=~WJ+6y<$nP*WG; z_cqBKaQ?^68SE*UI4?$~@HkT?nxMpNpI66i2kOO8dPqvt?c34-R1+671hvnCS!eKx znKnp@OaC>WjpRtpq=exHW6Wv3V<<+Ue4*QN0k|YXexX?u{6Q~`5%YV*3n(q8r$6ZN z>=P=s10*v&ii>jN{rcZ)I%a6^!L*kba=`fLGW9^!R&hYGRRey;C}hkF)#C+cNcki9 zFmr?QL7za~*}g=QDr)FJ)_t`q3adt~xAt^m4f>pqwoOvz#rC-j$(U=sQ~-xj7OQ21 zOT>{`V|^>|?e3XZkUg*zS1bF*ZlXg0<`T%~J}XygJWuR83P z+u^gy7WiJ2t5_PS#@BKUA@naWhe?R&=-$-ae?bboY6>rYlDc!VQ{Zf4;xN;;Re76) zk|=+gURh0q`P}L{ZsWqLZloU#7T^>EG1zJu2Di-SK;8Uo#c97DT5!d)!H@&}sdv?5 zn7WjDKdTdQpwi|TIP>bBuP2=zxhSlYRq^J1OD&F9d0L{71)y!~sR;4rxFzt)>zp?eeDg#J9UP{kVK1K}3*|hpfZz_vI9`Xb2aSqFDt9QodytFI$wCbCo;r0OBT4 zu(8n+q%Oi(u4}L9!rqhG8YNG9V0@+acTuJ6G}h361vNE(LQ$T}D!Q)Omyo*Zb1IA| zi?d&}d(o1xA*A-K7HXN)SB7FDwL60B8M+tdKb61UL^tsqoY=G>S94weEnQb8PBqT$ z7=1Vk+o@8be#}2BR2c{U%7Ce>0$?#uTh z^;kfbba;rr-FGb?($)#L!eaV*#>DDL=M<5rdos9iJ15M?J1XOlVm+0V#w6S2;x{sn(JFr$6#NFlChKqVmR-1$Q zL(`K|j%qrku8XECJVr>Lh*0{v6C&Aps_mN|0NoR!A>&vNhA^AcA)CH_3{P2h_8lI( zPa#R+c(9pMXz2_0=Dxqw6m@76^XmIhtbXzCM9}Y*43=C2-0nw$@2IjVG9x%qf4Auj zhmTsP3Qft|q{w2O-5dzaxykTyBaHB1x=)@*gFtAtcn8%k?}a5o`nsl!Y8mp|g7kdu z@-(qE`jhZ4rWIJBwn^|)vw(@ud%l|7q{K%7H{Gje@%PFxbYJus6amS=K)fB+6*D7M z{hj)zDpxA9YbrQIWkP2^b_3O@tUB3W>fjUXM-WCG_QPwXIhH=9wEN^fWvJ7`x}{$7w?_Bk^t3!x3- ze)snY#%L$|s3B#k!^l80skujYH{j+R_HGor>>u!}YA?qB|Iw~WMWgT^EVzQ|)c%&& zt;g#4Pv&UZrf1D@4lMZktgIy#j7MgNh9b>*{JVr5%zB7yR9>>i?t|Vs z%JWii(x;ajS*Sy7e6Y@Dz=57PMH~#1vb(Xp8c+*(HZRD*y$US0Kv{v?H)YE@UaRz} zLvGz7!g0iEKm%oG4HUsr02ZXfGU47&&9S9b=$9nwpxA?rltm-+R=!Op*h4riv?%|t z7DE#oLf-_ft0{lf)FY0W`5IqRKiID&K73@R3&iXeT}`rPy(FW#$gWOVIQJ8@Snh+v z*J&}d_@RGM7*$t!kjc0k2z-uPF(xBu$5{CCFUnT;e^3uYnj|tazkdmM^W2>)KT`^< zvtSVbNuT@yNL{Xz#rU9jG}JBW(Z81^F%p+mn9@W&rUO6q5uI05xfuw0WB#iEQ|#EW zLZ}EEbVkyj$YbyiM0bwLSN5n{(^Hki{bi9ZoUz9p|Jbzp#gck94}3cL!OzCp_X%6r zW(a&nU3)5U+PmfpEnLLs3Qq(S%OinRNoCtOJBBG|gdrq%@XC1Er`eMOz~1DbD0WNl zo|JCGnX3u{?Wr6fL}B)Fet<(iC!uuPjhKfr(ciXzaz4p0OA951)APN?W(PgGOX2gp z3_dmg*O}@8BUJdY>}lM@2FG^I@693BHCfWi0=tU;-8oh&R4>$Xc4=9B6LOv$55|{K zcKHXOEWHQG=w2V?Sc2%;=t8piMD#AzROC03XMvscdLdsbz4yX-I(^JXNSXJZ-SNcZ zq1T$*my$Ye%6Y7(AI`4@${$iib%iwyibN#w7<&ZLRUn=;wK{ecd4`OtWg`t)AwYQyTNJAK!$=^-~#IP1S(% zF$?pCM6jdvcVatUo3RnXF@V>J#u(QUr;t?Pz8EFCiK(S;CJILzvxu-|AMhCgXG}$c z7mMw$t}&-zdQ!g)n_TE$FD-4+x&2Adl%ZY`e8k-rh!Wn=&}@%EIJ4@-mDIqCp4&_` z6krTMFTqtdkqv3SSg%U9o-CYBz#}MqT@uZ48o7_D zi+}sVR{q_=-XWAQRzBK+rJJc2>4?nQVq8BdhsP^S7ZFOHbs9;Z{^Z6Wu=Bv*bUhMI zQ?s8Nb`VPW`B^=eg9agJFTk?FtjcFxuOB*~%@;|001R^NdEZ$4)(rb#lGu9a&iQ8a zn(H;uVSO#1>BT{?9pfF3#a1UKAnaY?Aoup8E1AzMualk#*H{JANbX*@tVTm5uc{HQ zzH08XgCmF$`i42@G2v@gP1y5`aNob5a}0A*q49OK3R;4`Gix;%oKSa*9l{+O3S)2$ zM9ep()q@s3^%S=M{B5oDFKH5781&%{h|hJOdA!_h2cY{3wK)i~?c{H5LAPQW;~;19 z+TmZ12kw~nV!}rwDLdJ5d{$EWaH)3!t8#l+stm^>;m;?vkt7 zEbwL+Z_{h}+h}m10-+^o{`Iprwo+VQasGn`+-2uTlK)mo78^m_sXnV1FCm#UH}x<}r90uiC(0H16jbC7i@sx7 zOVqxePCI^UzvwV11Cu=9GKa(hOpRCecj=wl--^kssNoTn37q@p3gsE79f=A_LCVPz z`<`0m66R64ruB{~o2Uy=X?f!l!J>7(Cz(iMp-c$^YezEPcXYoVW#hWR{|V4o25{{@Np|vV^$u{7pzUwBTjO7+r^t*>(S{EGX114@+{m(utgx zH37@XQxVRiquvi%rCq{5=0M4;Nm6Y4Ngr3_$NXt0ANqdCr64f1eYKKT1z7fp4M!Ow zMdZ*_h3Yb1o^GQm<}3XlZ2^1jvXnwU@&L)ua46gG6(@?&{x=IIz-maP{DfSU29COT(%O&km|BG2 zFLx249P8@E5nA5?+KXKo*{0qKdJC{CUf-hC$Fu)Ye4wh1-W3}4u@1J5l^kiU)yW)b z`WfFT=n?%<(f}Ux3jT%fn$(ivm*)RXcNR%bbGU5e^PrycV&X>`R1^AXhG;0X$Q}JF zw1rXDhWCMp6~C`l_nNfmGii}yXysrG2EvL-!x)=run`EUVxtMNePYS@nWXK*H8D}U- zBYIfeIo-6lcqX;24VN?V+|jTYjY(deZ#8cSSOxpk&_ridJNc%oNbS`#u7dNrKJb{O z{kltytUYuFq`!`?GhdJiD~v4qDFA)icDvWrOENZ(IWJK(fGXi7uAB<@*-dW7Gxq%0 z`UfPAXqhy_B?a~~E_B27BCs7@3AAfj0#=tXsaazVX+u?N@nFx&QDcVLmt0xR+5;ZyCXe9*jPNz`oLv#yo`o)s% z8XQg(^UwR`0cPhOxuTy-1jA7Il>$geagqXo6QD81eANSXb)Xp*3uF*Qy!wkP+;3`{Gt{v-4aDS(2@(2)#+=6NHP1mw<)ojMgDo^dLfpPQTK zPcyBRS9!!=-d?>1j4lezdJdihWn^XN@=7ppq0FyJ(5ezLF~~`u#fl)jw7aAT^nY@3 zt;(YXLtWmgM@ZFjwZygd!AM@ot?g|FIE^kPO`RVuxHD326UEh>|L|2BWOrDe*Vq`y z#^(m>#IF=vzKf6X4hKGeJR=`M47J4jwKl={hD@*j)^y=50lU90sx+m7faAKyc7xV` zZFKe+gKhxa^XnN4tYwavxk@%Rdxx|14E^h_=~!K8t}9in7$Uo+1j=%I>hJxfT!SjX zdGu#++m zLF~e{u3Ni4TE-7jYQQISY3jHa6LKl5B2j4fO||=&mm=kEE-U(fV}8~?I#;FikXKg~|)cH-RuH8b0-z^#mv5G}|E_djE?3{ZG!7-CD>(7=2B8a#R!(tYc&dcxRP4 zg`TETTg+~8AOOux+g-xMDxACC%qELs`o$-vzHK@tq*CL}^Fk?fGpr(L7lLiD%7^zZ zTtya1!3at~u@_$U7N0Y&TgM)r5Gb7?=a9ivdGNjQXU~#V66D+@s8v(-yomUW_F6)C zxqbCCHL}z%E{FN0=3F)Z%LgKK-N%Jg-A}_mEATp>FS*)+>_GiLZqRW!6%Y1*Y8u(7 zbA8SqCKx^w?F${h$8Ivm{y7$&DKPFI$-lK6)#H`~*?~AWz55Qyb3;#|vH~+sz=#PL zo)q3T99xv}Im|io|Mb7Y;*i<*Q9gS76t{;1`4D=OU@A94W7j$)7MTw=r-&v>+l&#@jGy}X?#UDNY0$={!u8X>Ytm`+U=oa;DB zU5^A1Uj>qj2l7fG=2Ns;3miVKXnb;OMC`aovD(WE+KDhMB;AWvq^c%Ou>Tx9m|qI0 zS}ZA+l~9;wwmEM(hfAV-vO@w-5ft2q+I*XrRgO#zLm3nTOUgIm+c>yC*cs@f(fW`v z13Gd#l6eyEa&T$xia(4X<7x!)98UY4)>d-}O-TUIKNWMUhvMu;e=!}`I>hJ;1v`CNqp!?MVIq{=Gijj!`9r31_%DY)P1TC` zae+Yg>>fN=2F%C{zSwH?oXtU2m%e974^t{1zBwgL!FRZxv2RYJ7u2p!P2K*hth|LG ziSDt^#xlEHnrWQic8rPz;*}Mqn~O=Fi#FiLkc3}_7Teg!DK9qZPL~L7Zi4j?`4b31 zp=CMZ=-NYf4heX16|1|CEUOS|xM5dnz+DDSG+pge)q)Ayz+ZO|f2A))xiyDWz#{zkybl_ueZwVx zLDfvoOp)Ry#=;T+1Hul|s2tBp*66|NBF?jljZS$BdCJHsO^A}kHI_XCMx#caUmY@K zP-7io+mGQ9z|f<+zr!ooUxZaOZ+w6M;D8(C;?$)L&(|hmK|sX}a1+q%YzH_}!Z1tl z0)FQ^TUDfvIXUhrHq;0QG9hD6=^@3a_$RX(E3F?Z zSYIx{Cno(vkJ17Cd${BMjPC){u0D;;dZG^*nF+t{}VHVgl&=`|V$Yi5r3e*)TfuBj!n-MpqzE zT50`JGJ$SnJ^*w;i@!6{3+;QP|3y=*jLQePfAvk}W9mWg)}56xFk&pU zu>Q}s1e9xm566c20tyV8VOxr;Q)nMxNsYQ`poNGTy82hENK=12o39J)72Gw4LKC7J zZ>{alYX& zcGOd2i9faq@g)=v#_IWjWoej$I9mX!`XMqdLs^N>6*zSc6#bi{07cXOrhAegT_UWQ zfzxc*cFo5*(zzJmd!mF28r6S*{gIup?j!YrSvTt9;1$Juanx#2mc4u@rve7ZIfibe zm^hsK+#3aZ>MU_qL(G-=@~c;h@c(qvMss+b(i7I`f2o*i`Pe**x(bNTHWV3p8n`^T zYo?8A_=|nNVWp=z&9qG)FfZJ!;^7OGb}hb0Lt(T4XR?;7bXCUlY5Ws@YOS1AH&+`r zG6@e+Rcbq}`sK>zv&jTWAKm1^1JKhYFBL6vpHu8oK)Zb*^g3nell9l2lrq5vI) zDr`@oehdhYV`8sJ2LV$WYPjhx{W(vLfD4LZS@a^8%^~qK&2(58Umwat6J|J#3n?_D zfZ7ZXMtPQ?ZMIb9an#>5#YPydx}(m`A3ItTzQ_Aku*%H|g9%RbXCrXooSL-p+6&U1 zq3^s74ioh@o00l%O`;C_8IRo6%X0nuzBI7iPV9Gr3#}n9YCkP3qgyI~sY5|BI_8*E z{%Y4pXXb5W49%6#BG$1iZUT;C(Zodn_Dd91$-J2fbqb+q9mkb?Iu7%SB7SOS0yW}x zz6VL4%gSVL#A*1`8tAIo}(K%X~BSxC$} zyw9m|xgdA1Upj1n&u|CumhojSOx~O!C%No)Fw#2in{K5k&3^m0EifpV{AcexSEk!2 zkw4qVXfUliJ7`iv!{1fN(ie|d9ymvxA{%rj;Eb#PddAoA4U^-v4ezKImiw7rM^hn+ z4Fdn9T{I$Z_f10DsuJym-y0&drH=vVo@nTJoL-8L zBk(eGuXnJm+h=@IlH`b24XVfn{Q5^LgTWGr)vB&auGZSL($ zV=!r9jAN~!3q{%Li&}zJ_zGu4nQNTX52tdezddnNo9?N2v?u}QnH%i1u+)imfX?wJRC7`DnHZ$DJhP%Id=F&42=Dh#qP6H{A?k7etSkPt>T3+ zgQHH+zFj}g0s56*(=9(>Y&(lpuh_V%1)a`7>mvY3?ni@SWZVnI&|?~fvZes}%N*|@ zJi*ev%&zjDo)fwa-FcN{*4)rt^KjB4?KGWNp8Fixs|g^#{s`Yc&6Pn}Ha~56nWQ*Q z^A4?RoLqA;@d{*6+)Bk_5y)8yoXJ_ zit^&*m=j${V`-DE9^TbR9u9{e@L8?nB>O(2d0`IUh)7f97fb~NYb8;#Miv+|5Uh{q zds|M34<>=cEZNuL01CvYAk{ud0q#yFr$Tc$WAyUJGS(z%g5c4S;i%! z2QX79-vEpP6l4Ah(`{(>(m~@^atFNf?b&OZS#Wbqc2wL>?$>xOLO~LF0gBm0o>^1fOa&R`$y-PeO4AI|kVc#ZM)YM-+Lmmar#~mL zQ?$cnh)@$I3LI~!Uip9->@F5{c2gRXb0rzYM?MKN26byq8dBPaZD$%G*7*8q`jih( z$u)iDat6{9Pmz%#!|*@lU8#r8^WkQjxjhQNsFx{9j3m*%IwdpfRXj~miL!Pq;l*30 zQdX)d4bOOIz0xaySxc0KXNv4CTn9Xo#kCicryuuC?yGZRzh7z(&cGDN^j4{Ew1?!8 zHF5x>fON4R9`@j#mQpL(M`VVah#MKZ@_wYEA{a#M?Y?+951g9*>)?}*z2q_-VQfK8 zUBJ1Wbv(ubXmOvPT2is;I{J6-B*#aqCKD)wFA5_{bw;B3M`GHkwkD%}-!J(A4FCRL zi15IlnwxIaOH6xLkJikUtCl@p@8E70jf>A_F2F^-1F~TY6S3D;EbU(k%4KV)eX&ht zsP8PZizUM(Gv%)9*A=Bk;Gb6hJ*el$s_5$04N}+OW$jVuM7bH8W%-B#E-(L^11AUy z&iX>cJrZ`1=RbKWF}&;Bu&(kY26Vi(-WCjzObAGH0OcyzR2G_M3>rr7JZ(|*bSc!{ zWt7qU7k7lg2c}uasqv5pnEq6;5q(oh3g>Su>vmWQ1C;m<@`Z!jjWsU!u}`XFlv5?Q ziGe;}#*|9%Ys&9!j4mU0v8fgB>Has#taU1tUWRZvCez*pp4CVHT~XRArGwyc6LP#_ zaB+gvGXZ$N@osB*aMRW<_y65r^m>SP42K+*QA9-9-`0-@SeMIpk1N6ajvprjXjGx!KOdbL%X1q{ zcFG@t0g|w&5v{**y^g$=xV-%2u!(l}z_1{)4+lI~lLnRFkJ6CI+BT&%dG&Lo9Bu@Y zk?~xeU!X)ELH~-@6#I%VHbx+#xMT%%plUl;S~Y5!p_^{2p7fOq_>jBMiCx6|NwSow z$+(~^Y(hioP%5nbrRuWi#Dl>SsR1qLfGYV%zJ5LlxUlq^ zX&f1vG{3jEC;049n6M{O3i2v#s=0b0s02hR-a?{YTEjvqO|iW+c$@OJwH3pr3G)3g zo)!pU|3%~X^=ALB%rW1xOY<)8?rf(#`1-gwQ@E>{CDu5@-_sh@l+ExB)Y-ZvRaWq9{clj}dJJQ4W(??qImP!TH@H zc@XMT@f>sLW*1nikBtjJPTr>Abo68%on;j?@d?$(MP2k7@GC{AS0_tJMI4voS_q*> zqE@Ac7o_u75QB8nM*ydyN$i)MMyD4BGs+DL;+2NYD^lb&H5#z}t!u3T#c?j_oSO8Y z9$}KzAr7661_rV^>wgo>gyIhmwY8dA?G)X!m!d>pKZ%J3*mM-w000930X^q$=ucJ= zOek$I__u+LAVcYZ#p!he1aQj(@x#aOvl>*WInJ?xARt(^L*+1}jNsV>eyu7IDu;Vo$#C9jTj((OzF*F}M2a(0=Mk%xXO5;Yyl;xJ4|a z-|-Qph*FEKhmP);NS6V3Hwf>DyS9BjX{B>9yd7MZb^brp0a-Cl<>z#M$A1Bm#r<5| zK}Y4H>lGZy_Y8>z=G*~a1nl2)Ew~{kwoSB|>|{@n)k+0TqJl?_Ecba?svOC8HCJuw zgdZ&|Pyt5orj5Oo=QGQ5?f$J;I6y8>%I40W>qrzAn1z15ckx!*e6+!V9*H4>@)IKD ze#~Y0m^toz+i?tc3##mSjJpglmUZLL?f6gD+}z%Pt=rH|(GKh3=O{o9W2qkRxa{xg zBLRtTD8PlY92Y{|&9l1xmKqBXh2Bk!`YFA{Mx5ISpOmfF!m!h9;m{e9ZJ)#*HA>DB zfkqBUL8{*L>{%{~L`Pg`{Pf3l>|LzAJ)G7wku3Gu&s?3YRuH}1iGk!iP{i>oy& zSz*_AO@%zXQtW`$*TK0VK0hnOXu%cep?rRE#7p~hbJ{-BJoHzxzpl~pZikoP<*2AL zyw7_|aqFnD`6d3$y4Jlqpd8tx4?=)uC-wlE|CjG)(L-348S4N>BgrwX-5pHCiLHUT(7NaS0!h8FRb-8m`CnYNoe|uP8gHY$eDc6=M;Y9@@?d zLQ(NzN28JWG9*x(^tzSS_0dC5#8Pu4F3F%pY9)?d;i-O)Jsw*0Grg}%XoiI<;M!!! z5%fx3+uqOW3|fFpUu44&QDxbUnKEt#y9*SU_(`nA91VYmp8&I5Rn5`3yV8S*xQ zaJ|SnsUR4&K>%y;8v%g}sH0o>l|^oXMNJu;Bgy#6A2jC|vAC&E6|-dTj#mY|E>7*K zex7`B5$~r%@F+tiLD{t%D@|*iOsQt#j`*P|&p=eI^lJO&Y;AY{W|TUdrA^@l2Nu3! zbYL%L<^xW_?epL@-JSfdCh^i10N<$$bEGuJ4hd8Pf}&B>&F^P@flOJv!0GG`OdfdE z`aMbUjqs9jK4E&*f+5^k4vhzxL&xDHrns(C%OrR&kWZ$tj=>JfGq>b}L>N%)-eeHm zLKdnGTnw*x^N%D+Pnf6EAeCPRAm5cD*^y66u4y3m^~L&-%st$GK0GJavAhPHUBm4yKg}IIHG5?3`WJ-y77_Tzuo)ovviAoc+Vh{XgkP&^5>{3VWTT ziYKl8{C|^OFHHGKq+*_$F75kU8Ru!-OadSunSE+y#@S$g&o9kD(d1m#8z$b%3jN8? zM`6?7EGH3{7WRa~bsCRYOKKXrLHr&3?LQDMDghMZnVf{ zrjDyp0tsntUSd5Y+=>8NotC+OcAZntxzAIB-_o2)Y4k);d4%ewe{es|p`j%kvU+ zD1`;*%*%c_5I^KBeX#H>mH6P{gxh1)N&NeTbJfu@+c;scu1#uiOf=Pv6{fJ=Be24l zyBl-+p{;-wAZNFYClUt(^MqF!LM)WgcEU?3Kc9*qjK&WTyV0QFOuE+cd5$LgN!3_NGABQ2y{{a*C`( z`}X-I8^>Y##B}?hTnI1XU1&tYIJ*IFD&D5(nbIE0=G&--HO$aLCadk{Y7%%Gisojy z-t~E!tt!-oiRFb9qR`ckCjO-kv4D(H(0gurrC&V&Hv-Daxj3!A;q=BAm3+GcIUTGO=n$ zzmEsB+m{-LK?F!*VR5FW`$&NvVQ4C66b!y^4#8bfd!}2HR=1pr+x|!xLJzmx|AQ0M5BR7QcpN7K2IijQ^I=RGoof-t-d|H<7xH{3) zDaVmF-eh_$z0U$`NGVBVM;~$TdoIRyf_M-oa{Nl%PQ4Ml1mQD;)w~=XNzo-8F{eR5 zxHdDLG7$NO#N?o7@fFRyzWAOq%)huDSMCh;^`RViE9D2Ap_Y5rtPI&TGGO~w{iJ|c zeEu7*Q|_&hwwjA5@Q(H&0ybS1Sp4P=+oii5Qya1aGjYq3?1V>!Y2#xCWFng5w{Fr9=6^?+b}QzCwSOP(w=HRkuk$3$$g4s7~O10Ol$Q@?(s7hiltG zv%}yt+N<9H2+3*2MxOoUGRe3Z>Uc{_52L+Ox9MJs6m_-9W9;;rMz)P8g<%odd0FZZ zT!|O^Upru$G%|az(a>N`<^9l2DNj=~r`FZw5R>`A1{6;kO!S+4HRV9a;m_jpUHOig zKDZFv>DO0r&4zVE@L;|`)b4LiSx5W#vrXPQoJQW6Nw)h3BB|*w8DjI zCG~wsE-FaJfJ5ZBD81UDSQ=P#J5ewZDhWdT%@c@09T@FWxPwVRzce`3J7j}74<{0$ zI@3oo#=gXP#O?!5D_gl!{@*U%G4@5aaCtsNI$gZIA~> zSn5cYovbz`=PhM-5JN`ibi@SM87N)^{2ubDHhCSSsZz`y;g2N&Ky&Tq`m&(y;YKV> zGXCLWTM$xzWAPOZaA%-=CUvrnHX1!l$=gzL~Hyb6I1 z0gNmKMBj^4>u4N~Qd`>@ac5se?o?%UW1KWU;RH4J&<@u~fnjOvkoBS0k^^p);wpsH z^TYoLoC&0N%VN02Ki7{F9cZehbX!08`1x81**xc2(P*RINzQd{4Y_Tct=o2+6k$brug& z_vPNlisq>ftwvz4Nr$_sXq!4Br1FRv zA=Euee<$FMV-H(=V)wQC6<>*N8T!|=()l~W_?u=EBJkN<)+zUPy=K?6NexvF3)uE+uR>XE`HkolOdxk0>WI-T(A7aBMUbK(l6%3S%jNh9rk@BPo| zBE7WHfl@>w)#9Tf0c|>Kg3iM#Yhx1&cUi92Yy_RfC8y3%smy(PgA~hj@{_~<@`kEG z+-0wNEN=aOg`^khCnf(zphxNjPnIiD&F7Nq2^&&ZW~$hRbm+T(SV$EfsJe@gUGZx6 z1^-Z6Bu4V@e52?R8JtY&NoOOnT;F<>MVe?jBG`w@361MAVh7ER-CRDOd>Fpe;GvCt zZ&Dua;|o88Ys#3m=K zYw^?yN8C8b(ZNdot3v$moR;J|)84aZeNg>9=5_BEbo{^|G?Z=ck!Fgik916Ge|SVi z=$!x2?b_UFfFWnEjWZKN;jyrE)vCvP_WBe%9(?BH$g^oP?>}YA`EXbV!9vTo{idR3 zav(4MNRidB=k`Y^iTTdbtAwB=(GSa&v#5}IPx*qRb#PV}j6aG^O=i5U1YB#2^cSPQ zxE52!gbC;tq(MZUgNR^}Pa(!}hdJ<|;bgDwo)%X{R%Yi>?fo`VaH`YE&4Q5gPJ4+p zRm(H+7G6OkGyF{Ua4|X7Q11*w+R5t%3ZJX|fq)G*sJ^E`XXhN=YjH2GFfs*jg;RCwT zwy~yIghcH6(A(aqfEh!fc_8@Mcx$znQ#RBbSNH-;lV#r!PILp@k!#Uo#Xh1&5yXxx zwWGMi?OCHWgZSyc!EmL}#c^s7@_c6dnz=a@H4ELCb4-!LUDkrs61+1TqsusUEaiH- zqp6XkHd+vIdt-jNGxH|2q1QE#3fDw#JvFJ_L)_C_zc>N@p9*%{&CpRkDzt#*_bQee z$MJDkFK3i!HifCJLhMEvj`+c4Is9>VnO#u=8EMtA!G#!V9WYm`fxJ6d9P zBI(GUzRb4PyEi|(pa6l(Co^N)q|Dd|FYULO!gmkjuHk<&rbm~~5o}^bpJX)fOU54z zo=61P`rBu;Qv7Zo{C~?l{WqhWj+cP;k&#^a{mKN+#<(_Sd3wZ!U*(G)czIs7An#KH#~QI(W05Dy zpr#-&ACW@xU@`4v64xU^JU}+%He=R6c{FfiL3qL`j62IN?OV6De@Rg% z2PPSU){({V5S+oUqW-BWZt`2lgsiSKNmu`!BnSPuG{#ou*JRL)gwuxBkC$2XSTAdZ zv96vcB^?LVr}`b)NTodwo-mXKVof4q?->t)Hj-Ow2En{aS63m_}-silv9ti9&1a2F!tvEQK z@)7VEZ`fF)D_c$v^PYIgGW-}VlTcnY`;O5u%Uy5wHm~5#Vr9}??lU`8!$=SIIrZuP znMGCRKcECV)>7b#)oPLK*~dKWOZaNye3C?4GNzR)B=L;dTp2qJ-vB?8K~S`oYd^(D z`{ha4^c9^_Pmh?3Wt}CPFTN;Wtn?ZJIpUchDN?uUzT$y0UGW6Hgv8N~t{<(CR(z0D z0abG6jz*k@Wj!e#C}%d;%pATmm~94SiTN>43zHogH7sDAd!V*3C`@(Sff^%%wtLh6hw$E? zGb@&KuInWj=JK>*<}-E0S_|DZ87DyMV+jrNYjKjX+Rv5_dhv&ArY7$Y`5x^s3T*wt z@e&+|@lD7^s)H(-FFgMOU{ExJf}|1b830hde z*Xd^}vhn!nD}*Nr^cEfgnwz$}g@|R|YG*e(aE6QXhCK~-x+d+ENVLYiYS);G7&x8r zm8S!lW*?RAM`TeOy0@Ec(v}D_4+UI6zec}@|vT)Ft^(yOKrB$8c7Lt4GRgsb|mB(S{ax^y?n;@UfVoifBB7zMSu+u zCqVJZ6M@zIK@1I#R_9?k9%HN+(1Z3g>;NkGVWkL1Y??TZB-Bl_-5iqwN=)VZ(ivy$ zY}EyZ$R@FjEY_Ll1mU0=UW6sRUw#l3iGbWOeSNIzojn)Un8d5mkWjUAnhH5|fFTet z*ibR)E7Hd*^Q+?vG3fWeY3Z$yqZQh2d~{c;r7OT+-&f$?YiXS*#_$l4G@{qvHnDru z;{d!}diC;4KduK~C5-6hNidef3^>|pubcxr(%cw*ER=l|}k-f5@@%F2OT4~HC5 z7M{3B=56&i%Em27*kCDX@@XsO%)z=UI2D|LY>p;N}0hJ@7?;QkgwF zftwGB_<0j=s~vj_Yb6Y;zS$yB^*k&Ms3KqVD~{AxTyNWQq>rtfsO!l62?inmM%yE@ z#!HltUkpDtnKh20=^^SB;f}`Mevz;3c!$X@^h_;=fk9h6F+>9qvLu~g0Pk^ zoaR9uf{V|a6-lEFg`>6#1)$_*cBY!MA*S#nVIbveX%K;sZXtM}N21O-N%dWGS4{Ib z4D!bx?61@;miJajnzGuhOzOcE8(c=kF%$TWDn$Lq8!e7!nG+Q5V3uf|XfxIQ8M^BG znmjI~ifPp^BFie`&sA~U>_Ut=C8aR!C$_n&`IHn;Mz9!@)B>m`(XtyLy=_os#jQ^O zM@ZdLur$AJ2Fi?!Q$i1i-^+Xo(+NJ@B4wPW3lKkt9s#r>fOGk=6W>j$i_VzuRzG?F zz8Ka=MiXVY%v7a}7^e;Hf{w*dicrEvh1%g)SeA!5~K%=YQx3*v5^`-}b42M4!r_Eb@%izn-@Lo@fMkJ^}BEuhLr&Mui zyYQ-9>R)!huN5a(VLginZV14~WA3wn z@0aRUOAvbGewD8-T5q6Bj&fRvt;zoP&MWy$6Sj=g*mS)1+$u}+@m@|#(axly%^}9> z`<0S6(!pRMB5Q$oMA3mY>>Zw%c$mup0uTzp=z8mLhd7-Ce~=V0+Tn>t@gT|->`#9a z?6!xa?v&vuCWQd41`~H%Rz!*O4Zoj6Md1$xYS%n*WBDCNu*)*?4==rHJcwmbjhS8t zZ=SkpW_6Nj7f$Nl+H*5wP?nEF>Inb~sver%ivl2ue48zQfe=XJwBPtIT9%y`7ymLe zNV{z6W*yfb$|3qH#SqoffbeP zraa*2Q!K7wBpz_SE#Fex+6w!gByx!V?xY_w><}$-Mq_+N#l{B!tmOZ*W5JwfX*^nJ zin)4DNh=%O0IH+m4CxGEOQYnWGx%B};oxkSPuDkF%v$}hMb0zE}q&=@Ti zm-@1y=Y9N^28obu%$D_aCXo}L0&$i5_%pS?L=Imk3z@L7ML6c7&2nFaKkMh0XfjAq zg#V8}Jb6}imR>HX*OT9|9nFMW$Ip%KnR)w(g@dLmw$;KFQ}7*Z^U>C3eIEy|l=+Eu zj4B?wCl03J?6dwEv2wrg(QZX_plgKrP-!gl!xo5%oQK=CS2;njdrZI6h@WsKj{LE| zP|AhusI5e@BhkKH%hB7f%WlsdoM_rJ3-j&~+Me2o$_8}OV{pcBTB8JZui#ILJF+jv zy>5irH7oo#362{AObzl^s^$p!ut9C=kA=Q$#^~nDDCB>2Z#;7{d$_7GnRq|c{l$jT zLN0`YrVZoCmIG~Tg_kb|;VvB7rw`&1>TpDoI7;5vs!H^xq3qmRYVBJ4LB`3k4pR{v z*%weXLDDlPkRBr`KH!3`DIDrR*!pk;{$3(?zus_dx?Cf*%`PAKS%3b`E)0JsWUBe! zh_hrVVw(7KBnp(J{KjfmR~=oK)}FpovowyJq2E^jbN9hRkDGR)K*S$uv?QMldAWAJ z*UK_wB6Ud={FCo9H|f_bLKIi~^d7_corwFI9qj<;&DUGP6q6r|nR@_g$v1j8_ zTz3tzJaf@QblJ@o02=HqML+-$CW7I4JenBd&4~>tXD;%^bEd00;gz}#+$4J>6~D7y zLJ(Q+^U z#%Vt+v|bF7Qv=3_o-Y|!zdmccs+gUZ4k2%$4#>`)cAKe~Q$K1d9{6A1*L zeZ79h_7jEa*DH&+d!&$H!t&j1F7*YM%p_p}d?}hkDsdHP4OJ^)=Kn*|^!U}}O{BR% zA;ZCdBWS>7Ng3yq*154DY>T#Ge<(Q9eA|LihJ9R8Vm)rxpBNca9P9FB$OyQPJAZq&4K-HKPmpLPZr$cW`>k zFW@1YasJ=tbdrAHpJ8@RV$HDIMw z5F$ktB>y2=kTs7{;-|kna53&XrG~1RrlSzM+g>h1h(|fz7fx5OJC8NG1|=?yc!|&K z*XeAH2I@gzv#5<~n8Ke^S&KXvy$+)GqP3d{!R(aKsB{hrJ4HH)LVnw@G;-)IeII0~ ze}KkoEY7wQ^sAhpS6kbz8!hH`vxxrY#quxWKbh~BSX3bgUT_2O4@s&IZ{0&we)o&r z9uk@dy0gDlw3BL#_&G-b5{b(YzS0PU43Ewxg*s<|{~NpP%a`QYDqf=xp{NJ*0DMAa zhU{;!a+hho_I8|!FNe@TRY=TY`f;MXHia+2S)U5)o`Ow(KN}!oqltu_vHZThaR%%$ zjn#|o`l2`NI}42!myra;HRmcWuuJOQ*YMqeGG+-}w>Z$Se(3d>83ovb=H%=V{M~&* zN@{(_$pV+f{Amc8o;|dg_7M}3oJ>B5U!84BGHQ9cWs`P_B(+QR3-t}W_WS2dTZz4U z%}7pXQ{>=m-%2va3n{@^zGivbnqsvUgFZ!VN@hvk9z4m!lW02yR2;1?*5+gs9$?~! z`+gjyC9|YSJzng~rxHq)54@ZoEVI6lABQGE5?8PW>ME@@+)PCesBH_79@+jkrFT{! z0CJcPExtrV2Z*x(eg7gON~zY1Z5MW7-6oYIjV1Fuw-pj2Woet~)1UwU;$T}$kw-amo&SkPJrLEdm4bS(_S}+5?h)1*A;^&IT(aX5Y7U z$9+B2k4!wrg_m2Z`-~e%_`4YNYUVzt{w=x~r{2ojo@=kCH-{Em4WS|CO!%JiY&kT)9ETzD$b}!JM<6gj=9_W^fthjz8I7s8}V8 zMo5~n+O16L!4y1^y6(X*%I1K@)ac@!`!f*R^LTItrM6GbhE98#`teeXu>3gYo5?!; z2&=I=7>S=YEh6Rz;8mv~APCqmW3%i_OzPScKaT~4vMJ9Nqf&vBE_RRX>Y)X{?NJH` zG6x=<$(hD5_JP&%cn|3@*{f*DBJ@4qy+R{3y5c6%Jwe1&mh2+p+=d*C7-ih=LRrvgG z|NR=|q**4_q$vyw@?3~;-(5mKfy;p3LTf~A;0plB$mzF8JMB3bOz!t z)@NhD3FIB4;i{s zkpkSRHp8&vfi`AZWVZe8BLDgxoi~PZM#$FVJePmJF=4OlL|GLo0)5MySYCL~jj$u9 zOgQ3USiUR&5d3W&%PnUeKRoE-((UktnX#440gTGojT|^BQgzDeH1D$gS)WrXWX&Wb z!<7fDyHK8rkFFSL3oXLfl-4jmsVuX6?}SlwC~iTZ0o*?ZKe`pUz6UGY7~Hw+1-E&p z1`7cm>9(MX`NBi6fs1kkJ}=VUM_&l%;$fqS7?_wha6H26YCBN!8+x0hBoaXV z6H#C$Pdl9&eFdsbboAk3DuGf7_0O7C7hPH09 z|J9W<9+MabL=L|0sx3z&2Pxy;$@_*Uo5)h3LJ` zlB)zHsK3=ntSgiEgdqj0`B8BxzqNpUl4F6B);G^WuOIOk=dB&*MhD*?^bG1GQn>n{ zCxQwVyi~3GuWi8SFP-Hx;I(@8!vB;{3VxlMB_pJC3&kDVRc=ug#DUz-2^x_&l3yNx zvvl*UqhF1ExA+?Rwk&OM6>uq5_+)T`S2J^u(-2*l$42M zSg!V6y2(-wDNk&4gm&cIIsl`9-Rg!&<2pEE^?bD9w5PCzZHO1YE*<;quslTI8s-ncS^>m6U$NhWi2lO1wZXcftB2Q^y`&LEC^IhQB= zCe-96+!HsYPN#lK4B4?CiYX8O=c-@-v&*v;c!Zjab=L32>48B|bcC_A^O@s?xjdDh z-;Tg1OTV$GiaACJYtw4@yxMn>#fFz;PG@m4#rGLbGyA7xXsR=LXip*OMYj`@-81Ia z($?ecsfcQ$l=bxHr9(+Z@o0HrhC`mt#KLoACh>2msoQ!y&gn?VtIgaBLiz`?ps^-P z^!8-N%VS--NBf(Md%`PBdy6!>7Q@V6in#pJ^4R2Y%mW5pJW%^?>L2U%dU>_w&BIhF z+H7TV!IC}{KgRgX8b)0$Jy7mn21xS;dQ@gnv$Ga*{spGH5bs!(674D*G@)6zxwZ+d z)d(LUQoX$&CdroOParBC;AGBKmaq{GDg6cUR#WM|8K7qlX0%q)o-XJzVJrJShy5ly zYKfDnaohQCZ;51c1iS_7m*2DHU<2@zm9%Y)+mdWxhX$`zajVxgQkC6XXxd=?B8xj4 zP%?s5n}_c}01gvZ1VZ$AUu>_m2=gI6%S@tP4^mb(kdOKURCOHh@tkd`a=2ZYNb_^CxzHCc(L z6QO}?3=|v9Do!rgMt1ej<;9GKU;lZ`gMzShjo1@oFqthr)laI!PFx^G8FaD_D*=!txi_Qxjpm)(%nh-X;kSdOx%J9pe=vx^ z(Bp6f8WV*r*nmT|bV*fTv^L&UnTw-+bLSxhT2*V(Qz6Z`0dHQI*5U!$6mkR zw!1T}+6FwuUp*w-SIfW%5=nq}oBeqF!S@;mB-*DV^A;4U)l92`wU5YI`Kewuqh7_( zY9`BxivA?hF2anL=XzW7L`vUq5V+{j6M9)Dv4qOBf5k~shM=N%6I6$fif1GlFb9et zRQkB-v0RJ1zBspdEjhx;pDC|xz_VP&ovIn_s!IQvf=E_01egO~Xtfs{L@Po|U-W% zj_>ze|NFewT{=m`rb)E>;z%SBO}v?y@Mq(WBHY836>`>;b2@V8?46t?IdpQXQCf93 z4kt}7LPJy|i{Zmb3V6TEW-@Oy3K_!Z-D?hABxp4Cr0xW=C569&hv|xyEFmFcvRHfa z!+5WzHBUkp<#7nkkGFR->dw4XxNzs}zM1hI*LLO~@DH8NG5Xka*CMZ-J*imwZ%4=% zV{%&Cii^2|1ks{=$tH5g4^iGf(izVY-z0Q!{xqzu-B%NaBF{cJ#47GJ)1AHK{M<2~ z-L@C&2Aq*}yG+Cqe2~4@Knlf9DHJF!sx7R3w@98+j+6SSPFr^r?c|^1Pu86xEvA+t zy1q?pTO{@2>|L53ZouVjo44YhxnR;0c@Af?KkCm5$OGIw%(W>oZ}NJT5QR%0G)#H5 zQ!-b#>JO_eGDm&+VBc8g%cjG8PKOr>k??bMfvFuAk7^D4OhYvNlGLniNKFG~G<1nY zWypG(Y2CZTq=D1svy((lk^eSes5NARnhoen=}TS7HbsDP+_P6>8||__Cuz_7*-2r_ z$xIxrejQEKO4n>N4N$NuW;KUAe8e~(ECY%AJ+{#*K=bKWvMr=Z#IGXgkq9=yclvU% zK%PRdbh4Glrn4Oa(?$Q}m+EoFFHSMOX}zh21dVC;S@n}f1bWpLaCMwOM~GY$5gBf& zyc4T$FA?Zc*&21>mW+5#txx5A3e6_$f{7J?_k}Az~kDKRyxQ*0p2nH9EGeWlEmlkIvsyO z_s|;$9?z5|o7!;tK(B*O#eP1cca??s{1u^nhpx(zGDMfoDBE&7zUDnIFr#ed!|nPU zEvEm@yS(2B>@V9|KY&gTXEwBBKM{%*4(t@1KNI1dY3@6fkRt10*7uWhIQ|C++fn`# z`vbN!G1nCSHvNQ;5=UG_Cj_ZXIq2^!C;gCAfg?=UZZGM3QZZk18!O8&^&4OG&VW^~ zE&G%{;Lbc;9DhUVZ|#enG1t?0EYgwA3cW_^l!y74;c89zf>Ro$2+fY~Irq=jI29xr zE}pW%es(MNmi(Mb(w)@`=fA)}Ck6sqQ8gWB?jRrlE`Td$axqzA1s#owV;(rrZU6MWM zMl;2+z!-Su%Xnp-twh*lP>Tf63RF*6wtL6lI+U$oI_7kpGZ#&Kh_Ub^r+snt37Ym< zS|SfXu-@W+ggN~0uAnBWHpWBm-@|^Aj$ywsSi26Ofib|AAAk@_+=bZk`ePYI2-8oE#omg zhFr6LS1FAo1%LjrN`FJydhq6*JJUaXU}OT#MbrE%GWTRPbP5IjzT)E|UGfsxzbPjN z!RmqHj;6x;rd0AD+AZ^Yg&eAXs}JRX&Ps@V@E`y0;2&5325x6dWduxhe(mrCeYPlFk5j+$+y-HJ=-FKBoN_Dk)6ylNT1#kW0_y+P^l17S z8aI!eMM~%Qd1CsTv5O`l^l3a08hI6Z68ce#mg(D85p5H?6JbKVSvqaUN72Df`Um!> zddr`~fU-QO5Bg>pNH@W*&<%Prcgw0~A*gl=i#6T(oBa|ZohUZ<7u^w(|; zCI?_V*TRg~I{Xre0R=O32irJ1ylZn^+MzlE2);zHkyT!cH7|gS2Zvbk_ zaU7(m*Z9qEciZ_w=wo;&HTY;|iQYg?b9`-b*~0wT`lpQQUvZ&dj7vX7lZgg`) zzw^6zCJ*f=kZ63XaM%Y!B%xL8MUyjNZNlb98l!9=X~99hu*M=kRC#q0iUp>|N8ig0R()y6jF_zh1kl1!K1Bz$gpwR$X%I4mT|lzYNLC>`ctIvf7=JiXsRfzk)dyv(kiA8pB;BFpXTnnQ5 zbkn~`gVn_HBslt!t%CNmz4qDO(M1qK7nl-~Qk{IBTI5bH-dn9fi1{6oj{bO56NAcq z_=*|d*pa$Qny4KTi!sDd%#}tC4 z&g+8mfBZI2=e11j$FtA<8*@ z-tO07nK9eiv=eq|2`WhZO?wrgdEmLq(FWW0uS$~j%Ni>5k(rbc$|^v}Fgo;BO$*-zDCC9PNWgDu(Z2fj5J-dt_AcV`O zm)TmXoY0^~MOI6V^paHX|GIv1K1fol#O$u*c*TGC;h;!oFWKi~*rB9VUS{WIdN zFl-~04hUphbNKQ|)+R`u6-*NI4WIO9jt(H)ey=6yRx0KFqfp1=IYxk@G7c4sT<0Kr zcF@75B4^1LnIgvp#q)9@_X%<=8ayf6(3gTt>WlzeK%~EWQ_7;g=h2eqwgLA-zK2~V z50$?y8ogbUamigTLP9BKg}kbC1|V~HuK)iXnIgwCJAb+fXCT_2i%X^N|EiTJ{{95z zf7xi8ikl7be;iet9BNSTBc2euuu3|ZcXR8G(BFpR>GeOHt&%MNYT{_n^cCIDk(_Tz zQo2O9te&C&FDS%s-0>|T!R^jm+#gd;F6cf zkxS4bWwwoY_Z@a+3WcfM!@Umkyo?dF>*vS56fFAcNaYxA4|uMCve{pj3Y*$0A7T%wF6?wrc3*Ep zx3@&BefyWPs|4`Qs)%0PHC4<5(VVFZUy)g@vV^ze!R744G1!i?n&&rcd8IxkG{`P8Zv^^sI>ILb>jtU6tp~OkfV~`3)!eH z^^vpVU;TNWpb|ZMHdr?8o4ANL$}Y8-qB*k%3dH&S37E>W=?Sy?Go8aesFe{+)>E zR669tz=)9b*CD7Y6q0!>p{2&W!F9{u;MaJzH_e1TL<=v>ZPifkT15f? z(O$ePrk&l9tTt&VTkcn9vsQo3M(3^Na3DVfv#h>ii;*!KB|ch=S0b1c2lCW;$13v; zES#szr5I>tbVw{Z@q#YD%~p1X(OvbieX>l4EPSVHXck~EC(y{**mzO`g0cu36>X05 zGS8LUITp%EYj?npMk!c{)EFN1boM4OH0_`*bX+P)y!agDdEh8yBsT2FHmSNK@Po1m z9Q&mz(>{)h!s$^FNDe}4yUQqysSTJxpfrk2S=G~XgS0cbiZKEwp$m4NsQVn{QE#jo z(YLuY1;E!2=pM;`aLw(&ACt|ScDkMOqVBPa^XRca2usJ5r5cynl~>#w?vAukyQYgg zIj$)urZ%bjO&ywW$U(gGgpE+Cie2NXat3pcgXC-eHO$$Ug_s~|mBlDv=k^JwfOlKN z-~xz)dD(&YUN2p5(6a$!?;NfVk%}Ka>J?&tLA;+8wg8_QjlLe1(6G70{`zI*g1yGa zbRf_t=7L=ol|P5K4!{GKnk0rJ(tHZ-c#_;p05rjzMhLaY_huAZ%HWWVkb2jzP4U%C7&a2 zOC~@w=n*4^0NWMnApwp43?u3ucG`q;iJ7R~AmBv*^NmZFMI!37q2iDvla!erN{|i2oPA2&S090DxOcouCSj{ zR|-yn9H_Lp(_yH76Ii`nWHVX>Em$F!S&jIu+zhg7jBH86V_|)39Es-wZNYW&ws%h5 z!Z2d~R&3z~_7?Z@Iuf2aUYe2y)B=hb4)_SP3vQls$6E)saqtx!jW%pZO3lHFLVE@JwirKS6(m{q zXyFf{liJpG=aTyukcY~6rph_FRz+lHwWViB`4jgB0=A*EltdH}L62p`s3JQ2&0w%$Q zbR0jOYGzRVCp&!J(V$Ws)L*sQ!si;I{enj}ox ziJ0%C7&ZTUIzz3>sji+MH~+V-qE)FzI|JKCJKnw9m~rYZd0{n{P@g^wd*1pgmoL)to}BBV9$QV2W(#n z<<{53AG5`OoZEJr0UzTeNBsg5Qs_aar`G<4;(xybLEC;Vzeu9S?|<-~`C0!j&dk%n z<#8mI!=;g+KnK6>^U=mF+#w7Du$xgj-wZ4`go)zG&_5iuC+abi4*w9T(wpk5f&?Hl z?@_Zce9dn{H?hh&YV*?>Ox5 zG02~O+Besldwa}N7g~SUaj5y`Yh}}j12O+1`euz&|NkltM(h+n!LhI|@WcDoV%|`4 zbABICfB|f}=0A+SoQr-86c{%)CMl@p+==C__yg0YcA zichvVg?pF)>#Z7;#bXN%>ai%ztv>u%aY0W%%{UoJnUNg5RcKGgO}Ge^G?gh#J#W+H zUIes1sStYCCgOhczio(}uf2)kAO8^q%xos3 zEQUN2Ay!nqix+iEIR{zcGcO=ici|tFro!v`3JQel9;8#=-Fc1}L`BCdH~*J%X9_pZ z)GzuTV!9u-pb}yfJ)G6!@dr+g|GjwIHI`BQCbDw$v1?rh;Tx^Oo{23FZNmOy;loRr zsk%NDtW(Enwq3>QnmFy0xmKL~@i!}9F<^zN%o?8K4&fs?w9)`E#4TU*_>3!#<|&zj z){$Q|7ult%o=}928>L%(UATEcX`3F0;yc&k5KS}YZU4klm`217B*-aRs)ky`f@TPl z6L@3`A&|t^-X5r1l7J+g#f+p>e7D_;e0?|fJ{D{}9Pm6)?-_75-dH?y`>gsW&tI=P z_c8Pew&|)W1_i|bG@8t$g+!18it{7KiyLmh%iwBb?xsu)73Ozs!R;<)VXIYlZ(r)a zxKu@&s~qM{tO?)rr;^`M4HHn3=Tz#g4h(Ic#cDsz>7$ z$q2tp^Um?8_pKkW9OuNWxszOhWuq@+M4O1IFXx_Z(HmXvfNx}Vr_Nchxn`u1R`qrJ z-*pkd#=svlugqyJadEEpHo}Z2WT+b}tlYbf2|%I)HT@}61M-;x#z(pMcE32ys|jt1 zDkC`Pf8%Rm2RTJBbQa{kTB6MK>OA$adYs;Z8y=rQUlLwMj@F2+faZC8m9Ou#LI`2O zU)Uwz3I6a=mVy`nkdxw6x+W5rM;2|;`UQS4`=*m|w-BNG14&^gLF};=Pofzqw^70OKkLASsqVLfk|Z7^#J{ zKdQ9&wG+ID8fdxhq70@;avmO>uo;b@BwAQb?^hj~fWglS1b{Xy@bM?lU%z_eiYeM4 zI06F!zyg4vtAv`Ncmo26z??S*mNtmf=R=JWNX6 z1H!bW0ZjaeCYqAF^QsfRcl+DLCWF&oaM47YlnZVd< zqXfDp6Z;-aFu;rlYiU&}qqiMxY47ZDyMeDGiyl{d^Y42ke&Zrd#P0O-fd#x|<$^?v z0+Z(@nKX``-N)sAV@qL!HGO4zp1t`+fIe%oE0m(sKUvtabB+l&rr8<2#gyZ2^iTQA z#&4M3MBBf`l!f7_cMvRr-O9RZRHMd>=)7SPs7I!$>uwz)sk=ERdTM@eB#xFXSWe5Iqi`wWa2OVO4&E@U={%NX4Z*tr)U)UCnbpOm66AG6G z_bV>o+xInlf;g4^b=%pRDXGBX?@+pH8b>lLItXco^d?HsMLBPn+Kg+W&dg%c+HGxc zb0!a&*DO{cA0y?4SD%hY98sXsGSLhDG|Zg|(m$Q0KkkG2N{iOkLFKNxB*>PMsf&0P z`9SZGTQcuy{Rf*afj*w;K-w4xTGp6e=BYg<(8`wMfyv>y2LJ;9-2hWLhp{+X0_tWV zA?8di%wI#qk_2a!Mbj9IFE>3-!T@Zj_ zO=S2U+O^!%eZ|_?E{j0g9>C(5>mS+ZxeKx=2Ks#G5^>~{M}Qk0p*>V9iV%Kp!|Y6H zC1`OcJwT=Ay5zP12W0U(uY6lS~TOgiQzdsi8s*VVh^b0NZ58!Z5>ayrdP4P zi64Y~pp+c=Z%FSxJx+&vEntkD{EY?BM2XxxT# z;;MYY4CiZCiN6Pne-dN#NPpM&-oJJpgM|WMRCF#opH|y(2g*=hQUIIjG#NBQq3hKW zBkN+jH~!XNy-!4<95B>=p#If&HsR4Cy?eV2dprc9)K52w5YGJ;U~#+rcw67nI{c3t zq$c$kG5=}Ktu(wRN6l}4ppF>nO-rCgRLlWZ%Jj^U;r2xVKH=q=e+;j#1awzA#VZX9u^xv(H1ixZ?I zGhS~9y&`1MOto9BZmdYUkT0Su6OtED;Vp&+Ch^~VT(1sbpGHBUd6WsPN*(lfgm5ni zC6g=W_5=V{9f%HcAyhPz>|TU>Z~vQV1sRV(uu`m{cxWk`WVZB-uJP+Yv)BXIBOMoY z(bH;z8T9v5!JCt_&{SZhxMkdXWV^7OKg2Tfp?{vn7xIN2Tn;VeF|FMGYsR_H1WXys zC(DaBT+7R@kINw-(NtKZ*?T3k;87>F*>nB)xEk>z`vztx| z8h~`2Zac{5hO2dF2qY}O%tO{m{23QN&pI$8LK86n(Jz*{M7g7QjH=zVJrmG3r@{Dv zcdo56#%s%;rzQ1xpV?#QU9(<%$H#FYQMuvV@Z)kivxtRxjO5e6DDev zl!qvF^7q~@q!vpCg0B$BFGr)4`uR#10(F&LRv}0ACvs@x5B48fW9fkQ@gL=hSc=&p z=D&lGXo2Lbdvah?FCOC42+8Wr|~}~b~VAXHB&l>D*r54^TWyZdI!TAj-hE`qNzo3e*$oyoF+u6UpY*4l&7Dz>24HhN?<%P!E~E?=^X8-%+Z2w`{?Ig$7Tlr~R;#~Tye_O> z0>A!OB=U4cvm{sX{^yO@rjmiXB=SjHQ+?=>06>vlr=;;2rneE8&QL|c>`$X`HTt9A z9$FqtNAHNG+*iQ7^;uqIYmY^pcqbBQC8Bh z@`^-WGk<%5ZhYDZNMP1d_`4Dd`(qv&Le7W<1r^Yq|FyRo2JHKLA$N)7WPpbglj6AF8?y>k?^SA_o+ z-u4d;W{9KFOZ-cMjX(7uH~N&YLs~dKU9zJTZoyrksCXv5Ctx>MKC*D_A7n^G_`);$ znP}H@WipRCMX?bZC~6c@a5JQ&V`ih^eD9~9o5noxv1(*7C5Fu(64WCpr{gaR^Qllm zMo58|j~R2@Bwd~7nYE?FmcDE$USRwGAJ20s{}bn{u1J=>5s;mkls1)FXvlsT50v)_ zZuJ-c?dzdnIcnj^-_Ak~nE9|cFqZO3dtPIwgChxs`Q&>P_^g!;m(yh6EI33!2lR#h z>Pj)k?utx{t~8*>Vbg6%pfH^-uGX~NaKoeyS&5}-+1-?#Q8l*XPo8k*eG4i9TRj(Z zk&2+D^Y-X_YCYD><=Gk0+KGqA+!-3|&2mTiU;n5>5dkP5wXGSrJPhG$o-<+O@CFVd zT0&5%2qvPL8UKB_IyqEC9uBR3MGs?sUjWM38MGi$WIR?c1Zf$ znk90;aID0(jgp&^c(b~39*dd^w;?8BP(@1(6Wf!}-wn~9XaOiN2wh{tbfBOo3h{3c ztEH91aJR8EYE49`l@--^#|bIc3)Rz ztTO4Ig$j){bz=4-pszfBD3J7FSo7Zyj*6-%!2RTrK58GBvO9aALb z7-^nuPMa0Tae2{yrm0~+jqo@2hQ2>zEP`oE((+j;{A(Jjg!H;LNSmhosiZT0MHDyw zL!NpH;$Lgd6D`Xp90*a_k~Sf2S@*YM7(KZ-duLarHl@J)lnHxS;c1UABUdi45u03! z^#I)Tu3$yAWo&RyVt5}Qy#_WnTA>c;3p$_SYV5|)8`u~wCFcFuwBsaVN^R#pNg8)b zL;Zxp@>s$I=*$htqP%->sq<;Tn8G9M25p+y)tmPX7HB(t_qgn+)UI?e9fQJh+@FJcPYzbPNEF2BO_*xZ z+h+du^jWefm2XxGJQDuS!H+I3JKqHx(QIq!Y-|pgOf4i@ZH4|IHT^}F^gagsZX50> zoKUemZ=%{>PEQ%?tsmza`GoZ~@EWe{=Zt24dV=)>T_C*m*)wezbTl}tf>*q)6?77q z6es@BSwR@sj|eQCyzKUh-Nw$ zMFhPV5LAHU|8vzXtutuDvtbKgQ;BYf=@o7w?av+#N|5)Cg%BeqjwJk*l-xgQMIt=T z6?JESpiY*KIQ!~3SuE+H1;Z@<0l>8#D}I~8QJASH=W-G0tKn8qkpVWXIuye5 zJI1xPyW0KmUyMV4|GML<1cV<6;D<?$17q#SG(M8SzSKn8 zH_>ceN+QVh=(o9i(A2bY+_H`H;#b17CzMgmQcsxVQ#`W=;R=GV!rGALb+VmFd>I5~ z%E7F!5tL+<*qFf?kp0njK#vyjI5+a;_ql_PFy=z^vwpT_-vBRyBj(n2Gm7_{2XBJ3 z+=ShpsD~eKm|5@ez3d*<9r7*;OD)o$WxhHv8r~rs)3}k{D=bX2YreuJ!BOhg^)p>! zpt9U8!*n}40JJ){|MC*0KVSPmt@a&|1R;Rt%fDEy8Ewx=9KC*JJNJ`_$@l_}{9l{8 zW+{_qBA$zCgoj|iRc?WWt+jFWFG9q}VL*H`>NUAwuF>;OwdvDKp64@I#^!j=(wt90&Wych#}FPzS7aaPE#r&=ceOC;`2K3`t}MS+cVY;ULuA)>LY z8qwT^0uTlck1AkgpE?ysOs9$wBp}E60b{f)jB;`#p7tO=!~wiF(^gs~)G}-Y;hQt& z_<k@ zj!fTbKjU2(Ycw#75)IMF=v&MGXNja=8G2e>Y6F-!fOx0%^kR4`3o1N3oWuM7`!q$0 zcT`Qlu8b%^R?`D4)1kB*Pu8hhOLGF6cEOv@DMZ%LHF9}cDUl1rajVDJyv!_yBH|?2 z1=GPA@U1R^9s$^oZU_yyeCvrz(ipPo^F%6cIqEFcN+rtQor_p`t=}A#_%wVs_kxL_ z;UBH7jWB#83eQ^ z>RGyakchN9C!vGgV=MXMM*9S+b6@01$>zK6fh=!1M7*c_ga6n|pNmVEE9E*|5xRLE zI;QT8$L_uc_`i-+NyG3)6i9Zs9yCi$2X{WW?KKUT@%YoKLOOqOo}mC(s0a?BcjZlj zZNBsI0>dY6fM0E{_BRe_C!!Bnxy(Y02mH|ZR|<2Z=Lt(18da+7=-W5x_J6@p!Kb#3 zDi5d!9sAxGdDScPZq1tu{m7!WX`XdAQG_d`*18rl*CmXBf7Ur<{Ost@77#lVRJ#ZU#YL1ELL zlNLOk8;-f1B-F@HJJ0|Bva>~a_cj-)r@J8)X8NA6H9I1nxkj^M0cYGTXoc4vcHiN$ zb{3yWgUae8Wj>{acmRXCjJZB%(7liarU{xX>OR$Gmfw9GT|2$gcl_JTllQ}&g*e;M z&}0F-=egH9&hYDJ_;5y@*lfbk8^NTbtc?pB)Ab4j+A{7D+x$unzIu7Y*f$Eu~lK4_f+|EbtKatdkm<_?C(Jx3gZG!)nGFjmrlM z#!oG%6{m|YFmE(;Xl5!0QtJ$ETKNJ(<7=&Lc@0^{TvZWImA{1+jy<>ebbHcwJw8dd2^*i=R3% zo_01r;s~l`uEYT6zatvIf^*ZR=HNBZchYS+l#EooqUf639ZFNDYl#HV%$QzY8&8mv z^uWPeClp7oQ}1ffWC8P=Z>Z$MauJ#l(b^A-U#v=<#A@L34QFE%@mfLx}`-pbp_fdGPAxPLb}i8s;my$E5E zl`ENXq3O*=i_D^CK1+aP?Q0Oz0)jB_$f$rO{wiZ)8!$UHKC66LV}ptW_S1ExoF*N; zGjyq8%8ftfXVWw$m|Eos=M&$tVP0yK)sd-lULPST@n8}ZM(NSP<2c_WEs^+h^{n(4 zaEn@=#c93Sj;6RH8R7sG%u)8Uno|r58;nkd(N&dggF_qv+$?wa4~rz7N*M^n!8`x| z|3s=LV)usmkZ65NL_GvTX>bX44^oPnEVo6$ zoS%k=|0H_aSJU;bHLcvq747d^J9E0gM?B=iG^+b}(hgmIROf9~N zFCzcN;HeUzrBVrFTgz!MK4131v!D(C6&8p874FJl5vWr5gIHC&C0Tq9$(w6eTT}>2-vsuL}D)I(o%!bs^7g|RdW)T=+{?kKL#}j zQ?~4|s{B;p6zWgWYaTztgLjNtiEK47K)#nXJ4;GUi&>fsQe^z3)y5>DM)p1b_z3o@ zO%t*09BllnBFL!$Y3c3ZV$|rFc9=nkE8YnK^$SPrtD(0l@J; zR)xLHtsxmz+pA{Y5;5rv6i>VGY1RdTJvx>+EcdRRaR44Bk-e04*%h zok^h#&d@NZa=9?*zkoj9NR90WH-_lH;UNg1jb-+DM}D}eXbgAw@%cLj1-~E%IfrNP z498q^D>eQLIUTVc2d}7YnRmm@a9v6ce7R1W61k;4hn2?sI;4R~Ph$>o?l7&FWY)Fv z$%%3cL{&&Dt{C$wSFGs9h#Tcm%ibSlfkMZsO85ex50o~pqzRtX=VW>_`f@U;{eR5! zyFQ9-ejRHm`ZT3b;3`3W!)#7`)<1o0JfM7Yu*&pJQ8S;-BEd$9us)GmK_+3xI;h*2 z(fl3hS0$achOW@7=-EVtI{P9}KX-Iu{JkE&14e5vZu~>Uq>VS11EY7&mVb3pDQpQv z2*8EdVA1m{6G6QfoG7=7pQj4#ZD_I<@UaiB4KwDvueD;5no|pXUF^MR!qh504)hQ7B2}Ykh-CHEIVY`6%}@)Y-}S`=k*h1N z#~=>2faByi|KVb_mg9AByLGa#Yj&DmZpCtdOwh`4lAKU?IPn7qh|~;xOApkbs~Nlg z%QsuM_wg=>;G$DJ3Aj!`7_rebvrY`M$Y!ydxjiWkui&qlkS?UQc*fUm`5XM$(HLf@;tdz@$-_Q{ou7TXsA`AVtu> zQnxf*k4s_MBWrMg6eI99Zos`pXcJ(UNhE9tu%XUYPcaE!pDB{>eL>Q80wJI8* zRw;2y_l-QFj8b4=duMUk6O=;kzbooz@CsiRZiO2cg5Qq&oiq4B?fqnBe|yeN(`bGqC;qgpVtf^9^b;` zPuKYjn7tru#nFPYBVC{Sk=lm;PG*IaBv~<)@&UxIpQSEC3NClhqr3e9EQdU564w>j zJ9rTXO6G%0Sj<=l;-oEHn+bpnDsm|_mw=jVuZi4aZg_S?5nqlP0M+xl<97K`Y!TT2 zktvY343XMIa|6%>pcg!NjB?uBA%eYxrOCwf%AZM+f% zOjY=#4H@)#gRpl|kO2{W9KStOpuH^dRsdS{^NWc9B1dBhW10~<>qa+%}}={0>Lln#(iMz^8kWsMA@ zi;S{Q^kA`;W55T^H98N+7<4S;O5H}wNgk7l55mz+&Zdxb;}`YfmA&!bR-|v?#2cLp zQz=bIYa;I~EdGJ?-8wc-Bw&l&-%L(}c}Qbhkc6`@(^d7nAFmh8m`f{u-zpb%{^{TV z$SEANm6Ef#G{Q3WQwE)I;w55h1N_OQ2`SVPPONFsxtB4_Mz74ZRq!Jt5?O*5#9w*E zd(fSYFm{C6e%;!VBNCV*yS+N40pnFDJa0Ny03!BhB2_GGYCY_vsIFR3i`~CuP5Ed9 zkaec3~-q1qxM|Ry+KKddkicQA5$UR$V-`+?DvhaKh@ej!p>gN7P*cMg6&!`|W#K9bONQj-cz#UK;o0s}*HgH~_#6T;HPt zi+#yT%TU6mEK5UKtKO%h<2lN)N?_Hk1_x}`b?^nes}RZGO#)Q6invDI$_?8i>@6}I z&-tCjoX@Esk$Uy5@*H!d`?(E_5#U9W^M-z8XRH(&UKoPjT?f#CiXMG(w2=AF#@=TI z21&Lk$=h&wu{#NwC3I=mL>P?(RpGghqp%y&_3e7c458E8vC;AoOsjKT+}aWfUoA9J zIMk8kO6HU_fV$#|%ngzK6*j~G{6?UQczIcWct&I;DEB^%OM8V}CMEkVer+=ubqMQY zm0!&^Ayg%;Z5O}iY4d5Ii#x3J&0|5K&6m;8>oT^tKY;3N?;n|-JR#1`kO--NTh3-` z<@Y7z96U)XpYe6Yg}NGTwP;zuX{I0yPgEBLVl+r+;udHaK^P{$0TD*vbGHm30+e-e zLKH)qS*Eeu;*WZkb0H5ywKK1ZgprAQ@bhkAAZM@3U;qE*PQTTHU*qt~V{=~!sdkV) za9!?t_2pkQ*pQ9))~&6sa$8=5QtKq9*6sbyYov4)ky-as{1P*{!NRVTDqVG3$#Cusxr9`*@S&J>hY~d-HB!ob! z4DxF9ujVBQ&8HLDo-uYw5&N@ga^<4%y=b_DLj{Gg>7z8Z0V6z(Xm`%Hd)!}NbYEiW zBm51=n!nBBfll?QN`JW2o#WdNK{8cEJ`!u9ew=LuO5hc7cA@J!Ar8~L8e5r~NXvHw z73VWmF0CV+WsPNUJ5dc~zjs|01(u}KBB?`*MW;6{Nb0XXYXA}Ir%Re*#+J)hG;r0e zl>-b1zqR5+5_CxtG$Xpt2xVhM!#ES{uK7poZ`kuNfLgkn1-qoNW9so09|Wv)0{JVZ zNniGzlEQOgQ0C=XNzypHoaB92C23XPtgb{KJ)bQv4*zN7SAV-N7cxzRR_}FUPg}70g<*j;*+1! zg`x2ebIOO)%i@UN&f*Wge96v~2aW{VM%#-o9wl6$;NC}VuQ8CSkF}d~i48kr_<^8$ zAV>YTtMgRTCl>%lxlTp@-6xuTjeh2`74-%0HD&_;$_6)2kagr`Vh^UB8|E>PIXn*$ zyDSGp#Oh@5Y|St`D+|zkz0)0A8Qi~HL$l7cDN^880RTUmp8bra_!GrNNe=Wx1bTCd z^CC>+kmaC=Vy!lV!}LNSy131Txh_?p4cXwH3ZgelX#Yu&WK(0&fAD(@K#8OL zjBN6q=>VB(pq?}<4@z&9v^c-%_fmmz>$+sTgQJLkN;CIMuUOi95*?QFW3cr(*&b=j ziS)<7HwR3Gr=s17Sbave=zx3X8}4GQx4IqMXT>^wEa@Lsq6@_H&tK_asE)g4&s;{? zq9?HlwYV+og9Hc|qHYYJQ<1^wWHZ{Un1z$Yj2(f6Jmsb#NhwUBCQ}?ga?i3t?g$T& z(GUYGcvH3rWcsdW8#*NvOC~5xU-LKVZgJZ)s`%CO77#!vrZO8TmUwvYzhzIL?M)wr zAZ#052M}r%G+=1jVG0;*A-zAJv6e685z%81>Y?JtBiwYls7S6_-erCF(;t~<;Appa z$q2#`MO{IKDU@AbX;My0>k<$(!NvURB-}zL^*6tO1=C7tV`4Wsd|gCMEBKa+t+5m^ zI}i5QJp0t8dfpc8Bt2sJ^+ZWRSB|sl8BQ`&iV&a%hWtE`@+Q>wPsjceO-!+lD8S$$ zCBd1W-lAK8qr(DfYUKc-b%IDLOu=BmfvgqA)D88vqL6iFP@`xm-}BRecKrRiNfQ-c zZ|3;KoSRb%3dU$e&AKOYJo0lDz7+4C4hv#^>l(HJ4!5G zFHH8(v5_dGc5^dfaVEG_yn&nBtWA#hlA^l$!KvXY;I_jeE8kpiiWMU>1aBApv%m_k zlCVYK@)|cbMt(MwW>$lBLQ=SGCujTxWQ&luU_u3IK=uEEULDTxQnChruBt~=zr<8z zov&V1u1OyOF-JScNl;`*-1kPJMwV8u7Ym$>Hx3kvz8<;smxUVvY`)Pm^>Kzvdm+Pu zx}1Ojtdz?a0CE}}=ZI7Cd{8Q`S=X-Kwanz8sDesXK>4~yYmol;#x7p&Z94KED2_2D z4&WrG>-`~MDq|7B4_&} z-0jqat)ENK>j2%$=hU#I`tGpd{aMOI*P%1uA}1MQ6#lSl1)#T0Hjwp6)*JAOqS6l@ z?rCTvgl$UqViBW>9F|lB%YCfyG`19Ju4&lQKmYVeRvd<1v&T&%RIcY>8f6pX0ui-r zv;%C$^)AnxZEaT^JGf@0m7sbRzI=&cZ0JY_CSyc9mlkiZk1@Z-G-YFRzN-QWKCE?N zK+-Z=MQ2l4Sg03Hpnz}9gsu@}+ItM2+y8VJ{Cn@b+&1}5lLZDZLsiC{HZjBZBl^ST zrAFS(ekV@o!6Oe>%{3b)nYbU0iIY-awFBUyhGb+VU`JBHL$#@a81rG+Ze z|F&IDt-54tv#>-|89RkAZAViWqmz!5w@`oylzL8j#>lNJz-Q3N%f>%%>Ng94!e~S6 zXCS9)C%Ta^7|H!>**zqGQg;z+98^}ZutTR;&`|lwbO41I+Pjina6paURD4?4{z9?*rsBD_!e-AU`V#hVTH) zIxX_w=ljpPsr1Nei1R4tNQrSaF#VY;nhe#uBmYm!ekPT#kpKR+fF%)kZsA;^mtxm7 zlzc2^_&uR*yN^Yh^L6txHsWH4cBHWh)b$~WMP}=a8}ylCa)Vq-@r|q85mpYII!&(p zlZBKy*UdyQ5|f#rackz$ytolv=aH%pS-22QBy}C)G6s^V2@2N<%5?VC-OVKg!w{<8 zP~-33P?BPzKFPSZ)*jp-TBVgV?V0DQ9B+{$JF#`&i#28jcll3wi97iLjV@pPGYBHm zX(LmL2awx-QZst~w>KIUIZ?R5x;*M%MmPFooK9ORjSPZxv6q9BmJUQL(@bp9p{W~L z<#uaRredST;9Uzpy8`xE3z1QctC0*Asvzzx5wzuu;aqR(X0VZOp>kC}m((ReszbW~ z-~}_45Z0@{M2im*=XXdzSgmJ+$V4}6@T?luiWb6I_^ft?O%l8mIG;AR=|?MrzlxYo z^gy8U*((dYz&+}n{M)#~Geqj!PH;KFppmvOzru+-g@Gi{idy)#C3C>}a(rY6WUt-~ z5YywRbJ8v_hrNmP?Bi6MD*E3MAfcO?yBtx7RPHcuU)6Q+<#^Hrfc;t|mH#=)ja-&T zP+>?9QY)hGx@HCjtsCSKH0nnlcG;=Siu`H#q6hCWGumrI%*?PWwGON^`_so!M3v0m zn*9dZI6oEM{28s{VgThqFZwWRrHdbJ;gYJN6%c+Lz;Pe??RIKa?`X;%k+<0Adl{eQ zTV4hP@GyK&%UYzKkKz9AkBvSn!#%OOcycJ-+PDDL8`s#%BdMK3w*!WhL8>Unrcjht!d2*HK`dtXqW z=Y7M=(73!9^5-?l@`@pGUSi}>d`O=SN28XUuJuJyP@V3*A1~aWz+TPHhO@-1l5@{d zY=p!Yw{Wl}WW*R^Hl%4#{vx%e5{2YGKIn2+6Z6U6v?P6>1;<|4o*AzkChC46(HeVb zyUJ~YbJ=q`?+4X|R(D^a-VjBUZao5F7wx(#DY+?kcci!J*;oQCNp6tVUOBKP74w_< zUj0(SJHY3~j6I?k^F=7&S+c8&A;|<-4}GiDX6!&R2H2yFp`0S)JmfPR?O&6J-ts;I zk7`?tvik)%&&x|U9_LHOc1+vbwDcqYg|gpfVhg2~{W7#iwg-?HdsO}Is3}MFpX)9q zv~*zT?LJ2Dys$cwQj{PpnRO4B0<954M7?A@K9wo8trTm!aD>IhCuY(%M?Jh_-x#0D zyGEz_+48I^{%Pv@lIO~&iWl))Z8n}O;U;X0F7$8?0|tc>)(OqMoS}R0!4+SW+A&MJ z$C2|9nbF1L10UuyOdo+cM;vA5U26bisSKb(Xi-Dd$Luu93G4n`>#t!V@d7|oxfMMH zUiMGG+vH!ow|$S1Flg+(n_#dFQk&Yd=O>&6#h3YNRGFdmwiAX1Vr320`k#Wj=eE?w zXJ+Bw?T~;F2rC4gTWwY4IR_p`8B6#Cw+l96v~IjiN*}`%dTr`93p=yT+Q$accSO>~ zl9Hmx=_C63CxWdj5o`eDl=_WdDsyfkEPnY-qQ3UZ2G5S+{@0B1?AH%w8!b+%zHE*l z8+Aa18%Usrjpa^lSy5-?^bGLoeyE#_9H<$%Z2iddj8`-0_?ag1?YK#q!KBL^#b$>k?V z?sGD;rVsiZMyi~gW&*oRm55l~L;22ZK*~Ryfa9Y5(ke0hcytA4TIZmMs*wGpmY2^{ z__p?jo7>^5z}_Y+3P5AuRf~`(SbN5j*Yi8g*!d=b=`QJma0d zw138^avt*;A(crXV{vpA62(25`q7=F2ZVcRe=yAk=EVnqJotzhWAB^;{@$m{Q+)p^ z2TKvN2&rDK8j|Z5<4rOftq3Mvr;$X~Xt+@GQY*9u!_?dweSQ(MWC#?D@kA2Z{J*1x=1#j(0Q|L ze2gz<+rXccHeO!67@(eK41;S0u}2<0F|35pTRP~QC&1ud6~$e@-$amj1^Ly~LZ7PI zAGjg+(z?BXn82CW>Fd9zKW@RJ2qUl@cmtq?@NQm^;w~C{JMp$| zGb9RCo4EE88Dtfula6{ce#~balw3tYsKpX9XK>yIiC(5V=WlOY*N==W0INsxrc?(M zQLIJf4)^NVylmJS5*KRH9@gSK1qZS=cXQ6>uKL19=17p|>uL9WS} zyU1;y5IrUw8u$^3`c>lg*n9bB3kMY$z07gGqTpTLp6|nl90?bOY1XS0aJ$3YS15;4 zs`sF0NNMpMkdNZR)qR7ggIA`ji3($v{y;~)4XW1qcla4BiAR~U+4OlVYHR`)-^5+4 zK?!W*7yPRbBQ1(oF*}T@I=jItVNEq1g9#_xS%q7lPIT?&LUhh0PJH-$I;APMI;rf? zLcSZ(FPnPrvngPTm}Svz6;XWt>(h5;@){26E2$k+roaFI0{|@#t?cgLlS@mFy{ih2 z7TG?p&SC55a~V$9ig^YHv;2)Q{O8LWQ)y-e9nCP;50xI@-`>!8#9`ol^xt1rh%?MK z!{JN3CHt&E`??hl)3Vd7H$dYH^VM(($vHF5!f9Mct*}u;gsQtW;?S4X_u9uyKS;5D zMT&pjt4Q6(*vE(Z|AN)u&c8p()KEYBdsYGif|AfH4l_3OWil^Naf!Z^G$b?n9RE=TY8qGMIM zC}e6EDGL60BI(;kA-v?3rX7)_04IVKcXZCKR2l=kW%h?qlv=otfBT8BD-X&*xw9V; z1o|Hx#l7~u_{5vOenOX@{76PAe}2#xq|_UXU4*5;O8Fz&=4Mh+wgPp~BP+T8D-^m0 zYOYackG?QZK^pP*S;y`J??TNWpm7XZ=Qsjs-s45QVq>Y)>w7jV7B?slS1Vq zbk&QamE0jounCh7+*VO+%28nfK{Xq94PaobJ5f|q(KEGjHGx;LW&yR| z-!}#iq%&mt*feLmOMk8vu;Z6)A-?eC(5SMtE2SWJXgx27<J3X_J3k>pmi z;uZMV4K6l+buO1cy9`yv@GL>m$vr!xFdd%!(555|{Uw%9N93)au9Tb)d_Ro0AGRZU zG@>J#erOteVF~@;LEd7r z1;3sN{Mc6D8NcnqWAZk!e5}FFB0^hn+e!~qkE&Wa#0}IX-sMcG1PeKXwajY2K&K$y zt~DC{s9;-RgY{POH6u+AU9{M}At$Df{@5f7K#e^Ut|`j99M+5ku*Z7->?!_X#^ z9bgtO2>ei%sh>8zX{wAE8w3Y!W0ddq7LQRMaD<8JnwT9AQS4E!>p^}<(rjwHp^n7msrJA!ayM?mls{Qq?V%$qiz@o4c~)bZ}Jh@y0XNem*^ESo$#B zh=kZEDef!l1Cf&KGBaL7pz}ifkCKv{@h`dLLz&_Mi-l(uz<~unkWu2V``6plh zg&9i7$er5C&C)N5R7$%`o^`Qg~9KV)1bhj`t z)Pk=F3KrFK-#El*YP%(&U^WYqwf3*cljJjWzYal?q(70bh^Li_)(vCC?w$SagbM17 z`Y7i-DUm2|oS;?j&feRq3p>D3dOza&+BucDhi`%Ww=3E-|NsC0*+5Og(e}m}a_j$M zqQ^G6)f+2{AxPqW%{JT%j!0R2os<2KWB_zVDi>DLbDcw0qnOZ_vvO_t@+rshhoe&YhMPT zu9=r}#d&_&C7{$x_TTD)QN%hqr2{Zg$Nk{xRparpTeJ!gok~x{g?kF*bSc;0{&Y<+ z-lq?Nk*#K^-gdH8rn&CiZAUY0T$7^70T=Gxb(+888Q^nr^BU6XGoe+&80^q-~9)!d00Cqv^Eu(%`}s=Hs3_yk7stS z3;P481dfz1J4`wc2nfIg(ESX9|GH(@ z@0C(UUx}PNPPoW(J$j$07R^ifM=&-*lPa>1D#n!#z&HjlwjgObV)zdn1-H6^*?(F7 zL?YZ|yIaLb8PogGS)7x8MX@o$Tmu2qzTn3K9TQGGZlIQbuPe+`R||#UXB;*YQMT_rSEEidIaL@S?oWsg znai(bt2LTnT`xP;I|YJQe~&{pW%zuL0AN5o{hrL}B`uLgAkg&&0Qf)p!lrn@4pvj< z@`%QVhK6@}1S|(o#uLs326j@b4|;Ph@M{WCnXu~rC~JTDUzDQ}mO@@$HIzfo6y(@F zl^K-UC?sq|r(P_d#A#9>86ak96|vk88Q9%U;25*(fep@`b$1;ouAOhh_F_jbwQ=nD z`8nPnjGu7m+<`^u%r*DNAn1bNVT6W=zP5tdpc@c42&ae>G|mI3jZ-K)!Wg_Yy&rov zs=ZiVQnQ&_hzkGx)6z;@3AnV(kw7ETlWjP#FIL&2d_%P3?;V;zZAb&N4@YA8qXWPc z7+Y6yc1Syr;&IBX?+uOHwbE}(fvI$4V%woo)xEij{TmYyOAv`P*P zm^e-q@Dz~hJewLeQ(=7Bndb1sG5U|v!Lh$=ul2w~W9d!YxX|1LLv=^sS2kA*x*a9e z4kZaO0LdvP2DV4gbnsT>OD`5(GcNn-%*XxTrhS(=&&48=jrjpA8hQa*V1F|uQ7TV*#3YgZV@FKIb0BWyeHoT-wTjcss~UMVZyJXXZaD`b?W9sdi+>$u z*^8H>7x%G%GJ%wWw-1T&>|H-&r4sEw5zb#)=Ol1fuB8*{xQr9rG}zMxVC%(LCps0+ z?pA=7IF~nuWIA7-O+lqpc38>`WT^|Nrct{`W_hzp$3JcX;(#26JeL{mTFzG zDzAv{+pF6s2Y^>pm=vg)d&hg!^aFV#L880HD`lFXm%$*(!>hFd`>;7Cr!p1oLaX0^ zqj!R`>63?67DUpEaRFz-{Y5j=+YJ?+1Pi^VJ9?k3z`tNNF(N)bEq^r3Xt z-}|8c=6tqzE%E?8uX?B^g=Z-rdCj?vmrMTFAe60_?+vQW*Q2KJwiQZoavDCSn-$m{ z=j}Z+EgVjiwGSIm%OH>1lWS07EBBfXN=Ikc9SZvqf9whvdN5BF3EW19XZt656(W4g z^8b_rwzH!Cj{8NN02itq#GcTjO%l9Q>`FM=X~uKZOB{{>T; zzI-Wk1~tRiR_A*|W7V{{^4*^44+5VdVP-dr>67AM&&Ks3>yt7XiVa1braGUw6h|NE z2;@W_>uC;&>l;GJ(gt!5NW%|VrL2%z=tg4IVXbYZcDlS2MYRw%5uyFw_hKROo3tk$ z>0suPW^8bw4cwwag18w|a0MNBk<+MJIUVR(d*5>DNG#|G_+|o9(1t)t{$TKsPPh_Z zY+E|gUjt|FfZMSAdNyJMX``uoN?#F&(|vR-JXBo_i_Z0GRlEfcas6;aG=f9`rA(=W zps1d~8-9ZVJ^9$t6Mk~|=@uF3o-O8e`N8d8e#B-Dc)XB+WyB^37sHresr71sLCAVs9dma}51aJzIpkN1-<_-# zv8G)2hj}qHv8)K~drICS(2M!UI=&ZI{8CCExpLba{+!L3z}Bj8}wmU8`pO@WBRgVl))}6mPThWjzd62 zb?2xMuB-K(t}PYKp5qg5=Ix`9_PS>vvXf%uvEjJ;eQzEW1l&_eaZPNQNv)~U|Mr4W z8wD=_6SJlyq}}CZSzl@paRZPvVp!|5KQj1cX>jH&bbjBh7K=HBS@HV`dqC!K2=sf9 zw53d5JXr}UU)9s=bKxF7_J21#8T&dUm3=X5c_0I#6|ucF!4+gCiqhriIHi`M72{oVWlh}N?74X~PfRel|c_B%grzy;6e zk&}+&<6~VqtqG4u(i7xfaSKYADQAMCmRD<+D)mgl)g#KDM)j3M%`BBzs|Z0Z`y)#k z82is6r6zcU=VGdRL%A0<4;TXo6E3Un)=RPbSn26ovTXWh=Cfgxn%?74u z!%a-0tX0rTfcT@Gh+l}7rrvRWJQJYE;L|E=?E?}3MKB+`7g_^k*8@|sa2(K>sJ0}@ zqrE9>sRc8^;x3h>(O``)#iJ~%7<$2Si0e2aP>CpXp|#IY9AG;fa{Ioq_sCP{p5`1y zeZ0%F7qIs;|JN7?=L4L7Rg0@uWJn+GY-_4Y@PaEOKVgkH{r7K+HXGhec zNoZ4OTS|K-%_q(9W+Gq14_3tx%T0kdRw6QXydKK)>k2Q2fxI$a;CWYUYmq%g(bDUU z(90Hckl%7jm)ZL+l@?7;$EJUQ)qp-O8hO%dABqdOZ6=$|oyjna=AfRdILz7dNhR27 zZH=XV9qMB_J4_&B^$u{7r56Nc!!w_b^U9>TgywP@tdDD6(ikN4zgg(A(UnArZ}E|n z2HzX)O>`Zv%0rYo`FrmdQ1fXC7_whpr+(RXz3y$5fj;V4n3&?$fW?nztI$Oqh45fAXy}TZ=rWXO=cpiwjkHPpoVy`Mk^Rt+QN)K?^hiUs<*~Rit6myyHc~wWsFC~A7tQun37^HYzl~L-u?MO<5 zf8J`{;dNr~#d#lIHz?z=o%?G>e0c4K2xY}hP^BnRU(X4TB$w*UkN=yqB-WbPs)iN} z0es}8j_oV$(i=X{o5KcyL{ZUljAv$*x2CSrA9>tpNRqvw_OGI(t1bJ$wptLYod|}c zV9u+X@doXvPe|8e43ag6W|mP*KcgxDX-@xv$@{cOT|M~ z+fsD?OD>7uEoN5#IK39JPL|1*haxh|h`nf_!Y~tcEgE#7wcJypf~>sf<#GNT+4Z2X z-I%(0?^Q>?WM-h36<>~zpJeT=CEuv>9!L?3h;P3XhzRQ@X@x4#>dv(@+{y(Og&IP!|tWT7#8&gvouD3tKRscro$o(lQ z+i=k)hDy8Y2)9pL2_Ei<+4RH1i&*)qQ#5yQt}5(Xn_sWn;f`k9YEa?D9EnqDd?_#6 z{jha9jft$a-RxtM<>?V{*-PtX02RM*k6IOuH%*^WQYm^HhNQECktW?xz!7yZfjQI? zuVW{0+YFn(gl5lrU9K{kYvm&)T~W13{wjVF_9#;%)K4szI@scybaXD-8@woUtS(|Y zo$)tAgk^bw>pb{<4`dw0ty^Zzw8LdREHMK2t2}05UOiOdzT+lTuxn+gUR?hlc+Y!9 z0}oDjY=~&X?tG|yz8}FrHgDTHw?ez^DV)u7Y{0f^-_u>^y~L;946duwa>8g#%5R~z zy@IlxD)OI_S`54L>!YN~B)>`5>77qKiyi!8m|_8`08=%L(>u*jL}8^Z5xC2VMo2iWlr05kQ{9JY4!Z0qghg-v|%nLV11ACQJ4~3!yoF+2CA9 z|N4$fzDhf)Of}%I)TD^CDy6sI^3BFsW%49MVm4Apo73+>pI<8RN8okxSk4t~dHF(y z8K%crYV(G5MUdPhe3AjI42dxj`FRX7S3Zg7SBh>>C0rGUXG2S3iARRsYZW6X*dv}A zE<8#7*nLiBH=BdO{kl2^=$F~yX;*M@RpnzR=(YUr+ z0QsqBoCr2R<8@!Y^|D13!Mu;=Tn=~V{%oM%+1>)Y`t1fPH4%j#tJd}iK|bL1KiYun zm*n`LUf-iNX7bsa5icWFpDe~{ggNY6X56XHX=fH)Y zCf;E`LQLFnDytIZR^NXPf`GxnM6qKeY_>ti*jdE1l#f3yz~-VFCXY{Fcs%wVfs?6tp zly7-@LJ;UW7p0I83z5Jg?mA?lU@q~j8nOI z&C`6NWrBcsttohn*`L=br&PR)EUSxcQia9}rWkTdN@3bIg5ym;agX$nZ4(R_=%dAR zYeVnryGWd$Jz>=XSH?`MY<)@R&csmBfte|4V3!zu;?{yW%Qu zPBXRxu-82)6FBeAE+XNuJc%O!d7B$TdKui(hYX5?#`^$Ar|29|B4aXVIoC4RzqNS6 zVw0bJ}}T$3?=|SX#Yu z=jKJxN$pTELVIHpZcKlR<*Hojw<26cI>bRvxC=-&9oxnwV^H)IFDOz2E*})l4)^|{ z$7I%5d=io28lsb}$yb`STWvewisZ#z8+aITV*8)@xPNa)p6aF=EjDrvNMHOqPWcfk z4OUj;RJbLN9MfAC;q*$lThXv*fC%v4(ia9kOwn3*g~@uFQiIG1e*I+fjL+FuBzl%H z_k99bf&r|CpMQx*S`vkLYkuzHi$hntdBcs?xl)I(dz^$3c{mtp_mxk-{f}mtVH+e= z`O>w=hvmwGHSO&*)jAKY%Uk*9h>*GSt`LWLxEAQGTGT_7&!?j@^hv)taJ94==f zMycna__I%gt0oSJI%chD(h@Sr{S=Z&#Mq)Ql8|GBHdtuQf6VVD+!WMA`) z^>>r zUj+;>|0JuI1WT;;F1bqHPd9hN9ZDBAIBB1tDrm;bg%yt1H2s@Opzl4mtJLyg#HUw* z0$o)`-Ybm!XCGXOwNI^dXkMSeL{ry;eLp&2@}7@3NLHR*BX}s3uzSjr<;EoIuPg1k zR11UBdC1Tf&yy{%{$+(b_U``53P&FY$BLS?C8dD65S_?sQKJ1owS68{n;^tj#7elFF#s=38QR?gcxh5?qgW*9Z#y+sha`LZUUPn#|EArfL_~#NYmeik@_n5@K6eC8b8@uOG{=YS*3Q@AK^e46+Gx?Mlgxn2b{@! zL$i^ZZ@^D|8TxZcNo*UE*k29DgqFM02!M-girZw{O=ENPis)0y@`s+4)lD@$Gxc1y zrfFI7%IA@6I@}?#hpr5?BihI~tfYRVcNVBXcuEqoE*-jwtj%+in?m8z-zs5UB{6=& zMwZxl%K5m;m#19}G`4L|0Pcof_KTrDd?rmrzB76OS|+PO7~{E^Lw*L<^6ON(O0h;( zVeXPA-{)jU8&BynQe9NbcYr+Uv~RPvW6@L>ZAWqgfB1udopHt1u&7is)kjiy3DyQMmvM1AqV0?EiZb z#oA=QGFRNq-(MqVb@vgY##EC{HD5*e;oj~xe^-W-9-9mnao0u8oHNnz<~-^bK-=v< ziWfHpb2La8DV<3WQdZ2PFRz=pA2@!NZ+r=&_e#+<1p#T+Q;o4&A+_ug!RQ(p8t2diqZ?$qEk-63fuhD=lI{>oXVka?oi5<7`!64R$qka#;qC$InW51jYQ_vFD`Z1CpH-Gc0 z5hII#Yq;xH;0enL3hz0!{zr>V!w|57cQIm=bT-)yoq9#AWuNPI(h1$l_44 zHc(GzrHOz@Noukk*{Vv;&|++vuNYQ*|?$#VLJy7Brqnc(I6IiqDfcG;^`-sjV!pz@2Vh7b>e$!?w zHV_YwUW;-@k&LI*6NbLnst zkH;`jX8`ecco9KSfY}sG9K)i*Zem@9kV$1|lZ!0o52ZEw&MkwGP5h=$jLbGL=^CnX zvXEP4Bq4i40)iFk!Iut`N%+571e$skTYk*-D5%}2_z9i+@GgG-bVZcrIvt$3zWx;X z2SoDX5elA&MYCqDtf&Q8y0@RiZe z^2``f8nEgn-ZXDJAE9TSYiw9=qKvLw;H|78R`xd$%P>i%AIUBYEGh|qQk8K>tShPu_~*{%ifvn3fgmG+dmw~^ ztp>GF=c?H#FFp`1=Al@K_D`AZ^k1w_>V|}B3KrhR(QkXcZn~krDzA8YUw_-Ev+X7u z6j=d7P9j?cuk?w9d{NKjj46pyBTw&Zm)l8M85?f~>rq0ftq^u!x zIxKRn;_`E;@1uk3bb~(_!0rEgS>0HoHP?$+ChHoMAX7~1fFzicrYZ~&D%|O0yhyBB z48axG=#0H#R+iH-F>ohsk2zrbAXa&DtA^R1e0`Sp>jR;!-Go*ODGd|1+cVYj`BU!C zqI;4+m~s4ZRT9J88<2aM?hSvL^KUXBN$8h;E=2hWfnVpG<94U6c!x?Jl6);)smX1p z;+GB$^NN|399J!H?F|Nx!m(IXFer__w>Onp69?Vs^r%!mDr_7OYd+EiuOZ%F25;!Y zgy}}d8kPMG7DKrc||@q2exf88li zPMHuw>$bGpe#i`f7(s3*%>dH=qPE5eGSHP0>}8+q+eFE@kSUVTt}C&hi@xvXrc z9U}RepC?CCI-(_Z5gi5Q-gh+FzD5I!#_3OO2~dE_aXZ(bqZ3gK+mnel5#qk(<&w3X z%yNIbH$@fR79IU^m7pPP4T3}a#R?%897SY%r0FG_&=Ih>!*H3m-ia-s6=xBB)3D;p z88%bqDfzwBX>d+DdIwoWY8FB2_o%F8f>0BiOy#Hnr<5L_`5yBsfp0z(pYWBt@fK`? zu(%?q;?ra-a)%)z*0lIk!T>)z(?Y@3U!o+L8)_4ETfx=~zbZ@uuXYuH5OvtrQ|anC zJT>rn>mM#8=B;KxHMrUbL#M&Z6HYy{1TVKCqr%acm&Sh&$)dw(j{}>H|M*{$WvMH- z^Jc768NVPQ8^uL~0B~KH|82f92go2_mr-yuzNbIl$vk~1-NrMguyWHa(*bmTefF=n z!MfF0?0+{~iH_0TYTm?EbR#xbMGWS7JvvPd8%zj3xc(*f+_030+&Yb9RD(C+#BHJC zoaU*Lqu~8%U_%(feeEM7j{l^dZz8pRRbUZXe^mw5HXK37UD3<5tnC<%zkhK;h@WOj zL!VN%ES?(z*bNgzHHl_N>%|MP#C#R9+tC5;YmFA`ZqP+>p#2mYnbB;f$*W30j$avw zLg5~ql-G`nmzcmg{jm?O;?wsU*OSzL?#W;OBcE#ZBWmnh_5*CiLEt}DsHs~bO*PDh z-9Mq9-(;o(vW|$?K1;l23u;}yL2wyDRS+|mRiS`Y@Q?X@8-k*?q8j>me#OVD^b7Gx zn#K9A>)SXQi|45R9#k5b>3?hCJFbl(^VAMFo^^4}|4N4I%c!+jOGlZxqrP|3e6;fl(HOlntbQ-1W3|vlxVC9Dr*9vo{P<1z4;T zz`@i%ntIEy(lK!^U1gJTDwpbQUNd3aHjbK_T%T~wsaKvql&%q(_5OtI3jX!IGb^tB zN}oxR`>~dJM`X8{80#@z#A)idZZRvs1bvB6x)Ble}dEd;j0|7LeBB zUd*;v1r6g2JF(HZV;>G70E*a}PHy(!!ŒHEjZE6(E~#`*;jpuivh|8qzuNFFc? z%S5YDU4iF=7UYQ!;dj9)^SD%QbNw^*b2xUou`?kNG52$Ab_b7;@4uWcCxX4bRN{u} zQY#mf#=N+MsP67vQW&`61*B@2DHp;WC4!JG9O7+gZ}<8DC>dD{$g{yfj^ zxgBSzS+5&pd95(}Y7J4-52gqH19D#SOPzA75kcVMZ;LI_YtmZ8Y)F{z?jl>G*w7Tq ziJ^4rq9l$#ROkdI;da%3P!CdDmHgB=sd44$_tbAf5`Ujl>U(P zy2-3{2QLjb{6l)wXl4*A=G8GGR|48h>}iHkybdW^&;GvSXHhX6uHlKX-j4txgWU#= zCWlsBk_Ahd_8ocH`E;%!<_7zp!gF}jLipRnA1PU-C1wByj>>Qx=}pvg#7i#Ay@}wN zH!=iIEc(Ix_$Kd;!U|SyyMkBxt5+YF`t4fV2OYltRHy@eC`qby>%^ckNDlJovXH4F z3XeV2S1yhkUBe#CnEMO4GL_{F1oN=fw%5--|4$9qRJ;`*F#nWTIq~^K%6sKdi#9d^ zvTO$aoW$3UE#MrzbPG{OwsK*osPi&%D@R=jl3pb*#MYIe7U*gg2lFL|s%n08!n-CH ziuHtzf&9TU2@1&k=JS*2?(9Ef7dl8Zg}G5<4)fTzThVX#KLEfcv{HL~_nozT+&j;y zUp6<|@)8q~24nCRReZw%q`A#ca*9CLlDVt)6lM~TD6%U<)QWg5PPAD}iI{YJgwNV} zL!wd3l1zeeibF>qh|ulfC1MBcP`7X>aYwo&8o1rZix5JMQQYhXt>+1;h56w;V!gC9 z4-o$_i~-*LgzYEkA-cJ)Wp+HAaO!nlInfRth`|!epC(M!7pIkcdZdY1-Fl<#@KW_+ z=Zp3-;i|o5YHfcx);G}fX71N(O_tzZ13bf*r=jjL9KL(Lie7ElrMBT;@$4ZtxV_5-pQ}#MulM43*z!>}odY_b zsu_zh|NT9$p(v*)oySS&VOLl789T!jyIO?|czgD%wJV_w~_g`<9t0iVmvDv!(DB-8W^ZZskRRrB2_M{>z?a5d!Fe&T( zSc+rwql({!-m(c#Fvb7ZdP;(_ANulh=sKleqM5e!^Fq5Rd1q6mLvyB0$Kv_m-Y|Gn2i}=WEWMS@BdAR(vU6_(Df{_b%>K0C<-k922it)^8sUp<|BjrUbxiJ zix?HnyS<72${;K?bl=b0yZ<810d2&C9bv;KDi;-;j5xO}6B!PhN_5VQPyfL_10Bv8 z*t#d?MN-p3%xE;@&iXwx&IAsCytD(I4yTj6t*)Xq|BpbTGyx3J^UjzxXKsk?3ql)6i&U!6fZrxx@v_U!5-!h@nMDJe9YC zI~*M#NyV}ILfqEl4FNa2UK8GhE}QL?Y6QJr-=Cf^nzb)E;yZT#`!uexORG;%0yI*K zX#OVtP9p~BWx@2&x%vGys;(KOdhCtCHMFj{islXJSwfnHeS~%kI-Tb&wN}-}_Ly~A z5XzJze%tXtfbUt+1Rk0|M+#bnHwDtd$YS1zY1uI`N)&xZ6!rj`X1a&CNm#DbcYit_ zwSZrQ#`iS8B5)i>KafCeZC&|3M$kO|{(WImB|v2NKg<1xAU+_xIi6d%XW>I0-+sS% zyY8lc5sde>Y*3rxp|R&Psx=1(+wHYaUr^g1OJX!Ghys!SljmavN>%F*UU@ABSx6P5 zY!C*`qAsxwIyE0e(=53Jc;+~y=S?-IYn$|Pt`SgG^VnmE{=fh|;d;6&BHy}%mP2Dx zD0`@yt3_EVO_yKP(s-M7&1@HKl-74stDIuD6f^sU2|9=O)1>P}elf687$CV+SXdh> zBoBFEIQj35o6T*>w~`)9(1OQ;Nfeacci{$y{F1|(i!nRI?MP3OPVVSnKY=;Jn z64gTZr)By)Ycuh*f2%uh(Mln|5kg;6pF_$dJM zh*%Ayc$?MPqOb~qNPV-Qg-HCG&9+rv_7uTj7A2m=kUI`I1(k-KFF{kvDbaqR!wnlE zGdJw7)s9JA@@+vCrycJjy!F<@=*FLmnhX0fdyRkaF{6#6i>e_Rgj(AR@IWF;-(d8& z)Y*I#9|kCe5hPfD|Nd>rzq}rgkmWI``3#99fTHFnj1)aTbDZau$L)UxcMf!K*1iX; zjB`ZYYWV7Pi65R)Ysw&G z>!}q_lM(nI8B1n(E$ZqfH@D!0QWiyI*oMBOH4mv#;++0+)>%W`61-aWMOw^a&gSqm zd~|JYkB~4mbj+zX{G*MnxEpgs)jhOl5Vn!!0$Y1gN2ytoz`+OU9R!=xg!fBC`K#^5 zuh*A5JXP$}kHMbDiL#kJ-o{&~R9L8T6mD+e_@ZOPR%}(0Lv{qBN4N?|`|1`I-0n;> zm#=%VdKlAJC37-lTF8s)^z{mktnoFQBun@?|B8zV!v7O;LB%DV#OTz-F6`9C2u^Em z8Sm}?>9q)se_qw-C>iOf1 zh>H+JcdQinFzrLMCCc;HY2&7!U@%X4)ne=86D$KN6jzkD)Xx~$Q=!9dlHis(YFKz^ zhNp45BqmFbyUVNbyH6A9Yd!L52tO&b3m#tO#6RMpPkhEh5TggXm46E4{gP zW^sBhGX)+<1OL0RVdS;q_7WVlwx~`}9qza{qo7&`&qL(Ov3q=cBNwN;{XwF4b7}e8 z92HD;7r0*P$U0mpV=5=`ofnvCyMG0lbg%hWL7N>w=v#LQq9EQQXDJ)9UGMxEkAk(lUj=(2*i;APNK(eY`XLyTHVbfWUN*&U$^^`SctU2<_&(q} zTZg>Ocd5&XT}N}+R!C!%!$HVsSU3hiEeWpXJ|fT$30C#j3+f}}pEdYPl3z3Knk&)y zCe7H$KWZj?1)|DtQuFGB(>7OZG%5KyuhMFJ<@$t6Q%6+>JHDMW7J~}G2H5m79K(u> z^}0j;IQj1uoU#jXl~;0D!p9H;*Q@{ZyWjN@)6==lmeE(f${dboh6+{y4~p1qzF~5@ zazm0zEc7$Id7!+f6#w%@gQ`%$&JiTr?Jp9jP}8GuNI7vl4PA)%w*hhbgF1WTV_bucmweO0 zN{f!^=MdinMrU*k%@YDU*O|Ta89!5~uRzuZ9a(5-_6i#R&`X!H4^gJR5)PVsqV!(X zHp3|C6w2ihl8ON!Q=Zw5jUrg6h$%7B;N<&~>+`ysedmy{NuY1Ji^z;>wk7~}ZU?xD zeZ?m~0C~#Ec!@pZw;6c;u)#SnPR3L;Djf`AhEh9oEsT|nKRIYqy|uEzQP@q;B5eB6 zA6Byxg56gkWy4bUsLmOTc7_Nso`U%j>ab_kf8!t$pY!my0^4WwX74GP)$0j+95Epn zij^qsBrDn*k6cydpHT*4?C7yf&_y*c_qI?p;}T?<=$Np894xYUVilG1946cVA|yGi zT4CRs#TrCbb^EqAR&Je80>W(}obp`+x0)-`;z-Fb2E@xw<&I4NB8R%U1Z{slf58HQ z6!-GeqIO-IeMV;NtF%XFTOHA1#Z0JXX(U0yJV%(@!v-74C=437fMdrBP!e}DryASL zs>h1IuLrYC{^6bo&NnK{A8&L{`YpGIV7f-bCSG$nJs&TPDkIYAVNRwV0(HL|@B+qy zP88RBEoBAd8L_-~-?FFM%+vV%49SUXNjb|435P$DQgV0U+ox?6$9sv~&WXn}u<7oQ z6g~|K=l7B1PeTKk&C9pDmrBG1XF!%vk~ApKQHyJ+U2%1qMovL54++ly2~&fn#l(A8)%)_;TMIlNjP_R){Xg#9FIh zMoXRKTBx42iuwEGvcQ!Otw72=(DeFJaKpvf1zOx)#oANPyIyAv ztk=s9a;H5>?Rv-k;ILBOSC0!v$hs=UcUIEo?llD?QLbelnQzPk3`B7Ya%>buHRLO%o8tqIAjU$ijGhl*NUoQmwy3JTTHk$6@PBC zb^XwL6W@OTK`d;fx8chkP|MMQZ?_W@f9)-*uN~Z~Gt;R}=s|C51_T=~F93ffCBDS1 zUpek?H@L=-mI2MBpf)6(|Vt;QSY#r;{ zs7Cm9$F+Q5b9CT;H$;nj<*ZhD`VFEH1s>FTic}C(`_urv=g8D?6YoE6Iw;|}M(o(A z>{N&*o6~;z57KRjkuX<6>kn4@KNjPTAH=lrn<8#3tJf#{o@f(*#Hsi0Oy|#wZY}o6 zf+@m~pIK*8yX8=w&sz|MZ2)P57!Z`ycMnCCuiakuW=R>#Gg&{LmByvN>PL5W?M&XJ z?P4P}QiDCbFu4upFWcT3b=ZuCRWK32P2+0_oqwzj`-{<7-Z=wekgwhdxX@~c#V3f) z6REY9d)AzjL+O)Ev-H63?MaM&zdLLyBytK1Jdfv?on^g!UA4x+Evm`1zH~(oJE*C- zTncA#vItd^@&wzD$A;qS0GyxHFTOkWfqExh&+%etFmAPOnp^*N zi;+CgVibIPa;q(~aXM@B1IXqPDV;1ov(F^@W$(7>xqYH*ub70_Yh0F|Bhp98LGYfp zOFX%V*_Q1SNO9&8M3xxqV7s+|gYKQ3l?adQ#I@|J{B8=>Sib)ZI_6 zSK`-IUaFu2)%mCO+Pmpo!ZSf&&DmfhhW8X1Z$GJNUq^90enkdhNUc-UdSM0+*^2w_ z+w5%ee{Hu-JG?)<8|lmZG)VDPiFtmGhRx%B`#gb z-@l6oxOuD-MZSNQ84SYh=he-O^&i-xei1z8pdue6Gy}QM|No!`pb^r><6FYl=vQGp zk@TsX>38NOuo-A04rb?WVZ^@&ZF{l--jV#W9+hK2`#g|PlOk~72#4_O_^gd0w?!?@ z7woDaQD#kGO9}2SJE-b%=fYPDw`Geb_QM`~{w~ z!i(|*OD-#+tg|D=;>_|+a$ZS+l?X~4y3yCw{1Ug+SU)vutXPmPJo51VCeu0%Gw3Jr zKggSwORm#Uim&#+%m?Lq>B%lf=8&{zxw+5f;e;gDzZz|uV`ywShyE4A8r#2()!-O>OAL)XV@e!` zWEHS{y-}mg=h3NuPDtTZe>cR{M|?;r{f%4FJui>RhuDy(xFR|Px`1bv0r$yh7a1|S zE50gu=V=YfbZJnct8=dd%-7DFWA^YzGs<|lD8j7{^z^Qz6Ycoxcuz^KAO35mt2}vv z4D_>CS_oDIy^*`XPRz)1#>~T6-F7Ox5-kXFchr{v4R!uII(>~lA*=Ghl~=87o&?(nPU;kO^^f#PikV}o~%#prx9`4cL zV1?pnVi$v}f5Qj7>jNz^V_u<&&5^^InpOQI7ElUR!g~)aB>7^48X8769G+o|6g{*0;i9-1z6ec3+zO2Y zl9_T7aCP!_UWU^?1Cg>?(loYxyg2Ura>w z3OW!0EqK4yL5pY~7l+ZNrlxx6UiH}`6fkjK-V<`d5iI=fISn$f7sb!M#IZ5Oj2v*J z!AB<)FNY^l-Oggvfao(0q+%E^+1h+Hj|F4*-~z{0-$G;UcbGqr-ZNBp=#NHK8xr(p z$;@-ss~3z1{CY{o@RLOVKPlQ!9v_R&iN1zDvHOTxOiruV!?m-+3z)@l4pT;Ezdh?x2K}g ze|flS2{LgR@76Az=$Hb25Q~{L2T!g_WoDoKgiaH|y9lyPb5H{xtAA23t#w@7==c8) z%+$C<*r;{2yn`l=Wi5CC;QUq_%kj9B%61QnU` z-C!G1Lo<7%ryRY9h97GNXFnvrS{-&d4(F3ai(#=s4Sf2y3b;GjN-}y5tXiM!C5NB3 z?b()i@u$Pz8RoIQipuR4Er9wz%JsNRLwk0CylE3p^qg)Z1RWb+j%HK_TP9>efm&x_ zUMK$SSJ`u}DKfmO%5>78CcuOZlU3$&M6+t4pgkqgotkV8k=3?StGrrj)VRIS=K44P z=6Z=8mB$}~;TX=1lav5VfzfNPgDH_hDE+=(=}R2>!m?p!2O!p)anuDzAP?nnFjph1 zcSIhb9TcRZ#Ji4rY&wcZMIJbLS3kEP>{D%EionHl;yYLX zk^;RILV^0)MBt&?jdd~01gddeqM4m0#}9g{fz>U;k}{xaK)Vu4hTJ|$R!_Zs*s=M9 zH^o72-z0Q01NyBw-w8Y4=r1dkExJ}{GXL{4C4^?(@#kV#MEFa`jE<$Q06{6+l9Hx% zRzOgeAAg2yoB^Iy)5-1X&Q?o6Wwm<|E`v(jz?aDzY7L$vdVD0fV-%=aG$msmG}+XG z?!Oo_m~c23Fvni;k}rOjDA8bx;e#RO;I}Dnjkvdy%-Z|)0ccjX0P0TY1~TqhUj_=P zkc(A@Cb#*~ZzKGje=vne=<2{-{#1edUYY{qDd1!=?rfV~My9DkpB~>ZwuKggt}aTq zpsTSt7s9##0eh+nW6GhtmD6i#yfmyL40I`A&OhMqha~euwUIWyFUX0;9@eVgo@UIh zGnMl|6x4bbPo={0``Ud&sVErHIqR)sg%RTTN%S_3=U(%LBP?B(GCQCLo|4c&3txQu z#HW!y?gwFrZ9F#82LB#5ub8bLhk0-FUac9wbeu~wv?H}wyj&66mN0saGX-!3t#}(E zN}wE2=k0?SF=VW>w?8shpYvvj2`0$--faS(xxKEgzUsd`ycv$?uNx`9{Yp~sl*(&G zO;H8y?m1G})%7!*CcalKQ3fKAICP3Qx%5l*khg`1eg~|!)?Q*aevkCO6b$YwC(SzU zp3vJSaRZpaJ)O?{m~7T`evp-HFmsV1>ffD91`&@4O4Q!4*iVV4PS1LChSnJRhhA=l z@1-_qni_Z`=7zN+CXLEB^@HxxfvX$6NUnFkFC=w+hYU0K-o?{p*rb0*3{#px!m z0+nbB(V^%jclL%$x|&CITwnYh`u5YGJ2IM=n!4@0j&k0rZUo8+;PZCyiv<-n-&VZafSh@FvaPRn_TG@F9w((xi|NjX# zY6FkxgHH@(H4OMy&`Gx4Nq1K~u^CyI@Mr<_CWN8hSnu$^FrBqjzp~h6Vft9hiI6`P zIhN!q3&Y9|7k*x>kjE!+=4Cj>p2gUJ+_J8vzH@JIhKVr@)fBYg$JTkz2gnV`e{~U`5oP;6~QyFvWB>&7(n-L}F7~p5%~6pR1k256ULwo^=AE9OgvjrcUN~ zRY@EzV4K`UDP{$M%_0>^9JGE{gBn%akuHjLT%roe$JAaUH)?yDU@Oc^-hCvN!oJuBiBD@K8NOM4iSDkKYzJ}LB^LX4gyhu$G zGmLn>Rzq~T^+xZT#_1}Uu^L{u?=rP1=7{WEniDW#qGFTcOb~m~MY<~+EGoy>*uvuw zGYm;!ElGYbetk~>Lxa6y<s*&9O+RauHE>v7GyIt1vUMQRrjKPg(Q6_Tv|<& z#lGd}PPnb|Fa5hW0+3L<5}F+SCpCc^J}yyH$KhXP>v-Gvl!R?j*TKY)f#tS}64Zq& z0d(SbMNv+@{HkFaP<7ILTw>k5#t23YqczC3A_$ zDx5dz9(@CxAAmbeyLT}eTfq%5D*>XE=$~4@O2(#e0%&Dw)#FygG38EK+N=ipfc&X{Y)@ z1Nh4&dWKgJnf;>8%&meR$=q30LLyoD0a)Gp(CQ_rNb2oXv%GYb21E?^zdi^IQ^NIR zeZXyS_P>5KR?}Gx$&@F-r|+;ohy7>3>N1*R4!@{Wv{%2N*)- zy;K}Q$T;fpf?ezaTF*o=C5GN*((LyJHFZD`kF4~kZd#p19H+{p;m(oP-`fA-2Pgyq z&u$F^=K#^G%e@d&nawB{3!miPWA2H zn>^D&!-X+Mra{aAnpnM>h-|2=-fFXw_1b zW|d^)h=6x+hF{7|N6szjX7NBlLEWeS-chp8=kTF9^c8ezyf-mapoiDg!_nJv>Rn8f zhkhXEj8^Pa$@3=-sH)zGlOSWD{k4q1{kvCb-Myyr5jclOnly7X`wqu`zf#PO`U0YU zPo9x6)cG1lcJeYTSw270`^+~4GBzbJ){#zVe9O9iiMrfZdzyf4ikNNG{}B%`A zb_&9Jv%lQ3*7r2Hw${7I#Q+cu@%SS{R5n1tYq-+G*meT z1rfAi5E7(TG~3%@ZgVFlH}6K@h=HKb*S!o!2Fk!-o4rlPyyfo>WbIln`<3>zDPWYF z7g3=t$pbzz753wf*m7%(#EtLDL{?c;X<)o5yjw>d^}arYqOu21WARt7fMGY9r6G=k z*I#%f3sw_D^ANH=u2Efs$hz@KfZZ91Xj3mT*f9dANIp*VTwH;z@LyWD;WnjILkOmE0K(9org0hR z_YV#8Pn8Vf?-Z6|heL>hpV2HX6}gJ-&BU{0=96=M6BICqdV+dFU&b=vo=_l2!G&uR zn+tGOe|;g40zzX2qZeUM%T;#*+PC&7=ml3>5s{iXWub3VRrMOeA30x_1gCYew#s8c z2;-_YrT2+r_mMz)E(I&|c@_TLXh{y3dvK8afqH)tVmS3A#=f2eFGJ`Tit%2zZX=*6 zW$qI+`BT_MpVI>qbW}bv+Pye@gtLL~)u+>BUbCZDB(&}Eb1=G$aXx;Gm37A5+@-Kj zW_h@Z#XsOUk+>6E!IC}eVu2^z%1|uRVCM_p@ey3$j+lp z-Lu;rOk|`Pxp7S0a}Pu<7y(7d#Cp$WR()vcdN0nR{5!#*_yX?OXwpF<_5yxfA}imo zo%bxsaosWWZ?Fpkj|ZAFG-2a?WI52qytX_~Dy2J{HW~-sFl^aWFPVC=Qn^0Gr2W0u zxC`5KRc)xi?!6MBBC4N2PQE!db+$ryifpyTVSOSZvB6 zbXw1$8H`roi>xDiBgsqlQYrU+$Au$f*O+|i+z1u>GL-yby`X5|IB3MVB^fkR10$|I0;X$#BghP4Td;Du%N>;yf86-;=idOj z@9Y*cN8@)n$Zk{NW41Oip@S*36%PYasR-S`ZMu}d;C5UA<@3hMA0K;oAXq9Umt!2ECRDZQskq+*G;%HS?|{yTAay@r{+^l<-EO}B^$w`cu8 ziyZVD>L%3^!kL)h%e-H7B?nC1RE&DsOmG&B;t-3lGfxPl4Dlt&tI}fL;koI{Vt!r@ zdW#lF>@I<{VVOz#M7Iny{g^v#?Ym8C5<(!1VMm{aO5Ed^aX7Ed0Fd6{Y-yTW^Ibm* zL1}I)h*hm;%3Di(Sr@SQiRIL~WBXs%{vu~%T{$~nw)AcW_#&W94yW&OX59V>GB08B zxPZ*(@4CeN%KNw8cZ2;9lIFyNI#c&+nRV^rPNS1l=j!7=$tFOPQ+V3dWITT#SJ8}H zJnx8;ipN1N1qv=JTlbXPpuj4^Ws4Ke*U+d$408+2FpHKAs|;%(%wnNWeA(?&@p7sk zl=xE6Tw9957%JYt7=sLo-;6mJ)#AhfsFJsfHIG2<dhsh-Z?q*gQ2%xvs#(4Y5Ah^t>D}Tw4MG= zu=#n)RQBFJAG%p&l-slDC~;~%tZ1Dor(Jc}y4Lh=wU#O4AP<`>p=+>w zr43PS;nbWZs;>fxSn=50J(yR^U`MQ$+!!prqLAFBRufxcS>Jm?b=#@xNWiwQa;O~A zas>)$5Xd7TLOdHW2q=I1OMNn|ILTdL!K^j@fG-E}%A%8rjH@me(YdDa74ClM7D!;V- zvBj(s__p_nT)i1X*n_}gNZYUWM&_q%L$(Nu7ztX%IpUv{*8Sq=VN;;W^K<*P2lG z=CU6?BTeQKqzlo{;YsjC*AFH5$}@1}mH2)-Y6P^GCLh|pk-#BRucQR@D5I=)qk?7f zimRMDh;8o3&%>xd*VoUS|HZcDGZHn0S*p7c5%%IhGP`K9~=2R=&P-cl{m(-)9 ziX|OzC5$;=J^l<*z;QsH+7@>W(4fly8I`kMhj-_?4?6&3fZ7yH(_5i`gcTuz-l?Qj zEx(vu{o8L-_;sZt6^HELtmc_vnOoL;WM3^@Y4he*-HI#8Nk zlza}>VqpU}u%qs>cJS(@n+5|?#f!oz%ul46oPYZag2U^W1%mR1FYaz!6; zAazb9Ol73gPBPnKD)BrFv)!HXvO4|cvNiY8WbD!~m0Cu=avReSyg79-O8O;G4=)J- z87Fw}q5n+oyXVPp)GN^+Jk_!KsugMa$q~_33+HS&fW0O1pyBL74(UMB*UF#m6GHVq zHC3*bsg(NTos+0imaz;@W5+#&u4n6Ew2A8Ql2a{Q5AEC$UAzYK5SkWIoMQgRkX*AN z{=k(eMtg>IVTj0*JOi5gXt&8z;P#V}=`#zZFlaU+pxJQDLP0~w#cdNym`jx(%zLv} ztKb!vk+903G#4IO`{*L78nT6NRoic0NkF?*#djJL#!#n!|MiOcx*)th62>0y?;QMt zb`o^+Me&@O%ZOBcroa?VHW$YdNCsjwWare5)7^p$Mm8>`IRicg4NyB{7!ssKbOZ-V z>(RthzC+xwPUf6&=MmVpQR>R>-%?{QMlVbzq=iH}AmQGL>-Sqg7AslpcU8H*O_hUM zu3Cr{+uUxFfgNiBK9^vYD#mwv#r6J+x(0u!=RmiW>!kZYA~ddJeop&yDNNoDh;3&E z#Zcko>-_KaeZlXsqjxFrPtMbC(-PeRBqC+IvJRkxDK{9{y$pKfD5VA4)KANNdde82 zgAG1gHNiaf!bXw87YqmI69u1HrnB8D>Ju+XIpM1x6# zX}!ubNKT*-okVHA+VX<%#V(iK5c#sC(f&<%ilHJ`*KpwETCbbtIEt_gXVLBA8QFb$gjISL9iHGC}~+w_Y$l-F|794d}AMzPJzenFq`>Bx!bu4fqIfY5e2d89)fa6o zHs?7=NT@%p8W-ZBeS(badO8l7gklpGOpYOe@zvh~5x##qSFWb_vC`q#r-H4b2O(ff zgZl0Zd$^VE84kzHgc7IpYk-+vQhk8&jWp~;FE*}uP|{!!C9>b7RGujk$ONch!b&%t@C zjMH&Kk9#evuEqZq7$Mt|I5fyn?-d)QCa?Rw?CsdgJMX`OHUXd2z*@!0$!-=1Y#j8t z;_ox<0jJP`517t-$3tfv$<%%x-?BSp*;1U2-6AV6qFnL4I#3?homNy(ahhrb6+P$x ziX-BY_X8=QAb(|FUE<#$*Tmg8M4H^$Hw|jMC*8U)pXK|^=s0+b(!e;m*Zh*5IlFn+ij9JwRE>TYS4>ax(d8=5gg;;;n~>P*%>@z@an3AL zk5yG?jo83}6k`O{-|*fvy@Aiwbf-M@-&WM%mR(;Lt{G?m<5Zdg)Qr}o?5YYg(cMPf zWH!A8!iu{iI7iDX+&E(o!xLB{P?;3{kB{4#0;&A3rj)E5ZgB46?|vie+>E7keT?Fo zHh-S-RP&?4sTJs9x>x@cd=dPSpcO`>Paazr?X_ns+K(|4DDQGMKBl&j&UaE))F{M` zJ_`G7CuSoT_zE}MY^{)wxL+_ld!P7VBf_(yBmN^m)4)XnoO5!$bEVc#0F0$C=5PmJ zUh4pPLVfa4hwvWXT1NG;3i9V74P#}Su}umKP0AUZLU2d+?2_Z58E7^p=e;gSk}f_1 zm8V=mGjv}a9byxYu^9&yMXGeRYURlc6afgw@mHq9O(JK0_=MPf!f9Y1Pq+T{Xi{4# z*uD=FAlH3r%f;?MU?zYZ4&!UZZKuj#%rJZfpG>vCqYF({-5dUav#*j>U2qh8vfrr& z;(z~ieI(r4?&6X#g&ZSLi3Q{Q>#FDKgISpp$ox524jjk4Gu3ui9w|nPsQ>d>5t76> z>G13~L1T-~z^hO7!7<`YXdn~%#64&-;p8B*#NP)8{Q<}>r2TkW@qqYtGTct*#EMe% z7&M+ob#h+9AX4qowzq_St!3|eI^=oZ{=WW`NKdYSD7M749K?8>Dmdrj*gv?j?d$9; zro;V=|7t%TS|HbWSxO`;{+4F;-3Sn@rOtV!ipE;W_FaQN_W7L9WZ{(sE&H?N7Y&T5 zVcwq(ku;11v(6uEN}3JHg--?5#zW2ZuMU&@g+qK6)6!gC8Co39^uf{*ZP#JRZ1vi) zNksf@7=S&LqugU9f6UO5&~yWH)2HR<%(awyYPf)@)lspQWgj)l?=xr+0=C|g@Ih?; z9%dl7+8`z6Mnl>2O7-6J$~GT(1AV=l;ULdvY@s%u=BAswPG4arz-yAZl=M(gXj-)g z00wo$7luboO!r+h)Df7${TwQ`(2Te2F*0AXwF%#nuwbu6fi$AbQ}#x5BuA9gp}J!^ ziAoS=zVR=Oi@GWyh5_E;(&~~K;y(u)2C>$z^>lxj#qGVv@hhiFSrAr*mKkox6iY&G zy#S-rk(p?9*!zU41vMT=xP^ADSA?7*aU>V;hqSSj3!-kg3j(RtdA28=vjf@y*lcdC zNo>`8a{GlUq(w1I8OG!Wh&U0kzbg^=sLczlt^Al&QYR*b0R!K3==a0eKkQ+o^HP0V(*&}^fmu_&y=RNCG;W5mOgs;MPp{WR z%@wuyM{oR}?w6g0`Y2Xv3mg!CA3+r@(e;vCVaFHfR1-5K8jFzEy(ou*QpWdx&OO5~ zeQM}OfX!`|W=ymc5*N04Z>nQLCU{;h{^}&Izn0PqduJ`@$*W>7*64uWqhU+PVqI-F z-=UDD%T`Dx6478Y(jN&f(hSQI<5gaK#=1s|ddTG6EMO>x(i;)TOEnzyL zyM3d2Uju?O7U}c^3>hRKk)A9%)ZO@_^V3ZqKOdv~Pc8Vq{eaZ_Z|*IctD6irS9I;q zD1#JOaT=eYf6ud!Tfh3?MG=!1Zh(5b?>YOa@Cz1M7WouYY#dzoWymD#BXh0~)dRg@ zGb6aVY7gxOkO8RN4N7ODfTJqDd0bl0JnTSISDlEQcV+Q6s5 zc&4%_(69W9vs%#zIb=;je@gB=V$QW4!3`x^pkXFeM=p)Sm>$7-nOpRy=}+LC1ca!- z0KL{DOZq4ZVXrV+4vt#fQLs)nlXt~3C=ZTL92VIqTvy?V9-J*r&Lp5)U00HDH%>;Ea?afn5=NUP~OXjbt>EDN#Q|T-T1*qOO zlmzJY@<2Cr9{|4^3&0GTP=9y=MS9|N9KY+g$K{GrPKk7@U~3pW*w#g}RQQPppmaxr z&enH#mqt7di8}B{T`})(Y^(B+=Q})i-?FF9A92lo&CfZ*Hjz6&^Hr6z`6)Ji0Cv+Q z8}exd@rSYl-O2p7;F)ybH1R#juvPL;v&GfULUC3+CyU_$+448?>?~Pu?RHKqk~Tbd zT9bYAU+_;SOm1dSm=;I>O{vysp>X8Ml(Q}VUpmGmCYYlHu+0ee=>6lT>H-zvT4F-n zR3?Z)(hY#L1p#+-v*N%EH{xKs&eZ@0*9L0f=Uozv2{cwLsxJJagGd^DclC$Q6SwPZ z+ucvtR(&JQH|{CopGL@~v)0W3(a+jT={o!)lYJs;E8ByMUg2~``K{~ofL?iJkm7ML z7F)wEA8-s3p9sNJawF7xKlPqzeA85**k?laJW2t!fjp|u6WxHBkzcH?0o)&Rp9@hk zh~J+yRv%25UqhX$H91D+(c$m(URd34@5sd@q zcVs4Z=S~slGJ^8JjcUAN1gjj{g43`3JZHYNT_x+(te!xiJj~MTGylS#8{x-+ie@qk zHE>}%!`5Mn6g{2-r+X2|GGC6TeGmW12kDUG#I>)XZ3PqlgZz8O-2zO?OUA?u)WH}g zU@pJdOEiIx7{iA}b_YB<0*C!V%)s4kYx;^bhs9ekNDd>0D^0MtoJtSo8=LYm+#mvSkW!QQDM%cOyA2*3?$V^nA zDru<|aB(&qihdu6!5(V-vikdAd1!keJ*&>Q%_BH*VpubV(#$-qIhGVBP_?*{p*HmN@UCW5FL5?UM&4Y?*EJSf|;VW(L|V?K~ffIC@TR zmj}7o&2x}v?ENjm_3!W_@>-*%eN#(#peoEPlz~De!wzV`^!);lup&%GkUW5n`8KBK zWk&B~{mA>2sJ=MN{+; zzhQ3;VVZ5_!IiQmK4Nwx%t~~2>C+=GV?im7pq!a;k1^k7J72;fl=b}J?+rQ5XlkDo zfsK@LTW@4Bjfd%Y_;!a%%(3T*bKfQm2XU9p0$e|uynyL*buY#joK+SMxyQ`wq!5Dj zgM?p%-&1=C-_%|6HEP>Yys%s7 z@oW}sr9(U?(DQjmalXQl08#Mf>~f}1ko5km#FkxNJ2s)kUi)+nsbEy0mocrbV%C-3(X#o(p_&Uh)D7nZAO^Wm?{f-0)h>lJn zfm5R$ymQc)m(^1-o4Ax1DpSaKvrat(6(}9$`)FBzVl1Lh=*8XNgHKLM!sz-<3V?bB z)rQoO2)bKcF;?o=PwtAauX_D_fd*CY*R^1n8QVVC{+SnaOS=DyW3JL+hoAjNr^CY< ze#p9UA4V*=katf{*Dc}HnXg*MOQYJL)8OmcbNP;|fy^ME_z!gc`n3C1>gJ1VuGVEW z*h5XtXyvt9zTSO1yKWryH!4-O^J<(%QyNqA(Bd8FG|)x^0?&e^7btII4I6J1^rzku zQ|K~q45Ot6;NPROOD~90uUe}jPEjcx%8Q1daB8Eq8H#Ehut!KYRd1Sy5CDfOxRzY! zZZRr3{}<;jb-VU;fF2I;%~i(XW`>@~rq1DdkbFa;aqLb!b}rf7FGXe!5o=44P{g-I zv5)`{cOh{i<^Aq>_4>8+KZG}V{%gMDZbv5r9R_0 zyM=Q7fph-v&g3Cq;@{ZN;jQu-f3bXICNI14trT2RWO(9?y0|Io!lU#oIO#%LW>23) z>F_W$tWjs%BZmaexSboXHb3I!Xap6s6lJci89ISzPfet$`s7qaO7J}QR!OB;nDJ#K zjgSL=J)hwovN=D@)2ECpTyNKX0=~Ndmi(XFV8CTSZZ3{?RmXN*R{E1Fp))T9#f?+) zOl|gXmvb&{qe6~U%w>w zLoIi>4S79^BABv?B&qnBKk|BjZkLDzNKhj89LreoeqD4lFDAOj0kqG7($2J4*oBwz>IEQF^F21KW7p5h$E9xG?b5bxGo&r`EEO>I=a%G zQMhLsX1#ww&Z4Jbn!sfj`04u8tq-6#+?TNb_<f1<&g&pa1Ck@-8Oxox8q+!Nxga zL*p-Oga7WtaAuU0%-M5u z*h0`@>fS;E5YKe3c-)EoQ$?C$H-OVW6?Qr_v(aUjjS3OI{hF;A`Ny9%DHWa;@-4yS zgsfDs#5w-&+C*rXN#QN>a0|=C35!%V+tqz0j1oC)Zfqp0% zNf*IYc=>t*;qlfr8TVC0TFJ!$aLkT9U0RG5In60k|5#O!{rbo90pxQFzyb*;WwPcY zn~CRf0_!?z=BUD$3orkV6Gnnv+V>|k5|`WGAkvz=rO-Cb1bIVIG|Mm{7763;La|*) zEz)Zjkoz3cxSp;2!dRs8{`Hcvq>cwUzBxL}D$mh4N&_W|Pv{Ija*=ThssPrg9PGVZgxtJCkB>GYxWhhA4#*FhkKGIqh=x ze;ulzcE}x0Wlg?iKW)>Sa^-Fng6#uXn9Hi=2gdC%sp8Cy|A#4aTM+*>cv)jcs74yQ z^**ISVm!Khq9U3rB6w21JxhS?Mp%e#hFzo2!5wd4LhQ8IL(N+yN6K&BGB7IqNu28e zBnlPqnm-%GS5SHDt}_gFjP4e5%{09 zQ`o68( zLQdb1myK`I7cNj4vVswZ4^KFvys&&}XGSNZe0iGa)oQBD0j1Cof_YLXoaW{FTOnV) z@xiniTidA! zUjPx(Y(Q9AuDjJR2(fOpIK}+sh?x+UBO;56qqTD;u{1uNitsA0LqzG(sY1&W1h4wf z*?|{>Plp?%wr2K5T}kAKkc}S9Zu$7&bIzJ)+F+4UBrEn7_)|1fS^d$W_f?YpCt)B2!MevV=* zMHJ^{bT`Roa^nm0r!zwao(_A)}_o2!Q0^s-IE#lX&Q?;oQgYUHU zq(2ZjQqRP;$Hf_5prX~}1H2L__eVL$Q&fp>r)}d8jTWaqD6kEz>PujvCcV^gHoC!4 z`w{%(TS=xTyM9nhCT4(mc2oE+h4Z&H`0!8I|km1!-f<2#Cm_aun4iNF|Z8B{iDyB`7$CsZV z2lx!-)-MZ439i!P+YvB(KEZ};A_8DbQwXFNB&QPXekZ>Xe zPrNd_#I#7P&cHkW50Qj*<8g9^P8iQywW|tPh9Yl87miyJm_X(i->=6tiF;C#%D2zi z2pNvo7JgBcde2!}UnTdiefzBAJ?DkMhEhX%NE!X(0$3zx<8!cwgO_8xO4oE3s;(#bWl~H~wIF(Xo^vKQX<^(J3-QCuYiU3{RM(n#lEh@g6 zIRq0Bovwh15&J+xRmQ>@fYf|WhF4C_1lr%0c~2>J+EIVAYh6h6?}qkOD(AqdV5@Gw z*5PGmf9^MWlVdzA)$?g_OBCN|nd&Rw_-x zbMCE33zixaS`@Q&u4vclLsI?z-unA4AKdD6HP7|Z#p$Xilk}y#&P)E_fBO1s zuB7&(SXYjJYN5Neo^P$BDc+$aJXG#{oiJQJ_=-?>t5#fWv|-AOWhYh+ziY)L8w=k;4lk?Ve(J( zdx5v7B^SrwShoyA2F=@}*PCE~-@zNka(_Ds&hH#?mg}a{d z*)yw+a$>W5uKFSWf3mZc6(FWSM59~KV}LyB#~kQ`eE@iVY~GZxOX%@R+`#AbQ|rQG zD0*Ifn%GuN&1plXU-J^@P^2YXO^YfhuZgc)18DEjQBGpRGC^E}1(+IUAK=jEFK;W~ zwC*$i-*GQ?PHU>kJlMZzebsS{QS%OJoQUrxh|tK{@W?_HN=XW^ulqP?Y?yenUhszh zA1x>HliC2_w<{&Hn#yh~p%2!PpGodcEX86FCy`=}fBx3qOW6%Qig!#dlk&)Ms~yvT zZdxUxrgJ}%ZB79*?<2xd%hx-9Y&zg3P{OQ;H%Hhph^~u7C1t!LT-D&e44}-k&L|E> zASEkH;aN#gH&DqDkhv?k*hTvNpj-BuAzq-FaY2~sAKgw`r4q%3R9BoMnLru+L-Istq>a9ogWI;TSq z6yRTlY|-bfpFg}l!1&%)7@|xuEGN<9MP_!>JFP(Xw?_-80;Rc2rC&nQ6zJY|gY1?+ zMs20N;{D|I9ADSIo33fd{o-jneo|PKEw7y`kEkkq*Ve zeeYzqRuM^tLd5ESdD;)MSp6Af^^y3et;S?>QQ1-_rZ%s1xX!Djb-IVm;N}nrEoaTX zkXnzuVf-a3%pWr2Wc^0=+-`8+R3X1Df~np8zbSgLp^F7+o&0}P^ryx4%>Vdnrh(9B z2=Eb|Wi+Z_P_Qpx))tE7PXrMRpW6PpNH{2wldOBUThgSRAmx>pQeupE3$Z}Ve$PYQ zzWD5Lf+Ew8Ii|bcnQ{A?L8Q&=*5~WRNPr7W=J6V2^_V(WbTq_!07YGmqHWCz$beLFZ5ZMNtj(g^$^?Zw%h> zVsPfXKXl>tPT>a>bMGK{#ncR}7sioq`}ieggW^BH6G+t){9?m8W81Rhm+Bm)e;mV> zWFW8WEBjq&mCrHlzIqaC_KE2pi>oy&Sz*_AehHplHeF%T@9>1N3a`#_8xQEKtQZ$Q z{VTS)lVMCbjOGYzum^qU6GCLKL-?Q@6L7C9@I_A0(^4nHp57Ke`!qqawq%a<^aLyR zEsjMW|Mw4sFjGhM$v1BOJqLd+;@JMJa{FD2DM1oyY-FU!E~Ay6hQly&iE7dA61i8^D9y1I8yPd2tB`LAvBx-gAbWE@ABHe?Yf9+o<%9Uaqpa_}H-84L zyfMEB(D5S+@NzPDHr(jFixl7emG6x-OHKSHV#>~ zX%n(o*0{1A@UU5Nl+(~Td>$q$epXBL!oz=K1!r{o^tUlDg&7Orgd)(!clu`gEETu{le|MJLt zSc>=Yx+*-k%r=7N<8J-A$y;i<0F5l5=5E@}!~`|O{CIF3`+wkh zF2bS2C9>DQ@#ByuqgfY-COY>*0Q6zbBC#+~=-*sol~t@HLf%&<1OCtWm&?y4QR~aqN{0C+8%D0^%(SKX3nJfn3hZq$OkYjkm2SH zX8-S5UZ4S4woUaqj*jJquRz^@i#eE1=xiv-l~!X7;+7`O!tX?e)|u_uA{guH#sFSh z=SpIdb1d&ANJDTg*Uh(qE@u}%EGdT}3qrN<Yjbe)nu#rC5Kx#&P9x2B5x%EX47P=M!<^4oo`e_l++LL7% zIJ9m9!09KO%AAa&=yCQiV;S{nDffJJ0Qvn?1aasdgGZ`^u&Omo~{G?;>G0oXB6C*K5W1xf?a(Anb2xq#&9SN$TtoEAZxbiLNf=R zlKk~Rz(sDpl^TtFj!fdPF`hNX8!Q`NIwfq zO)dkg4Tqy+lVnO|1Th60V|JSkeR|4aq8p=)!U^0eCBr*&hhXNA4UW;@VxV0$H0~FC z5}!+mZQ-A6{5TdnUbwFXjt&pjfZ<6a8fGMJIT+SF1jlb>&tSRz;W&vczTgJ>LoD=L zFnD#AFi6!pbk`RMV3JdUJxz0=3+c_2HvA!d)uJ$f1lSwG;saTlaohTdgbr#cOPIph z=09cvc2Mxtl~n{~&>6jAVdVZ3`P|#KC4AnGQHD9pWYe_E0QujfFG4qRCU*2dfBTXc z?+Of$6;zW(ffXkdBHEwU)xNuq+6>;1BYhrb=w^5X7_B)~B60%N)P~txE1T|}fOJ`D z1qHax4L?tg2SwFQZk-9l%g8_fZa5jpa&EqevJ@4PWP(A4c*%+gRK4CiU zaz>3c(EA9zZ_PK$8;&iakROl>ZE{|C-`3OEPC&YQ>NH?Oe5OiwS&`p2Pe7L4U)s$( znP~6ZKe(6fC{rG#sdW_w{zg0 z|ei~fc-Pwa1g^F zXLq!V9Fv;X;K0LJyzr)c;P2CJli`M+j|?9mIH z!WOqX{DA8RWRBa?_497}j}cwx|9*b(3pE*?ajWZ)T3f}^Lomnba&$==HXZDN^CvsC zMsi4l(&2;~%6mk@Rx0~;a*K&M2xS*rsnX=n?rm@}e~bH8h3CxiA{ye{%1$?U^Ctt; za-RXpbPZN8@v~|zywKNE>36nCmoL}KlfC~K2QND#5z*+=5+@rh$1?g zGJF;qK~!u+=V=zL(r4lS&vaB1r&CKlDAv6P|9QsaK(5%oYxhiQ=PkNjuZGYlO55P8 z4g+NnF=1zmnm%2^J8Rb#GACWyXtirUQo;wu?rFtP43ZU1#JyB5Q6J11<|3uZ7iywa^iIlHD zg84tIWM~ne>8^4TxG2#(YO0%8#HeFRIh|;oDAPb2*EV)mB0vA!A_lZbdUDy-FrPhK zc#{zE(x*o&qpf4KOYh{k%LMXiLbY6Zf69c!K8~%C0^-ovUO<3N3@%O5k(3%~8v}7e z>&2K&L?n&4dp33H@hSZHz#I9Ocb<%)>s}|l&YOFVc}7r39XrTlnW)?;L7fQuqhn1y}GeW|I@ly!GFclaDVW?_r0k~ zG|=sm+r{kS5ODL)2Hhh@`+YVbL6(y0sjt2rvLBZDn2O+L`3KP)3NhcR{qLI2Cx$#U z#9&}WL0$M(19K?QNWA{m6%oPD(tw^!e_NvtI*H}Tv1YnUxthQ0PLZyMnYt?h)|he{ z?^6KLYPi!xr9uv?@fnHR!}(<~#{HR0yw~t`jtV5>kBx)07$`EQ*bPwdaP!{Zt}G5sSRq5t;W z&nTht!arCIacI;O|NML?`<6kYgYuj!39~Y-4PaU}v!`2f=w{Izdz6XV7~qZPlP=|h zW{<5c{b0_wbZR;HyvuGEVA{z+zL^}mn5^=^K^d?C{Qdw1RVDu+HdeF)$A-bRWwczB zbY_b2t(Zj+X%-BQZgjSsp;k~&S~1xlB%@D&Ew~J*jHA4jgLb3R=khm-INLurR*6QQ0)+ZwK}C(|-_ zp$9OFh&XBGku{Y}em+WOEyqik(L1o5 zH@L^p`;DWX&(J49ZVQNWxS{)!)b-`{?H+{N9eNlLJqx@%)IpFvXe5I(4l$EybCC>6{-phZbMj#eh>zD%(+DboYn1K-Cj~@z{u|)(u?8Pm#QNdB4ERv%T7u~zpFQL}` zoTOacGmOpeG_h@baGxobHW|j)MkL-o*>gk4V~; zo2dNo&{%eDYMsaF_j0a8NOQs2g+5M9K(*R^!)L@J1ZkUm=0T9~)4*MSDp*;APHB-_ zRZcvwE5J1?Q$;ZoT;#9lkKsL>&;mYN>`~kKZO{LC_7tErceB4#OoZRUyn#ZkWDF}u zRn*s1WOYxKz#9P^LY5cr`cIGm1<9Nkm+Gb8-Ps-}slWeIo1XZ!N2@)Jk^PRZp>S&n0}7K(eik@bTBghI?-pC4Sk6FNXp zqQFz}w)S0f)~mLeDxg zNJv=$^P(fwQj(w^E=A5GEVt0T!Jk|SUYK%DiyQoH!GbW?2619`pyzR3zoWxbKC zP{7x#F+lRxLTWL>X1P(5Q>O)M{s_ZPogKw7#eJDR`vF~ZRr|paVC-zx-DZM&*I}G`vb@#!VhXuE;L0OkkT{%rGH!iccE9p(&@;F(&x)qBS`GY_?hTL`uCxM zGw#Oy&!juRb|;wxm}tu6JN&ywwXlsZbOJa9qWSM2qh??S(vs5If-E zNku?;CGdB5cf0rYK5UYYPOv>R^R0~?L?zU2Un1g2z{93!|WYknrQ`R5g~ z@BEqi;C;>|?r~3L)`>w!)N2`Az^J{oAZyqXqs&LSX`StTU3s`3rnhl0{5&reDg zuaw<#n~^|BwQMFJ2jg4r zYJPUv`EIqELMqShW$cJ*jt!&y(vkVZ=hJ_61+UVu7}@xjyOku3mVPrpwqlI)?Naq# zyb$ksVj{`uVt+W&x<=|xNWcizM;ddXAej)fZt(DDLUZ{3nZQN}@*a``{ur_h5|NpZ z&Znfo(KKmM<{P11!RDJa9sM2HLL&5~R0Uu@)CDJ8An3=yTnnUz9~VTPRVT9-p2wj+WI-l_A~M>Ozd zron~oT{J^0r~7{FhfDH2cgTt+1S*FMH-0Jg5sBp&9 zLdyRsZYNty#gIQ4$-PbAs%!oX5Zl3(x6iJ?x9SoNvRxIAg3!k%Oey zHE~I8_ey1Tbz}TWko@SM>n(r8{qzH@Ar7UQ5^d<*O(jS5V6ycN)y)VWD{5x#8g>EQ zV5%FuX!zV`=MHILj@B&i!d#s%V;V{Q?&B8V4?Z1e>l^oAj&}SuRCsXRQ7S&AXjD|d z3@ZD`29Gzqi}Bl%#RzaVBlG?{x$g$f@kMLu)C#sCissBWwfKXg^3Hn5lX`1ZI zHa#VSi1tiJyZFzjU!bk!NF8hsyM&9@2%MgkyFP~U7P2iIgFtsRo7gFxBVr%D#+*>v zIah^7PnoZqqgk>;H+3ECg=jP@*ci?ym02;kP^vG1CD-9Z{`Fh8#AlHM$u z`lny3k10)EQ-{{+P~j!9MPL}(H`);|XpJa_OS)1%U-MD~2DSx5?MWOncFRbrcVq!B z^8BetHaM%ZNDuf0$X`c(q7atxrcAq(whocR@|@~Fcht-W-hb_%f_4pf^QHlW)K0-0 zd$pF2F=F9RW>t4U0e@Pw1MHBQcCZGf0p}dSAe==4AWm-~tqPOhS#o;KXEK;;czC;y zIZOkPA8T^d)Pf*0YjF~%YQLb(evcvbH0lqC;GCWWg}8TpbndgQP-2=pqSY>z&zf0H zfx?3!C~K4WayZ^NZ0ESR7iwUtP-ktUW-dk^#WR+WVjGdz90VjiFIM&AOgJP+?&<3F zet*QT#;#-RB*Cz${wv3d0-kdcLg&LuxJ>B+d(ZKBM)w&Rd*jKA=`{hJ5D3}ng00Nl zafi=9zUbO$(}+GN(Zz11hpO-J4v9H(KIP6b|swyaFLKXocTI4kENa1JqslJ;dWD(GCYq^nsuY2$dF^<0O}u#* zQZBovJlF>KEw>M$T1cWdH)ij-VCjf62=}TV><3}1hS7u!=DvDaSSw9q9okJixrtW8<_QKApanNl{K~5_C^06GJn@`P#^oWPR4peQ{oP&VKhisHw53d zYo`k5W&=xp4r62YZSC@5FC8b(08>V{Szc`d0A)JGCKeL1zhYu(q%<;Vjd1wdDKPIX zSSO)NdK!~s*z)0u@0xD8qFtD2UN3 zH*8LEJ0;=Z9sFp0HBf$+lTosNS4e2-TXR=BLR95}xnx;sU@CgBI?bYW%v;rcUx?>? zq(JaEkM12W+T|PMo;dNzM{tPjsnoGul19z6g6Y=FR_4oIv){IgHC_ABR^PD-Z3}%b z5aCXsuu=h?-A40~dZtZi3G)8Yp&ce=0rG#!phowWf1lVZ|D5#L3O=Ue%Bzt2ztjEU zjZyJqw9Ac@^hCf1-ekX>Huuwfbu_GbR*|Ly>@ikM_F1yAIsLNkPqDI2rGiDMl9F4S zB=Y9Fs!a!&`+NDRjGk1e`Bz|Sh-7Vt@Xyce|S;3K#26=i^X1 z>f4`HM=9egFnBI3cYnB|>zQ#Zxo)cX~=a(%(V%>uLy0Fi@rXTb~U8$MWmfp7LOd zmJs?d6GN5I;+N-$1EMgvf%6dhV+XAy@|>p~2*ob=+MKRhm~G6*3Dk9(5?5#p_KUhc zVCS0B0us4eq~;l6O+qCso<>j>sYWl(K9e}MX6+z8T0BzcvkHHE<_-qc;>cu~41Y|Y zb7ON75XY1zJl@B_m5zcV8ON$H* zVg5@aSpKBw8ut_Ep_>#xZqdOji6e(0@NZxOPD_!B+ytRR!4>T9RP?2F)sZQBnpvg%yYK{8B|n7|W%`GGQHF1>*&Gk-nVfmOV`vOoi}Z!qo~dh&CwbiG*rxJ0d~ zm!qjsvlI*8w^y_U@s3Nh2#ue*lm^j!?aC>9xZjMt@WQUmY~1Q?$ODE7w`92ovnUmW zs@I-+6o$g$@Hes{qKAy@F}E42Tx`a`npFwlblSGQ7OB*I^E(DEzQJ9MaMG-`6>oN+ z<8No-vvJZ;xJs=kAo)TDItQiR4e|@EO(bDt_3)yeCXEf*_8@SB7ABtc zQ23p)it~|fJX6o?5Vq!PHcGx9((B;)bRqYC$Kiq79y_}Blc@`Vi9I*^?pGT`F-yoHtX zw?a`y@*J|UOnnzie^Zwu6UB9#-ox-#k>4iRNO`)IEH_j`k*X61(Z4r7heJbZ_9nqp z({G?%vziAhaE^%*q*YC74~Fq#W0|z1-JghX^Kk$0`cyZ5;NME1xfkZpbi7#-NLqk$OCKes&PV=?1|mv#Fd?1g&OV7oA0 zQh*4Yp<|Rt(%t&(a{gHwz?TwROh0-Y6?^UHC!?bmDH5+*rO}ZKKueRb)XlF1OTE8f zxB*=)g!rOtoy$$6_q}TZ6-^;RwkzZw414FF4cNURY$eOJVUs2S%Xw#&f+Y%GexvfH zU@Zv@Zn1b-&_EdHlB8{SW3T`J{IZc@QZvK>$#bd@x1u5HT~=%rp#s)82>nG{!3#{L zVI^)dRd=whE6&uBhS|R1EZoBnDbkpbW*P*{b9=a6M53pE_I?Qm>IULS(y7^;Nj z{;_Od%Odd9>>IkUlS5J=Nw;>t7xp+Q)bMm>IxG69u}<(|VA39^kf3C; zk-JlSo$jw`qx{-inZDD9(^>uU6iN_;NW4Ieo@`N-oA03@E7P$QnQnvGxYvoHZn|3% z3sMz2N8R6sYc`cWM&wBU%DgCOpH&NZmd{ZxET5)LP>`}F_bO($1N^k!%4@tIx`^wG zTwrCS?+@&uw?0Hu4_6~kxYkfhjm;i~em0{`gN2%X!u79`$n%N>}jmf;D3rbI2EBQ zW0)COhywa=5xtpWIjRw)u>bs`xFp_t%i4bBlb%{@5QO!I%gs!EThIq#LhtMC$!ddK zcaU{S?f=@7rt9~~)d(U=zX1e$ro1*$?W-9MZmT*V?DW2sYadT*Cc zD2gP>Vgxxi!e#D%tO0&?f(L1&^Ke*g7qrs*z(jZl=9WyeHWV%4by6YzGwy>feO!k1 zl#`pfx#!}Rir}m9Ye_*hHs~u~KM;_ev^xk1W*yMzj4`g6H=2l!W(=-onzAhyAwm-u zvxa^q7KlnmCb1Fi`ZgqlQ_w$2(m~5(nOEDUX$BV`)ffq7soXuTgyl1n8i>7wz|&z@ zKEc*+W(+3n(yeggk8$ovJK`mWk9Bo8diBwzgE6gZXJFEB4`+s9r}U2hjw^$~#j4&1 z8e7=8{?6fVM3vBzh0qiTQR%XLJc)d_K<-P$)Wqp+M@u&w?ka*rn}3TQZQbl=_rcPB zkkLmm>rkcOe4YfB*PRS+_zx`433U%5lQs2$Ss3gB=;lG<+}vP#n4Y~4F67zPfoPZH zpX;s(r@GXSSH}Y+wp9x^XfP9&dG`oXZq#RegBtN?j`jG1v~oy z;_8j7a0C2>dHWE1o`2vJF0(T@Z~~5{oC_zXP%j6Q-sWf2>0Khh39~W_e#z;FVB!LM zOc8M7SYv&? z!mQWr2x}+#ZAqk+7-=5w(|JWzecwh5$cAKA=)iQuU`nVzkQL2^zt;zzi(TI#USrR| za17Wy^t)9)Zc2yTFkqa5isp$2`f}-wSFB?GR^8mZU2ezmg2NupY03MfjxUhUU77{# zxCxgvB5+Sl4Jp|?TkYGwzd^`r#h?6vPTfS1Azh;xt68hxTK>AK-^wne*CDv4y3Hd4K#g2d00z>R(uV_Un zo_mEn|E?#*TE`*z7#~@+%^^9H+cgQ=so0_R3z_#yg|Ov#POk1$Z;6b0o#feN09H?b z9x$QsH-|aE0Tjg0d(_wO;`ZUBH4@RN3*J^Chry_xA-R1;^f%2xnO*vA z7I1f3%(MWK?;@hQ?a;n@_)C+2ZZHjKiXW-cY(}y^pwc@Ml+ujaPOe5X6Q?|jk#cGi zqh*8OH{Z4rO!sOf} zP>c^0>6k_H3h^~!$(AI8=ripI{?=+K{fFb@%ZPBLWCf!-ksZ@FR zyaWG=zhwYdcu2-!t&IR6-u;C?$Oa|QIw!q!*5>Q>f-O6lyCw~XSU(Ng6;(3WT!I;P zU#ctF!g(8f|0vepTjWBlNSm`%{OvbgPkZptrZ^ItKM;-c;f|fdu_{Vr2KLvXj%C=* zom7y+{4bO-QvvFeB)=PtSt5BD}N`j0INx?{pj6j~%i^0>LCn84|{(;bS)$D){owx~(=~e_4?OoxdWQ z@?{{{($H%Ak@v{U?iFp76DrePdxrcQXQ6~0ETm}9q{TCd7LA%^?H8oF#~eK3oV6(e zYGIZr<%dV*oBOGvt@at$sXf=TtfUSlNtIY0l~C$2PFL1N1u=dvb8L~v5A1y5p2C@v zg7j){1BEhKstiWS^?ZYG*zr^zk`lE$cMO0P1jWq3EpyEr zduAxEU-+9 zYM2TyEfnuXU>SELVQM$-?Y*7dKa?p2+Kz?Db-KV|?BOdm`@e;se?uEqC#mOiP1^L% zL=L3sVzMo)X2@cOxaJp$_%BaZq>)AtGJ<9l$~bW&e>)ttbuEe^dP8^FKP))%Y(2V4 zSPoKKVXHl_C&LuN%;SMrLHODD8=((c`dDFtf~7ZNTmaPGoUY%(C5junOZADJza!J4 z$aTX^f1#;Ou&w4a5%c?I0#v@`k3EMhi9v^e!C)FkZ?|Q^c9Y~=U-K}MF@swb!>fTu4aKC2d2 zgid)u53s&)c zWvtTI3ji7A_a^&KtVXy`YYR7F05D4}A^rVwee)_%`bVR>ZvD4EYRP!d*`X1I&;@qy7zvH%6Kz-ny2Lt*XI6DM=-%1>;vR zOe^QMq8ExM;uJu#SVzRKHC=F8)vXiM%;K?j_P%<^-Vw?qRmXLgZ(-79_MmJHHJ@hG4&en)A|EGt^v<)W7P< z2={|R&AZ00@wh_?*p0jCt;$S9a1(Ln=zk?&J0uj+)xl0slv3It?y#wu8n5i{(K-(5 z?WhbiQXfN6Jxhqmts;hZgeffs!X4s?e6`9Y%&(V;ZzB9{t_i|(ML?>pwv~-@Kx_qD zF&T|^phz)l2mS{6h&(w5Zt{KZL4Z>_qG5$K1OvX@PnN6LB74zCwsIeQf)1q-sQxCZ z1iC>OruZB)@mN+Wtx$w87eN`5iz~^s4EO9{g3!i@E^(TA!B;D}BOk^y64o#!_$8!{ z6x}H6kYZ1~WI})3cq-1EJcI)}o0NNgETiGiX5mZ13h47Xj8W zwz*()OrKh`amq#$vKr*zDD(+?uA({MSbem*r;YE2U8YyjF(UMIh<;*T>||22>E|Bg zTdY_M!l-sD$h5m%8otY$QWkN!wnYAy*rAw+w=&Nw!j=wMrS6ek!n{z>|FOp93d@1E zrmR~9ce7wh<92#6W7)!9|6wcmyyu2!SiG-X!e}knL%AR6r445r{NKnx*TJoc>PDlu z92{Fp$}}4HwOx793>a6vq0$HL_)Hj@H|vgd{l;X>p*bCZ0OGkCf?1+!AtdRc@U9f+ zN6rz&+O9#W?C9G!>Gqtggi-*(#>Y9VWpgfs)5hlCm6Ll2P~V zF3HdT?^|Og>uHbUFh-cz0$$ZXmL>x>bNcpJQX~yrDl_&JLFP6u9wTjKGu<%%R-uNV zrNru@N}ns#oTWG2onNrT#nEigi7><-x=%keT!1daPnCHEdxFNf+I8x@_=m>?2YK^5 zS6|ekB49;eCtG#f3dU!Y5mt9KbA##!UB#cO&SbRCn{tgJn66Ja9-}q7H1+pFs5h)> z-sP6UG#37_T8-^h%A*eg4Yv@d?3^Ua4T?DaD20awp8yZwCRS5gqa0bvdUE(TAY|!4 zTVa{}o`Wgqkvu%fu2Jq9U<)ZVXWY>r;twSbNEycl;5N5-hx&cZKp5VN;-qzsGofEa z6VC|I+w9A7rt5jn?$9nsocSRGu|QSE`nRczY1%H9y>@fU&m~!(|H4B}6%Z3% z?DI|8iLlw79r76F#acRZr%ly1Dm~!sf5>#|3@GQUc(ibG75>NQ&Mq2szi#*tVNFnq zgQIWm%ipW4X#+V*Ij4(Y-AX$v69JY|sxKKbPzt=*f5gaz-AeB^CKT-k>Vc}ks+l5y zTs-jq0W{w41906qBkh84|*e)!nT!VuZ>fcpr93*}nw)n)wAz8{vXmsG6Eq z?3Sfsws95=qy7YbnVpttb=Ri%3t}YtgxG24;sVTUjn>-s=H@+QxM~FV&Ce-lEo%O` zv+*ekiCkP@@%L0qC1(-Cqbxn`94ZfDOrri&p}OBlUTu~YTdG(Tb0w3>AP5E<@M}kh zFAv@0&}1?vwd{wZARk#~l$=1Ccl4$dP8Wur+WW~A7GgTBV=2%J(mPrQ-YTpA#Q|5C z-P(Rz5blrMg>U=cytximojhWEEtf>@#ZWOIIv*O5$p13+Ydu6O6Ql!>FxI&eM*gM3 zdt6%NhcN}&if(3ZP>IJvM8}8hp*+6(KQuGW$Y8S}W0p*4y%*jXN+i6AhuW*GF*S${*O=xubzT)2rYY>2bC;&}{rojV3?XF0%oMH`$9KRV0Qb$8L-v-Go*txufw zl@>0#<`>^+THykhJT8&o1m@QSx97`t?0dulc?1WlQR^Qu+jof3Byx>&{;X|>1j;c zs|>?0rrbwv&j}5ll)~Y=ZCPAg56x(A^)udVu2a@w#Ksfyjyq-MRI-;e?$bCtAn&>w zystFFobL!yJX%7VOT~RwYjRMS+?XnLd*uuXSxp|BW$lEFT2iaPdiiPCRuq4a!*PqH+@g+Tpm zFgoY+hTLd+?&Q2^Nld-{qm{qqhj~iSvP6_>NO9-XWW7AyMpeoL`{GAD{UJhCLxT=# z&4E&CM(x_i*lKf$Y!=lMTGdLm1s}8zs4I*;{lz`%sQ2uQ)Dpx$U7@CUx0O=vDnwc` z9F7r~asil2&ZfGUsQK7t|BzO@wSlDJ-d-2fjhj#~3{sk`ddogQPMf6_J6A)Q0V4k^ zSUqg}*pfTMjmI*%;IN_U19_Vg$|$8SCGSYFbf}T6d#dvD=&Md@gH*=7ianzhLZeU| zPw~oYw3?G9u9_Y^r535Vn#tT*tx5{`t6SkUK|YM>Gy)8=5qz>RH$;9OcR!gZbT7Bl zl1AzwGt49{UZKtGM0`0r)GT6D%)*-6!>8D5vKXri zI*8hf4S?1NbKl{2-i>|KlUBQ{)rL#Kdy`oS*oGZ8%yjX>82M5l{JsZwhtA~67#I+; zmNfa4V9aI^A-DB~WIapa>zfTv2PlpsEHVPUhfaa$sMoEAe9ik@<4ta^NaIh>KoC!D z{0*09Q^C`JXt${f57r6%KPEnVqdg?I|>hl9j@a)8-0F)F*4XH7= zj>C}15XiQ?=K128i@Wv-b0*!#MIn-ZNHi_TMc=u?*igvGrGCHD zB`zEtXE7fIMhyry^YP7q=FTJ5H}V%BJof`;@X?V>EZ=gXMq_%(5!7bWHRhe^8?7_0 zg7dmQ@SFRWx=W3$J#+@7z$tRF&%?_zN>BGh16qeJb0~4uf~!v_{%BWqV(=3B)J4H- zP+ZnIkfFaiQ0PF7q=G24f)U=W#GMpm+Z7fwGnchlWJK^rt?+6U4Z#bqZW4`F?uSDV zn;rJkfA)JgL9<>sEBq_c#d3c3LbwU5KO4&MajBfmZCMvV9t$Xusq;zcJjwL>&`cr+hu}cOGqsHn?Sp)3~142>sv-u<;0^A1z*TMdo;(3D%(H6_K~b zuwdeVKKnmquWYs7rgE|on`f%?J#jSU5kUmRsFQjgx76eewD@X*sm!u~G#Als)Dltb zI^YpHCCjuQhSf3ZMJ3ilM;&=_ORxmEg`TDI<)~7?-R26V2#%z^ISQ8!$(d7kb$qxw zH7b*A(m1ubGYaA8eP`P1YWnCJ#+xl7-HWb9a7S*#)Z_2M`?huv zn=AJ|5K-PtOU4#B($Kb*(N@Z+t`sdWisTc{CCc}Tw%+*rpxR_)$rxeJ1a3+Q=Y(c1 z0!M=3weS&_?evURsmjAE|r5$ro z-R5j)V#7RfkhaP8VPk;#0R$s`f&yDW1{M?9Ihd&kx>oOq*VZI)F1#mo4+RrhYwyVB;)m(=>Ap0KdJXo}n~!MSo?|2n^6I8aD9Tmb|u+T4g|C(f{A3j6l(FF5n%R z-Os~mfHT3KF1i^F(dwn_Xe=dWC~eSj5n|70FiU}=sWdkkEYIP)#)eEMo zZ!#F`c?6`pvi$$@L_~yPOB?$?gU-K6ISpO7<-(x^3kiJ@VbxcxeF2#|B0LIBfs(7{ z$U*OLz>ZBN_UW6{DN)i}?JZz{DKVp@H5?APly0or#!a(#yI`T&5&moaMt zvBcvRYb0J!pT(tk?s-dW%o=lV-J|HWR5bHfq7VW;eZ)ne|H4+sHUBYaq?c-0VNv$hE(+99~Oe7W)HCxkB5OTGcu+j zm#8NodJy&Ub!JL3nf2F}dPiR<&aQ#aSi2locf$g)0{7)c>=VH_4C&1>fqkD^FgE-Y zV@-M4IayoZ-ACI8Cz5F@MPn~tbo)K5(TChAutil|I`m$3It_{psgL4@l5t|vufd#z zScK|gBj-%Rbaw5`fM?aFkjWxK(h_h?`oc8%jJV7?B)NyD|HgDI-17tSN%gjI)O~o0 z4>uuKA%{9FS&qvZ3oWNEpa4ea(Bh?oTcSclIkUryyH*sUWS0{E_GPb zrtUl{rs_e|ndF=M-aE=_j`VSdhfr4w=+{1dp{ z=XAM!WXt>aPu>m+cJKNq?CSjM-~q#WC!i)em| z*yZzkvc&j1aIdH4l>pXvKqLcUjluy{+D4v4K9R6VJthmu`|x*qJ@UQ{@*cXH!NsSs z#uhf|yGdH5_{NCn>HeCDaKTqF**6-lSYlSNtaKT0Ki*yv`Ijz2&NTjT4^cBn1%z&n zUBs2OiYgp~bBx2bJ@MTb;!#$cniMt!n&(9fmGT#)Pmu!`ORk^j;iFRkGI|Nxm1PgE zWZ7Hk-laGp(K6>xfz4E?uw6d_xRQO!P^CDLlE~QCl7m`cD7Yu=bvbyg0-_VX|M9~e5=PvxCY01D{oYP};)m+Mw47EDi zmvDW4FX{^Ij42wMG@52!9RnGU&i_{C<#RoSgTR4f*k2!KR>==Q-or>G7CX&)%!A|Y z#MV7j*Q1_Zg#udzS30gG7B8%rq0udMxlgO$z`JhF<_-ykuz$vZd;<1FAlYV*F)047R z7|8V)|LthQcqgJJ?%~^bNcvQ%BBPTCN{@23xh*{|BZgg6l6H#W1{)3ys)ndP3976n zLSnxEIbEJT`iyUAF?!=G!?4IEb3olo3io~vL)HAl95`Jd7>Of*4DXscP_zQSV|EZv zXQZ_24_{l8xD_F|XQvizb`iI6)ili4O218pk2(!W0XI0es3#R+%0BW0h?r;-C)QFU zy|@Y2tP*n$ZV;bo+Runolz2q<#ADA>{`yv#4Xa%}tS&Am?Wa+g<0oGMO}_vbLai@Y zW#2y$-OG^Gu|HJs^vn#OMihzAMF7ErvDDo|gJ4Y*nBm5>ZQHhO+qP}nwx?~|wr$(C zyE9*~$tv6Yhg#e^_tf()8_tO~n6eHQ z&+D(#xBF0s1K?>~wH5(mj0bNXmt@q(yhY)<4pVAJ8r2=06K(|eZM|@=f!QR*M$Qdi z#{k|_jE6HNFHAehl4Oqec=u^FXwJnuom=K9yR0hfF*579%kqt)yS|#}d^4m5S4jZn z00ipy-u-(gqOuMxxsKyOKH&j8Ioyadw!7&tz9A8h7CoChFC$(eoenX6!-?yo7fU+`Yb?V zR7RJQxY0K>VJsdisiR{x(aWh5&HZpdS-yY{A)C%rn*P6Bk{ESvk}uQ964>>;QXM6j zAZud3dU`HwqZBV>8l^rA*)S9U)43zZTsC~ne$U8Dwy42voPw(W^t zR|cg7XC`a94G==jy+1g<7^RNeg_Lh|FMAV18lp=L0cww9X2?W)VW1`W5j!70Tu@K3 zPOui`B8m&lHYF&3uR~?gfA=r6p2lnn zwg$DvYh9m_?$}f^AgfSJxHbUn6hCBuBU~I}O4|$oJNG``FPu}t#6K_lth_Ex6qO6G z$1$ddw9Dj?MZLO68I|CgVDk00(_I)N2wFZhw8_zoGWIzWE8jb9;Y&V-JDBuD+Ra<|Q9stHb0 zkw`4A)t)Ay%+-LUAryn$1u@({AiA6y9!=6BU0+W66t+Yw?9?rPOEDMgdC$g5Q0-y@ zfxa)y37IOgUypnsyt?=U+Vx5JN3G#X)(~IR+MO6B7np<{mt<<;M-7waSgBY2s_QpDK zKg5iNQ_S(NZhvk%2$C!jDag^rz1WBhq4kM$bP`hBgr;!{wb95*jrQByAIt`%P;C~k zQTPhDm?H7W*N}0!A0HB4;Fzgir_7!k$=->?(Vll}|DYVsIobOm#)nr}nY_az&n%CpdsFsd8+tol2)k&(rPt zG-%PB*q7=N`@rRBmv0{)g#*QGn~@@I)m||CpuMsFJ(w;-3icywi#9*}@qbDPUXJ^m zRLY>I7G3aI7b|t5DngRD+OXbE;eQU+!#!7Ns8B;%<}qDGKwF;JeD~xc|Ke2F4m%lE zQ`?g5MdK)G!-tU_e0Qnk>?}nOYff4L`2~Y@HHs?`W?VfTsCY?HT;Q$MNL|4e#M(-w z({`XnHyNi~r|f|rzg|)ub^x`WX8U^W{rXDdj%6?&H_f)L0+`p2Axpa~y>Pz*p>HCT zIuu$w(P>CTN0@(ox5Vu@6s`dwk&Jq5%?9TB{X`b6c8twm)+5ED&0io##57jCY$Z7g zn!zo#BGqUM2+Lc^5o4x&AAYuo3kDbAATvouPwNC>b2EKI?LmPbP>pka0FKL2=-)|^5_foOkTL{>E7pP#bf5CJLFuuO zAAR5=MW{f}i*110279#6Qv#wK5{bF#2!rkV*QDPZT=+mJO3TyIoI3gIre>N%@)$;b z8sbN5yw+Q8kL$)d7nDbj1Y_>%+3sKX>LBabjEW+^tLX+WwWR01c;9H;z2~3K@_R{e z!1D-tsOX#*R9pC}xdY|6K1w8#VoRU;?C7iBGAhCL_wxs0bs+uU_HmvTgp1Czr*I9# z*7IeKmb23a0PXB4SH1&C^*ccF`es+ghb^!)^-3S((ZuFYo=98YGGa<`v-dq(nl)~I za+@^rCcztgE60SWYxu?ix{YRDbRpg@6E)us?$}BzoMQXGAJPlJU-#~UE)j6+gZct! zbst`C-b}Ds6xH9GB6DoOOtA8nD93NmK>O<6N#D48Hs|9a_iv~)gYacK&u8V6N&5V- z$yu*Q4uN*3r#j9!#4cgVtulUT0{3jd5`)Q-AHA(Kj}URPKKU;*!z z;_KQkL6zg5ngx-aEBpd=zGSZ*-Ctp5z4(vF8*j(BjQ+=itJ|F1W8O(w#0A`3gZ&}X(`Z_FH%n-fnwZzaY3TB|B>$m#Y8_tqHV-N}s} zxU3CK7o%w?%>kT!l|ux|Me!9nzVW8+M=Nk)*=^Klcee)50eSNLY6-lm-kstr|5I~} zEt0TYMU`0y{--&H^8IWSFdkk;-56=NzTc?rbd_-x<}XHwxJeVBtbASUXHIl zTVZo+ohT*YO<1*W4|%$~pGps>C39=RJHh>C>duiY2eUv1pf>fOB&PtoKqp{8C3eOH z>(y?6^jZ|4T)=Sb8KRcRAasJCg%`H8#SRyZaW`BJjjlPY9k)%S+*g*I_FwIz-xn6))qP-jY2v%0ecZ2aBdVT1F z(h=(?%=DTBf3^=uKVW2@%<{ift^ie`k&uVxt5r6`G zaJ>;*GIgQzD=P@6r_&WuFI+wX=+{lYKjtGvZ`sWM{Gbo*A9%zTb{CCDl43#wgue>L zTI+Y0=3|m7f!Sn`cIP%h7=W8oAP2Ug3vK=hpch~=?BtOLx|{#X<24x>N6dNtn^A9r z64DPB*E~r8)@HQdI1t4A4Ob_205T8knPR~Hzck02zuhLf!WUsExL7={|3`Cd^##B0 z!sFF(P=}PC|3qwAhjCx#(%_ZP%(nlF3SA5O^)=EhN13IUBLgyKcyg?28wbs$JT2e7 z7J9)w4?tvh_!U9J5oH0jZp3K{>1q1atyX5>Xn!tynavZE zgFN{X(aIcLGs0z?*(k7Q9`Hk~3l}p%mqD@M&CrygBK+AZ6oDFWNXhtBbh*d zan?u>QbW)bR7eWG7)>+M=>ndz&(a%{&k_XpLUzhWaY9e_Z_6Q)$yddV0O!m|P;j93 zbMBBsv`NF4LsOL*$s+tWT=QnR+Sm{4 z)D*A(^2fGBy>C#4g9YU?77YK#a@;Zfme-rhhI0}CWoLInPpE0TEb zYFZy4q!G29mclkcfaQ?EVLjSXdiSb{#0wOmM8A?dcpn&S(Qb%4cnRSPe z8fl-@!(dMNi_4yII+e;8Vk_~b5|*9WBYNsmHaLi)c6?Ic+0)4$?R}s5P&@;Sg=s}d z+;N?~jXCA8%GV<+Fflf4`P~yNvzpm*y^$&HnSm&FBsYl#rOpPgD-QkP7WM^=3?%?@r z`s(thT6JyKXgLCi6)|J&IK!tbmT+KO#99sBbZYZ=;`rbwXgZ55k$=sDVw1qeKHggZ z9hR;B%3B=BaVAx%;X3W1;bVcY&nVt|&33e7$p=Cm?pY~;#7WHOemNxn=R^V@DzxJx zY>;7$GwA_aUhmuY+7$SRu!}XWAZ{J*aAe2X>1^DIPI0g1Z?2L*FD*+a3| zjv7!xtJZ-oi@n@i!m76ZwPF&A{V5WKVvFM)>Gwq2A+L5 zCmh|sk$i6rpyf}h9A@#ixKDd~otTQ}id4pw%Tp}#cqi9^qGh@}0MTu* z2dl0f6>V>nb-_vqu_fh-whOB2Z;uE1@Oz z*J}>6I0!<4lUjc*Eu9^GND|Be0Qn3P5rh)0xOEwME*Lex7`sg&Nk zAJ>){-{iZxyj?;Vyz_Dur5}52#KEqyKgBkm9^2&2oV-9E1w8ypM|h(3$W)2y@CvgM z-&|a%!DC*g*%3$i?ldtknf&PVH}u*Pz6_cE^^WEFXQK(xQdVZ_*Np{ql@Z<@nVsH> zuYpMUIAU(+!K9nzYYl|Nnm6?<5djv2GpuWmK$B5i@fQ7X$@4T&3XwXk3f`X2*Jp0=@7Jv<`$NOWpCGBov|S%EX61f; znwH`2eFmFSzco%E_Z1ur{V&30-;K7@U=tkQv@*t3H$W-cgT!5`-LlEM`WTkEm2KA; zVMvIAjRCOk%;Bz2D>U~jhw@lxX}wr(GDUk{;^(H!v=rm?4TC@vfgrc*>zMYZc+pF) zhT4w?93of;9qrdhpj$lRK3Y}rX8G-4JG)zm`5o4i2=GIO;I<~oSVaY|R8pQ625(ts2LwCE@v0M;eD|s=;G46fU3sifiC|+j1?u zGVXuY@BK#I3lNLDHB-sNOQNfCqDPYZ-{ex6*hum%J=GWHlY2$7(mb#jC}?tKAvl>d zcZg@Lg_>$fmD=R)kVk#h&#xhMK!}baUD;z|W6o$#k@%{>`H_gh7?hnD>i8_xb!J^B zgk*JG>3unlb5Uep`aB2F#u@d86USOaJ)>^LC5e<9{q@^zE>$dFo)1ArW!4DJ_AnGt zEvII6Ytn3%X6g^Yl z)RMYm%bzDjiqa|036BwP#UL#MS0<&BHYJ^EV_unVv5V0x__^qLPjqqA@vUoX_S#s+ zI149P(ndJAq5C=`jolq8#a5PM#SN^-8&~+gx)UtLDhyK?pOK%1qA_XRvT5^(KjGIJ@?xu<7xFko`itC zqXf_v`lj-!PUa5eXX!4MZu`tP50I{q!JGX2SpMCn`&7Ox;G@XmMF`$=t{WadU}swI zc|rDQmnUKVgiaC}?8jenc(by=nqST_*TOG<38$w0cQcw@IBBAdnuChN^0s51)Qd>T zSI{;~$(=suR0!?~4falLarVJZV4b+m=%M!v#zOH_$4N}Joqjp_C^Jv==S?w#N&bD6Rntqdz!5HeCoPOJd^=Aya?IC21QaDXKE8aRaGC*xg+Lw@k}mEW0h6oK)sYHad21l>MSCP_ z3Ma`f0A4Zm$IH%(S7WsJy&+_!UhR=1h3(n^P59~7sW9;mkhy`Q1@ll=nJ>{isViz_ zrP=nMf7f*Wk*K5QP`{Iq2g}Vgge!D!yy{gZc$?Rv4y9FL@A6sYr&|7W9hv#or)koN zdHB$f9-}%xK5t?Gd83%Apc234UedOnLSRSS*SL3;s9A$tDFeU5VCx7!Ez&-N#21WQ z?S_M)sc2AXu7sikE*jTfpysaA_oS^OM4l1tp!b}&IOQtm2Q}6 zmYJPS$juE;J<0a^2A^Z+VaML?KU<|*W2vfR#*F`Ijy;vi6uX97z@u#GN~*zV)xjxB z6w=8)l5gYxX^tgW_dvHwcmj}}_xgo%Gh$iHIHIXo!mtp!41V3P1oF|#@uIXQAg#kM96$KJ@fOFU#qj+u1BMIg=Xg7-iLioo^u7?&K=X% zr_J=1nkz^&z9=xJvQ*G~`07JD2L)jG3%+)C#F~kDL!4mtS4-SQ7Kw2Ho$<1eFBHp^ z+3sgm(N`<+Bf;fzAZTPa4=NR+A$tu-t<0AFz8e1^ew7^blLb{crk+_OlGUgU6u!dF zf;`iu0by0!*zyVM_%JX)D(gf+OpiLpJ;w_NcdI%zeTX?mm?VE#z)J&dmAFt_HsHbu zJu}!J4d2ckX?DWFF^aj^4UcEEv03)VfpI>sYk;+PT)%IP{~F<$n5>tz((00$)w| z9ccFWWLlbT+M{m>*a@82xT`QCa<0fW?k%%+)KZn@FXXTo>DqFg9V3&A*vJB%4;1cB z)dy8r$*z78pNV@tu;KN#gYR_61XfM$^Fc8B6NR}y;bT#_?6Kr44~{RKd%a$ZG=e|j z+KT>DPCb||imS2YQ}l#PJEsD23FIZozQh+3lC}aJJZmhBPf#UL5b)K4>~H_88f&SG zQfpKKVPkoh59F8iLT++-v@oxhPmLx$ars9ZDXhj1o(KmH>D`%^lJ@p@cnf`M?gH$= zJC+nB_v_sw_B>(fs<_Z<@07S%4$Ty`>#}bKv)HkaEw-km(5HNOo#*^gFVe5PVh{ne zGI8NM<-7IA%)}?czkFUBrvx` zjtXc>oozOPN{&IfJs#JJbKAsCnHnp||}Z zvQNPn4IbGlut^(g2L_%=kiT7;&n`dGZUFPt{h^2;pTC*-PwpS+>R~xTYCKYwg`@ss z#NXXb!xt1?SF-uel7GFjtM9yzp_q3U!D5-3bpW^``I_TNNa13z)cM7gYG`8UU$s;x z_O{pU(KEj9c;r^Qc3x^9d6eyTVi>0H%$`M?<=Tn<*_*ZF@!>&B6G|aENjJCO6ZJ7U z|51cu`NsxD4U?zR-)Du$mD=28s^N{5RVahX?M?zG{^C5P_Db+C2gDXN(_5d{jI4** z{zNGMfKC3(hUU(!Bf?VqLF5S~-w=KEM%$AYFITRrCXHIO!`SicMLZGSnx0IiRP-?{K zEwxDXWq3lX`M+zg&O)`{k}2PLjJi~M({r|#I2d1~#g<_xK_fGawyy2MiX4$tA%;TC z@9i6D?**KRDyf8K=(~rnG@~@K-{?gP9Yvue6jcZAMuXBK18X?t5F?2)U6Gk=qMho> zq94`rrS=d_KD+V5)_Z^TMO6WDO>4ibNY*#UO$lG(P83eCiu;WBXiU0Nx>bS;aH^kAO)r zk>9QciN04dy}msU2bV&3N(oB&9u`lT3rgUq-c&o=;JGD9CUIng{RcN9DOlpY=o6j|O{rjs z7v;SF(shnO{;W@CZQb=JrYCgi3Hg}F$0nP4PN4Qf{*j*F3TE8v(&fEGx-_7+#=AB* zS`?7cQiW(_tQ*O_a1yC&;5OUoGS)U)$*C zmU+)G~3UQ`OpoOZyBk&M8>lAG^EY2Nu$^T*wlP8=R{03~CD6MC%c(cs*Cg+VX zgYjZ&&?@jHo){II`aQUzzy-H3EM!-B=7!wa=F>?>N4F98Jqi^I>(>;Kvq;ULdit3h zmQ&_TCgi)7VNd*d7Z4m2&vhX1A)4dq?%&CE-up@?M#fM|{j#^LvMZsgfQwV>1UV=g zRR0_gLLV#Aw%N!IMcRFe45)MIljdE#vEM0kynVm|K z^z(P(LN^h0qmKsnLxN(>;}&+T!i9aQQ*4W+bABMBICjnuq@l5qSr}@I124!fn^tgI zFE|j(siPhCp^}f>#Eg*Pnpkl#)o))FLbZY0g$Ph)8 zMY^WDgV!rjXz1I*58P&hzCfcTo`W)er>^Wi?Kq4oFAT5`SL+mdqy=^Q$U4zAUr0Xtc$mReMcdV2#lI=!c=f(p}6zf_*1-C!goNLWXk*rKuG~fOcL|_nZ~1YorUy zxF2a8kq%PIoHhE84`FluMhWf=zOi4z>o`cTwyN2~Qk=$ckXpC^gOX$YiFdcX*gG9$ z@%a7$AK!s#TjKhH@Yu$osizmhe(n{Th9(RFde;nQo=1B+jIKZ z8VxOPbHm^S`*9rjM9@+hH=o7?>!Q?Fud^wR5PxTEWf~Z%c z&Wj*)jiVjXNo6^yfSfrrnSZekP}a|7v@2k{WmQuy6BmMi;zk=7FBUtP$WI)y9RcuxHbu%HT-gMK#S>E**LZYd)}}NwxyEo#EY+#N z&OPOAnmZR=0hYgV1fc$r)bV|@@V$GYY8xAArCM)%EQEA7MNRz5_6+!feY86sqzPsC>fIr}DmJ~!qGiFT&s|VEM zf**B~@z#=6vi(xu3+I^;YV$4#Uua0GKySbQ#?d}l`53Qy4Ov6>;=1X~{?hbmew@Sy z-I$7uy1K>3@c$frT`h=;jF8gV&5IZOkL8Ho4OLrVrEq;Zt;#mV(@4q?-ZUKrW7RYHU#h^w}CwPdoO z9ySIgG?aMz-AOy(RTGUOtO%K*c$`KuGTS4UYKe<-^5Leo7uM=ay@>o<$fHR`#4MC| z*zhoJyRK&=SlqS<3xUYh;lP4$)RywLJmnLdnvm8!?0(O$G-D_(62uStPfyMX_-YI8 z#+CfEc5y)+2L3sSb{=zIC^(y#|NE9_ob&|Rd^yM)3O2Yml{uIrH~pZ01n^v)l&MtiT*PaV#lXi0f{7hh5Ml({MSnwD&BAS z9}n+WtEa3tD2y;kT~*kchq6swSHMuD;#$+dL*Dx5*INQUQrJz%1Kp&?Q^Pm~gg?HE%T z_OnAeE}}7+eSKuV!gxl&V?7M;n~1g(Z~)Ip;?_UJR*45T*O=m?T{{GzuA2#2_QAdG zc1ygaBN|>Wu0KVmPXh7cVP)IIb80BELlHlxCeusPG-YhKi1%*S%EUGATNEC3ZfwlN zgudzPp_{jdZeXeA`WkLsG`bvu=#3bc&IU7?v{2EZ&d=SUgF}l3tNU7HyNVyJfh^oF zl-3JfSeh)F5y*Qhb^U}J@9K!Mn3a+bJ46)ti!9SzKyTdwk8rQ{kc+v_WdLo~f{2 zrSrhd4Pf_6q`i?_GCE~5{oPH*fUCZi!KCWN4LxeIpq#9Pu>xfJq;3t=l{@6byh)%f zHm7U513%}~X8grhFE)@|p-hWgtd|IZl`RA{7mKTTn&nR&pxr zH(eazSS$R$A(wHe(~sLPXa}l60oN)#Zoa@Wv*wj2EdKljXw1~5%3x}dQ5uMcacTlq z)kg#b!1FKPt?nHQApuO`*TdVtBF_%FyO+2)tcgliEr9Wx&q4^|5XQv;rFX*`iqz4i)k)S?K}8LocY)S6XU#d(P#ZFXsY+%NlK3v50~^q zHDtlAb$Zv(`#viX6J|<2WOFSbHH_EawHB>@&3I_SgFp`mxShL{iZ-;9b>bFjrGOkg zj%If0rm$7g4ZzHmbY)#(NS|OyT$Fk;&iyZgERpw!XXnR4r45U6?@J%lQZV$&&qs$% zL~j5<-hgu-%&HOtlPDKuYrv{KhNn=QKx6Q%?3ly2|1IEP)cHM(Mj+YA_oO?e3j?7U zEQz3+%PSz#bR0y!f=5-)>1M1!wzMx|gB8|eQc8aJ_FMFHg@`Q}ZHIu6J_m}Jtilr# zX=VE7VUyAA^Rc1iz|GAyyAg&3?`fJ<4i>KU!r)@4f?hOmI|kozl22om%<{3)B=7mc zsoG_3j#A41Lqtjj*=JZYKkj(7mglG+g&M^T<65#nL2xECXanX~>Gg)-X#`G_;+R90 z6CqOPzL`V2naO{MT_+2UnYd;Siu2XkyMLCY=nsjbjl>k=KxVL{2KQyxv|_a0UmsEj z>*D#3=8-k3ToSIk1AjUrZ_E(Be=xiYT2&@m}`K*BVe1>f8Ss58XzU7E=R zTJJQ+5uI81(9jd>JI_K#e?l$Xj9IJXw)C-oi?DGQvH`UYyqOsFLNC|Yh;51Nj=0*A z0K`Y_=+%9a$XtcGGtY98YC7r%SwU=E;s%GG-KS$@0?@aFFQN_xe5cyG+VWq36v6k} zBaC5Xo(;sC8m~?&=Ux>qa6xM&uU1FqJhydES+5NNl+!WM#lRYtUX!Q-$JvY({xF*^r;*1<8CC0)d45v0LC14p z+n;!$VAk$8mm9K0w4lUKyO-_Sr6j{g=HYp=ZH_EjsL#d^NAuu;=Q~K=^gZ6`L*loM zcPyVLCmdN-sT}bQD#!0z@8sF-XCYlJljwMgEWE8|=9@gaLkjH%xC*7aKQkNpUiCoB z6>VIo6>r?Qo$z(&T$p4mRBW30?4v_7e5Vx&x$Gq5=7vT#`j_dnT9&*sm~ZFEP}sjyI-p;?~6=915b57QfX5iIso+8ct96Y$=qxy@?t%%iu~m*lH}=9_ALip-BSqI zj>2R|h(7#uno(uKWtVW%YmgmNt5&%l5;-OZh?qcSJ4?KziW{XnT$6Loyh7$|$-mf* zt8M1PjUGu5ozF}YMP~Zb&IKdAaVOll`2yvSvalxST^2lMeV9we_BB&pM6NpQ9n>G^ z{kY$WRwNVL?pnoY+{a-@{ZJ>IFEzX5t2_mgPY|<01;q&tjQyY-Q*-6=`}>>v^9C^f z)n~6D|4_XRGrnOGclh#zB?gFBR-G5giuog<6`i7UMJ4&zOl;6%Hz8vra*1Dsu068ajNDtL9riv(`PZeCjOy_kHe3~Rymt64hA?Lz zyUUJRh|*U_-6`k5Gt-q~2bvmFXz2kNI#rR)($1-S`I^};OUj9D!~VmHuSYOK5IzDe z9HDVKlCja}i5SGwl`x5B&WjE6o|$G<%22>kuvGlB^KRO7p>%930`FZd1P19M-wtv8 zf@C=9X}kgvRe0xEdS%ZqHEUhQE$CGN$H6KZx+(j&gkO(#ziGTH`}EU}7iw_(81;=9 zZ|2WLmUM@R+BZ%3HM25s;0Pf3^4EdOu57m<{_H<=C0T;OZKGW^i&bl{j3^J!&z83J zms&#r^6IIiMl~df?;ta~fHVyFOJTmR8bS-ZZ(@iaZP7jEY7${uK87Uh_ZX$0^l?Xb z@s;}T!=idHSrxCYrP0NXKNlpLpPsFhGUj2Ie~Fyk&r&vt3cV*b7s#*<72f;(s`gm{O%XN;%IV|E%69G#Upz7*y)kiDo)$w*4Jfz6Ni5D=R} zb^fUa+pyt-nCD3zW#K3K6DJmxg!7Kb1Pos6#@7Po!9|WX47j_6|Gt-bfS9blTn+IcgM%#&R!&7m2mY4P~ zS4C5yN1Cg%gCzQRaxg-37r1`dYv908E8Vdz>+!3{Oof&%fxEr~StC5K_ zrWKFw3FMz;RxT>4jDVMhi?5yCRQ}BeuzN`l`e;*xiyfFVUmayL(UM$)06ENZ?L$bf zMcvjIYEj*9^}=~YHV^68KqL(?i$?NYSJ{l(dwibLVkv)q@7Mgff68O&UGxs8sO(5j zdfAsSYl3)<#=GPCIhEGUb94<41W|okiw$dN%Qo!EN5`yl>%wfzV1IF~DIvoEXqhJk z+tHD81M+E`>z_H*#OnmDrvi5yJPp>^{c{%oXtS?i$ok>>d3@x?RMvF3V*l=D!f5li?S%7YO`hdli>0 z{51^O-|iq3v-bIPCS^SN+tN8@V9Kld)J7ZIM+07t6#AG(VNu)WuP*0fZ-k77GYSN| zy!1{E(_e`SR^`{w`H{d-QA=*&i~L2Yit}cCBJJ=xOSPcGv8*3(0xGETm-ej!VzRW1 z$Lv=^l@~b)d4Q*+2);LZjzD!P6a*6+HPPPyxTj`n(yhHpShk9B)iU||lQ}0oZI!eF zY{5yaq;UvR)&o^ml@q0fV#zcGYsam|4jY z+~K@pH-9^mPZwSxVkCE9*QkcMDiumA6f)?6wUa# z#4mFH`Ex^ud&b`s(@$4b>i8|)8RQ|&cRVt7-QRLo$9$R6d6NjV_w=`J&a7>dgWsoE zHEBrI-;hW{eixA0yN^TN%tA9oMLB{h?IjSYqo~Yux!U$XGf7S4N&tI~W98UQPr$%fwfgr+?>p2xPa1E5v>D(6z_T zOD^$>-HJltxBpFO*yjc(N0hO;k`dF<7BQWJo^%SE@IAymv)*_TQQ!&VCD_l31^H+2 zbqf;a!*EJrZV%AFx0m&7(GkhE>P)$U`%4$_cUZ5%pQ?-4h<;_nAKuP)AomCu@eBuP zr^Cw0DPdulrgbg&99^cu1v!7om% z7<(P(7bDqREY8Y9tjv*`M0RrHy$%1C3++rPs3ITFHuB&3p%w7!3BRG>LuEdJO+*qa~_E52GEn$5@sXtiR9Y8DAK>`)DNhffv2gH8gTX3F{RECe|!aF$U=so|#l9fPpq*7fwQ4Y+PY~ro;yCZ|)TXZ^l zJrlXVoQHYb#eLCkJJCV(5~VRWy55VGzQC4yq#GDRk+F+}fMa~elF0&<#vBd~?Ob67 zH!kzWmHQ_$wDbDTZDHIIDV%u6ubi5cFeYOBVJTXqhB)4iUo=hMIOHd$E&$QtqM8cR zqEQOI%Jn0or*WjMtHbIgL})Y5xjSM&VfuS%UiB0Daw+F>eMJ!rv1p}W z=;SpVRbER@)^GlBja0=NRNT}H1@(CJ^SNimd1`()$by#kIN*NH6ftAQJ2k7Hn7kWNaN+&i;6y@XW-Mnd#O+UPH>| zW&+55pqYtF#tVeBIJjH*!=;|cQtN=`9kV{=5*_*J(hWk9 z388~nxF!DR&*=KDsnG<&HK9Nq7)+tZ7=>27oGpUi zy1V5Xmv3MW#}usyY@hmi+KI3%W&?vxWk%0OC30-OQi2bFM##9|Uppqrv~HrNvdQ>> zrXy>j5Q5-p^%CdFsQQOFXE|_Mi8JzUN?5hjUMGl6@N4v;^>ZxrhbSovHJI|os`t3E z;%I!NeY+5@6wu3sQdw?2?AS6W%bdKS>8Lg9rcIo>3te}Qe&9==)u|iAK8rPp(efSq zL*|GA4?G?ztuKkMZ(D`fPulsd&DE|6Zx7F}$?j$^xo$9(0c|`$(Q6KX5hhQ@zE&FE zUSvE1Ht5v&!2#@pS({I1v>9)&6@}TQfFQ(=q-OoXE#N`kaV#0#9lV8vJ4{hVBNqC& z4EcAZPd9#_OFD)c9RL>I)vLnPK6E^vC{=De<2=Q#Itv1fSOV5w zdx|w-d8E2IJ;VVP-JLSVJW9e<8JswB14)uun<5_1R)Z|eTw{Tl&4F|Hde37Wo9~h+ z6gSQ$_W+u=^+=%2Lh~>rnWa#Aiq?#Zh>-1fqTwZdqpC-Xnagu+77XB%T_9HMP z{7VL1(=k#!vq&U<%?AKYnoooSnl^|K2(#3k8JalX1=D>}q81qEgK)HqTu%3ua-Mc8 zqIigP5p}f&D`VRk?obHvXO%GeJY8zLaC^#hoSdI=2;nM`<{7PFV9U~)QwPx1I4)q) zkXXuww)4-Q_J~hVQ%=tG1$hH;FN#_fUme;HCDuP{fLm9z zqT{d-g&q}g1Hj*_GN4=AXnRa_LDJt5S1&IqtT=g?B{PBM#z8B!>wtE_#a zDv$(9Qi4{u!}TmzwO*acLJ9htFyU0VUoE(gRbLf@oYd4q&_mu##KHk%Z`*YK5)FHY zPIRxu$!IO$f$2%hcq&6+P?jS(8_Z?AdDuZ*X3Z`DPaFk8L|m^Az>8kb;)I;(Du!V~nin~{dys#s4ad*Sw0UL&V;lh~QO%~wD6P5Gx+*MG9zDA%$u_64S6 zho1huo4)a{s5^AQa*lwbZiN7vdMJzU$0V*e5rLI%ODtP8W)6A!G3NlbeHia+)Wb{o zslP2r66)Xn7t5UsPMF)#gxsoVOKR~ZsuuT;0w?;PcF~cj9ciTAQc@1ebb=JnoD6oW#MMd2?+2!? z((9CksvzbnaLqJVW8(bFA}ofbN2Yh@Sb89m5BM9A_y8T-JTqohteAoKQPkA23tGLn zLAw?JF_D?}mp*JC>DVi?LP3YH)_vml_cac+t{>MyMa$Q)^TM?BcK{r8nW{YD3tb;x z0}RgV`6$o9_mp&2+I^fwO*{|jJ8kfP0B1m$zc!M=RrDp#MecOGC{lR)x{BwHXJT&4A% z2F85fKmH@0?meLdraGGP?G5P)X@`zq+ z`9AEMBRjs<(@YvB^01S<&c56WK_Wnv7S?)s@=-BI&Yeu&GVsa3gW6>wXh`Lg@@MCu zh4GAp)ju<{>!+bQQf>iP+bB7Ze(C|_O6sb~vkyxHPo$0!!^_nvx!c_lIs5T5i!eb6 zwkmhsre!sXGB=+q`6lvXh%S(oU$14b1tH(3wU!s%O*oXFpqT@6&X`epey2c<^}PdxUx)J5NP)gk>G3KCb1>2e5nU)y zmSosE?O~Ii{mqEF-~<{V9tw;mXADvO@E!qE_TV4t9cW7ATh<+S&b`i8@7jYCD3f|0 zJ(sZ4D);#hN%kv>Bi&T5q}8pX@EkiEuf4H}G}A&ZG+E|ULIS=*013jA_|Q;N6xT(D zhConIqyC+;cq%n=JsloqhBm5fs@h1*&8c5ehvmV!WQMYTMR^*(mq)sx_5zFx7bXe} z$c9p>3rV_|o8?p=$O`R_sgO(7HxbmNx|= z6zqBI2J6&7mWMnzxt6IM3VU$DCZQs|GRJls{5G>XcN+?6zp~?bHOx&uasKNOzWNg6 zyG{&!?WcSw2mrA^VVcVy-Q2TA%o$mK;^Xdrb`$cg?22WGsAo$MYGaWgSpoJOy*S5V{sHdp_g!@RhE{iO11JPPFp zsbARNSm*h*%At;A!Y`YdZf-Zlj>}z-d3Th|>|)CaCOr|+D)$o5s>=fBoY+~k5xHw3 zl<+$}g^Dd^+8(nga8>ryxCdK4PWM`?_itPLd~_>)#trc~V;y^O-t5s9R2pbk?kTy$ zDNJJ0IHqZ6=X$Q&G(rLE*U5B6v_JYW#&2oXC)E&l(+IOhIGx9GsS>KQWEf^fFbi3x zte{b1+BveUmbA9Jj#g|bGZgbIP$Q9A9+1z?+QE3XrJF;UU-{M94EAk@wEN8hf9zka z#N@SA$4j$;LCScL<}Py@UtGC8foa~$ZzZg#BJ;(*djJ8hZMBO&;K<+VBsurizc@&t znjxCwLY!}MkLE_FZ=iYF-?S5u+L;Kkjg0E6l6Urq9ce!8qPm(9B2#8}$KPT7%2J0A zQj{43|L&ZXNyLlOy?HOyvup^F1Mp=&)EeR7c#R+A7KPyk*tk(+5{Q zXTp$-y~-_vulk=hI|fdzYrVY&3El2eIcHlPEBbh#z-J8oIJV?{pwoJu8p>NjtwJI5fJ%mra>f$SUw! zpP)l$&KlFK9yNHE9nc5Q*Ijr3aw3;c{j-F>^`Zk#{{2;6G|JqRGJRxHU%ND1MnYoz z2U8|xP@m@{prrmYoO5C|1p4jcVaytN`ZKDhTrh@d*L~pywx6?H*Z~C9!iUQ4d+9%jKx=Yc*0TQ4NjEOEO0z-`bR~QLVSMH;xs~hBhf&)_oaf@ExpQ;m*Rb2{mK))I|eUs z3TY=`vHjnq`r5yMp!hAD{F<@~+f(wqJg0LH}V8_?Zgzt6T8IY=RkriH_nb{12^0N{jj@7WosC7N=m_iqk~eFOH$4S29q&890D zgG=T)>(3&h%O}+q4BU;|?@b;zoV2Q?r`J&K5Kj-XiJIjy(Yr0SWt)>d8J)f>ULLV- zM`{}LjiEszFK?+d4@jjCc>P9rL-zNAw`~T@J%~4{Pw!wcJ=y|BGqdpBHbre?WBCag zp_+aCyXn2K4NdtG#6svQa5S(uK^=y^t`S>j1W6I;kz@aAN@{TLtn8sQP33rV-=+e4 zY(*wB(n*oN0A^<(T0)ZmMW$*RQ>Pe>XvCjmKUZ4?8YUe8g71oF*cZhlC`yHmDQ;IAku8RE!+4;!&;CPjO`XWeMn zS{?OyKOBes?>;=@kl?7iW>TOLZ=ZFeQlpip$&8D7z|^8PnBpV(;b*zoF9SUokLq>y z@E*U!6N=+rBMI8ht3{gum`}r|CB{1Dl4Q~j8sygJCzwJ_%2Q>u`U8Ja^VLIMy-OC2%Gxs<;gW|Me4m&F91%iN|6@+`C4Ama!gRV*=Wy{yz?!LSSXB`a4 zK2HWeYF>9?i83ZtNj@fZ?4SOQFe13q`qPUhioRGu?m45=+_>cBrp)r((rVG?WTpvC zm>HyoAGK&X8R41KdF5}l^RK(UZGTvluw{U@c6fd&q287`@N^ugN;1le_v?4oni;$+ zm)(>{62ML+!$$l+$7XNM;~sd} zpQF)7IT{{;TaHw>hv4QmV7)ktXqmHUkR$N-(WGrGifuG0K}GQUKN8vc!csTJ;LP?P z8_HY=0POm_lC z^WJx*vvw9}Dc;rlj1wZ$Y|LSYZA}B6Nu3>uzOnw{Bo~Z_XE!1{d6HOl9Me}sKJI>+ z$d}8cB*xDnHlr{ix2MqW_7wp-LRJJXZwYDnV1GRxgX6)aV5#2o2eAW#!!*gyDd15! zjpOMEL*GM`XfZOnK93T3*POgVY4LM$0iU+n5MYs`0wBKC)WTyzIEaU;zE>LjP_@`B80dk#m#~IfF`~A_I8c)}OnJk%6Md5V;?c1$w3r9>+^_EPI`i<&vm9 zC)Ao4Ww78!R|K!v?tWr;19{1o>76>ahUtt?_Gz-V8%0UT-!_T^P#7tiXxJWqS&R`5 zM_=HObHWWOu2$Us>G{a{AmtpSe{@}<86{vHrY<@QRhEskCM29d|ImoNmGh+j;_n?c zq36>vQGOw!*5sBFM6mnnOPOpUZ8!vy>neb5)5iYhB zYYeITJqs%=yrDimg?LSa5Vo+f;(bzNc{~QyPZgh3znrYx?Z4wZr#I-pnv4ZltC&vD ze`iLYWb5$mD>ed1`U67yt4IQB;zQwzZp=%bXGy{s`1S#h@r*5=WB#9F)(VZ!vUs9N z&POJQ_vKMwk@Th|-|pG_t5tYJUPOQY`^j8%{oz2GU+MJr$ZsbP`I?eV(PVg=A&EmB?Fj$Cs6h@*Vtx?8{E`3%zHaUjp9#V8C@1LK@@>id*;!a{eBe+c^~1z62bz7PiNWJ!w=L1}+r1Qq zZm%I6j;Ztbf1y|aP%}%pxwie>f5P5A9m74H6Gwp^tbVA?wI#Hh1G)7CTbi1*S34PeRD&N}x!hFq_L>yb$OIcDT*pxfaBd+=6pe#7M({9#{Cx+rNzI2u|48{RQ z5(`1#nmU2!+dKXg^t(tZx9e%BLJ%D{Y1&XY5>PS^zU=g{!PipD7`;dzIAjUf|MyOv zHgIn06+@)7_5nADXrM}@^c_F=;2A}C)rZV;#+Ma~n%U$wuUe&u&C-0JEut4&Zss1o z)G5FJD5Df-3=)FU6Nb~nH=(f7LjXjibDX|@da8F6V7~m44R4C$_T}du66yOV|D~45 z&wGZ{$<&5 zMDsUIJ*B~&ibb^zhBDiB^Ty;j+6UYUsOl<1xqU8&IR)Zy1)n6X3x3e;hiIt(_3 zg93ipUewz-o`#92jSiptctE96>5r>Q;H)H&MP4iE1PQ^9>!+{W8+06s-^+KlO0J^E z^6&&a-w5~k(IH|ocYWyxIYcEAOks0ZiYEu`LTO-%6*Mhwu4nlT^Q>iP*Z)6~;W=?| zOsQ8w6+sT>jsEBANCP;q;)A$AFVc->@bwuVxy8aHp?a0#&#yuRuHZ|E8I%=i26XG| z1_+Rcc+)}L8^VEmAgJTn^w>XxHhHDTEwEa0`@5e5gK}%KBp$Kg|Fx-VF2}n2`i}zu zQ=)rOq8|A>?JljIwhbyy|Jb$N{gaJJr zn2*-qo5$OsIN2vu}Hm(48rFz&)A$OTuo&t?beP+9jD+@lZNI zu9f^m4b=9lF|ING+Af`IV$aMRM1npY;kHhYb-G{HpeRK`pR>x@1$TAcWzzGV-D zzAl5xq~A9_FHl<6CFNPM2(=oX(GV`A`9sRz0=0AP z#<+6XiLX1%{dQCPpyVeQfK~g4*X^Osj7tw@E-MC=W*eX^pwO`I2Oc!A)XLU{M#cv@ z5A%!moKAPhPLKtCqpn=|=fzDVSq0`*#pT|nZgnNsW?ea^_kVbz4(O5hWdZe$Wah6!QkHu1{eaSl3;!Gw~U4fPUZ1E zuI!8PuUnxuO)u{pcSZ^L2{FC>rb}@H; zmjrD~iR^h`v|NZR`&)zjxr*{|ASJWRFEf^Pj0-V3^LZKGAoK3bKNh#^N zxjv3kJ05!ShQMRbFt8I+9`1y38l(b}%Z#y}(=PsHgN2-(S^Wv@q>R413AJhjo<3>- z`~Uuk&;QM6jn{;X{yJKnA_lV-DP9JLf4iZeiOR{|Puvn2DV}~ahufQ~z)lPZlI^3F zb8L`)@(`yl;Huam{H^!m@V=r;-|=tk%n#jB)>nbWm#{bhggk!k;#FbLg$qCQDgECi zbID$GxwIO1e3}J~=LrUZn(Kk|UER8nYL&@~pOHf^*4;Wq8k)0eqLOd#><)6+vDSh& zvU!PZt<2{F3B2#vZ!9+~?KKSF_VpsxgfhLL(6<#Rx4vjU-j!eJfBWno&o}>GGAWYz z5;Zc|I_t_OhG*3IC!=brqh{2{f(q-xL)n>eTkcNF+rtj`+$ykmTZ#YdmxBusfVbZra8fkw|8>+5c9GMI8EVx#8iD_p&^ zwj})T2c1^~9{*g^T3s`|4G+@%r9UuFu8~^mrL6+_SSk3q=J!B9LvjUqKO>jV9$V*FR|F5Ofx@Bah&`pQ3*PXY)#Sm~kzwRU# z&Oy!@qX(;yYrsk@jy?MAJJe}Z*M-kr&%Q~EW84~gx(^@LK$mOeLc+QJzM*1k}<9gf_lEjwO}=sW+pw_cKMtKBbDf}CmXe4{qhK0PVD>bPXd_g zffg!y<6;#!8`*_`bM%HnXr5*|-|~g^r%^AKoR`!$vh%3yzLwp`IlJ1{v!^XbBPf|m z$#2AT)b#yLhZ^D$kH$nBxi%hgb6Oc!z66^jqa-wf%Gy;ic6MR7}i#Yp)$hQn&q6bN^Oc4~p3dd_=E>GRiZ=*{(ptJ-GhVP~n3dk+uKJ&C_Yr-_0!G zw@jzy0-kCEb-V`>qysl9WBofu z=k=byU25Qp(Jj9eUjAku-5P6yUI}9|L}g*t@a|tbP?kxQ-;M(PTdLpAHqh-*&yliY z1-G4;gMiCh3gK=b>sS+QXn`bz`Y7CaQ8^4y5q;#nK;r$gp#qMte%_aF4>iW_72c@z z>n}S7;fEKLC-G@sI)&nioB%jmMjhz0&trCSw5DmhPxIZa*vFif2CPXu0C7#Uk|AHO zUHnyGnce_j(2Rk^^B2guAG&u+C-UU#5kV9%OV%3Z2iWw5>nA#UCjz&I;3X)^qdKd* zx$(6#S0KbZ{yDhx1ew1JM2qg;0M|+sIz~>2H8M(OD&su%t6fw*sw3g;UYSCO=#vOo zJva7*=O?TM8SvyBb2I+L+#63FeeDaSQ;FQl!29B-h|EQ=d{fHQb}P9`=a}~2Jqa~d zz=MxP)tZ&8u9q`oX4ruuU;!`dBZkdWN}l+u=|fjO0JA~Kh2+^MQs>x)d|D!yr1TE}-?;~S9z?XTF%aeg`GX7_OksrA``}?%GWH+nJxH}JE8L^}(pu=nsFk;e2Z_QKhNL)bQ zKd2M+QL@=;e^PjFTySk|(-DB%7d<|JDxuHf@OQ@1(zbb-wN49*uv9Ztp`%=Xs`!J%>scsg_}Kb1(C7Zc0PhPzqldF?t*vH@`p%~mSL_%L$@ai7pEG6O zIbDRHz?ySsAjzG4U|?Oqnd-}gYrUi5~OMxOXII(JcDaw>XpU5lG|&-%@8GR zglwxJ(|Y1;&b079es|P184&ZnPO(qwYdXEE^;|>SDbDyXVO4XTlAG3-K*%3Wei5Hb z$x8R-f(MyFjbA2ncSzk!K62BVG1^23 z^Sc4%3_e7A!Xa&0z$ zCghk1ocrZbQnP$!z^}orY+RC((_~ML%e=`va-|@}F=@)!we3W_(JZl#y;>Abi+}fA=wnlQbA6Cnqoq zx1yN#Giss|!}e(RJ*er?)Ppj8Jy@Fz;UkVK0R^13bP#@{w+B5n^-WYcfj``OdMisL z`nll>?TRbCbu|Fmt!}b#TO=#3+<$}Cqas=oIytFCO6AWYFYh?*$)oLMVGif>=9#ph44IYxmPfEv*9T^+-`y^`tkxBjDbKr4xzD@mh)EU|g^@IwPf`y6oMAw~ znLBU@oncD6?a4rGE{B6tojGU8^uEV#y5Rr?Xh_IUm1EIa<5rlzJnehso~mS72HhNP zPFeCGP3zy|1y#rH5${`zODu2mi4tM8nBi-s~ zUr5?m=>c*`?DD`XjNdA%KmE*BP1#6vlIs>^E}?Uxzt!(y3$SmY zc^e>+h|i8`gD>>D;JYikpJDB~jj-E*D{ekRcShvJ*lf_)5&3gO%yLsT6FyOj{Vv&r zi%-2}T3Yq*X)U`9{b%mQcW4xQ1ZxlxO*#<|L?Uj4j<;F;i0o<0p|JNazN`UqIIDu0R_I}d>?@xhexE=gH)b?lh15Y^ zdBTcaa+e}Ur<3)2o%x<`<#t`r5-t^SmIl;BN*HuKUDqMtAVxYIHE7nDc4a`zsm!4@ z2&@4Xy%V{YT+bv60oV<(qJ3MP;Z4xH0=jQCnPzhBaQJrq`H@`=d%q>Qm?#X1eb4RD zCU!ay2>a!);{*4SML_>R?9-iHl1Df+egrk!o4n5X*SQ!l3sidhR!rvJAyq$QK?_w@ zF{E7?eK28UO+fV_i{mQv6h5mgshqt``!hH5KJ41tlAA&ssY&g)OUS$W;HnL| zy3SVrY$6n9GR{0tHs0Up4nXMNsI&}AI%Rl!?=QQ8h(8dCMUFj-7gy{Q`wjviKZiB+ zs@Y4y^!`|BjXb6lQQzq~@$x9527;qCtO+)OROC1oG}nDaB&i2kdx&{MPdG+a{9 z`HbKba_KTR61lsHL9D{K?#}(NGBDQ!Mk%&z6P%QSm`_f&Qu6EJtD@98g4HA-3b^>4 z57Gvg!(teYvd+5)n@n$ywUn9|(tJJ(*jqN#UzQ!44s)@IDq7AnDcan@_Zm8k<<9^Vof*R0=L+Flr zI0V{O5e=^ojxEV+gyS0F7F`G=n21GW2}|jzpDB14E1#S^TklEdl@zsSV%`d@-7?$( zMtadx8^mt>M#!JZP&}q#npX5bfZ3wOE0T*>A7V zo@vrmr^1LW(#^a1Nt{DMqV(*=WyR7UX6OGSs>PNO2u$}N@2!@Q-oDiXQ_} z5;#gObO7J|M>4*WZSw5w43KwobLTW*CO6&>n&9E~R5GFk+q$d~%5Kutt%>b|Nfn%Q zaXJcgK$c|{6*kD%;otUp{V(M<;Ng4u&mBV7TqnNjLM}8H{|11RE)3V)i8O9LVGS~b z7xZPx@vMUUO#VZck;PP^z%k)^>Owqut_gNi>?rq?XsZVT(t$)9$<+RMrJ%2A=@B^q z(EcuNNqYI4!g6D0_&G9PFU1nmgu}2)fy2rSm;sc8In{#mm7CG)>^AjaPw>hgFYS7R zRd;25RvjbEtXssi-cQ({;kpf7qp9$P+aM?JYAIHO41x~MXVtoE@g37~bkVA|;@0I1 z<5(hsPd}?s{J4&O*O_mK8Ie;`>iit9D$iiN-RTVZ0Ip*bIq|Nt`rH^a6Ag`{u zd2xEDE5yqgO1o-G5*I`vVg{j=^RC&Z^_+ng!2Hz%9Np$9YJ#NWzi38oyBt=dw;8-r74bc&vKrB8T-KlnxV?gF_qc&jT%; zx)RKx3P-kcsyE`Cfarua#$K%B*HpL3gKpbf?oVhyzj?Q-VZSZLyKOrCDq9l%+0ApG zgt6mKgklV!eHfo(J0`{W5Z~rW$lLg_GsrDD+k_97F>?fn5&Phze~ir&5HY9oT7Jx$ z1Qx}w;7uuMU1}0j+_i?Y~k?6R}uXNv4vY4^p zK}XZ0dlxmZb2ZMqp4zdr;T;NR8G>@y%Txnpao^4~E|%q73`#E6=N-Kl2OlkLD3gLB?hj@G(d%5L7F2NW3A9Xt+#G2=m5 zHnh4~AJIlu!kuU%Lo|LyA7^AowOw^=TLDZa5vy}rE3BEB4D5kak3Hd4@s`W+#?rBz zmy#jlqdV7HLF?AcgoOD0r^G%P7M+oSbMGy=qxI=97-eg_qO@`il}55I_J`qz`<@8| z9&LL!EP%FfvAo+jnfJie3`;&B9)ZR!wp@81bOmKr3JwvesZWMJVglZygwiRMw-<*_XHoiZn z;w5|Chrjre!;uwB%Qw}g-u68sUX~7QMRlYXjHMF}ss|3a!>Ug`4>)KJwiw6GS!AK- zH|$87{kTFNf1LW+%8Du%^*UNYirzmtDWQ%EY~{fV!5flC;bE`Gkd~w5+EVABM_Orw z!M0!){{NVOtYAsU^e#+O$D`$0`^JMPD8G^Ji~aBMYK7M(4_0o>~)*VNr1 zAd&~@O7(f;Xc_1GoLju1RIFf1cFxjze8IdE$Ay(!2m-R>!27TfV-!oR8wx#5gIPEK zwX>?Mm$5bKw8!fqr=W)85AL&yNPKuh9g?SbAEJ+%X3;Q+xT;mYi9)6_O+F{|Csrtk zuGn~J$1wRAx+e_BwUroU{BVT?;V1)o9$Uq zM_2+92k&JQ_?6j@7<)t63YdlYi|-#K+qkf|^(!Ci&Jk**ijdG}3J}9c`GhM2K0Vs> z**W~7DZWoLFch8#+ka7mH&LQK%In6=o$B^Ru;4`I^NVNQ++%V^4lKkuL)B#Ayz)13 z_G<;VAyy{dOD@c)WEG`!Nn($ftWQipU)dQPQ%aeWUK26D9hgRTPCg6-Lw=ydnDmA4 z%i!=M|8n^qc{y~W&lQr{h2{SmC=0R#+P0$sLl{Y>P%$W61vocRC4r%=U=0|%7!_^= z=$%fkITgeivotT(YR$@D9bDRkBy?HeZ*aae7|S)LJ_LZ1vGxb}3nAag-WC-~nk9ZEX_ zpDFdox2bQd&m?iQ+G5_YN=M{ANl>XApb!WcPd?iGFf)Oq+h|(&7P`qDg<&xN3wX3Y z=C>Yu0~(*JoAza_kg>>vKiZ36m%9JvS9x3D0k#y3EvolN|jb9 z%-uJ_o;WM`-E%J!RvOGFZ4sjpnuE8`($lL&zZlYzUh*-lpPIcg#elZ>_kLqsW>38X zkR2B+qY17nC)s~0isqI-H}T!{8`*s3b7P9H?g*O$<1|yT=c+{HXSNt!r`nWz{v#?_ zDH=ug{mm13=Y-Z4Xn|acb_Zj&E22=*`Im<49~C|yTfVX>y5hb>{aAc*(NO!|DsZ#y z$LL*wjKTCGk;0s@4JvCLX^NlN*Mrx;f#V)7$=C32eZs%*5=<0iv z-uy2?LjtG!k9nhPa`Y>jL7y_BJm9-cj{G>=5fcB2cH85Thry+3lBxOuQ{7}(2bg!c z8A7bBZH_f2*OI?dcf(AsJ;?UWik*ad&fzDE*@!2 zfX5K?6c5W)m~oTEXoDQ#1Nkz5*Gx6CKc7NzBbBy>Eo&%QWA~sMr+m$7pl?~7vksIp z#2jjTu>Qo63W!4qeYF_=+YLjDe^F>D`t9LkEbyf+xm|YkdSU;bk2+W*b$S=&S9Aaf zs~3_3p6b&oRGXfu}n#ReOH6wh|M zCUL0*#D%4rHC_7L4z)wfB^Ny&8J^_RzUH`XX)M)8{NTyr>`go@=3EW%+`6md=To|{ z^&@tH|71TL<>aX#E?)TzO+-^C8(9$_pKC=RLT=xl#-FkE5JV$|`O7OzT~dA$$x$*7 zg3%_eF9BEn%8>~+nS6LaEHOMEv_D^{NX8X26D3fhQDJfX&sqlLSy-j=tj8Dlw$Q%b zIkL3eB+&kmn!>mqYka0{w(?VXb4Pu%`)Tz7P8>Igvu9KxW$+64^JhiAczO@^Wx9OhSsUmhX=`Qr zV){cK*f^E*jzajpatA>;?nYs6S68#y=our#63E1&N%{j5c6;G6@M-b$<2M};fU4Ok zHqnIBQU^kOSS0iE3`}CPO*kR+K(|u5*m_F)9%ujmJCmpo_*PW;>7HIUCgDhhc2V0M zy(y#4z|%>1$0APWj2tKb;1aFl%0MVNCDGu~+M|ha)=PNbew`s};SymA=cj~$0h1=+ zTd=W7j?cSp{3`*uqD5GG2jMp}FXkE9^sBnO@9D(xT$>;1~r)!edH$TL-mi{0KnOgqNR{sjbr7unb)y>>Kw=r^^ zxbTMr$459kAPfGf-1&3%Dp}ifCXkw1ny!6G)VoBAjf@E7%liyD} zZ1RNu`y0*~1k^Mfcsk^QG4q#Ps|88ihfOfS8dmRD<>;nlUe|U++YamvmMFLsW1;sX zVj6@c|@C$@)j!9auKOb%6=@$wg9HwoM(oEZgkyNYvj+~@aG)@s5>qk|w@4)4!! z@PgLX5_Mx^chyW}yAt`XtKxK4$BLo|n+q;-zW@h6h#8aNv!+y#!~_?UaB26)(p9 zTtffp@Jd{M%_(%S%&V5HK~LfCD~H;CCgP@;+*Q%gGgBHtfY{B)@EdS!IW$-j8K|M! zI8>fM#v+1tP<```jW9!2=VNY#pF5E{`E2yGi-e1qFD7Nd%z+iSr}RaxiQX&Tpcv_= z!HYXeifZ#~xA{~>CBfVIdM$mZFOo%r=L$)p({3>A{G%lhzUO3H^F2asjX&*3? z#g0W4g#JdfoPY)R9AygP*i|<#Pm!0(cA4GhNvm%6=0KipjbwTuI1n3^e;t*j>N~dt z1O+mMr{kyk%hpf}-egqUW35C&Y+FnaAYikX>%Jh}nMTTBaxx{T!o~vMn%Tv1pdpAX z=TV*p;KytZZ*(E-IPgB$c~eY-77HgAdhw0f5c7w$K$ z+8kzHud`2_S6iQfwqX%uPXNnlBCw>~ak-FYq8Y8elgUiZ!O=Zqtse;RqdC&6*K)VB z#>lw!&wMr_6h|^ee;Iuq&LdViu#$Y#d@|*4FHrVu*LhVjJ1!(nj>B;(%-Tw`7Q?vb z8b*?4>&&Z6w7albH|f~*dxCCL4Y|LL)?t9DUzk$ciG)B%L_0!1Fu#Yu&W$S9fX4z| zxel7KNJO5*j(ppR1!b)mPP1-ybg_?l=Z3*iwDlKO%=--xUVH6PfJ?DNZcHd-&~B+v z6OpL27sTkrd-^O9HWpmy=`UgZ3A;%gJ+=5k&0r&&;y^$$EdhlXm(9ph8~^E%DsX&JfhtuOrs7!>VY_;!#M_+LEl+1V=H;z4ohp z68#t24T5%}Zd_D*669ltWz%UD@e2PW_JNkOr2E-2&xRBj6B7dmsD!N zq7y}Fa`a(B0To4Po4sVV!t>SQP{0-n!b~#YVE-z~8e&l}dN_FA$vF|cZU;jA}P!f`z4RU=p2Y-EVu#{$H z`XY4ag{%1J<5a3)`+~>C>wN&SF-ZZ67ZBZid+$Q9VWB?|KmZU-}_{OWsH0^ zyR78jwU89jwXxAOkGjz79-Beg1oAS7qBhAd^gr<$HrU;R{5VFt6YobSaI(kI@QNDB z2H15HaB$P@rB{G(8h{9&y|*Swx5ffn`MdS{f3!n*WT5jSTSLCgCZ`4C__sGN98n+G6yRX*&cyMMyIJr|$I&dPrz(O5nf4Gk4s+ICxd`p|R(H>j@ zJ?NC=4+_H?J(XE9OxeULAo{P$FIP@glG#FFtBl?#&aQgr5ERn`8R(m$*mBd>_X1-G zlcGPLv8!&!dl|<3rwUxir1ot|)-oK??1)RlN|VNmUa&#e<=S>{vr4T=6oVXrX)*K{ zIxx%7B2>zStz#kzbWO-wtP|pCVW8@Qp+rT0(HyJsV4AM=xqK@_T-mF zD^|t;xJ@Tdep)yK8;g7$yb6aNfP7ahc|zLU^zPhsZ}&{F3o`ZZ^27M(D+c0>ig}6r zL*oLVr?ug?^Pjezzx3Y_b9f}kB38v3C&JEV@pM|ofz@Bv=V(xynE5$dpwlEdZufux z3*Eo}?u4{6&-BflReyLjtazX;c0-#F$kV7gd>;N84ah?x-pa z^J4C)(@L1ON}# z0~sg_Z~@SW6h5izqLp+d#G06QvcDXR(r~6u*>@h5alj~1NC9zAh^x;4XGx`ByMD+#E zjc!x_Tj54=UZ_DUXs)%ujadBP!72sSfojc<0+G_HDD5H-ow<`u;y{6vaAENEhGE1G zsN?TzEAm;W!{_@=ZSQDhBLr6R+1i$<%c5uRaL~ zAf)*M5wEg$fu-#FklUpWiN$Zzk8FR^#}_!Y>?q=Yg@YH{ITp%EYjDb1LJ#g=|E1x<%lQF`d`mv7O!$2~9xxVPO%*o9$(_I5-zts{~bC|q{= zq6Y%)tzU03ZLg&1S+cy#e!e%tMyQzQWHaZXP6QFs?9#xT{&ouQ!}>w5R!=#@L?Nq* zB0pNn7;5w4oKbe*Fb>VHiL=sMLme-R=oLsg0aC3g6Q)~+-<~>-z`R8jUB$5<*~#Gi zy^p9y$pQ4t(j5Zece!*appPfYitHHIPn@>rgU^t zb9Exl0ESFotY|PR&sI)x1nooSp;SrYG*W$eZxvO_te;@y-&(1^+(a{;aa17V=xB3I zXs!N<1JqfIe0^5IJ+MspdmNhB{tplGUUux4v7y4B+B%8e7=^*piiEHK?6IyL=-EMe zHBlH3?%7OqrE+z71MrK*yBs=Rt4Ztsjc!?byaNnKNpGf@TzrMVEKY~?ddG!gDaLsm z%m>hF{)r;z-P|ca4PKRF1;DAIg*Wa2=Nei`q@NX6to(9f2jBqVjTUNNDvBY|@q0hU z0OZfS1VYs5Vn_lC#jD+q`+0f(K;$bt2j?US$=!wQ(<|5O2BgCEZw?ib7}{MZq*m{& zcJ1s5RSh&@KBRIY|5hHSTGr~=gjLyG*ZU-EuOv#QevBeXI=#JJzv-(8?u7kWPRgq628^$PCS``+7c&7y*gcy?{^>I$=m0VjXOn7hHh zRnC08zCq{Ii^EH7mCtMeeVL@v#ff+@rMfF3VvkJFbPIZ z$;E=Iw8iqnex0eQu`ZAeiL0mJk;h!M{M09=LhD0I9dLxZDCGVlKIIR&`c2lV_t!x; zGp@N5h)M>uo?kYq5Byy|yu9`z_Bu^iInUZJDJiCSISLkvK7{6(na@Qm%k9kub>>-p z@$*Wjfl@{MD(dq@iS{)Q4PIu4%PV;LJlS5OrssBgkt5A)aZls#BhQ(`XsRLm#r(;= zSyw+WG8q$erTccdz~PZlc%`IV!3O(nz$9*naK%`E8`w92bjL+*VB8fqn=}U6tlYs* zwT*L4`IV-j+qVOWOrEsZl_k=x6D%wlT@XEU&vWC!uu2^pD2crT_NfD2hoKz2T5vBq zI6uw52c#1jiIJ>LQj6ki&+YRFX1mI%iP>;k3;Qf=q04+qf6Zfhp0o&05+wcs4N)4W zU-_@XQTmCZ|E-D{K7lFG7jT3kWoCCOdUK}le7{TXI?L^^nn=_wr`uR#4ERV>o!>|B z=PZZa+6~!M$ePm9deUj3(~8ozkvzsM^}LZJN`2dc0D?e$zhVnZ#oks)#07l~V5e!V zvJYuNr*8b7178y=eCUY*0bRmbAXAxfVDODB7K72{zS(#oS|uu^Krw{}TT1?5H7H^h z9=&}Peh2B*5KseN29Zy~&S;orM4qEB7th6Cqibu{v9z3Cuj7LwjU8C=Fq@Y_{$8KN zR}2xklaWT5!0KcOe~pQJh^V+yp^}XBAeYMOW~oCCnw=Yu@umd^n~_ZNagct9)LZk_ z8d-}5@MPH77lz5=Yrh#iOB*wnRJ2NZ$V&Vgh^zCt#o8R8&YxS z_aw@t^kL0qi8?-zq95-qK^&~qh}@g0-V66)j5=FxdZ{Jj4+R(r%AVDBpa2NEF0(H| zQXC-+mS%b-9P3yXIbd%#Lftmbv|_X}cmv)ZyH;Tg+Yy{ zPD~4|-*VwJGHSO2l3Nr1u=}!3CtRt|ThEEVEoLDp9gh=WxIt7WM3onXsnZ4w-A3M` z=OzEToAIia(?Y5GU1AMX$rr{6)osXs|Nr_^1BgueM-;Xk>gaS6-HmyW*Oy)6GixQ< zk)4Qt+RVBxfQhNwdGJ(Zm+(-uJ+>2>P@|} zyrDq!ro7isS62#grAnAOU5L$m_ zQM1rC!APA8VcTUm-HtEHkPLa2QSbx{qQ6+` zK1VCAd+eGXfeJ;5Xy-b&S_svhs;n~|Hgfb-SgSVFRBWbG=OhB z=?NmcSIbeN&Z1Bd|#~ zU?tKN+TpcUZpW7I(#WU$(#li2lcmfjCoXw=W~4Zq^W(q$PyniNxq&wJgpeUiwyPI- za^Avz%)V@Wd8VyEmm0}bs{Mex?o8qcFIz!2u$92$d+w*9Pu$D!4*@Rqg^rxSnsGB? zIwRojkQ|*$O4!0yCS-%|JnZPv7(Z~68Y3~vY^Z%4@3+r!v+OL*CeyQik%{0z*dASTwCGC=M}%I>y{@>WY;M_S^w%beq#`< zJR-lb_C+6fero{&(0su*n& z$60LFgY@X}r7_z{%8Wfha;ad#A6798{zxZCqk4lc*X>GO#EnFt10tc3^iN-n&n<};v750@9TEgROAaS<73Qq#%H#-0u%J^Vre-6I!LMbC`CM|}tN^AQJ75^gFfe-Qg1SmQUvUno$xN}tx)prFim z1!bxo-HarQv#bV^WJRj`c9p%FjDO(Ms7u3%;`0TKEA4?Mjbja)-^b_fqvhl7bPvMg zK}_Vza<}E9SF5saTU+Wu07e7(2R8=m|3Q6!P6`*0^ejgUl}7i5;otjZ`O*&y2z>9r zl&mEAj1cA7N7!gpmij|63?1oVlTrV#8*)ZtRk(Y|=~X3z4BAD}u8~|w&%EZZz;4Q1 z*)T_soyMG0v~XHRjoD}6l6#GHoq4V81`)>^;+ z7ws2Sz4@~^^>2ZF_^?sQfcB&)HnvbOWNLmH{vedAiVVxW7fTTgSA}DTdE9UTH z;8*Q3%%TQPKm|kHUP1e&j^eGIz_YK)75N|UH_qSwC=hCcjsA?QYNnOqIfH9&EwA7@ zRC9VrcELIhdvu2N9&BnT)>{{-OEJ~~RwlM@roj+;*nAMdiC{`WZ!}*3les%37OZ}b zh`N)Hpv#jzjr>}w&8o(u!dD+QvBpiY7X!3ox00?F^-LaRhjF64qx-eL^Ybs4{|M$R z9wK%q(Vn!l5x8DzX4epGEU2hSMyAG>);@%-5wkqt1 zDm$6?EWK0~NrECwQ||qGU20JZA^C5akyG`8ysK*XY*QnJ9i$2WO0j=*9DmW)-jtJX zMc@~ii5ku`)w0RI24p3W$~s82*qtF}x=Xp5zw$v9o3U%OD!j&|{_-b;4mtvunhzZG z%<(I`mnaO_s!m}KPdK8yuzYD|9E^n1eXJ}pU4bbq$m&1;^Zz#B11SZqhPk(mEMUZ9 z`SL13P(lI`pEYJO!UM&Cj2zmFmshU)tL!6cVT-BAn~2{_YG_yfi8H91uB3fa%7w!> zFaX@4D6jho3u#B&77?;7*{@K%nD#sqB1QEqT~DIE<3OunqWE4t*KUVw&F&51 zK!6p%5F>ZQ5RhD)I0I~1*_#7tn#0rH^uPJsmv)72dDRSKY|g;8(np+n!m9@6SYLkrWSZFb_{RoNRP7z{9^Vi))|Z z62rs&yr9#uzj9=CE+o`JK3i2drVJi368e#Z2X+dA0;@-Lskm6V>PN9@}mKs|D!Tv1uE{Z$uNA}--Nm)pUHek9x;K9YI9MnG(ebsb-5!e zfzmhS569KyaAQan2#=PAI)w@G9L=*5%-0lFzzA+%&>IDvsc!dx5ETi_KsBJPhq!=0 z+E^P<$f%{%I27Q19fS*TXmOvo^DH+qOHAKifc_@xBMk4Z?Xe9+p*9z%%u)l#l8|>q zYPYeTSS@pg9yaN6pY7%N)@!q0va6cSra$dgIQQ{Y=L}>W(WABCLY3#qxswx1YamkL z&e{`s=NRf5l=0~VqV4pq(&RMhxO?e#>L5?TbcLeNVV<;g>6--MBLu^%O+re5A+n&? zi^KA(e?#teB&q-Uz7i@d!Ksr|1a5yy7S#jdW57~r)a+^2jC}>TN0^DC5J?cNhVPav z@xIfQf`uMomjH)qr`7o-s+p~5Ng@&=rlZF2w(d(wCI*tC=Sh?DsuW@jL)jg%yp+vJ zgutt>?8^xH%{9a=ypl9l(F_3gS~|o9ZMU3vOVIc|^TE3VFjc^vvpJ3^vQcYv1TV^C zQ>Ch`2bvt&uqOUFJ2H;)ys|*qA6&pX=5cB&VWYAv8qjskp1PK5-eEaYPg64E&Ex^# zKSs@Hloi3(z3_y~64BdRvste>A29#=^3tnFA%>o=Kbch5C(JetOiFN|kq*=-SZfQPW&0HspXneh2nCOey+1!GSA} z*#~0<@cNMI$_Tbqs#21N-UyCcFBh3ZsL-jqGq?SkRQqAxTt!?n;p)w|LW;(D?&(Qr zWkT6vS8vO*ltm}8qhDyPqK7U`-e6q}7S9oKUZ7^HP_)TJarjQ+!G>n<08VHx+64}o zRPRJ`zuV+^R$hd#6XS!{3pN(#Q4=ub?)!pcbj}~!U~_Ta)iLs z;oE0(e1uf)7-E^P7Nqr?FCaBK>c|h|a87E`E@2{UMaf|0C#9ySN#atGh1hv^ID3Yf zGeYw(w0?WW_teH}3`}gjRU|QeBg72C!il@_EfmnOqvRTq4L}gxn(K`0ri?=$^A)Av zvJfc_#7H_OAyh{eTLviQF8_{g|Zh7|xGs{q+#my`rrRh$qU4c)*aL4eM zGkqQDU)UQ+PE^dVx`K*&hzZA;!16}FrzA>vo#Vv+#a~fPIN*$6leOXmQpyy&n{ccK=0`>j zvOxXx5keR#>EEG1+XUgo({?lHNas1Hcz*pxqxhp@ko!-qn4$A-xVH*CjbplN(q$9% z^hi%bkX%Om1EmWM5;RRm(@8n%^t#mmA#u;^1qAd9s(7mZJT|XRmN1LKje242AShFhS0iP42nwpHNbV{>anj~AAtaA6DAu|*kGo6R+kbcyn3RFbAg~WEMaZGP)-p9zabl=8}f-0^6u_Bx^`m?kxgHBZ?L!+@r6k| zhsJs3bKBJ`dh$HP3Omp_kYnb(->483=gB2BtcYK%P4(!`YIaM{|DVF=>sgs)RafI^ z+BvL1&ar-6=&A#HaJ&muwL?{8+lxq)PkQ-2f9g@7VBspt4 zP77YIIb-ClI}tMt1EDFx{!dF&6_?GIIx4M)>n|vL2#IZ`F+|Z!d>OtX5{A1sosa;h zEg7KI_h{vUoGhE7Ik#d-%&I?j*CM$H8?pS!c$_=5psjYnm^97fIpcdO922dq&1x&# z?o`a2m|O@(QU=Q>=%Cub(sEf9fqtn+=)4y>Q_1L=&)QsTxZ4I>QVu#)6lp{i^yjx+ zsjJB;;U&5QhEm${Zm#&bXZCNlJO%|UXDBJ^dE7Y-BD)jQ-4xh3dby(3JK>%Z<#eyu z{^&Lb1P!Fg%eTX{DihNr3wl+BtNlfrKGILfm1d0CwTL$P0e>m!rT)0Rrl*VfGUKI$ z*(}bx%!X_4jRpwaS$E{J1bF3PWD%~we)SM~>$!a-TY8Mc7fdvB>^SJ=2fe4&aZ&+~ zGRi&xft%ngf+=i`*FE+AI@BNUwWN+>T@4>7I$^gxXtdIHs<={){O~}~7j0`?(YZX{ zJnms8L1<kZQ$$@5uZ`1NwM%+&;ksienh$aq@(#}?(4U*D>prwb>K9f zS{uVybVwi(b$Es*UA>d=!i!O{r8alBWb{MrpDU!o@mPD-Yc~LKP#K;Rz_)xyso!TmCb?LpTWj{msYF1ed+BR}Lfo#F3i9Ed4&F7GYpP zjW0&_G1mQY<>ZB-Zul)YNmZ}RE)Pfi#UFDC8Z^#P*`cv94iwDtA>nzgP0qq-VRvl_EDhfGpB6~ z%3kL=4Wgc)8oR#&cEWf1sHv1cH>3(l5PAyLsijpMI>$vXd;epKm1vWoy6ZRmJ+E`s z$ij?xx&Hn}P!i?!b~=HlFQ64i+ej~V)j6Zn4oe63RR9B@*A9{qQK0Jv_Ke)yKI#zR zP3!*nnc1hKj>7of+--AowVF-epCxJ&`p{)^2}Mgvo1A}Wlt4EEJFx6(J$fG*ta zLRU|koz{}qkj2stAgRy^!a|`R$TZEL*xAG8X$Q`5&=ujIDvccCH8jQYbOHQ{QwZ3=U@Yn>y6EZHTI5w~aR)vNw$Kh&^Eu}o8E6;)XZfj*5=|0)|?5@&PV;!`%}TK@Zj4j_K3Isc}ebZZh6k z1|`0pyL&iZ)l592nrteG+W|x4)v75SY8g+f?`1(YsGf_V=hG<_05EzynR|=We-eS2 ze>U{N88O3&r^oxaYj|bwgadj}*`^nsyhRv^Ck1e()02*;()^wrzHS;sTpVQ2#Lu5JBC{dpHYfmOV|VDB^h9FYo4Np9Yo7b0|qgu8u}ts-f}GIZ$V4^3hStF zlk{j}wZx_Rx%+%YO39;nplxNQ*nQ}dhOhv+P>~K&=`F?(j zJ-z%MrRq96!ojc}Xqa%Nf1LkqA*jv-m~Z?< z^|aVy?Z*-dt_txo7y~g*8`2vhX&~M0Z6dXJi3J5nHkZ&vJKrS>rk> zK4{qpz4WY3Fxnri`}`696>Sp`8trA4qICemBf{4Hrec1EB!XB;&4&Kp!bNh=UX!R2 zhHb;_o_V<;%%s+KI6wMuN7~;qyI&m*={$0=E>@rGhKG#Ick&*N~i2w2a{QrtS z?Oa(G2xxpYYknJAu>xYeIV^6e(N0d}r%DYX4pGB(#hD`k#49a19kmr93MIM8K_zf2 z&3tRPo7zu}^UMub%L07Qytye9bsan=8W&N8J9)_xtCeiG@&yViKvb2Cz;(5ZF z5!-?BGsXFj*Z;3w>DkHpSmR-a*|53>qE2x}r;#%VZxtSg#5zH!j*LLk`RAL)mtCm` zwgq!&5HeDaYcg_-_|9HjEK&Bp6UnMLk1tW{o(3`GJpQ9FS}12npZ7(Ne3pVg zoy=CE5E41e%5H$Ge`_-q|1+Fv*w=gi`x*?^I$!1k(;1cYX_uN@FH$A`_~#O?^j4S{ z3O9LrlJ0X=!Qv?J4d7#HRhb`?P{^RUYPweG)f7nx21L{q5;0T5zbpdi6+6QHurA{J z`#NnfzQEUU7YbWz3v>a(jHkwyyZ|9czAxTWOK3BIHOU2U1G(@AwvLf<3Jkm2s+AHT z=jrDjOl4&(WJhrV=S8f>EpWBBAoswMzxi*a!pamd+F zO=s2y^3jx$$;eJza(1}3iND5@B(yM~!Lf%8KsQM@Tm$YVR0nFJJ!v5*#0I`&_;+0t zsK~Hl@&V%+PgFCKT4c+AH7jjN|J_Ub>LD2?=Y2g^c<(P6O%D7@o^vA=+2&SxE(6ok zUQ6)bB11GQR_7D{WrYyX(ZG_+_$=s)geV>bpxT}}_jQqIT*(K7BR3xdzl?4+W)%q+ zprWXK@OG(xd66#N`2bYg{1saB_EnbAmc2@Fj>0e91XLhA;m(^~Pz^vG>J(cDUvr+U>u4B02Q%Nl1uX*Vs(W6J6IH~jB zk<#y+o3}ht{No4Cc;+*LOFpr@q`qla0RozCz5VtNV zEq=SXO}K?xE>+cHl=2zSJ=tdG9=W2QPh(v3*)EA8A;w4#PJf>{ikk=)sG+ptRve8@ z@KdREKmMB*?4dL&9TG?t&KX~xj6=_BseZk3S449G^X-11^q$Hhx=>cA*0iRcI68|x zym=_tQhzB}YcZt1?)c388&`UH6Ld&tp2br|l5SlzSW^jOdNBBzZ$8lTy@ES5z^7NF zj8dv|Cr<6-&V&l;jru6(JSPzE+R%JYux%BAo@2rSi_!lV*3u`#PgjEmBPpD;pa1{= zwni9^*h0M&d!_Q-kP&2VvOu+Rw1c3sv zm{r>Bu}!t9cFn#0LJpYv@K_NLe5R)ORTY9JIBQVqo)*>6#gJViBbJX#RLl8{vNh|t zy00opn01NbDpr>BmpN>*4SiUX?v zw9$;z0O}akA)GS?Yai`yTMwnY@%RFR)%7xb=N#!z-EEZX5wcFKo5l#wcw1bNB`ohA z#aMj=Mrh3?Uv2ymLwjQJDagp8HN3eL)LM?$Iiq*cl{Jg^VMG}d!xtii(38CZ%K7Lq zcz@cT1@GGC(_^V1CbL=BZfb$X=Z(|?OraH5W2G@Jl}}T0nJen=CD{Liz$dF}h-^+) z0GT2KUCJv`R7w?L(ioJZY6>;TJ+GHXx}o%Wck>njdb95rz5~2H+op@v zFD1=f%#4${@xv9h4xo^Se5=Pb$QeQ!h>kil0|q|x>y5Ea45=|)YA#Xd!x?@!aoNqK z+F?|KR8i(HLQUwC+_D8>hoF%_1i{j0|<61?XRGu z8^DY=@Xr>NgAb*H!%shas5m(ks zVz3f>m9XB`MZ2QBd$)CzVkxkGDH%NwT5MEMaW1D6_cgi{JyYKufrQm~!f6UDSP^IO zv-1XfrDp9X+s{t87Bz9Ct1C#Bea`p)NbJY~PY#9p##U202|oY)Xk|p=tq2E$s)T?( zDlt1zHOm7Vc056Gz2u&=Zn%-kK4Zx)g;ZzoI2>%REGMS-;Nt&Rd0k6|y1Ux+xFmkh zvs?k?!+E#Q0}ZBzOo-yJ(F?_)Z1M06U+;-Y+xdvB$SkTvFP*^1Js8iLoDy1`yx(SWNu@9W-p(W*CujwOWQSI=9e=q2tL!EtyxJJ-+0 zOWb1tAKDxr=RO)$h2`Y#-ff4n#2a>bFAeLoz^`JYR#TNakxb63bUGUr?gj(+Ubjz_ zrJ6laE1?jD-ms7c!NR{_InRk%b6naf&0mjpo{V9tnaxR_t+|gTVx5zf+E}19Bzdcr z5;9GrQqsJ%S(R%xwR*8Sg+Vw#!9!gI=AG5lq2MUJAMt%{mJg9bjllj}mF*CJ|Mq@> zYF`f(x@D;xpeX=ys_1axGPWi$Ao|9Cgmr3Djd^g--8sukuBbtzH4@RN3&}G> zkT^#>NUs4y_kYJMj<4U`&4R64?-NJBTCkx+QlB0$FaY(Is|d$_pR%MLKd5JfC2Hrw z8Y^Jeywf^EYiq@l)B|AuK?&oLjex*fFm0L#jSn54wWnZMK7nK>i(8V8Y2L- z#W=99pkUDKWehM^F1}Z)mY(+-;SQ&0b)c`5ux$8rWgN$|!3O-|AV^b$A54C06%f+S z8$BD0`j8wJ;ar1La#%sB{k!xo!2S;xydGRr&ROGUXlpBebRX!LKzk46=0-a zY5s1Cc-v_=%+uCy|(W^pJ)(>v%G2N-j6Gh0ejZ-PPK zE|CvF4(H>>X_Gd%ZFAgkRM34kS)5jh`_Ki*dBIDSQ;*j#h0KY&d`=2>IkSllki?}M zP*wSaU=8{6X$P|HrBw*Hm&S~Nx-EIfFEt;j*y$a8vSBzi>pk(w&pPsX6soW|IZ1M+bBKQx3uXgg!X^Z z6vk+d1(MG)--ELY(qgA0o&&V+aez%MF=t#PL#Aj-fB&55R`xHsDu7^iSGq7Rhjf9@ z<&B~^gepT#X~Oy2~;2E6s<)1*EvJ1f)^wZi)f4K;jo2P|zo=6K<5PbFKg4_~-UEr0b35?=0PZa{80=KB@pSzOs|t7$O0+&Mxu zAI{iN4&43CP}Dp!M7qg>L|No3xZ|0W7rSqs6wTEYLqWH%BzN&yTp{8dACI=u^%O;M zk#)**C^`4mOs^}BHkF?!<;~DeybOLbo{xu+m`$#f$y$^6jQf^KAI9Qb6}7mZ%P^yt z5b)-BFLdSWs8e{c%-y5q$+CvP&FH!Ecs1--yR!UKhAn^+WDXzYsQMfKMwc5OFYSF_ zf{$^uPci2~>pH_mlDyZOE3=^ALkKXHZBhF%v&{NI1DK#29lXycz%vezLd!@cz?}? zYC2ub{@0mCY%nav<|cdzuG1hQam6tX+%o|S+Q#4JjBZFki0%#w;XBV`D_qUH<^S-}MbSRFFINuomE=L{ZGI=AX$LiVDrUqPz>r=^JMf} z#-6I8Rk><3g}xkXkgIiYdZ0SCx_EPoD=m6qq71oqKEBS{gYSx63~i(vcOOf9O9b77 zT7~ooPZA{l0E31@=qK`lAR1$eoMZ)mKd+SlTx#6>swEuU+q`7I*zdXqoi~$bi6I>3 zP9WPKfrcT_dT8z{m;7wko6_=}gOWMnC}MlLrhSy8RP>+GSuX8-c;OyNM)YF!^%KGR6* z0XTtSc3@GQF4tq|$`c|ddR5!*KwaWbuodJrB;Nn41#`IZf!`Q7P4=6W#vN9wTLv-5 zGL{kfL23*{LtP8iKuUK)5J1$Vj(0yp9@cz16&JPq+@Ya5Y*EDIV6UOGnN`*1%dMNf zizBTyD-(KP*Cy#(i9mk-qOv9FTTl@ItQ#Vd973uQUkE#xmud9;<_|CPkOFNGZ>5j*}$Pjnb424k?)G7DuDOHTmb{uVusP!&Rl9g{Sr zVQV#r`Mz{JGNS6Gk+q`Z>vz&!t1Q~V?B_9WAP;vNj>e5!$w8(s%fs66deLNBtxtG*XBXt??OHRSg>6^_Oy2!wyA3Bnr{(VN)R*n*0Dk!=$K zY^s7&MxOv;VMP)1>E1+1X$g`0_8HqQZ4)HB7m9!JT)n`8LQ;x5da&Xa* zdn^r}*@wg9Jd&C-;TFCgc@mHQYH$CkM)O0e%*n7-9^>pRJQE89tg~A|YrK33QZN7^ zt(9MTl_jx+BzwO@HYE&3&3Gl_2YCqpGL3p&4DX~h62`FO6ZFH3?DY_x+_))hA{X62 zyIvPJCd#^%hL>u)^Q=z?P!!3;m0mhLxAz$ujJVP!gBZA6eRtm9F#K`+=^W@yVOT|` zo`MpF(B}yp3JL11p$_5fs*KttWq#EeV@{hULHvJ|$(KqjiI}5GDv^ax_z+2FLVmY| zi@IL)YmWMRrt}+y2Iv3Fyu}?`9niJ#H;~7rJ+_eT>=C^M9^j75`WSI+rDcLRpgO7^ zK2gk>)_CcWY#`cHT<)S*6T+@pMU;iz&p6JPz+FLoPaRS^*^LJ+F4z~8$^k*o;wbos zO8Wyx%jeRTq^GOLH;?n<4cl%eOh1++u(!AwH0*t}##x4~3cvr|Y;iyTlZYe$&NH9J z-_FdGM=aTt-oa_uQ54?S!FAS=l>fk}9}1c0^Iu}x=DdU`Za7+!PDfXxmxpyHuMa!F zDUgcaG;nzEK$!DSsro^AW~r^=^bR?y$1NdM)|!IpB%w8$20HO*Oqq)6mu$ux)68bv zO6eN2>A^jNLl=Cg8&>I!7Aok4lLP%|_7{3zqHAhI;%HYa5jiJ`4-82=S9(zbpjvpY zjA*Kdw8mb;Kav2SaKVop;oo4~bjDSwd`P0CL zu55Qc^|f2r!5`|PB8POtN26EffnjdOdFr=tH(N}WGukGDf*n@^d%6?=;QD`?o(%n+ zCnY=-z(gPbbV9Dk$2~a13D!3g{P^mRH*j`mZ^T;Bf!`nr8|B52nOjr=@%eC~C~{8L zY3CX4tZ)$TTlEXG>lObpW@;Qb4@*?rgjU;0sSUF?qtc|As}obV^cn?i!Dwh>2qv(j z2OwG=ejdvhF&x0bLg0Y*5GqVfvz`B(!d++jIXmy}h_Y;PR&i?YtTh^j5l{>nkW{7A z=12mrpXO{lCs2$%j)H7JgY)R=F2Qj?)F80q|H86TCWF#};*@z|h+i)D{*^WB(5t$A zOk92Rtgbuic|Rm<-l70$8;yR-pU^V#fePZod%{nKCHyMPw4el4Gf2bw~5{HWKE-+}hK7F)5qbbvZi)JACbz>DR zbWi=2`h|YgyNXl22m(3q@=8b7usbN^{v%3}L(n?nHT>Hw-7TVYpsCyg67md|4Vi`9 z{>2fe9uhx2W1J=J4TdA^5ybY~dsDvPp##lm?#gPO${dWom7fX0+4vRU&#)k*Ym-#)tLZh!OPlEN^YYe`fB%Pz+z`RL= zxshTR-Xw`m5qbX2jUUM zZz9wZ0`lofS!I{9{f1P)VITLrTU^yX<$WqQ1Z^A!d1H_ESLz(|YD;TIUpl{>JKzNb zvJymTRd+IOG(?bS@z6jsp(coy5@PQKtt_L`LblcgopGBk05?jb;PQ;Cgp~dCV8KH# z92uzjbHpM%t{jDdpkN&2XqC!KlEOio?aZ$;ND-Y<&2O}&mH)&(h&>cnGRO*y`dt+| z^Ke%pq5Sd0DYA0Bf8Nh`9qRH8OuDlQcu`Av*zv^=k`JZHSGVI^(dppluo}HX2K(=M zGq{2#a`P=>N7s*`96g@;Iixabd}ey8xobq%=^aw1cDwK8RLvxeNK2OWS5hMpPmwrT z>92`$rt0gM{>pXT)M|(z9)1LtpE-P^8=32VQReKI)hq!Zl(!fDuZxBy3xml(m$i-< zq{~VaYdE##z-h%+mD4081^GB>E=!9);Ki zmtbmDDy|7G@*Y95cj5@NIPTBx9MUs8od=!QlE=Fvy<5vA2rJ&-^z>wN_#7o2w3saD zRZkqP`N?>+Q6(X}2(yq_N6M!pP=$L3_2DH%3AZyeuUHbapbWp~^X>g@N&6aN!8y=4 zc)$j!eDTi*;WxB+Rc*l1RCMeVrTKr!IEcSB&J8K~M(Tt;%XJ}RNl%nOk0Ojn(|a2V z#lVVkoTOzOd={mCd#Ng$?e)uq)bWtGcVS?qg7H0~xmW8$a!6poKKu;cLCNMpWoSR? z55Of62|^d6y>|jm)Fhto7q%S+0Ne&KXS6|*vNj$}vOnlaDCXN__30^$LPTsRFwGyi! z5FXawgH!XjmCJ3xcRL}_0#3fJr>{DoF@hzdTFcota(>xcJCm}qKwoeycW_wTeI`fF zT4nva)>Knf}7)tYWS^=yJP|3S7|)Z4ulLW^ni?ppj}*QifhSMk7Cp?5Hjj zR5lQNjsBO~ujm3Tl*py49jfrzmli*Yi#SRPygkKoh;=EX>Y-zz=>Ya!OGBe)(&$pt zZUXq>lgGYxp{`Ft5skVD%Ld%C?9^-ZB7NUJOtpS_xl6+Q88&Mu#8Dar#gmr=03%Lr z@N-*Ox%Uj3py#Zu`I!0iSK?Q8nr3(m7=h+PJdg-i!+IsG_U;^4%!YD`q(A4I$8}BT zSfHHC{a^E+{DKu!4^{=^e9|^hm_peEwXJZ#0IxJ7o9>aPUF;Y;uOeB~vkPW` zD6;t+)aGm9mt+-oOntfp8OhEo$i2g})l5FP1hTlSVN~eaEw=tf>kIgNu~_Z2b^9;k zExLT^Y>_PM?eBKhBNPgSqRN9(S7F=)A>g2&9>L-y@Isuhx^fScesJI%Wc&@Db{I)t zR&H%pt+6U?NmBZ{->dL;%*sX_>S2#B;r)#-eQ=4Wi9TVekNMkSx#T~drjxL3RU(g#A+;FPWn998bgrV)rfi~Iw!i+}1F{W& z;T<|&x<-Zbj8Q{6`BP?-SwOm{VO|mxFRLpGUdqFY`-8i_AZM6K(#2CgvQ*q!J?8i> z6@n(aTZKv9-dPBun%&Lo_BxlP9ohZA93J?8l}Zb0%1zZ8^qMQW+1}ZSK=#Ul+l13s zq@jfgZ+aa@@7S=>7lixOrIa%D9=dJK;tb3tF>!)nS1WYV*C{CM>sz?b>O;83wOtU& zgGZ*PAB`ue-N;Pou$=K1@k?qVCRyE~hBt&TcR@4-o>>X3I|We^>vE9zfYaHpQ<@wzREy={tlC;uk~~ zF>HAr@d>5S^A~TGArF0oM&s}U z6lVc{;eWbF+i5mCD6%{pX{~clgPqi^W}$4E7+jL(4?S_sD8MhKIhsT-rYsvB42&R{YGBVc*l4|fYb_CD`Y*wQ6}Z??#D(W_7y3@ZOkUX z;#rIIbEnQ1U+u4}PPw!E^i;W7_o`lB==Ue zTy6{#QI>HY<=)gJye>K@c$(g*1<16|6y}qQMLwMz4>2Y%MIcfAr@a=?A9 z>p*(uV~|%}30{M|236JBPU4PFSDUWtIf2;Gc5GvpVEcr!l$tTj{x`;-(yG8dgygjc z_o7)wOkB+wuR*0LLQDAeK#38JJRJ7rP*QV_#V7vW`u5x9wpgKrTvKf7NkVM)q2lE( zcdqH2u)4;qvB-(-MzF6O%al(E&Q7{|Ks4dY;dlM|rl-VJR+xKU$tIyvv__B*Z7eqa zk{i=~W)PhstyJ{byws37M=oB-?3{X1opI7NBmT}C9O{G%p|}ek_+}ioQ(ODCi=b`> zW*nf@E6ea01;ViTC;C0W+tZSZ=z{?wc5ote_0HgXLmFI?x-a=pd!v!Qx z=?UohZ>Fvelx?adOs}^9OhB{0xEfVCBF3CApNbjY5K#|LjT53`f6CE<0Ad>xmN`*- zP<^i=_5CJpuA!$gzGncWi9>0~-9R~Cqp38j3K_^I&S5z=F4gvof#;kTl4}TNwGc-WN%5_nVylKlt z{Q=X8RuISHsYxMKZ@z`PDG2n9iFeg*=!;hhXr-6DVbAcs%cw(fT?l@(kM0PsJkeN$ z3FKI!5C3ILs(>=$^`Wh=y>%hGEB_;i|JLVNoZHhXHc8XN<3Vq_*OPy2I^ZTyy59@P|0J|R%l*# z`XzmudSeF9Qukd-3xxOZl@@ue=%t!<5my&n|yπ%3?uR)^ggWK3n^(>r9esJ${CCiWQR{l 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

;v{F=I zN^vlwr!nE<(p@f+ArTg%H*dhp^&0oiWo{g(E0tk+HMF+qSx`dRS20VQfl3mUT=HR; z@Fe5XG^wpk0}t?@JE;0?3)F2yL|zrl_gtA3>U$X8wSCotd6};FrwfoFL0Ww}otR$j zCo4+$!Pi6%OF9OfpOtrFJ}8oFLToiv7A?)Z7qWaafzpmdzhZXqM>IvaD=enT$roI3 zK6lxD>+(sq24_%-GXay)!iIXoUN^JMQex~vok_X(S(FT?R^y0Y*qdh(U@aF*6$H$C zkD%IFi;G*AQyK{)663cz7xAmQOf|Ol>oO162~&Mj-MOA#f-)pd36uy4ZpRV|;g$`G z;mXmxd2ilzbympwGq>sv^?;aeH~y70R_*trDQJpFOHST}|EVr(#kdQl5C;F-l}7{E zN4(RWZsNn;TjNxAXfutm28G5f$+`9dXyDSq8(w2W`lT&<^2&kzdcXdEtwfy2KJgy+ zVfDDk&kN)w-lr<^eI01khgUO191BeZ%$pqqiSV#6z63qLqabVP8;hTF!Oi8LN6-Nq~;F z*2d*?*RcZPHQ3mH+(lBb`hYD}uwN?v7B~&_9}>D<1ShH0AM&Jym|kTx9Ab9>Vi72) z-_INS<+p+ZJ=GgJ#gfn+4O1EeZa`}0K!W#@g2!jdLUn)n`GV`ExuN9wQ5t4l5Ir1S ze>US9*X#_?1$Aq?A{xv-;Y1QY}nO6mF`$kgO>c7W| zREXALKOdY;*RE$x7eiG-H)U#tTFPzj?lXjxz7EyU__qK~iSjUxz%nI*gdsDCuxnzwB#xVU(8(_c2I1qeHLu}nQK zVb0-3qJLdK(Zx$>VcV}C;q5;=doqo@n1Zzw*i9$qJbVIth8eU#qq?JqkUHH0ey1@| z<-U?&H*$#z3gFr|M2DJuVujan3XiK|pZ>_=L%0SNW>d-Z76w^}sneM3ct3Ly1B>+L zJ^)Z&eNU{{-q0mxBJSrK@!^ua?JjN!R-UXvGwzz9KQOW5Bi=j&@>?-H2*DU-HPA04 z#m67vO(CQIoGZ#C)urF1!t~Z)5Arh!c;D1~Ch!&zRNfL;C2e}LlG>qDX=CKo)4b(M z7)@ch(xnoGRhGmR(BMK3WCq}B2({Y0{GkW&+79d(9Xs5tXDyKNdngn0{l6BpyA5SD zFm2jwzJcbiQ^Jdm#1}-uXkHhlEo^5?JiJn@QJ3*!)_E$ zp_K@IKqT?Dxpys5jHm}amIq<<41!yj|8kf1|6jQL?`W{z5!*MP#b*tU#$Ob3RU->C zhl9PW0FJ*Y*<%c-Ja>+DIsCeTec1snQr+H4@Iqsv9-E(y2;-lC=!Vw)gcye!Twa4- zh)H|Lphzo4W(-)?aK4bkMGNX1gtw+so1O*{7NS>6E-q{|Tw&q%>WKzr6KkZpU}sSQ zE0_nG>c`N)R-H8Cb<6R1S=!^%9U%KPjS zR*UuP0Mn)&{iiiJ)_)CYk@5Y8R&PO{hj4+J> zyR1vG&-ti_+`tD`l`^NqDAoQ8=yIJz{Pg?(uO$UDx)G^oCkEb-aE*2OPE|QVS_+cF z4_J^TsGFHgZ5vSBD?45_b01+R5XqRuxTmhE=P@KRnSVjRCrA_AKe>(9qri&XI~%?C z$~FJL7a;%}+L4B7%_aFW{V?w#zP}i))+jN#Wj$xI&?1wa_~sKa>botjDbtu8nMCsB zYYyf1o@%lfKJde1lHZ>Zz4gSs*elk={e`AzX(umUWK!sb8Dh zH$K$Tyw?*$Jas>D&}mQj;}`V#6w5OeqPV=|r%n}2OX9t7z2l>kyk(w{Oz0HFfsxGm zOOD}tF0^B02ZNMP4EANVq~#^yoi&-Nd8p&`!bh}$^#*;|X+t}@c)~*M!M&-pP2uhB zl@N%^L}}ph)ey7Im?GK5=)@_QFd;BHfRcG#_I)%r^K}jx7sf=u%1lq$o0vva8faJU zDZ2U@?xVv3VW??|uzpdDgE%i=CD9gxUtI_(gGs~IQQ@hJ%Pzuoxi_Uhj>%CBf80>e z5e-a-O#M}kpXRDx{td$%fkhNQhhcR`zgv*4CMxyg@gCTbNRLiOKexcdzAg{6~>k>pGnav*Z|!Wn*{8@q1^j218t_y7WK z2Z;h&P)JAtRi8OON6feV;XWiolcYSTBI)YV6^SsPXgT-B1ZV0iyh`;8Y@4IBF(~Vt zHXKJaE!9k`Xs z@g>^%mQl8wxJZE7rz&irHJRMF0f2VB!io4q^O|GX{p2}(x9w-|Z-h$-%5eH1`B{7` z<5%fapu)nyv7w10swd%H@VdOpx8KCxx=d0Iq#5CTN)L#s$q;ceZxiX-I z;&AjW-xmtf#N*sn{6}|Cxat%>u*3U<%X^z@lNrwn6j=xLmhzaeMWxNrli=i68 zFPge#Yl@yLOn1(bEHSzoU4;=2JAH=${LY2DhFXqnSI(Pb_V7nD%9A)K!mSSU^sb~5 zg>-eiC#2So|24@kNd$GlwF5Z)-HDYxl;pr+%mu(c`wU|T(7q@=I)@00nWUnfaSENI zk(^~k0lwyr8|u}Kbzi3_;n6R4P|wW$I^~o{x_mF$U~=}sksU1gOjwM&T1hiIZRwF6 zV(-!ED3; z!u=B?=wL^xU0;r!%j2xzhRkHMR2v}!q3x#nplGCl@or{RHt47MsQmvYRJ@isi$bZYdSA22z-`U|tp+%SfATeA` z*4v5N*@gnv9_aKr=-hH>uA8&r8)5j%(Vb8;sNguvfRNo(Qe`LAVkA=#jkvmgPn33@ zr`nyHlXMAGp;BNICFY{Ny4zY-PU#}lp-L@Q!nKj<{63oJP;iknTj0`jJQ}?`1nXpE z#ox@N`@YiI)ppU$eCMaVEdR{1E|T zs_qQaCkals?A-%Nliz-T8Dcgx)WG>Y0p72I#7k~hKk&M6N5vC! zMwB4t#SceD7qlov6&{*|ZaO~utg<*SPqMcqw4D@t+HdcuaXN(TXJ~N) zEH=r8Xi6ro5PRYVeBny-nyp(rDfw9zzgM}}r7AKNC;~I7>IOX=t=)CV;JfizAd+NM z@CR`5^j!bkuF8{Xhx~8OlczhZe^91)mg!xpm!^g$Gw62A>)>_GCdL#ibN zjN$)iF;;MJA-mI|&y@R{x4;taDPZ=jwfpJ&bg&5@zhcRireu{dP9=-?#3(l{Te=|i z0P7PWRwdkX+j5NccR@dkxLeltg+bXAxTC}$+6IBizx;of0pw~p>`=~STUj40^=k#y za~5i!sf`R+A$4n^=qXUl+=hkC13p7$Wy1~@(;mE5^RWLf-4u4k}6 zO!1vHnEh4X zR@t*tH0zjUebLFk_m1#m!k(6=BJIZ#JNQc#c43R?pbGGxQ|Ung+?&e0BdGm( zePZ~%U&ZouaS%^6ej(9J4=zj0dfJw1!F)wM;|2tb^C8)jH-*mL+2zxiSyKRxK|$V2 zJ6RgO#FKC9CMq5Qo;es!p63dLq}D4t@7YuB_YjO?^AWqEB!m~u+}C%Y{+`Z)#bGznsE%c zq_FFAB>zPd03V#F?29agjr(PmV>NoizX-DBi4q}kTbsUndOmI-)=}L`70Ghw#y-V! z{}2k%`fOb*2>4i|b^mY}mGDfKIJoSAW%p`dV(6EHPZyB62)subC%c&tziIP+IgHnd z7PqV+!x_zne&oBTRbip%CU^Y&i8g`#=czycPb00ZAGu+0WznzsVBpt(&YaSBU=avGrQI#Utm8k4|ckV04)?=n% z8SGJ_kMA7!2GecEjL~3~mMUj>@i8{=pnGZnQdScxy@jY388;P z1^ZvdRk9*#qUs~H7K=T_lSbqO9<0_vKHXXh5qds~t)W<_f&~xb(`;w zq-^ricktu%sx%DXH7oimix&%D1B)F^NQ9VA~@0VrE6@`|&h!jv)z|Hh>vyg}Nu`%y5ZyQ2(_>)Slow&>3OIC<*;axZxgZ!@E(dOJp&?-GbscK zs21R&(XK1nBiPErplKIt#Qs^O7%#$tK9+6mK4y;zL3oshY${5arha^f)8 z8B!;3r`m%i4?|G5)TqBCf_mIP`ArS|$C9 zAg8u0HY2=q6$y$UrL@ERPYzqcd@(!Qv)>%|^CI|2AMd4DGpPX44~4(~`X=-Lq=1IR zN#DO%^i7eQiOZeNOSbOTm9sH_C`M_z5f$6QxT1xGrPM?p@$m{?&G^5!*+8e6}`*n(9yJ zfc%(x_v1xvHMabjLVOy2`vdrXm;VSkKp+n$ z|1fV2hZ5nmB91>Mh_91EGdO5iwp1Q(RVTx-ocg#oajOsbz5kVY-!<>L#C6dv>)BBS z<<$Eil&m+`nT}?D-kf6V#_s^07N=Al+K8E8p_f%MO4}jlE2KBS1tN|2_$&(3SK^dr zmBQ#KfOl|)U&=j4=9(^Wrga}UDbp>e-95LKIpPF89A)+OsSE8Z!(kB*UaB!9 zYaOI%7?^36=5E&Ya_@XuKspCI zeP68Ub$>GQW_3y6&_&PmBYX0ZHJmjXS5$difahDj>BulP8p(=`9~WO`2m5)dQW)qx zc=A;2ao*-hMh|1{rCq5bpmwJ2R1ETI)xDr=Cytd}E)EGnN&JqZ{51H3iq#qx^NpQMZ^XB~|B7$^cM zjY5tEPO9-~nQ3+yg>i}BI1(FPysYO=9u7{#*D>w_6jrUiC&p8&4~2i9ZPku4pETNMF9^HuCvDcw$xd; zXF8k|Sn@Ne=P~?j zv|eFbQJy9*PorRan@y}(}E zqN{C22X*F@$rV)k0(K>pA&(|nOJmjH>Ov$`JP^n(?bDh^v(_1LkQPcYb}fJxN)6^7 z3CJF%@(9kdPVd6nIp&x@6E6m&? zA!kXif^(~ByjeGV(wVQku%^LSJ+Pj!9e5FbBA&A_Uv#&yN=&;_kGN(@#+b^ zrfXn~SxC;(v9iWgE0i9UXp13wXx2L8&?;uQ0z81m6}ty3k(kdcsJ)8Rl4))WuKvMe zG=4X8yoTjI7CT}n9_>>WeYG(n2{wzxMTE3V{SRWY1AI7Rkk4Bexc9&-M74}bj>Sv> ztXr2pczoAPG*uM#(o>dZN{}?^RE$wJ`CJ9h8%Jnm2_irSzK$R2X}0kJ7VQP75o4Z% zeMHovSW`0`8F!2BgrMnz>XDCINsa>1yh1&825I3Gfu1C}F^o&ov##e>`>(1+=uu+H z9fi;~j4-wDsW)D@7hr3%O;=xsDrPpw?v-FprKh(LXgg1mT>!&2)s`pE3t4DY!>;*ek3u>u&;WyNd!qN&Lk*mcN)e!gC@J-!Fbn zLX|X~*T%T0#{Z%L#QI`KJN3RePNg&ERd`rbjhar?$V9nS=;w10b)MyF0aPzJXu?ZI5n0gszk60%c$CLHSK`PS%ma5+C#!cFqbJGj#W{hVG{O)Qf>*1HI4HQc@c(GOs z4}&%{tB0ILWs65&112Ll?(N~8b&dngVi{EdAC9@YRMsmVM$W^`ni@?5vWu-C`a=pW zi=WSQ-8uIAiDx;+L;TTo@ZT-ma|khq$Ifw7tA|5pB1b3bOK0vJV5?A13szs z57=YbbWWuo8np@ISLf+urgwMd`1)(h2$%o;y<^Flf?@lRNGRt&Y(z+o{wnnPK6c9! z`GX|e2g7OB6MPYrTkY^5jg9geoXQyg7hD#W9IoLl z)1(#FnSme46iD#bBg$OYoLJ>TwpCw7O{HYK`8&@}ERj;v9uO_Ga`Dx0O4erp&9naF zSzEP3^_K}g+JtyEVh}}F9VZ)Vvxj~>iqG-@Q%h=-K_y_Mv>{TP5RmXpOBYt5-5!er ze8PEzxOX$RsHQ$)C`;J_Z{buHW@ms+4O+lBRhD+?9^E3z^S)bL-aImg{E?U;7P8J~ za*NhZ|NWtcQ>@#!&p4#;K8PjwFIs%UQnfHSAc_IaW|S4D z?s{z9yb5o4mCZ1JE}t#Ssa36BI5kv(#Au21o}nb}03TfE3#GU`Di?MgY`|ZhP)wea zq2!%Tyl|dBZ}{<5LtTj8bH)WULvYp_>?09EOl$o9`i`Etg{FeS0)<@hF)8{JlHQk7 zke_vue1*w;3OOm1L9)m4ELcD`p7M5NN?|4AiP`HZ^zBT38Z3Bur!Wa6=UIt9$PiHB zjprtpzJ|7Qx&^UHud5~M_0VxV5)dMU7(jw1ukt;+5VaHm*_a;Q-=eFHPqf5C(9jb6 zA^DzW*f~yyQ$Ff#FvYH?8!VBuqYWm}b#fb>v@}UYAE_7y}|NsB%jYwhL zH4ar?MP3}$PQRe%3e{twm<0RQyf0FZJ?cD2cK9=rO~Yt}@Uycf-G6ez883x~b*l6i zEvQ8%!|-i`(0L1hNbI@~n+)c>Yxem}wa zU*ipA->uSzfZ%J$lnr*H$T?FBUAPQOd}}jGg9b^|4F@vI(zi1AmC%8oObDHZB;&7E zxlWy5?)F9pUtUT<5F!I36yl%#Qk8o>?(j=FTE1`#uW|shU;EYm7|3m?^PRe0u*G$g8K3M}7tRr(b zvHg(^o-F*MtU7ht0VUbnWa(8%X$+>TFO;_O)u%#pg$pCy?`LksY!4Ig!?s;dvxFd{K_~KospZNU% z3v(=3%q<3XMQuLC*h@!oEaDMzS63NBkPz}+R_3_yRKD3ss))$L---i zINx;Imrb>1FekZ`&H>v3N?qigG*04@udRpWvU~tPgEzu503@_K(0KiABcy6WG3QAp zGM8vI9U56m6sR^&i(p;@Ru%zvx-(>KD!t6YB^22@4A1Wl1#2TjjWS)Agh0g%f%*wY znr=~$IG6zC9+@Ckkf4jg^1@jU6TVD*VPai-GgX|H7;@~Xq&d-Kj24Y7 zxN9XGq)aWu;=(iOr`_SoGdvUtey#N(d}~yIsSynF48HR)MjIO zaapH005fXDh2#Q6rb65@M`_Ecq`KU|MmTd<{9bH;fCo>K0{V@Z2QLMLXBc1GYZT}B zbNq_wX|}9~>3{8b)d5EdO8@^$qTq$$$5%GE+-{-!UdG4g7t#!5o@u*VJF$9` z+o4VtoEP^IbKczq=7@xJr6a3KYs-^C_?9Niw9&6efp3e}zWlo@EJz?d&J$yduv0&j znpSYms{ca0^Y6^3tq%|av_u=PS3>M?KYhR=>aX~Xy<7^oL5#!_MQ@V!Ex}yuaKzK+ zfLZ{cuq6WBpodVF@jd<*@)mC_%Nq>}EyW!rBOg&khdefa!6!Qd8GOP8od1A)b~VN7 zTk2lZQVWyMXsVTsF$uRqbTW<$$sbQR_cIH>4G-=+!ix&i>*Y#!2rpuSmz+>Xzi1(~+Z3)BY}Nlh`=QMQ7Z^SPZO&wj zI`3Ik9ogToFp-R$x~GpN?6JwPJPqRk@{8=|OL60UU2@h)rxS60HMRg!K&`(aX264$ zp9zWU^VH^!o}2o)uoHljAw_yD@exEdf52hb)~y`eOMzEl&#!M|H{SPUFm&L5fDG15 zMX>RolSqA`N>jc~;EsxRka@N~&-IOVsR> zv5rE-Fjx~H^ZS1k^h)WD{9fUBroyM3tA#>-K2$~u`kbASC_3CbDxXne2w#kJnqvsT z)X7@r*3m0Iqr*EeS@pb{l2Uw$vwxD5EmS^QMV8+J99)vclKiZ+gJMzGKllI>&!!}e z%Dn{Dyl5ZR0kw-i0sP9i;@H1|VY+OE*`0onDM^WsllXIw4Y+Zl?2C&e+&;$5<)Th$ z2J$inNOF~ght@4mA`BB{EIBSHh;Q}ik-6H-v{CU+mhxK~GnkX%VOVDp@oJrm2czzL z>d;Un4(@uyqL#sC?7bd|dv|$V zIike#q<8oS?OQcf6dT6f3^+LoY^95*P=(r}+o~bR=&P^}eBg2YIOTc_LH&lbm;s~{o%0p78!YOz zxazxPk2SJ^woYH5=H8CgN6weo)QUp>jsBH3%7|h*6F5VGz4*O!$;YA*nfZQ=5=HCx z*}xjk!T22(DS*n~q$vxankb?uwS%~i3jaWt$pdA{8>4&w*OdAHd~E-@+nX~C97`xA z9O;P1i5ED^2&jljwoYJHNBa>PeWNJCC+l)An>iRt-@(gtgY`MYV8MY2*P? znO z1uTPKa#08+wiOG5*)H$@^wOW$7}B?wKLK+W_K(iD)6Ux`lzHGXs=3gd z*ALd@7Xx>Z+KOw7GBhf{?IU%Lmfq#}Wcx9kl4IBB`ZNMcdzGtDtL&b-Rr(#sP*gq^ z8wXzmm}=S+=}iJZWdGXWoQ{EZ_FM(SkWJtuTr@#jA1+Ip(Ojc1@L9(nWCHuW$lTbQ=f=BfBxy5uN?M3_obRj2+Ga&6xgyffrJH zfhLntr(>;}D73~x{buEwZTB$a<~&p1fpl3Bv?1*DfWXi9PB$}0(~QW_Ui=NQI4n`> z1(caaVsCYWM169aCItoTEAf-tWBx3vkr`Nshg9i_9AP6Ml+@%>mW`J=+-<3qFKpcy zi^13P)iN~K5K>6rTBaBILSMetkxl$SJY|Zz5symmDkb_qN?f_-O1(7NMKzh333w1JjoKe&osmyr>YTu*sv9#PT#pg&NvH5EKxEo-4mqr z4*U8P@1OdzbqL7rP0T`r#*_Tk>Z)tM%#LX6zKdM0Rzt-4-4#hSN&C7opHpOv~u*s*0)ckFEhMO+D%O{4Q@E8dhRjH*WH12U&{ zNWsrXB})DQLm3nk|DDY2jt9sTWlj0R&$s=a{E^YK9+r0(0jLZ1LX_XPwTE z&oYZF&0e2k)@`r-+^hP*|kjiO^SpQVHXAr|@4bptkGCr@aMVI>kK$ zSRgI52xps)rduEZUo)jG?BEtcfcqxT)KoCbL>5*5^PZ&f;<{RXO!Wl3VwVPVo4FwVt zan3D1KMzGsRPVl2>HOK&6PU>DlofRD&<3 zp$W{Tej8J;Xc`C1UmHa<3%^D>KcysW1u0VDi%6amzO|#D^9(d-saoI^QpUw!RHJ*; zNUyj5{4h-B2jF41GmsXt0PvLi&)~VXIGkye*faRT3gxci|6fg6WM(i{Y(ujg3rNEO z**~0e2dp(^ZxfVA2eymd?~3N15nBZ2{G5OO|6cE{IAZ+%%W+b$>e%452%e1lNcWv*1@&ObtE1sgCv5 z#T*7cHu5rfGHHUA(FC|Oahx0)ozRfCg@}E_`5Z7_f&xR2VkZ@SDVG4t^gSN@pdQjXUMJ;g-@EDjXWqXoaHET;)0U$X0wr zD8EBJ5JV;wj5Vw+s_+*hIMb18It2INV2Te618Fu2xn`W7tavf%1E;Gc;OSfMmABIU zCA@aEPYpldm(>&mBAzeLh?I_Jf;f=vQTCC|(G6Z%*V-jF(^*mVcu ztW^&iuTXme*;5Q&7nr=O>yUOC3;c6ZN{?9p3^iD_EttDyLozV#Fp%1Dsq)>Kpbo(5 zX(s4-*vc?R2cvDz3BNs1)nZEh$|7_Al|eup6KordI*&6ZulYelA$eunE{4Tk#+p5q zW8yW@e6rwd-aDHsKg7B^Ae(H`()}f*J(B-p<%}25epeJCTRzg=v_y~vvY!qWq*4xW zY1oINBztXtM+N|}Vp&OGQnqQ#2Zj3Iilj_!g7EDXH$7apwEf9kM6*jUenM&j`@cAM z`^cPF^6k{GGW5g{C8&|9q5`;<7DEGlg|a`^u#@#bx`^sD2RDvwn=jr|Ez<)-4T<<5 zptJ+cuYVU@L2pLl^e(QNId}rwah4FCp zFMTa@BUp`4UM%SJ0S}hu1ZI5boaGA*L9-#BUY=va<6{>_vZ#{#JQq-0!{X8}Pr07a59Z`kmR0VZx+%!zj)x4wZ z14fArHqj86NSA8r!Ga{n+~(%m?#&gq7Dqf^W=K7iUE-NK@uJZes-f3Iz1~?Ea?ub` z_isaZs`z|FvjLlL4AqIl%LCyKXCU8Z*BUupE<5FNpjgQL%s+dd3Y)n4_3vOjop!YA zmxfYdV2*IkfDa7%=IGVI9CI)St9%MBez0^|R^Bt{hgfrwhD$!?WOq!@zVuaIOJ8&J zeVGP5-0|-|w}(j9I>k#G!@}rE*&%L!6k^_ zkJ}q;4^=M5xTltLQP6Ha` z>|>)N(dYyxB|O_vys%s7@oXVD`B8~m=oLkIIkiH^kZ07z-BVn6ug1vr%01rpcI;)H z_u}PRiqkvaj?457d&0mN`3aj+t_N4_U@+~-FU(j$%8ea>$csBiZ=AkaK;(P7P@i(#Otg1 z)cozbKo%4Q;0P#lX-Ylqsnb1~S^T+BVGN&oEI3V$MJRBI3w<|!nM*$xL7BHVHD={t zoZcs3Xub1>-{o+>w>BEDESZru!6%tPlfl@O#GdZj*YYcezahmm`&7uKge$r#^t&m`{h6=4 zeOM@JknMk>zvr(xE)bL3&CN;Xkh608@@+vjrVFhE{RPuQ_7gKJhulGngYs{wM4s-U zTG>~hr>geIf1St;Z?|%Zn(DIC+R&xev&!hIP70Ob?XAH6$#|5H_>AOG9C=_ksrYsd z5qQDGLwX;+G<83Y#Y>M>0e|@j;l6@K%ZP=I8J&C) zNY`vZ%HsS$8LBHe(V;+%Y4c{lDCB_Bg)de1QlLu25i^jdyT;`qi{MGIo*WuQ0alLa z1esHYz3?cffce4z8qZzi^OJCxHZcnsN?;`vgTa^4zxBFC{f;_SYX9{*%R4Llt84I( zV?^s{0>x`RuIlF5)u2jkJDGfvVqc**T*YevK9^wFNW@cJwe|jsx+Av~b)Ca2*FtY~ zlsMMlUqOr{q7OT1A5E9_A^7=qb{CCgX-Qf=y;|)3AdE`ve5*%=u~4RN%PYdKRM4HC zoLP@m!Yxt?l`ymu#FG}$-gGYGV_;)YSe6Fy0fy)j!R>(owX1U=grc+sH%Zk&h{Ka% zh70GuJ)ogf>0YSP+~M&>d!2)XWxu&;DqTG0;FLg$V=kmV5#Owk#u>93`s?o5=e~rv zbdGHbA{e<)New4Saa2t%150L~gF|$}B-&7^%bnj=FKiFR-K5 zsW7J3f#Nu~kjs8<0Hs>k^zD}}x|pnq5a+1ibDD6W*;xq|o3A6~0F~Hj3-Nhm@#O`d zH&Tx>(0_%aQVM27=Y<>hH{s$q&(%kb{v3lP+*dI)y;u3Iujflv=Xb-t z`36I7{|U{b0=u*TZ3WosZRg}6k)=Z6<3RhYG!xn3V$-NmUMTpw zeK|rx1o;Z!1XJMv3b&y8V|5+Ke&N$p3F((bhBDY0*(fM@<4nwur)d*kxpOQE5t}R} zX5*Fp)cRz4^r3igeTMf5O;b9ZHv8Olyf*-Wv>j6ceW7X(uewVWCVKO7%)pZ_jA`2g z3H8093uOW82$;~vA_h-O$g`*H5{#oH@&qhk&wxrPxGSeL7Zq#qGFv>)W|1JDH55%K z5>|tSl}8>ZY8A`mSCb3F;Tc`~-*rG?EWS6Ls=60boo>bhpZ=I#$E zF0Xvm9kS?Adv@a6fJ?1ue~)iv?4MLfRv6ciI`}Y$oE03QFx}$_D)M&Hc8tR5Yl7}2CgeMagQ3UFapf9 z|B+bxQ1z6-0xp?ZL{H1_KO5C#YVPzt$9krGWo;P+!km_0VDTmw??pzgcjiC7;B|w;tu}|JL=C#U7$8RI+T_3UwsvPIEY?!`UN!IxDTOCV44?>f) zJOH9SrC1r0ZWZSLTZRUKL$xx#8051}OkxP226Qy|y=z|S1K*aFe&r%n`;j-}Ti^4( z<@ugxL&x=@~-eP1i7XE^ojg^&rN)X-ScP8%E=-d>dRG37me zZ=Cht2=etqOGPOH-)z~@0X+!vsB}M+^tfgtuH!7zfQX-*n-B_`W(pKRfy2 zkXjs?vWLKuG{0YvrwQ5b8yc$hb~QJwPPJ?R#78r1PsZ>NZNX{hN>Kxz zK<4+;=QMDkpdbc>M(>z_9EHQ~3Y7mP88=XV%3Y3mVdc62CJ0r*2G1j7i9t!Z=HH;~tlG%I~)~>+C}l@UpkZ4ITLyxf5A(+Ty4L zmv5r#=>fuT55>}Bij|j`GGzqa&18GS(@#^7(kTjZeyr0(OM$TJo^XhV(_kQ4`1XT3 z*m=>@)%QVprz+on*fukGBKC8`tgO+|aY2BgoM^G2AoR}AXvs$mmBSE7u4s%Kg(Qfk z{J^gg0@|JUFMat2$Xz<0YW~1>e~Bonn10xD^&F$5PpDK*_xQwHu6$=5j!ZMX#z(K$ z`6Wz!;if^?Io)nVp{HyJ)e-AF=bys+`eKR@SSH`*a^-EE>VlMBSY=$ZFm@alNVZXv zC0_YAS}jB_zwcKVhk5Lx3C)6bp_4`HqwQE%-xtN~#;d;||7weFN#)0%)0j?=Lr062 z;J97%Iu>yaU~lF2&Rat_*V;<+5}19*xPX#|?GH?Q zCtug#^oBH#HXT7B0%*YTn!LTTZ^B|92AA9Jv5yF44>`R`=mK@&@Q@^_-F2PLhD+&*`rww8@`Z}Y9Q_DTs)$U-he+%(-D?4u>wi8q zJ!0^wM$|t|=+Asbb(sX_pazxx9maJS*x74y0ixRg<=NBrTRFIg7Ad3&-^fv6-!?qA zFKrheCq!=w=JSn>n)s{Q9`b)AfU30LOit-}+P@KFZZ)v_X4*YY*}wTtv6QPwODXzw zF5VJT%=chk4oW0BQU5Ms_!cEwd2&uTe2wNdzIF{KM_c{LgoHaRb7~IPf*I$ke}v8O zUT*M2E9}c;Iy3@?Ud-$G-qxJ^(F6~CVA1zic@n2FqERSE%N+-OHADNCF~+{fiHvJi z(F~Y0v<|3#>~bx*Fv|zoyLW-1 z`d^f#n~_}j1IfKZHeimeL3QSS9kNWr!A8(mN&x7Dzce+%2?Hm+meDVPUbTTGK|5vP z<%jrvN9%qPT6ti6La;4_oj8~?Z+dW3r1Q!N!``Eh9KBF6x7+rG&5uFJ!a&by}D?otck7erx&&o`sUsfzQba{l(uh zrq>x?+>L5~*g61S$LEHO;1ZM2es`(~zk2odLHw^g9hWxVTL$f>+`?=QC6*Y(oc$}j zmZo^TU+!2c^@QqD3i1rKS7Pa@5ss#&Tkfdz9nO(bKQgy@8dgpvSiIp!S=8U1%fc4DBAg;RcJqLIU ztE;k|#T=fpH^X0-rm9T?FS|HWV?~C~dzHB76vQv6%uaViwHYyUG-ka9l&ciK-0ft(m?tJmd{0w>t1qS_XGdfkgwtQutNwR!a*nJl7D>V zG2O-8WTa`uzfyEy-@>LbpQdtY!jerwrD%-Ob&)Vc!LrGoB?6IyU;mmnGykdatr>-lw*?)Axw^$e|Cr!Lw3rWLp#C>A?gJNO|=*F z)^d&0k}MQuBg&{4tF3on^jTV zS3)1HC(41pqf2tko)nb_FaM0NWZ{t%;rq~fAAvv17L$YgjwAnDonnQ6$Xu1& zY$E-B&@KB-5U)^a&jS#(GH8w1M?^&(w$^;Sv(H~4AD-}DuGhGMJ88>@9OFm25X=~{ z^i73betR-y;T|?6eVTe>8bLnDdf)gE`YGQhG>HQPF`>&CQPs9>jCRx&CFr7liC`<714-X9f};GCYv$ifSez7@X9a z@e>0*km>0;Q?XTs8>F;heX2R7j_MffF!4?W_*TsxdfD^)!|V@@!xI}o&~+W% zBVGY|e-W!>MF~n_kW{z7tj`ZgMPk!CLO=a0;tVO5pVz!0svoyfl9(51DbYK}g{mH#l#q5Z{);b>wvL z<|t+;p;Ohpi?Dn}c5NUu<$-Pcbl24hj}ve-f4;+6O)8iaD&1oVeeLyvO-{RqxuMr= z)eHPeBaWwjfa0Z671TZs@k8Pj21n4G77VWj{QSnfPZi!dy!eYiQdDP}Tl|rd`I2&pUnd+ojN?X|Rw&O;%bf=d zFC+~h`8igb&Ww5=agUHvRUih>{az27EU7Qg{kmz^X0cHTQkck3hKrR>>g7yD&?W6r zIwQfak>g%0pD?Qcuk=9B0%Y{f)u=SKgv5Hbr+`I^T~|)3>yHN9!{%%v{zE-~<2?f{ zHUs_s0$w5kZ}hx1*#50@;eIVqf5r93vdr(mu0B7^S=}5ruZ4z0P-byA%)G#YWPKP7 z%Mwo&b=$DMx|)J+^jHWA(tZb&E%I`ZyH7P7yt-+0e@yKUYvRUW-%=R7S8O5j3& z7M0_mo&P@I0m9la??s+?OZ$a}qhZr>f_`fS*zgv`hec7NT!1go<$}A1_%aDwF!8G3 zwhogZE}7tzZ^yn;i(Y|N;PHHZp4NPDgDWpWcOF(<&XQBoQ)UtY2HC`ee$}Q(G^tQz z1tBFHLL{ky@J0!sFrzlNuA!;9Cg+p3?oW}GkT{G{}^R5%4gj zX6huksdG|IsTs6v+Y&lbx|^*`^Z&lMq`)w-^_q?2wI;QVb}-Bw6WIJCeqT*5@0d+HZ;{o#fx1>VKN*GI9dsPfRgyqd zJ1l}xHWD}oO86$xrGZLFUtzb#CI8i&2EMlRtr`}fwO5d7S#YP%qm?xsL?swV2w>%V zX_vyp(Y!Pj9PF#mZPaULO@6r*W-W(A+>xS06Il@@s`Z*z47J`sW+3p?bA?G1BO7x7 zGNLnNyCwr)p{z)$JjzKWCDsON5@|5}a_Z4=AdNr~ow6TbgogGW*kavo;I>@2lvj z!H$6h?BJ13?H93PoB;{Gn+f!02Eoj-XS7Rn%D{r3`o@)G%ST;TVU*ZeK)LwFKhuQ~ zJ#+L&15x0VL?^|^^`LhCDD)5@p`bVAYS7@B*zWd zXcEM9)W+{P9pg`Q2v-5Pg2|lRZQr?;7R7jti3dd1`wCj#xk@(U?|RfJoSY0|@PKBC z-ilxS-Tc{pID#Hu%=s;^4eHxzBGxGuLw2(Tehvq4rI!0O5%Ah63mbdeNRO$bGN-b6 zyj;GbmR9mfmi$R8HXHx1B~d}6m#i;$EMV=ZF}Zk(;h(&w869r>m|MK`*4)khD6eXi z+2deuxdC<$B&wTF)?ZZ1ANs$*Gvb5zLE$}`t!USL&EZk5NFmP`)F4486yf+OtA zTO%>OEm1~qF9>2ChvqbCQba0vN)inBKOGM{%p$>n70-Td7kVT%fg)R^h-a<8ioyRZ zOhqwG+8>c3R$Sh9BdWb?CCubz+-Z|`cf_RCFkhgLz7gcvdAzK<9mLOXCFsqE%sa&5 zpBwlpc8Cl)H(q-Jv(~M>1Fyf}Z<>av4f!GN+vxF5Hs7flC{0sSVbquP5r65VM?-2& z?+yYNT=9<7E|nwq?AitdR-e^DbxnR?3Q~)SaEH-1xN)ff@?AG5WcJXWuxy;AlF45$ zwzMiDla#G2;E}bzK=sGyupSh`udz3i3I9b4s0Y?i$O>d%*fiQjCTxl*&DPCduRSsX zR-X($%nxtmY-CQe{U`DMPABrJM%D+iD3wNJ`8_Fr8%q=Lc4wKXT4rtr$1@+vV9gYi zd@54Lqyz=OqS{59Lh&z})t_+5$PVI&iGzC%yqw3QjvT9_myo6E!RPikQ$nBZJ%i^5 zFtD-O8RT|aK4(7oMn5h&2Jek9PR;5HwC?BeaK^DJ==Jqp^vDb@}4b^=_Hf)Rute8M*x+% zsV(@(PV9>fvIl;#Ep_fSgfNiLK`mRHy@`{^!|Dc@9 z_;Yvyp#8&ARa6m|Kvg~2A3s%*+UiZx1UaR)3k;3TVhvk&LP1F*K7vl1RV+og|NH{7 z?8Oxopdruy&s>eFiQq^PzN04RsN?m!)79Iqr~qDBjx`;dtt0jz5#;XkNs5^tYX+#( zE(nFY5qjy)R2;O>zW5u+`$c>@kq%AQ(H29ufEy7{pBn)%W`niSVo9V3{Pe)|A2jOn zQ^a&^%T3;{^W18;q8L92h6ymwuEf`{%X{QvS0f!QrPH?0`11*Y%)ok;pgV7`f>Ca1 zHL>c@;U9zk%9QBA{6W^}2`sKW4|UZPwM2*GOXK1~)x^YRitq5g>8f6lc5z!@rqExCqs?xcrP>ZB56j}x0tS3TdO=6qkyI;(jNy|6rnoJS6AAJ;{UI ziKmvM^MSy&hUYUcO=_iZHuSGK07~qkvnAFH;dfm4NsF>s_xejpSIcUFe#M6mz!JNz zLgp3b+z6=f7|08ab@3V-?HgjBM1>Q)03Z~3rRLyf7UkxW1r3mmWAq2%WRaA)*L zGAI=n_@QE?Mev;EZ%x#h1bIOUs>>yOe)Mqd-smE>GRV|i_+_qGa<9TdO@FyvrQy!F zVO^EbTjK96L13 zGMbpumyiF?fkrMOCKxSWF%p0O-kTUO+Qw&GQ$1P`aOHCoCm54KB#NCzmg&U&x^M1% zcMIbs0&H+p; zr*LxRURBIbm$F(a2}ucw@*4=xDIK0$xI?3{Xof+3~< z2-ammUz?7_8jq{*X2|0n{uoCSjK%EW%`?N5cly|0vEeN8dSDkN?6(X>p`Cl#Mg#w~ zUeKV(P$Z?*SBo$1OwZyuC_hG56Yp%p<^9Z8z|@&5-S&3WA;tof4IE>?N0=g$<6jcL zs-@CfR-m1X#1GojX^;n&FV34`;JX1);2oVoq!qSc-5AEw4|xaG=K<-VB#pY<=0jU8 zuFLEGo^j~M_G0}JPC5vs^Y8Ckj&kup)oXd=#Y`H6_+jR*=LjN5!HQSls=9^JAN#AMCjaz2nN z;M4JP9sZyIX;B+b)p!$I2R7{2UfVnQ(OpLDl>z*mVDE~MGd*X2>j`O&kiED`U|2k2 z4E=S$l7pKwZ~PN}nG3^p!%25c@5n0D{R&OPW`usDbW_A#=J%vhObMZd$*%(g00xn- z?G$t^SBSs!Z$U=g0~+CV)*1hr7)h&cTt~nExIbI2W+#L0=Q{7q^>Er4ZqdB{X4tYs zH>ArL%pjm|?Y~366WKQfzzP$XgA0>k`+s4@t^|T=)Y*S_^lZ;g##-)OL}sFl;9aBL ziLUU4^+UyFO)&UO{P!RrPieoq92y|nMA+)`gT6+C>mlO3^-N5$(r8n zAbEQIGE{{EGqfZ;0h)5~z_)5KAPhe5Q`9GhH^kS7%D^Mc)&HVK?{MPRXm7DjKgsFC zg#?1(DYjFFWj3l0>o1`bb$#gY5RAQlZB1*)`5IJPDAh{o3#g==V*Js(+XO7E%9O}- zw4eh8D2YdF;Jhf=AJ(}x8e=lz0<}H>C+Ywp(t~a|S%n}_L^Nh<;04Fp$!8Es+j!7rs4wIcu34NAn~^HsXorL(knHjlR1l-H=1#%7!w!DG|3iW_Z!{@E!Ccg1GF|VOOMlNFS&FJmOD+`S0|% zZU6SS3?~fInG1B~xg*j1SYUVB5Lr>}|8`|vKMV?prgo5Rst^%pP#fmD|JZgIFj+E# z^AsK|05AJa%X7c=qk7v19?(uhf?8?vLp&Wm0lE za3@v#5@J6a6mh`sPW zGL8UT2$FGJE{*F(?`oQ82&&zk5nVc-HlK7)uE+2PsP^ciJV!&5}@>Rro7;Z??(4O|MBh}AWdWG_t{E_ zq=~0kFnfzpA-CIqWqk<-&8Zh(q7@olVdFCgEd3AntJMGR4`ZI<|GL-K(*2vl2>bNL zDy-Tm68W)P(B))rPpsq`P2pyU4(~^I7SEPQa3)pSK^r%Arn;!aS_nS;^J<@dHG_`6 z>h!nG1qvJH+vGPsBFs_>iwGS&ver{yzw$!!1ofH93U zHzR$Zn1P5}K?!@yj^-HJK*9$}{8}O;A-rm6PL+j%k(V?1X9|+~Ro{1bhGC7=IVNa| zN5GGpj#h+GZdjb4F;xyd$`0cNN&EqGKquqnxV?ZzsV?vj(#vVX5eX?9Ydj+;Vrx>z z5j157$IEw(nGn9{ydPCLwtJfgvi?Km<~rO|!c#wQ81W$RTq_4$-I^b`B|Qzjs}-bR z4O@~i4!S~78lq?ax-2;_uiJ+liagu9g@reMSFTVJGyT!eAgznK#En|5h2}V%2_2iX zXcdLui1*nZ%vmp&&wT8fVhRSs)ecTLo1AljLX$)Qn^Lkg)`~hL`(Q9MsX%)RMB?(y^HavKX@UxjK6*P#S=NA4R?(D}L}tWS5dr)_Ej3og4V- ze_$T*Nwn{VQY%GlQ;`%Tk-fj0ux91o7{R^siIOf}Dam=br-|_t!ofy@!+fDcR*y;- zCJK_hUB@~wgI;ta?&_4O1ZNl8v?bikzzR{x8jG9xHgXT*aICP;quuunsj8NzmAtXBq6`0cnC;t4$HI8akd=n-P_2XPK-V?6LJxMyZHr%N&u8 zd5F}o=XjfR$Bln&@P$t_Ps6Q>J3NzKnav-#O4OBXretiyGxZ_1d0x{N`qUT(Fi|keX7B_ z0ZbcsU76|=sVOt~OGvCZIqwxdeQUw2=@b%iF575;Uat6DHZjhtbj)GAEqyt#EwbyV zF)R(dAp{QTsN2nKA~i34o7wqqga4}xs!^yixWvgPX`Uebk;QsBMpR&xGFYSLZLHbgr=y`cma6N>H@`WYar|Yu=0}ZJU=Dw&` zJYvk7pI|1A4-y!0RW%N!2)V`8x{T~)%1tSMoke)6bJ8LLVqp8>cF?~iDM5#45_ zM?g4-m+Cnuk8h&kCt|2`QVVeZ^}WXJL#VIPuf*7r-_j^+rYdkpDpc%~-W-wwqAZSr z?7oUo#P*C2`kcSy6E|U|4o{1Tz+K8d__Ott_ji@9jEB-ctqet+ZMKN;HTmXs&oh!D zzPH%IyWC|#lhc&Jfb%MVER@J{eHioF8bBqgJ~^eP7B)MO#djM;%3L<&Z$d6}));%MyE(eN_N2ke?^-iEal$G|Uu{-VLzmgGh4X8c z!fxJgzWUJstF@0SP-Tg-IRqW;dG{FB6Dd2i)(ZYH1K|yA=gokp9=Y#F`30$BKmAnk z@P2^R603KT=k;6#40jSbNXld|sK9BaoTdEJ>fs)Gg_{dBNd3Zf$Cr%$jSM*DCx>T5 znm4?SlTL+;zW18!zrgE_L~w>1MP9F4+|XOVqcc@Pv*vzVU8o&gh#j}#)e_6K{=hd*16?+!dDU6W)s?9yeh;jw>H?;}6&hu(BQ1uu z4$0OtkOkPqEO5hWwB)zt40xR7Cm^o3&@0nS6u!?M=`v2DdRQE_sRRP}-w>|PN^0e2 zP;aZrdm3vrI3MEFfX&e1EYC=_c=tjbaEj#7jmZcR9lutvN^{o=a*5pSJRE13d=C-u zFM!8^W?eiRg9?1%gKhJiM)ozExAm82ut`lFB^t+uAu=b((2f^7j2?g2XZv|cXli`{ z`a`H=7+R!6md@*h`KIbzd`^~S?p&?O4gQBJ|NSr~;deIkb;qgkZNJCMz&ii@uR@qk z;;f2u9{?yXAY<`WttD!087H_?ujiyoyanzmD*N(>AYT}-2t-*z9}CiMo>8N07B=aP z19W28P$w?rnEGxt!s>kn^i`Bf!KGL*5f$^Frn~(~1^j!bEvUWb>@B?>`6a=uct+x#d>Qd~Ct@NCy_FtzQRFAZW8PST zU5V*iK>uPsfyeAL5!u7wlbHn+zRrjjvk5NS%3HqC=;lg`A2Hx)prXx8Yr~w$AO2qR zvMJ{uj5ifr@j_U9DxVk~89aAZqdT0W1@)rmCa-FNBjx}8^(W%!+s)FYTQi7&Z^_I< z@rylp2j&^haV0Kzy&^?bHOKX$Gdub1tKX&gnwn29a*gcarQ)9H?gR;M65bX@6xvM= zi+CMH)WK2yC?a$_PA{zeNuuCU(Ej5J=$T&okqOX?wX`-*Nrr(zYWf)X{!aW)TYMXpfw>*Ts3s@4;t zaXFl{gAm+~z~Cdae2Jyu`Kq`})QoNx;x*F}zZ$uZu#-gQp%s8r*HrVEk{Iu4m}BYE z1oqG92JU(b?}ZgQ!1%?(j;9YyocgKxeaD9qaE>5zc;pSejzf%)~toW z8;dg?1`A}+Qw=lkFnRlHznz+MlZiumNTTyv?J?1=+>$e5b4XlX2;y6#83)H{04uSM z0Q46j8TtQ_LM1`LH=+XmF*`v7hG17h>i!!tdFREB};WA1Z#irDS4Y<<$$U|KYt z9K6PHy5E(&0Gy$x`u78!XM}pI>akjE%Z_`}1QJ&qIzY_~PUZ@)9Wl0e&FErqIM0iT zpbgnthe|5Akz060X{GRKGiOU>KNl(kt7bRIZ0QXt*vi9fp14=ZA@=!>_`&Prq}yfy8Qg z>{Qp>I49(4wGt`8tzm*i&8Ur!B@}p|a0y*P2XQzHUo5QHqPeL=rEA1!SIBtQokVJg zbqd0s4=B3oz+X*YaruEvZcNA8#SRNBdg>+lhSwp2t967$t#^uWX42gqM?HY-cL3XJ zxOgo+L}g8!QH<1VG`DilH)#0p7dYn8j%%n&XNz9_GbAq*317-TL65SYAQ+G-Nr1w_ zYuz5HR+o!>`1wQzr$1ET|EU^ zm9qxFXwf2(nxY6}5^}~F1RI9+P5G4qULFD8#)s2Y2jyrFQ}eUbhK`lDHFPsL2}zz8 z(9sVq)?pg0i4Ho5Z83ECZ%QPu%V(s2aOr;6D6>P_Oveq4A0Ld4@Z}as8#dAlr&}#s z$?G`Je%dM%XX~7Fb^RA#wI~UI?h$s^@kACfVf<1pR3Sr$4DIFNwZFl2$ycNYerK7^^0P z|Iw)9bUyBjRW{OMFp+8`q?YE%Jh}W2sNweFAHvmYL**(yRoEJ$85?jMiKQw5Vymw5 z*>+K6*#l5^4BZ^*jH@|w?Mz(>UvPG#0XKK3^Z;!@lD`)gJHOmfaulnx|3+Ma!J#Wq zi9#yW&%-FToUmm~I}z1Qfr|kn({iY-qj2}kwB;TjhR2?rf_DgeS#il?x# zO>DrC+h$Jxes)ycPVVm$+TERK$GkuY1@w7*MyUt)Re!Vxs9y4w(hD`R`NSlu=gPBM z?6`1LxocSOmvSeEeZ^X#kLA~|J>Y#qQ|&gPvzFLr5L|B`b^^4 zqqKk*9|ix?%qjivm_vc_6;2w7U=+Lk&5g>|wX7lAS9>6Y);bC(*OVG(3r20A!SLX< zS}2aA7hHOQrbEC{6`@Nvh$%oRme*2t%|Q}lOUZ0GrWu08O4PE<2!wEL+}Kq6UDj` z4j!TE$dhen;KfHr#yCa(4}#>ilpVC+^6>ZEHJIf2K$#{xHJi=m!qjsm%M@!r&qKE@sAiN2#ue*lm^j!?aE1g zAm5C<@WKwwY~1Q?$ODE7w`BJRvnUmWs@I-+6o$gik_smP1%vsy|1e^cylA4Nlo;1<8No-vvJZ;xKWh$-bSGoItQix4e}+h-Ng6m zg39zp4k&fm_8)1TlvqnIRzuNgaDmuNy73U)WL(}!8hxyFbY?O>YrPsmo=tJ)P zkHZ6YJa={NCsG#!5_*62+^$oS;_@^^Feh9&8m)_ZvUzf7gh6!g8NL`_K1^aHciH$J z{qu7i&DKjC$XPJ5+k6~LsYv>y1o(jp;X7KNTeH6TWDKF9xnUks2jBkA+F*OJ0@bRx zI~J<=IV6~rE-KTRAWps17#q(N zQa{rZS0&?8o_jQRDdT@__EvlQ$#Gi$*T?{C;GfLBU-ekhwKa?@!&?^?ixQ%F#)iunhF9{K0P zb}vYq3oz|iWXXVX-dW{fi9(m3sQjsz3qnI1tX>v$5C%EqsT*C`>;M1%ESUwMoPXf< zoo~o2=aDN6phD6cP$Zmn&yyS(9c0jZu^P-C10AM`++w97(oBsP|m*0vCtzviL|5FP?` z1&CN)c?ME&vr)@cuufbM2jsbk&ak+z>lS>Pl7xh?(~}kw@@hmWL%zORJJ?0o$pxz$ z*$~Q~m&tB}Ec@7YEsfm4KGl0y+QTK3joO>s?{#}kALi2B&Gwu=n$Pc$qELh)MdAc( z^J0vw-+c)IUY&@f%XA*i#=K1nb<)_7T9B#IKJNT8T)8wCHzG&=RpCQK`lwsPwt9(i zWc@N~goTkexl=W`ALXX@Q(fTw)JI%e;{z=xfgs2=udv*AitB0jQc4M)K7fX2!`i@uf0wAr%X1wkDE`}=WqzxiUy z2v=vNHFC5png0~j?GZFMAL5RV1!zjx<_1>f|@9q@3N=&p#BjR|Q{ZT1pA2w?SI@_@;p#gD+_s z0PcrGVU2XjywpT%~0_fK=7%a+omqcSKy>5r1?C{Jq{*v$U#c+5ywOhdBOM4eURt6`Z<#Z&WbOizwdTgH$B3~`gJCgBr zF*;jO(#^*EilC7u-r~obcY7KBBy^voG*QfY)G2r$CxIok=R+I*1IshQ3($c{n)=Ax zjCKjca~%U{wXir$PhQoY{OapKv`S`4``ek*-EgJ?r8gw$p?NoGFcX$}_XtvM)MtHz z8u4e2_4tG4UA{8&a8#xdtITQ_ZF6=zo9EwIc4DvZ{~d?}&+3@t2Ua9C0<~<;wZcoX zDl1jOy9h~(bFnm4k|yRZB*Z7{dR8jp>W!`+bomPN_13pN1a2hVW@fP91T@z5()OZY zUKn%u%+IOPxlHaI>5cbs|zacjE_ zmZ9i_3i1Kb9T}mGs+%gdlhT(LSNVm7S+Cj<)=%=49Km~ zfa!?9l~8{mE1L^{t`9vHyS_ra$De@U8L)ZjcB*{bl@GXJz-a{)%@Pmv?5A0qx-3z( zNUymyZpe*QBSM~& zW8q0LOe5NAK@0fJ0u^k?U{RsLX($E|JL>Grw|knzMC!vW-ziStvq|X*eR67`eJ3<} zYe6v7|0+u5`%yWWkRR3pJZUZ`(27$$?zy}^$A}#V4MXxUKC@(0B`!m>juGVN;A2!o z<%*&im~y-)S9dBm#Kt{N@@%qzD<{8?7*{?Jj;%^@uPzz;r%B1LR3OqCiD=XX?<)|) z;M7kL+`gjv8|I+QuQ5C03W65)-=q{}IjNmBD_H*VfB(uXF&RKj$`7uHv*<9jJBSB1 za9shmxbNae(e`f31v-n|eB`G0H?s{q=6jV=3T>rJ=kydiIHuJWc&_=6Ihb9O)|vh* zhu80Ebn`j^m}&iYSudC3VbB-KUHc{~J7xi^eRZQ$sncwX8vmdE!$F?oe&qr7m0C|V zS^fF5A&&ek;O@1VXaObOMMZVnp?vl5mnQz)U>eaBKU1XG zjbwd6q;@4Kr5UuHT#RNXPI*rviJ{a<ozG#m)S5A0;7x2U5t-mo5Ms~kB)>(+N8bReJ=esu>p7Qj^SQ13(E1E;;vvY zXdGBi0yS9=sgkwvL7_c%F!mQF;Ua|Oc&ALlFPK+}s}@YLBp*SaXh-(5QBUkYeZZjK zrYyxB4geMx>+^1nHz79a&V@>&&&A*${8jrX0=vRSGYxEL0S5Q%DgHn)E`iZK>!!Ci zU$hZv+|AiAY&yaCZqTZ!mcrx^%d-7ZUd|K9+voX4w({R16=Fo)ny2VJ@OjVP%q^oU zDYakJ{zChj-iCETi@Zv;=tG%lGiv1|HwZuw=|ceLq}P$booSGQSdrl-v8@V+AY>Bu zjK+u`Ty2?9yT*RF$myvUOunm6=U0y!v#mf@B3JKdhp-e(*b?QD*V2TI@@;jy=}3OB zXwkIP)$h;B8j8IhZH@y-DRo)sCsIi;{?+VuoMc#N+4s^1^YQC{d>aUw#wi+1iz$8y z3FlXKT&PpuQ)H<`fCR%}A`5YTcvlT=D2(xIAXV*}VF zfp@g~POnKhq<>F7P#u0Et4kW3hCNwtWft>18H=08U6*WAl_;Ere{u-$OX<0fgwD$t z{21(Iw}fP6@8G9=%5WXrA(!%9gAJ{P-bRRHW#D7~*oA2C&JbtBye_jQ@ZIy6#3t4} zU$R>4q~`PtF1ozW!QNi}AZ^W#3CDmP7f}e&b_eC>8}QIOJSRD!F3GI^olBHg{b!pW z5qO|yy{P>Ur}&7BwcAVGEv(n< zHK3K<_J2tM&AS3-LHezLBmeK%4LXaUhemR*=0TST3t(9-tt6f;#r3smHqU2WYg>H~ ziuBQj;8S_&acJ^OHY+msI}!6tz&B55oW%M512qn9Q~J{OUznz#fJWkLH!i5|Ipn=8 z2=fpUq*gTB(pYhLk~!IidS4qm(sidS4<4XjE4He*meB@iP~DxN?Gxj^aWZT=)}m0L zV#Thq-y_(c69)zyWh0uac9ajAv?JI?&ldh{~=>2YuksVr4q1l)K;d1O{Ufo5hLG) zX!bd`N7t9p*C~31YJ-X8Uj6wk^VZ8YV7}oiM%~(?(^VQaGi|D%>-y$~46NQ5R4Z0N$6!d2=b_q9Z zvdt{jHOTlFw3wuc)P8`xGYf#3MW8kJkn!3#Vw$vb&U!$F&tl`FZ@0~w_k)xdvKB5G zMb62A1`4)1Kz@Odf%qO8UIYD1UkD2M*@YETWrIDMq) z%26T*3>bI=C*mpeqB9(CerT}1L_`$*U)JySbeA-&SbYEF=23K6DFlrKomgVAhN+M- zWWU;Ejf;N9Qtr||Qkb|}wN%^So;Sm%crH+qo)bjT9Hj%wiVC}dggC%taUv<#v;F38 zBCV&a>CYIWEZipB{DU4w4B?C3^y9FYc3~TzxO??xI2RLqxkvTDwLvn*mOSGDbVgMs z)uXj;eMVEJoBAlF_bY2RLj^ud5z1ZMw)tG>t7u1B3vW zoxcVDr#*!Kgkbz<)2hX2!(=uU?d=hTDN>^h2uLnV61(1mO;22@t%(+?HAcXJrkO@f zp7BZ6uZtVfeLRvl6+fHc<$SPILlUCjO)lHEjn%LmHOs&(@CkpV*QcR`d1J`VL$5l~ z^S8`oq#3(}EVF}XtF~zQAN8S#Lc7JVs)bJw6guo|fNSDHh#eblPjQ1%6q@~`kktR3 zHd(qm$Im4>wKm3DrB~`9_%t^?9JTB`f7BnJu=P)t%FN?~@mb!CADEyXoTca~ZiNmT;Vai*9Q{D1=8OTPnRqoP9gF{QSy^x&=1n<2x05ooj_3(bqKN57 z^GeJzkw%(z-+jGdIf}#o+GsLw+h@Ev2RoVb6lK8z_?DYC4wjwrdx-`6ymKPJD8Jhr zr#J+I{zL%t+OuJYS0Iu4oqQ{}`FnOYN6|Q?792nZRrvJ;wu^|DXoU^(l!I4cDip$a z!75+`>h&C1II$_Y@C11Qj4O5yR}Wr3fbaXC9$cAA%dY;xV>Es@aP!p{%nH(5a{;W^ ztov$~^0sW?J~49g;j&raFB)_TpPzAXaY0>S(jD| zbcwTM|TWtmPqU_fwWm6w;e|n+EHZ?}IFuUjJ*=XAOIeKBXrvv1*ULVK+3%nt~#IMAX87KBDy&>HjJz+t` zPZrXhn(9N_VH1R-(POY527>8TJGS&)q7(g|eDljg1m0SDJD0H?fw}fV#_z%?qqIIJ zwyZFxj$Nx%hE&5HQLC{ERO&D*aJO2>nJBPF1k@Gc$a`X|F!0UG{v$|3dHVv|2X`u( zcqi?LM%vz}{c)9Yp7C~UqWnoF&=D|-3H2J^spMcpWS}`Cj%(9yFzKuyJN_d-Ld;*# zCqwICQ#0I4YezBsq{Z#Qc%uM-{7gsLvkAr=U&GHSRO#h>7MyQrbYi{jPM@Mq*d!%m zMNIZ~;XQQ3As8nPq)`4U$4ZC5l|B(r#w&#zvf!dyF?MKh?pZ}dg+$=1p=dTDL|yR2 zqvP;ZYrw5e?Q13>^!=FR$TFm=6|83F0Xuuv{rsOO^^A(&7Ci$f!(lOqy!0ZJt z*D_Mxpci$rWzk(I&-cnkmL{6qn7^=IT0@z=-Hp*t*)tLU|DRa~TeNKGxc}roUtPb( zgJDNbiy#D!l)rLPFH`TGEEJE-P3wGhD+tH5Fr#<}xW#B33*ShemB`20DneO@tG;n# zQZm|{1&PQ)p@33kE6AH?YufT@m}p%$TI_1e$^976bSc4o`OFg%V<{|6TTkdkU}~2l z)HX~}ZFP7h_O@t%AeDcXA0}zGs0r1ZVQKsgcokC&5vQpg3GdOv#%wo`C`cPgu{H~o zmptHpdsK74J*v(f-EhY6K(7bW3M~tGP zXNK2U8&7VXkqt{d-xEg(?is-XI(bw;J~2y7+v=)V1slY9^(C_B>`aLC%pd>J3VtZf zyL|JCPXp**YsCqx-3`hT)a_=1<#UUnab!a3vSo(Yi^)>L?y#!<)AT&h9IbzCNFPyn z=Xroot8vMpClR7{yn?A~Mp;-4EzrpJPR5?-?aCr-A?s!W{PKci>&iL7$b-XeeIHnp zeSU<@Qq$gU$=FmpsdICfiV|aA`YXy9IrntXSU^yb;3g$MLULQa0ZxoGvA5|Wz~Qt> zVu&_a{uV^QY6QS!^{f7OBj00A2`y(5aa%=?4wY^Nnt`HJ7y&S-!=y*MARs#_;_2l| zD+ELzGV7<};n&!fz4jGqavtOa9C{n>7DB{ytY(&%yRjmMVj<{g34Q?k$OD_Ko~lzm zyIY3EuBRI;k+g>N@>vK^^_{dd^|9ZG@H*3Jtl=YwcP9}CdRY~I`VotqeIqkxA=Iv7 z9smFTL3Q3=Yk9QpADAmE}_KcOu}d?Gv@LflcEas!0gLt z2nBXEZ$|a!ASUyKfF8p+z|EsSBKyjPk#qDg!hS9MAM^37b=L52K#sdMM>WuV*kb=) zZb}JuSP2ewN2(nca|k%SF4UT`(rOAKK6W!mWP)x>#(Y-fO#e(g{^{ymm1X*XvrnBt z2=G);ao_c>V~08k`=Bme0*(L@$_rW1oeafln-_#p7B86PAW)@2ZtP2E)G3A`8RQ(P zg|6HNCA+x$(EHO&Wb_!#Vnt5@shC9|y&Fb46W83v%5=YcOXLbrGH7eVq<916U_v1**C7^LrFT&OsDp;ip zA5=WF8Hi0Nq zlucAtUDPaw88-v1$1b|q1(!NxcmIiwsl7V`&NaS#`ko`M@CG7dO9d(W~Nce#lC8hY&mZInbA#aaz|vE}6 zQlnSWR)-$c`qJJT@RQa>qiY+0k~C~O4>d*^SK9Kd*C*wH@SB)j?(oaX#AICc%aO9$ zg7K#eh2)fxj6h*F4{x{Rk7Ineh$2ahQ;0>$U0lwyYbtTNt<7=Zsd9FEbo{n&kZjv8 zT@d>(%RwacA8KLw_KZj^L#o=S<1h*EYPk20XN3V9CV%HZR8Y~26wc;xVVldeRVC$u zvW-5h_3@9tEyez^-TX%G9T_#vO|E}eW9?RZIZyP~WYtgjQ+IWQw;UANI~c`7Cf8&; z-O#;P0BgY2_$T4C#7OFROD?17vqW4&n|aT3($4=lkcu;w*XgkDGI@0@-Mao{v&V(y zgt8tdqA@=r#Jcuov-HJ9Pg28)|LeJXlFN+?vZ{awHRv5=XP(v`nHjefXJ38=_hhKf zzGerF_?_cz;Wa=@M{E2AZ&H=(xe-spDate;0Cu(x!q(GT)Lv4laDinAnl~Q)13W-r z+fp%5``PSGPR%|E`K&BB2%bHsbA>!T5Y{>mQ7^=_P&%C5R#$sqC6N(AMIb)hcyp^n z&n|umfugJ>ITJB=)uaNCY6@VzS-R&X8cJy)1AM6DI)%-o;i=m(o!%f7cKeB5wwEgT z$$o$BKOB9$p^T*M7&sbO&tjsF|I|55&0Nh6HSrjjeB9wO6V%qAV&E!H(>IEFAlzw% z+Q>$ra>I*6j{&(V<;`(aP{iaJ6?zVu2|@EhUIXj4nyv;0BtK4Fq*S`A7-$1m&g+fb zF~3>Kx~>LF1B9NPr=v+1n{xpe;$Tuow$F=TI((29)GBbocqmiP2-@}TkNZ1D*Bc~YG0NufE4Bl2Us#H};snmbCC`g+-UP~p$i{{E6r z{B?TRQB1{wY{V=5Xz-%^eTV#4K)NMxh|qchb)LzNFTs;Bd8Q+TP)e~Xdq4c;~ORR|J&Vu z+-A=fcL$%LSZsU*|BP|%Rs7GcVs!m^Y4?nn`G60EkK zXnvt4R)Gx+O_MP%^ihntJH>=m(uM74MG)Bq&M4LZQ&-_aYa zA@h$vfa@Hv8A0e#)gY|Ex)2hC@8qsIqPvMRP6#LNM%Pb%0OJvcw=PsWGWZpS2t!_z zkn$UkIY}S~T2~X?tWyySTgJW_a8%!QaSY=JBGI^|WhFr~ z>RM4egR0VC?P3oFYnM8N3N>Cxic$=O*z1CBdKI&FKGUwvFEdYu=98m29G3kiq4koKrF* zi=e~#ylno;N%Vq@?SU@c=`U)k7ZkpidSm2wjk&H-%vohBZPr+3VEsIA@_^yzIx{}` zF1nL~^;!w&i@g!A_89i7%cTlduM_Hc3Ec?eOp(=ZnY`tq|xG-^Q4LujsT1!)- zSvE@g;Ak3G{%_Y*E!xwtCjp0FW z|NL7q*EdVXL59NU`)9k*>FDsW#mwGl+rS3ct`~n%Fb&whTm&p0`kR59k=pj)O=1tM zrI~vyWXvV|gkcuFc@fy0SqJ!iMm}w`Ol(QOciXC`s$OO^ae0Os7d2MF&Rf)j?NhHf zl_`b!^0n6H(|q~x6BGI!cBIeZUU}z5p6uLh_i+$`k5_bnp%Nk|ahdWG_FlFn)zp?) zD9WW`0;9S*b9{dvF5X|#4^m4|5g>8vxZ|J`j zzH4}}lAGIW_i|nI(ZQD*pWfEG%gOGht&bl~aKGNXI#V5FyTb8Jeam@TMI`)usEif$ zIXxIyZL!oilXBfH4ilI5`J^+-;dc^Pr7J$5Lpv~8#7jtVV%{VN@%MTdNvVYQpaP zEsYt>N${|(Gl_V$PQ`<=M?LjuC=!QvJz`NtY~0Pkze3WJcK}v0tw+3g{M0@{;5vEm z^jcNsX|ez%>nW%LCx`1AQRb+La2m|mO<7=F)Y0-b8Zy~wp@2B|VAI;}+2lnKe+lGV zui(8}81ZrmR)mn-Ii9-?*#md!m1Q&NFVp)+)wfOPc*Sk4yncO%EvI`*rtXFzA))Bv zbbtIp8jp{MDfJvN8Q?$c4CPFT$)?^fSy}Yy2HKh?sF}JS}W7pSR6|x!{voxA|@bV?q@Z_f( znB(Kj?L$m*d;5_;UhPlv3D1R(KBRE@ObYO};CY6*4kwu5#a!w-!)cRsE#VPk{EW}m zHX(PxoA&H>NEDFXLj#~b)D!AEeZsv~Tj;vp*%gJSKxb?%mcW4rn|c44qgZD1{YX2j zxf|9Vr)Bc}-Vad5^RT4z&;s#;Pw>il@V3$ykwjR^sd(d$kQ8CTONiU-IU0@m6`m)?*GLj_hfO5l3sr1Fy}Bb~@vyR4+xPA{|qw(%v5!KaK6u~9Mv zkqwL7D%Ni5i%A=&@>4ZP#ruk`812+*4_n+?Z^(bWhratw!hX6_AXJ3R3gbpi1c1Id zEB`c$f<#@9B>8p3D%o+q;Lz9Z?MMT|G16z?)ziU{ZvlO9=(uE6*6RoPZzUe(JH9M^ zS@Bye^g30Y>%ipz*yPR^G+8-;#YQb0L{%g)e5go7wz}&EpNE+&)L{sUPgw>=onDjk zIyeXA7}2+7x9b$3Z)j2qmxvMnZR?#mKRhO#h}z{ij3cLI%xiy%T5}WF0^Nh6Go%`P z?~9y*4Wp^{>$w@p)^Pk4!#7`~k+g1gWMnoj#?D4`GS4baHYvNm07YeSwJ&r(O8$c; zcj*d98{U`da@QQ0!<^BzBc3`w;t$TAwfuScymsM9f3e0s-wE}Xdqa*;nXJbqf!z*C zuG*8zazpj>GL0k9y&1SPy~tx*b~om0`HP(=;J~Ub@>f{WqZQjpcTv6`1+fSP5h5m)K67&nG_pRX5ecuJ7yF-f1d}y1pC1v<0-DAvLc7<_A8%CjH+aX zpMI5g!x-$rieCk*2Q11$6OtJ*!hT=hIioe6;6btahnyt6BkzTF*Qu^p4aAmVK0Dt# zJPAaa&i3WbA2?axe#)OU&eipub`AIZ`_CQX3X>2i4tV#2`9+fb|0AsRtUbd)`eyB) z%FDt`0SZti!L3;T4EhCL25{Pg`I9eLnmcHdD^qxwE9NS?wlR{(x3}+NYdRcJeo^w1 z>o>9TJb{skIFeWukq@$yIH!@YyhiiG9ejj$$=GrPgkh^SymZO{*tp7Ht>_O0231lC zoOm5SAuR?iz{rxkB>ZEgxAF9BpD8yLtsCH@9R!@V!KoXPS;6yPGaTu3d=VJ8^;7p{qE7Tb3ewJYpOS%SGS*v z7=e(z&@ctMywnW|hx9huuE4X`s5YH{x#`FV+M$e9!}E7wKMlv^D*m@z(;4Keq|(kH zzY2IBzLDOacyDxn@!B`q99nbhkXiaN)@+>|my)Gwycd#)AuNmVxXl6(?WhrkD7cUt z2~$#ffxLoL4R)(-8u%`hu_5_DnC4`Rv;=nqp8(nn`q+BqRR5`8Sgo$T5t0%D!h+nSVCnjgpIQQ|La?o z;rO;f3T(WZdI8Q=t*Y<86s6fBZwP*r=^q!7J+OQbT_PlbR@p1XPr{>-d?9>z~} zO(d2+0`K|>hbZtCom-Ip(*ilgq~KZ|@TK$e_P7`?@)IBSWb>(2 z8(t~sETg->zq?2lTDN1r7w2)U^=1xEFo_STaNt0gn5VN}S~IkPxqKYYP0Jjo*odE0 z_pd-ch=uIKcp+9fl}B2@cfoFaoL_>MN`f?5vB+;DxX?d!MYzpI&YfDMLU`G(<$?=% z3=)?nwqFz7kYFhUND*{}bZu^!v~?teB(C=cMC^%S@;#*O7azO21y}-vCs+yA=vu5_ zd)?~QJzFJv=ZJqL#_T)OY>NNy@B59|k=B*dw7vwDA`G5qSsWg`M@X}Dp)rG@`gonz zoa~Y_HIPh^;PMm*rGunk$Eb#?L;7e!g1&>h8~v=UR9@;T_0!IxWR?I5Ek8?U^)lF5 z<0iOTgJ>NFa5IGECg5q?W{Q#S7G&-7n~-*^qmav`gXS+tSxl(P93wKKdhNFa>Ugjb zTOlkwSWTY*OIRt#GOmYt_=Svlj|c0t1SJ+FHqq1dub5$WAR3B9Vij?h^+o5?HKOqb zx~&@4#2ZXE{aq@?ZaQUppJX#N0Cbv#kf2>dKGWol)v!2U!9?l4-WZn|SwwMipC)j= zZ&_ybF$K(fmSpp?0X{_}eW8DrH)7Z{Idi$S$gOqPUU=@sVQJqeSOspYcCf|+ zrDY=*JMB^od)cJoOe|&E?o=caP(DOQ35eafN(53H0rdYgk!ByMuyXHp}OFN|qs=OeA%Xy)3^V;N=uYb3t z3vln{QD$nEF033S$EwZdm(fq$zH;NqM2FrimWu}KbKz#qUDMXsm?wnn!9!braisQ7;yYrda_ zuD#YLt&q^ujbB|%5U{w3Q-%Q><+HWPN}~1y4d#_v#uC|Wtex77frdq`9&PjK4pbd& z*?1GkpJIntr!Q+&{CN=DLeVOt0>%6NSe8*UI;aXLI0x51n~h#E4PBY&WnDM@JGnRY zdcmQ1qbuyAVLQ7S@5~gJKoWCCvF=)GIvh_WH12%hN`3FgX%iotJGNh0@c8G}9W2m~ zcWlcs?^vIOBWaXSp+(V9ck}oohZx9?Qx`h{O~quG(sTTCn7YNS#gB!&Y7HE7OA-z8 zEJ}U)2$gPWm|3O@2y#;d+JWl)TCnF}Hf4e8Y&E|}BxmxY%1&UVZPLb8q;Fwe#`3ws zN(Uao$5UhB-^VzSEkmugj^qTERq8qopBG=Ybk~O4H5_UApul%~whq+Ch5CNmS2?sDWHjQLdQ(KEXw7cp>4#NGR%}_m9y*Vbr9m@PCzO9X7Pr@%UKmYYj zDd+tJD>BS?P8djqP-)-g>KRciswzaf8vQ8M4and1TPlrPO9LHFAAjr;nPl)N(9x4Y^YJc%(raMDA0x|=*{}4zml2fawvmBHNYjsPk zJGLg%NNH8b08y#760z1YEkCR9Cgnzub>`L5rMe?}5QVHkY9Mqi-@^#Is#IJce(lpO z!py71xV)SGLfQvKZ@4|52c+2DV_m4?N?o}WfKoCnAlcDlP`y0h(}VN+=kPH^{h0oI z#wwcXvSQX14ZD-LT6D#eYr89{=bb+d$E_9@1R$Fj%VTinDc6r|rn1mul`I4YZ5Dfl zgrwvta}Hyiododg_=2;SNXSr+2FyWdLxIKKt1D*z`k_T$p)~24j^MaN67Q~NmA_!< zX|SIegzSj{_(?OG-XEdplq;+wZ#)1tQ+xFqAY*M$USro4Y$%DEk~5f@@L6~x$MKz} zjQvVw*I0J<2P9y&!II&5i_$IF{UNE{;oHad_U@9ROx$^eyl z|5$^pq~3W0IgJ6d7WYp5CnpRm8eY%}IbKVPTLZf_E~b)FC+VR}KAD{th2I>#er~y; ziRR|mAW+mMHIbs-_f6dYj(M^M|IxWu+AxACELPf4ZcEuEg=&3*U!AHpTO>Eqrv$ie zLbQ~Pp>x`cC$*ox%A5=mkk9<8Lq>tWCj|8QaqoO*Yd(dY;B%T~2RfVljc}c=zu#BB z;vt3*3?R}AF9OHaB(D!Yx9-9#AfA$M_g_jz8bam(mzi0|v&Ps10XF@YT=1GIU70eB z7qZQo!ZS7}8!_*z)y?E-$wbn9uWHZb!Ia&Tf2A2hO4K@~Y6V%XuAvxqD~#bDyKx|K z=cfUkTlc)?J%x)ZH>(FLWo@_cS(i%;e^uf3z*A~Pi?nFvBzW|8b*``xA}q#Pg4|m* zdE&5)GUijl*2uFg|FDv7qIKqYBteZOB~B0C9JmY_Fl=(8a6xD2>C8 z@L_Kqpst#_?!sNfy14aB;!;v14ySlxdXy6m+SO6$#KhnQZ;KcH#Ms}hO0C*_?dSUX ztA_z2Dj?yZVR-T=!KPc7zj}3c(67Gao65c9AS-e%GRNtiTh^4n>mV;bfKpd|3)p3|KfI#wy|qwG4#cpqYwg zmF0i`{tyw32MpzW94g&{)vstgANh8|>D4DkNJXVNsa||hXJdn!22k^mBo-YRJ6nd2 zOOkOqjC%+UnSDJjNgdW{RD0a4$a#DOEv@)?o<@QUx_vmCknzlvmlsf(Z_@*`J8LS) zgW12Kwx|;2P(vu4E;p;x(T9GHM+f6^bV;k(w0FLQFtL`p#8aNaB0_N=akE(;SCS0o zzp@*QV30&u{U?rmW#^K}s(WH+Ni8P@s`=w?BpK91cS_%nfEe>|$&`YBi*%};7=!6R zADRG)nA9@+QT}_K21t8!J@F(Cp8lH91#fVGo#aBkITrtZd&oTSucRaxO`Li}svp=r8e*8nlD|-! z&V^VioQfT{Io(+8U1IJclY!3?Uw}WX$aMaF)%#XfazdXDlaj{%%~jec{!HLzx)KXb?{G7T)ogk<`p zxN*xo^PJm79%*|Tj&jW~hb%CjJn>HazGib0zqECg%&pBRy-wmV@>a>Z{*gqSQl#Vm zDia8bXMCBH4@hiC%;s%wp+ij8EIt@YS)-{Y=^)(%jxIF)V5+!&jaXdQ<$ZQ@XP%-f=w`qtSF48Cv=R1H+p#eWEc3jPjerv-9 z3pRE@X)(%k!TZ%R;J`d@_%FP)j_Use^b10-0Tf~Pr-#Dd9J^B#U;Z!UwTFdV)#8>j z2u}y%tY8z;)_XHLuHu@P-2dZJnl<(JkAi@r*hltFUzJy<4Wt`uNl;-0>@%r{E7T)~ zs+nMf?tlNyetqx>lmZ_B_xA1KL@IgCpxE}@l!-}OoXL8R%lgVx_uhQ^*9*Sc#;Re>wTvL7 z=iJoG8Ei;{3innLY*NHn0<=R@`FMc-l_K6;O&J{)i57+jV>5?mWGUx#+h0 zlGS!GsQCf%wpe8^*!K@LU#3W4$1D;{quyI#DnAdD$MurVo<=$Q228J563fEA_v>Z^2�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

HP*kNgR z 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�YsuTMD(3ZL-zILgfG^W4lV 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