Merge pull request #8465 from owncloud/backport-master

[full-ci] Backport master
This commit is contained in:
Benedikt Kulmann
2024-02-16 10:07:47 +01:00
committed by GitHub
295 changed files with 17600 additions and 3968 deletions
+3 -3
View File
@@ -65,11 +65,11 @@ $(HUGO): $(BINGO_DIR)/hugo.mod
@echo "(re)installing $(GOBIN)/hugo-v0.115.2"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=hugo.mod -o=$(GOBIN)/hugo-v0.115.2 "github.com/gohugoio/hugo"
MOCKERY := $(GOBIN)/mockery-v2.40.1
MOCKERY := $(GOBIN)/mockery-v2.40.2
$(MOCKERY): $(BINGO_DIR)/mockery.mod
@# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies.
@echo "(re)installing $(GOBIN)/mockery-v2.40.1"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=mockery.mod -o=$(GOBIN)/mockery-v2.40.1 "github.com/vektra/mockery/v2"
@echo "(re)installing $(GOBIN)/mockery-v2.40.2"
@cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=mockery.mod -o=$(GOBIN)/mockery-v2.40.2 "github.com/vektra/mockery/v2"
MUTAGEN := $(GOBIN)/mutagen-v0.13.1
$(MUTAGEN): $(BINGO_DIR)/mutagen.mod
+1 -1
View File
@@ -2,4 +2,4 @@ module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT
go 1.21.6
require github.com/vektra/mockery/v2 v2.40.1
require github.com/vektra/mockery/v2 v2.40.2
+6
View File
@@ -190,6 +190,8 @@ github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8
github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
github.com/vektra/mockery/v2 v2.40.1 h1:8D01rBqloDLDHKZGXkyUD9Yj5Z+oDXBqDZ+tRXYM/oA=
github.com/vektra/mockery/v2 v2.40.1/go.mod h1:dPzGtjT0/Uu4hqpF6QNHwz+GLago7lq1bxdj9wHbGKo=
github.com/vektra/mockery/v2 v2.40.2 h1:JKuQ74IXibMCGKG6F0yvH/s2sNs1CHy/nGBP0We5DJ8=
github.com/vektra/mockery/v2 v2.40.2/go.mod h1:KYBZF/7sqOa86BaOZPYsoCZWEWLS90a5oBLg2pVudxY=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -242,6 +244,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -395,6 +399,8 @@ golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc=
golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+1 -1
View File
@@ -24,7 +24,7 @@ GOVULNCHECK="${GOBIN}/govulncheck-v1.0.1"
HUGO="${GOBIN}/hugo-v0.115.2"
MOCKERY="${GOBIN}/mockery-v2.40.1"
MOCKERY="${GOBIN}/mockery-v2.40.2"
MUTAGEN="${GOBIN}/mutagen-v0.13.1"
+1 -1
View File
@@ -1,3 +1,3 @@
# The test runner source for UI tests
WEB_COMMITID=304fa011f59131657b5fc9698d0627b2b6d8c694
WEB_COMMITID=6fca4f4f12aa58d21c73d299b47bda2a9407eb4e
WEB_BRANCH=stable-8.0
+9 -1
View File
@@ -4,7 +4,9 @@
### Prerequisites
* [ ] DEV/QA: Kickoff meeting [Kickoff meeting] (https://confluence.owncloud.com/display/QA/Technical+release+3.0.0+Overview)
* [ ] DEV/QA: Define client versions and provide a list of new features
* [ ] DEV/QA: Define client versions and provide list of breaking changes for desktop/mobile team
* [ ] DEV/QA: Check new strings and align with clients
* [ ] DEV/DOCS: Create list of pending docs tasks
* [ ] DEV: Create branch `release-x.x.x-rc.x` -> CODEFREEZE
* [ ] DEV: bump ocis version in necessary files
* [ ] DEV: `changelog/CHANGELOG.tmpl`
@@ -53,6 +55,12 @@
### After QA Phase
* [ ] Brief company-wide heads up via mail @tbsbdr
* [ ] Create list of changed ENV vars and send to release-coordination@owncloud.com
* [ ] Variable Name
* [ ] Introduced in version
* [ ] Default Value
* [ ] Description
* [ ] dependencies with user other components
* [ ] DEV: Create branch `release-x.x.x`
* [ ] DEV: bump ocis version in necessary files
* [ ] DEV: `ocis-pkg/version/version.go`
+51
View File
@@ -0,0 +1,51 @@
#!/bin/bash
# The following grep will filter out every line containing an `env` annotation
# it will ignore every line that has allready a valid `introductionVersion` annotation
#
# valid examples:
#
# introductionVersion:"pre5.0"
# introductionVersion:"5.0"
# introductionVersion:"4.9.3-rc5"
# introductionVersion:"5.0.1-cheesecake"
# introductionVersion:"5.10.100.15"
# introductionVersion:"0.0"
#
# invalid examples:
#
# introductionVersion:"5.0cheesecake"
# introductionVersion:"5"
# introductionVersion:"5blueberry"
# introductionVersion:"5-lasagna"
# introductionVersion:"4.9.3rc5"
ERROR=0
SEMVER_REGEX="([0-9]|[1-9][0-9]*)(\.([0-9]|[1-9][0-9]*)){1,2}(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?"
QUERY_INTRO=$(git grep "env:" -- '*.go' |grep -v -P "introductionVersion:\"($SEMVER_REGEX|(pre5\.0))\""|grep -v "_test.go"|grep -v "vendor/")
RESULTS_INTRO=$(echo "${QUERY_INTRO}"|wc -l)
if [ "${RESULTS_INTRO}" -gt 0 ]; then
echo "==============================================================================================="
echo "The following ${RESULTS_INTRO} files contain an invalid introductionVersion annotation:"
echo "==============================================================================================="
echo "$QUERY_INTRO"
ERROR=1
fi
# The following grep will filter out every line containing an `env` annotation
# it will ignore every line that has allready a valid `desc` annotation
QUERY_DESC=$(git grep "env:" -- '*.go' |grep -v -P "desc:\".{10,}\""|grep -v "_test.go"|grep -v "vendor/")
RESULTS_DESC=$(echo "${QUERY_DESC}"|wc -l)
if [ "${RESULTS_DESC}" -gt 0 ]; then
echo "==============================================================================================="
echo "The following ${RESULTS_DESC} files contain an invalid description annotation:"
echo "==============================================================================================="
echo "$QUERY_DESC"
ERROR=1
fi
exit ${ERROR}
+422 -308
View File
@@ -1,6 +1,7 @@
# Table of Contents
* [Changelog for 5.0.0-rc.4](#changelog-for-500-rc4-2024-02-07)
* [Changelog for unreleased](#changelog-for-unreleased-unreleased)
* [Changelog for 5.0.0-rc.1](#changelog-for-500-rc1-2023-12-27)
* [Changelog for 4.0.4](#changelog-for-404-2023-12-07)
* [Changelog for 4.0.3](#changelog-for-403-2023-11-24)
* [Changelog for 4.0.2](#changelog-for-402-2023-09-28)
@@ -31,11 +32,411 @@
* [Changelog for 1.1.0](#changelog-for-110-2021-01-22)
* [Changelog for 1.0.0](#changelog-for-100-2020-12-17)
# Changelog for [5.0.0-rc.4] (2024-02-07)
# Changelog for [unreleased] (UNRELEASED)
The following sections list the changes for 5.0.0-rc.4.
The following sections list the changes for unreleased.
[5.0.0-rc.4]: https://github.com/owncloud/ocis/compare/v4.0.4...v5.0.0-rc.4
[unreleased]: https://github.com/owncloud/ocis/compare/v5.0.0-rc.1...master
## Summary
* Bugfix - Fix search response: [#7815](https://github.com/owncloud/ocis/pull/7815)
* Bugfix - The race conditions in tests: [#7847](https://github.com/owncloud/ocis/pull/7847)
* Bugfix - Fix jwt config of policies service: [#7893](https://github.com/owncloud/ocis/pull/7893)
* Bugfix - Fix Service Account Roles on external IDP: [#8074](https://github.com/owncloud/ocis/pull/8074)
* Bugfix - Fix the upload postprocessing: [#8117](https://github.com/owncloud/ocis/pull/8117)
* Bugfix - Disallow to delete a file during the processing: [#8132](https://github.com/owncloud/ocis/pull/8132)
* Bugfix - Fix wrong naming in nats-js-kv registry: [#8140](https://github.com/owncloud/ocis/pull/8140)
* Bugfix - IDP CS3 backend sessions now survive a restart: [#8142](https://github.com/owncloud/ocis/pull/8142)
* Bugfix - Fix patching of language: [#8182](https://github.com/owncloud/ocis/pull/8182)
* Bugfix - Fix search service to not log expected cases as errors: [#8200](https://github.com/owncloud/ocis/pull/8200)
* Bugfix - Updating and reset logo failed: [#8211](https://github.com/owncloud/ocis/pull/8211)
* Bugfix - Cleanup graph/pkg/service/v0/driveitems.go: [#8228](https://github.com/owncloud/ocis/pull/8228)
* Bugfix - Cleanup `search/pkg/search/search.go`: [#8230](https://github.com/owncloud/ocis/pull/8230)
* Bugfix - Graph/sharedWithMe works for shares from project spaces now: [#8233](https://github.com/owncloud/ocis/pull/8233)
* Bugfix - Fix PATCH/DELETE status code for drives that don't support them: [#8235](https://github.com/owncloud/ocis/pull/8235)
* Bugfix - Fix nats authentication: [#8236](https://github.com/owncloud/ocis/pull/8236)
* Bugfix - Fix the resource name: [#8246](https://github.com/owncloud/ocis/pull/8246)
* Bugfix - Apply role constraints when creating shares via the graph API: [#8247](https://github.com/owncloud/ocis/pull/8247)
* Bugfix - Fix concurrent access to a map: [#8269](https://github.com/owncloud/ocis/pull/8269)
* Bugfix - Fix nats registry: [#8281](https://github.com/owncloud/ocis/pull/8281)
* Bugfix - Remove invalid environment variables: [#8303](https://github.com/owncloud/ocis/pull/8303)
* Bugfix - Fix concurrent shares config: [#8317](https://github.com/owncloud/ocis/pull/8317)
* Bugfix - Fix Content-Disposition header for downloads: [#8381](https://github.com/owncloud/ocis/pull/8381)
* Bugfix - Signed url verification: [#8385](https://github.com/owncloud/ocis/pull/8385)
* Bugfix - Fix an error when move: [#8396](https://github.com/owncloud/ocis/pull/8396)
* Bugfix - Fix extended env parser: [#8409](https://github.com/owncloud/ocis/pull/8409)
* Bugfix - Graph/drives/permission Expiration date update: [#8413](https://github.com/owncloud/ocis/pull/8413)
* Bugfix - Fix search error message: [#8444](https://github.com/owncloud/ocis/pull/8444)
* Enhancement - Support login page background configuration: [#7674](https://github.com/owncloud/ocis/issues/7674)
* Enhancement - Disable the password policy: [#7985](https://github.com/owncloud/ocis/pull/7985)
* Enhancement - Update antivirus service: [#8062](https://github.com/owncloud/ocis/pull/8062)
* Enhancement - Remove deprecated environment variables: [#8149](https://github.com/owncloud/ocis/pull/8149)
* Enhancement - Disable the password policy: [#8152](https://github.com/owncloud/ocis/pull/8152)
* Enhancement - Update reva to latest edge version: [#8287](https://github.com/owncloud/ocis/pull/8287)
* Enhancement - Allow restarting multiple uploads with one command: [#8287](https://github.com/owncloud/ocis/pull/8287)
* Enhancement - Modify the concurrency default: [#8309](https://github.com/owncloud/ocis/pull/8309)
* Enhancement - Improve ocis single binary start: [#8320](https://github.com/owncloud/ocis/pull/8320)
* Enhancement - Use environment variables in yaml config files: [#8339](https://github.com/owncloud/ocis/pull/8339)
* Enhancement - Bump reva: [#8340](https://github.com/owncloud/ocis/pull/8340)
* Enhancement - Allow sending multiple user ids in one sse event: [#8379](https://github.com/owncloud/ocis/pull/8379)
* Enhancement - Allow to skip service listing: [#8408](https://github.com/owncloud/ocis/pull/8408)
* Enhancement - Add a make step to validate the env var annotations: [#8436](https://github.com/owncloud/ocis/pull/8436)
## Details
* Bugfix - Fix search response: [#7815](https://github.com/owncloud/ocis/pull/7815)
We fixed the search response code from 500 to 400 when the request is invalid
https://github.com/owncloud/ocis/issues/7812
https://github.com/owncloud/ocis/pull/7815
* Bugfix - The race conditions in tests: [#7847](https://github.com/owncloud/ocis/pull/7847)
We fixed the race conditions in tests.
https://github.com/owncloud/ocis/issues/7846
https://github.com/owncloud/ocis/pull/7847
* Bugfix - Fix jwt config of policies service: [#7893](https://github.com/owncloud/ocis/pull/7893)
Removes jwt config of policies service
https://github.com/owncloud/ocis/pull/7893
* Bugfix - Fix Service Account Roles on external IDP: [#8074](https://github.com/owncloud/ocis/pull/8074)
Service Account Roles wouldn't work when using with external IDP
https://github.com/owncloud/ocis/pull/8074
* Bugfix - Fix the upload postprocessing: [#8117](https://github.com/owncloud/ocis/pull/8117)
We fixed the upload postprocessing when the destination file does not exist
anymore.
https://github.com/owncloud/ocis/issues/7909
https://github.com/owncloud/ocis/pull/8117
* Bugfix - Disallow to delete a file during the processing: [#8132](https://github.com/owncloud/ocis/pull/8132)
We want to disallow deleting a file during the processing to prevent collecting
the orphan uploads.
https://github.com/owncloud/ocis/issues/8127
https://github.com/owncloud/ocis/pull/8132
https://github.com/cs3org/reva/pull/4446
* Bugfix - Fix wrong naming in nats-js-kv registry: [#8140](https://github.com/owncloud/ocis/pull/8140)
Registers the registry under the correct name
https://github.com/owncloud/ocis/pull/8140
* Bugfix - IDP CS3 backend sessions now survive a restart: [#8142](https://github.com/owncloud/ocis/pull/8142)
We now correctly reinitialize the CS3 backend session after the IDP service has
been restarted.
https://github.com/owncloud/ocis/pull/8142
* Bugfix - Fix patching of language: [#8182](https://github.com/owncloud/ocis/pull/8182)
User would not be able to patch their preferred language when the ldap backend
is set to `read-only`. This makes no sense as language is stored elsewhere.
https://github.com/owncloud/ocis/pull/8182
* Bugfix - Fix search service to not log expected cases as errors: [#8200](https://github.com/owncloud/ocis/pull/8200)
We changed the search service to not log cases where resources that were about
to be indexed can no longer be found. Those are expected cases, e.g. when the
file in question has already been deleted or renamed meanwhile.
https://github.com/owncloud/ocis/pull/8200
* Bugfix - Updating and reset logo failed: [#8211](https://github.com/owncloud/ocis/pull/8211)
We fixed a bug when admin tried to update or reset the logo.
https://github.com/owncloud/ocis/issues/8101
https://github.com/owncloud/ocis/pull/8211
* Bugfix - Cleanup graph/pkg/service/v0/driveitems.go: [#8228](https://github.com/owncloud/ocis/pull/8228)
Main fix is using proto getters to avoid panics. But some other code
improvements were also done
https://github.com/owncloud/ocis/pull/8228
* Bugfix - Cleanup `search/pkg/search/search.go`: [#8230](https://github.com/owncloud/ocis/pull/8230)
Now uses proto getters to avoid panics.
https://github.com/owncloud/ocis/pull/8230
* Bugfix - Graph/sharedWithMe works for shares from project spaces now: [#8233](https://github.com/owncloud/ocis/pull/8233)
We fixed a bug in the 'graph/v1beta1/me/drive/sharedWithMe' endpoint that caused
an error response when the user received shares from project spaces.
Additionally the endpoint now behaves more graceful in cases where the
displayname of the owner or creator of a share or shared resource couldn't be
resolved.
https://github.com/owncloud/ocis/issues/8027
https://github.com/owncloud/ocis/issues/8215
https://github.com/owncloud/ocis/pull/8233
* Bugfix - Fix PATCH/DELETE status code for drives that don't support them: [#8235](https://github.com/owncloud/ocis/pull/8235)
Updating and Deleting the virtual drives for shares is currently not supported.
Instead of returning a generic 500 status we return a 405 response now.
https://github.com/owncloud/ocis/issues/7881
https://github.com/owncloud/ocis/pull/8235
* Bugfix - Fix nats authentication: [#8236](https://github.com/owncloud/ocis/pull/8236)
Fixes nats authentication for registry/events/stores
https://github.com/owncloud/ocis/pull/8236
* Bugfix - Fix the resource name: [#8246](https://github.com/owncloud/ocis/pull/8246)
We fixed a problem where after renaming resource as sharer the receiver see a
new name.
https://github.com/owncloud/ocis/issues/8242
https://github.com/owncloud/ocis/pull/8246
https://github.com/cs3org/reva/pull/4463
* Bugfix - Apply role constraints when creating shares via the graph API: [#8247](https://github.com/owncloud/ocis/pull/8247)
We fixed a bug in the graph API for creating and updating shares so that
Spaceroot specific roles like 'Manager' and 'Co-owner' can no longer be assigned
for shares on files or directories.
https://github.com/owncloud/ocis/issues/8131
https://github.com/owncloud/ocis/pull/8247
* Bugfix - Fix concurrent access to a map: [#8269](https://github.com/owncloud/ocis/pull/8269)
We fixed the race condition that led to concurrent map access in a publicshare
manager.
https://github.com/owncloud/ocis/issues/8255
https://github.com/owncloud/ocis/pull/8269
https://github.com/cs3org/reva/pull/4472
* Bugfix - Fix nats registry: [#8281](https://github.com/owncloud/ocis/pull/8281)
The nats registry would behave badly when configuring `nats-js-kv` via envvar.
Reason is the way go-micro initializes. It took 5 developers to find the issue
and the fix so the details cannot be shared here. Just accept that it is working
now
https://github.com/owncloud/ocis/pull/8281
* Bugfix - Remove invalid environment variables: [#8303](https://github.com/owncloud/ocis/pull/8303)
We have removed two spaces related environment variables (whether project spaces
and the share jail are enabled) and hardcoded the only allowed options. Misusing
those variables would have resulted in invalid config.
https://github.com/owncloud/ocis/pull/8303
* Bugfix - Fix concurrent shares config: [#8317](https://github.com/owncloud/ocis/pull/8317)
We fixed setting the config for concurrent web requests, which did not work as
expected before.
https://github.com/owncloud/ocis/pull/8317
* Bugfix - Fix Content-Disposition header for downloads: [#8381](https://github.com/owncloud/ocis/pull/8381)
We have fixed a bug that caused downloads to fail on Chromebased browsers when
the filename contained special characters.
https://github.com/owncloud/ocis/issues/8361
https://github.com/owncloud/ocis/pull/8381
https://github.com/cs3org/reva/pull/4498
* Bugfix - Signed url verification: [#8385](https://github.com/owncloud/ocis/pull/8385)
Signed urls now expire properly
https://github.com/owncloud/ocis/pull/8385
* Bugfix - Fix an error when move: [#8396](https://github.com/owncloud/ocis/pull/8396)
We fixed a bug that caused Internal Server Error when move using destination id
https://github.com/owncloud/ocis/issues/6739
https://github.com/owncloud/ocis/pull/8396
https://github.com/cs3org/reva/pull/4503
* Bugfix - Fix extended env parser: [#8409](https://github.com/owncloud/ocis/pull/8409)
The extended envvar parser would be angry if there are two `os.Getenv` in the
same line. We fixed this.
https://github.com/owncloud/ocis/pull/8409
* Bugfix - Graph/drives/permission Expiration date update: [#8413](https://github.com/owncloud/ocis/pull/8413)
We fixed a bug in the Update sharing permission the expiration dates can't be
removed from link permissions.
https://github.com/owncloud/ocis/issues/8405
https://github.com/owncloud/ocis/pull/8413
* Bugfix - Fix search error message: [#8444](https://github.com/owncloud/ocis/pull/8444)
We fixed an error message returned when the search request is invalid
https://github.com/owncloud/ocis/issues/8442
https://github.com/owncloud/ocis/pull/8444
* Enhancement - Support login page background configuration: [#7674](https://github.com/owncloud/ocis/issues/7674)
Introduce a new environment variable `IDP_LOGIN_BACKGROUND_URL` that overrides
the default background image of the IDP login page when present.
https://github.com/owncloud/ocis/issues/7674
https://github.com/owncloud/ocis/pull/7900
* Enhancement - Disable the password policy: [#7985](https://github.com/owncloud/ocis/pull/7985)
We add the environment variable that allow to disable the password policy.
https://github.com/owncloud/ocis/issues/7916
https://github.com/owncloud/ocis/pull/7985
https://github.com/cs3org/reva/pull/4409
* Enhancement - Update antivirus service: [#8062](https://github.com/owncloud/ocis/pull/8062)
We update the antivirus icap client library and optimize the antivirus scanning
service. ANTIVIRUS_ICAP_TIMEOUT is now deprecated and
ANTIVIRUS_ICAP_SCAN_TIMEOUT should be used instead.
ANTIVIRUS_ICAP_SCAN_TIMEOUT supports human durations like `1s`, `1m`, `1h` and
`1d`.
https://github.com/owncloud/ocis/issues/6764
https://github.com/owncloud/ocis/pull/8062
* Enhancement - Remove deprecated environment variables: [#8149](https://github.com/owncloud/ocis/pull/8149)
We have removed all deprecated environment variables that have been marked for
removal for 5.0.0
https://github.com/owncloud/ocis/issues/8025
https://github.com/owncloud/ocis/pull/8149
* Enhancement - Disable the password policy: [#8152](https://github.com/owncloud/ocis/pull/8152)
We reworked and moved disabling the password policy logic from the reva to the
ocis.
https://github.com/owncloud/ocis/issues/7916
https://github.com/owncloud/ocis/pull/8152
https://github.com/cs3org/reva/pull/4453
* Enhancement - Update reva to latest edge version: [#8287](https://github.com/owncloud/ocis/pull/8287)
We update reva to the latest edge version to get the latest fixes and features.
https://github.com/owncloud/ocis/pull/8287
https://github.com/owncloud/ocis/pull/8278
https://github.com/owncloud/ocis/pull/8264
https://github.com/owncloud/ocis/pull/8100
* Enhancement - Allow restarting multiple uploads with one command: [#8287](https://github.com/owncloud/ocis/pull/8287)
Allows to restart all commands in a specific state.
https://github.com/owncloud/ocis/pull/8287
* Enhancement - Modify the concurrency default: [#8309](https://github.com/owncloud/ocis/pull/8309)
We have changed the default MaxConcurrency value from 100 to 5 to prevent too
frequent gc runs on low memory systems. We have also bumped reva to pull in the
related changes from there.
https://github.com/owncloud/ocis/issues/8257
https://github.com/owncloud/ocis/pull/8309
https://github.com/cs3org/reva/pull/4485
* Enhancement - Improve ocis single binary start: [#8320](https://github.com/owncloud/ocis/pull/8320)
Removes waiting times when starting the single binary. Improves ocis single
binary boot time from 8s to 2.5s
https://github.com/owncloud/ocis/pull/8320
* Enhancement - Use environment variables in yaml config files: [#8339](https://github.com/owncloud/ocis/pull/8339)
We added the ability to use environment variables in yaml config files. This
allows to use environment variables in the config files of the ocis services
which will be replaced by the actual value of the environment variable at
runtime.
Example:
```
web:
http:
addr: ${SOME_HTTP_ADDR}
```
This makes it possible to use the same config file for different environments
without the need to change the config file itself. This is especially useful
when using docker-compose to run the ocis services. It is a common pattern to
create an .env file which contains the environment variables for the
docker-compose file. Now you can use the same .env file to configure the ocis
services.
https://github.com/owncloud/ocis/pull/8339
* Enhancement - Bump reva: [#8340](https://github.com/owncloud/ocis/pull/8340)
We have bumped reve to pull in the changes needed for automatically increment
filenames on upload collisions in secret filedrops.
https://github.com/owncloud/ocis/issues/8291
https://github.com/owncloud/ocis/pull/8340
* Enhancement - Allow sending multiple user ids in one sse event: [#8379](https://github.com/owncloud/ocis/pull/8379)
Sending multiple user ids in one sse event is now possible which reduces the
number of sent events.
https://github.com/owncloud/ocis/pull/8379
https://github.com/cs3org/reva/pull/4501
* Enhancement - Allow to skip service listing: [#8408](https://github.com/owncloud/ocis/pull/8408)
The ocis version cmd listed all services by default. This is not always
intended, so we allow to skip the listing of the services by using the
--skip-services flag.
https://github.com/owncloud/ocis/issues/8070
https://github.com/owncloud/ocis/pull/8408
* Enhancement - Add a make step to validate the env var annotations: [#8436](https://github.com/owncloud/ocis/pull/8436)
We have added a make step `make validate-env-var-annotations` to validate the
env var annotations in to the environment variables.
https://github.com/owncloud/ocis/issues/8258
https://github.com/owncloud/ocis/pull/8436
# Changelog for [5.0.0-rc.1] (2023-12-27)
The following sections list the changes for 5.0.0-rc.1.
[5.0.0-rc.1]: https://github.com/owncloud/ocis/compare/v4.0.4...v5.0.0-rc.1
## Summary
@@ -62,10 +463,8 @@ The following sections list the changes for 5.0.0-rc.4.
* Bugfix - Fix the tgz mime type: [#7772](https://github.com/owncloud/ocis/pull/7772)
* Bugfix - Fix natsjs cache: [#7790](https://github.com/owncloud/ocis/pull/7790)
* Bugfix - Fix search service start: [#7795](https://github.com/owncloud/ocis/pull/7795)
* Bugfix - The race conditions in tests: [#7847](https://github.com/owncloud/ocis/pull/7847)
* Bugfix - Do not purge expired upload sessions that are still postprocessing: [#7859](https://github.com/owncloud/ocis/pull/7859)
* Bugfix - Fix the public link update: [#7862](https://github.com/owncloud/ocis/pull/7862)
* Bugfix - Fix jwt config of policies service: [#7893](https://github.com/owncloud/ocis/pull/7893)
* Bugfix - Updating logo with new theme structure: [#7930](https://github.com/owncloud/ocis/pull/7930)
* Bugfix - Password policy return code was wrong: [#7952](https://github.com/owncloud/ocis/pull/7952)
* Bugfix - Removed outdated and unused dependency from idp package: [#7957](https://github.com/owncloud/ocis/issues/7957)
@@ -76,25 +475,6 @@ The following sections list the changes for 5.0.0-rc.4.
* Bugfix - Non durable streams for sse service: [#7986](https://github.com/owncloud/ocis/pull/7986)
* Bugfix - Fix empty trace ids: [#8023](https://github.com/owncloud/ocis/pull/8023)
* Bugfix - Fix search by containing special characters: [#8050](https://github.com/owncloud/ocis/pull/8050)
* Bugfix - Fix the upload postprocessing: [#8117](https://github.com/owncloud/ocis/pull/8117)
* Bugfix - Disallow to delete a file during the processing: [#8132](https://github.com/owncloud/ocis/pull/8132)
* Bugfix - Fix wrong naming in nats-js-kv registry: [#8140](https://github.com/owncloud/ocis/pull/8140)
* Bugfix - IDP CS3 backend sessions now survire restart: [#8142](https://github.com/owncloud/ocis/pull/8142)
* Bugfix - Fix patching of language: [#8182](https://github.com/owncloud/ocis/pull/8182)
* Bugfix - Fix search service to not log expected cases as errors: [#8200](https://github.com/owncloud/ocis/pull/8200)
* Bugfix - Updating and reset logo failed: [#8211](https://github.com/owncloud/ocis/pull/8211)
* Bugfix - Cleanup graph/pkg/service/v0/driveitems.go: [#8228](https://github.com/owncloud/ocis/pull/8228)
* Bugfix - Cleanup `search/pkg/search/search.go`: [#8230](https://github.com/owncloud/ocis/pull/8230)
* Bugfix - Graph/sharedWithMe works for shares from project spaces now: [#8233](https://github.com/owncloud/ocis/pull/8233)
* Bugfix - Fix PATCH/DELETE status code for drives that don't support them: [#8235](https://github.com/owncloud/ocis/pull/8235)
* Bugfix - Fix nats authentication: [#8236](https://github.com/owncloud/ocis/pull/8236)
* Bugfix - Fix the resource name: [#8246](https://github.com/owncloud/ocis/pull/8246)
* Bugfix - Apply role constraints when creating shares via the graph API: [#8247](https://github.com/owncloud/ocis/pull/8247)
* Bugfix - Fix concurrent access to a map: [#8269](https://github.com/owncloud/ocis/pull/8269)
* Bugfix - Fix nats registry: [#8281](https://github.com/owncloud/ocis/pull/8281)
* Bugfix - Remove invalid environment variables: [#8303](https://github.com/owncloud/ocis/pull/8303)
* Bugfix - Fix concurrent shares config: [#8317](https://github.com/owncloud/ocis/pull/8317)
* Bugfix - Signed url verification: [#8385](https://github.com/owncloud/ocis/pull/8385)
* Bugfix - Fix last month search: [#31145](https://github.com/golang/go/issues/31145)
* Change - Auto-Accept Shares: [#7097](https://github.com/owncloud/ocis/pull/7097)
* Change - Change the default TUS chunk size: [#7273](https://github.com/owncloud/ocis/pull/7273)
@@ -103,12 +483,12 @@ The following sections list the changes for 5.0.0-rc.4.
* Enhancement - Add the Banned Passwords List: [#4197](https://github.com/cs3org/reva/pull/4197)
* Enhancement - Introduce service accounts: [#6427](https://github.com/owncloud/ocis/pull/6427)
* Enhancement - SSE for messaging: [#6992](https://github.com/owncloud/ocis/pull/6992)
* Enhancement - Support spec violating AD FS access token issuer: [#7138](https://github.com/owncloud/ocis/pull/7138)
* Enhancement - Support spec violating AD FS access token issuer: [#7140](https://github.com/owncloud/ocis/pull/7140)
* Enhancement - Add OCIS_LDAP_BIND_PASSWORD as replacement for LDAP_BIND_PASSWORD: [#7176](https://github.com/owncloud/ocis/issues/7176)
* Enhancement - Keyword Query Language (KQL) search syntax: [#7212](https://github.com/owncloud/ocis/pull/7212)
* Enhancement - Introduce clientlog service: [#7217](https://github.com/owncloud/ocis/pull/7217)
* Enhancement - Proxy uses service accounts for provisioning: [#7240](https://github.com/owncloud/ocis/pull/7240)
* Enhancement - The password policies change request: [#7264](https://github.com/cs3org/reva/pull/7264)
* Enhancement - The password policies change request: [#7264](https://github.com/owncloud/ocis/pull/7264)
* Enhancement - Introduce natsjs registry: [#7272](https://github.com/owncloud/ocis/issues/7272)
* Enhancement - Add the password policies: [#7285](https://github.com/owncloud/ocis/pull/7285)
* Enhancement - Add login URL config: [#7317](https://github.com/owncloud/ocis/pull/7317)
@@ -131,11 +511,10 @@ The following sections list the changes for 5.0.0-rc.4.
* Enhancement - Add search MediaType filter: [#7602](https://github.com/owncloud/ocis/pull/7602)
* Enhancement - Add Sharing NG endpoints: [#7633](https://github.com/owncloud/ocis/pull/7633)
* Enhancement - Configs for Web embed mode: [#7670](https://github.com/owncloud/ocis/pull/7670)
* Enhancement - Support login page background configuration: [#7674](https://github.com/owncloud/ocis/issues/7674)
* Enhancement - Add new permissions: [#7700](https://github.com/owncloud/ocis/pull/7700)
* Enhancement - Add preferred language to user settings: [#7720](https://github.com/owncloud/ocis/pull/7720)
* Enhancement - Add user filter startswith and contains: [#7739](https://github.com/owncloud/ocis/pull/7739)
* Enhancement - Allow configuring additional routes: [#7740](https://github.com/owncloud/ocis/pull/7740)
* Enhancement - Allow configuring additional routes: [#7741](https://github.com/owncloud/ocis/pull/7741)
* Enhancement - Default link permission config: [#7783](https://github.com/owncloud/ocis/pull/7783)
* Enhancement - Add banned password list to the default deployments: [#7784](https://github.com/owncloud/ocis/pull/7784)
* Enhancement - Update to go 1.21: [#7794](https://github.com/owncloud/ocis/pull/7794)
@@ -149,19 +528,13 @@ The following sections list the changes for 5.0.0-rc.4.
* Enhancement - Add cli commands for trash-bin: [#7917](https://github.com/owncloud/ocis/pull/7917)
* Enhancement - Add validation update public share: [#7978](https://github.com/owncloud/ocis/pull/7978)
* Enhancement - Allow inmemory nats-js-kv stores: [#7979](https://github.com/owncloud/ocis/pull/7979)
* Enhancement - Disable the password policy: [#7985](https://github.com/owncloud/ocis/pull/7985)
* Enhancement - Use kv store in natsjs registry: [#7987](https://github.com/owncloud/ocis/pull/7987)
* Enhancement - Allow authentication nats connections: [#7989](https://github.com/owncloud/ocis/pull/7989)
* Enhancement - Add RED metrics to the metrics endpoint: [#7994](https://github.com/owncloud/ocis/pull/7994)
* Enhancement - Add ocm and sciencemesh services: [#7998](https://github.com/owncloud/ocis/pull/7998)
* Enhancement - Make nats-js-kv the default registry: [#8011](https://github.com/owncloud/ocis/pull/8011)
* Enhancement - Update Reva to version 2.18.0: [#8038](https://github.com/owncloud/ocis/pull/8038)
* Enhancement - Service Account roles: [#8051](https://github.com/owncloud/ocis/pull/8051)
* Enhancement - Update antivirus service: [#8062](https://github.com/owncloud/ocis/pull/8062)
* Enhancement - Remove deprecated environment variables: [#8149](https://github.com/owncloud/ocis/pull/8149)
* Enhancement - Disable the password policy: [#8152](https://github.com/owncloud/ocis/pull/8152)
* Enhancement - Update reva to latest edge version: [#8287](https://github.com/owncloud/ocis/pull/8287)
* Enhancement - Allow restarting multiple uploads with one command: [#8287](https://github.com/owncloud/ocis/pull/8287)
* Enhancement - Modify the concurrency default: [#8309](https://github.com/owncloud/ocis/pull/8309)
* Enhancement - Update web to v8.0.0-rc.3: [#8342](https://github.com/owncloud/ocis/pull/8342)
## Details
@@ -350,13 +723,6 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/pull/7795
* Bugfix - The race conditions in tests: [#7847](https://github.com/owncloud/ocis/pull/7847)
We fixed the race conditions in tests.
https://github.com/owncloud/ocis/issues/7846
https://github.com/owncloud/ocis/pull/7847
* Bugfix - Do not purge expired upload sessions that are still postprocessing: [#7859](https://github.com/owncloud/ocis/pull/7859)
https://github.com/owncloud/ocis/pull/7859
@@ -370,12 +736,6 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/issues/7821
https://github.com/owncloud/ocis/pull/7862
* Bugfix - Fix jwt config of policies service: [#7893](https://github.com/owncloud/ocis/pull/7893)
Removes jwt config of policies service
https://github.com/owncloud/ocis/pull/7893
* Bugfix - Updating logo with new theme structure: [#7930](https://github.com/owncloud/ocis/pull/7930)
Updating and resetting the logo when using the new `theme.json` structure in Web
@@ -449,154 +809,6 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/pull/8050
https://github.com/owncloud/ocis/pull/8035
* Bugfix - Fix the upload postprocessing: [#8117](https://github.com/owncloud/ocis/pull/8117)
We fixed the upload postprocessing when the destination file does not exist
anymore.
https://github.com/owncloud/ocis/issues/7909
https://github.com/owncloud/ocis/pull/8117
* Bugfix - Disallow to delete a file during the processing: [#8132](https://github.com/owncloud/ocis/pull/8132)
We want to disallow deleting a file during the processing to prevent collecting
the orphan uploads.
https://github.com/owncloud/ocis/issues/8127
https://github.com/owncloud/ocis/pull/8132
https://github.com/cs3org/reva/pull/4446
* Bugfix - Fix wrong naming in nats-js-kv registry: [#8140](https://github.com/owncloud/ocis/pull/8140)
Registers the registry under the correct name
https://github.com/owncloud/ocis/pull/8140
* Bugfix - IDP CS3 backend sessions now survire restart: [#8142](https://github.com/owncloud/ocis/pull/8142)
We now correctly reinitialize the CS3 backend session after the IDP has been
restarted.
https://github.com/owncloud/ocis/pull/8142
* Bugfix - Fix patching of language: [#8182](https://github.com/owncloud/ocis/pull/8182)
User would not be able to patch their preferred language when the ldap backend
is set to `read-only`. This makes no sense as language is stored elsewhere.
https://github.com/owncloud/ocis/pull/8182
* Bugfix - Fix search service to not log expected cases as errors: [#8200](https://github.com/owncloud/ocis/pull/8200)
We changed the search service to not log cases where resources that were about
to be indexed can no longer be found. Those are expected cases, e.g. when the
file in question has already been deleted or renamed meanwhile.
https://github.com/owncloud/ocis/pull/8200
* Bugfix - Updating and reset logo failed: [#8211](https://github.com/owncloud/ocis/pull/8211)
We fixed a bug when admin tried to update or reset the logo.
https://github.com/owncloud/ocis/issues/8101
https://github.com/owncloud/ocis/pull/8211
* Bugfix - Cleanup graph/pkg/service/v0/driveitems.go: [#8228](https://github.com/owncloud/ocis/pull/8228)
Main fix is using proto getters to avoid panics. But some other code
improvements were also done
https://github.com/owncloud/ocis/pull/8228
* Bugfix - Cleanup `search/pkg/search/search.go`: [#8230](https://github.com/owncloud/ocis/pull/8230)
Now uses proto getters to avoid panics.
https://github.com/owncloud/ocis/pull/8230
* Bugfix - Graph/sharedWithMe works for shares from project spaces now: [#8233](https://github.com/owncloud/ocis/pull/8233)
We fixed a bug in the 'graph/v1beta1/me/drive/sharedWithMe' endpoint that caused
an error response when the user received shares from project spaces.
Additionally the endpoint now behaves more graceful in cases where the
displayname of the owner or creator of a share or shared resource couldn't be
resolved.
https://github.com/owncloud/ocis/issues/8027
https://github.com/owncloud/ocis/issues/8215
https://github.com/owncloud/ocis/pull/8233
* Bugfix - Fix PATCH/DELETE status code for drives that don't support them: [#8235](https://github.com/owncloud/ocis/pull/8235)
Updating and Deleting the virtual drives for shares is currently not supported.
Instead of returning a generic 500 status we return a 405 response now.
https://github.com/owncloud/ocis/issues/7881
https://github.com/owncloud/ocis/pull/8235
* Bugfix - Fix nats authentication: [#8236](https://github.com/owncloud/ocis/pull/8236)
Fixes nats authentication for registry/events/stores
https://github.com/owncloud/ocis/pull/8236
* Bugfix - Fix the resource name: [#8246](https://github.com/owncloud/ocis/pull/8246)
We fixed a problem where after renaming resource as sharer the receiver see a
new name.
https://github.com/owncloud/ocis/issues/8242
https://github.com/owncloud/ocis/pull/8246
https://github.com/cs3org/reva/pull/4463
* Bugfix - Apply role constraints when creating shares via the graph API: [#8247](https://github.com/owncloud/ocis/pull/8247)
We fixed a bug in the graph API for creating and updating shares so that
Spaceroot specific roles like 'Manager' and 'Co-owner' can no longer be assigned
for shares on files or directories.
https://github.com/owncloud/ocis/issues/8131
https://github.com/owncloud/ocis/pull/8247
* Bugfix - Fix concurrent access to a map: [#8269](https://github.com/owncloud/ocis/pull/8269)
We fixed the race condition that led to concurrent map access in a publicshare
manager.
https://github.com/owncloud/ocis/issues/8255
https://github.com/owncloud/ocis/pull/8269
https://github.com/cs3org/reva/pull/4472
* Bugfix - Fix nats registry: [#8281](https://github.com/owncloud/ocis/pull/8281)
The nats registry would behave badly when configuring `nats-js-kv` via envvar.
Reason is the way go-micro initializes. It took 5 developers to find the issue
and the fix so the details cannot be shared here. Just accept that it is working
now
https://github.com/owncloud/ocis/pull/8281
* Bugfix - Remove invalid environment variables: [#8303](https://github.com/owncloud/ocis/pull/8303)
We have removed two spaces related environment variables (whether project spaces
and the share jail are enabled) and hardcoded the only allowed options. Misusing
those variables would have resulted in invalid config.
https://github.com/owncloud/ocis/pull/8303
* Bugfix - Fix concurrent shares config: [#8317](https://github.com/owncloud/ocis/pull/8317)
We fixed setting the config for concurrent web requests, which did not work as
expected before.
https://github.com/owncloud/ocis/pull/8317
* Bugfix - Signed url verification: [#8385](https://github.com/owncloud/ocis/pull/8385)
Signed urls now expire properly
https://github.com/owncloud/ocis/pull/8385
* Bugfix - Fix last month search: [#31145](https://github.com/golang/go/issues/31145)
We've fixed the last month search edge case when currently is 31-th.
@@ -669,17 +881,16 @@ The following sections list the changes for 5.0.0-rc.4.
* notify postprocessing state changes.
* notify file locking and unlocking.
* ... @toDo
https://github.com/owncloud/ocis/pull/6992
* Enhancement - Support spec violating AD FS access token issuer: [#7138](https://github.com/owncloud/ocis/pull/7138)
* Enhancement - Support spec violating AD FS access token issuer: [#7140](https://github.com/owncloud/ocis/pull/7140)
AD FS `/adfs/.well-known/openid-configuration` has an optional
`access_token_issuer` which, in violation of the OpenID Connect spec, takes
precedence over `issuer`.
https://github.com/owncloud/ocis/pull/7138
https://github.com/owncloud/ocis/pull/7140
* Enhancement - Add OCIS_LDAP_BIND_PASSWORD as replacement for LDAP_BIND_PASSWORD: [#7176](https://github.com/owncloud/ocis/issues/7176)
@@ -760,11 +971,11 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/issues/5550
https://github.com/owncloud/ocis/pull/7240
* Enhancement - The password policies change request: [#7264](https://github.com/cs3org/reva/pull/7264)
* Enhancement - The password policies change request: [#7264](https://github.com/owncloud/ocis/pull/7264)
The variables renaming OCIS-3767
https://github.com/cs3org/reva/pull/7264
https://github.com/owncloud/ocis/pull/7264
* Enhancement - Introduce natsjs registry: [#7272](https://github.com/owncloud/ocis/issues/7272)
@@ -1040,14 +1251,6 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/web/issues/9768
https://github.com/owncloud/ocis/pull/7670
* Enhancement - Support login page background configuration: [#7674](https://github.com/owncloud/ocis/issues/7674)
Introduce a new environment variable `IDP_LOGIN_BACKGROUND_URL` that overrides
the default background image of the IDP login page when present.
https://github.com/owncloud/ocis/issues/7674
https://github.com/owncloud/ocis/pull/7900
* Enhancement - Add new permissions: [#7700](https://github.com/owncloud/ocis/pull/7700)
Adds new permissions to admin/spaceadmin/user roles - Favorites.List allows /
@@ -1076,12 +1279,12 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/issues/5486
https://github.com/owncloud/ocis/pull/7739
* Enhancement - Allow configuring additional routes: [#7740](https://github.com/owncloud/ocis/pull/7740)
* Enhancement - Allow configuring additional routes: [#7741](https://github.com/owncloud/ocis/pull/7741)
Allows adding custom routes to the ocis proxy. This enables customs ocis
extensions
Allows adding custom routes to the ocis proxy. This enables custom ocis
extensions.
https://github.com/owncloud/ocis/pull/7740
https://github.com/owncloud/ocis/pull/7741
* Enhancement - Default link permission config: [#7783](https://github.com/owncloud/ocis/pull/7783)
@@ -1184,14 +1387,6 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/pull/7979
* Enhancement - Disable the password policy: [#7985](https://github.com/owncloud/ocis/pull/7985)
We add the environment variable that allow to disable the password policy.
https://github.com/owncloud/ocis/issues/7916
https://github.com/owncloud/ocis/pull/7985
https://github.com/cs3org/reva/pull/4409
* Enhancement - Use kv store in natsjs registry: [#7987](https://github.com/owncloud/ocis/pull/7987)
Replaces the nats object store with the nats kv store in the natsjs registry
@@ -1240,72 +1435,7 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/pull/8011
https://github.com/owncloud/ocis/pull/8027
* Enhancement - Service Account roles: [#8051](https://github.com/owncloud/ocis/pull/8051)
Use a hidden role for service accounts. It will not appear in ListRoles calls
but internally handled by settings service
https://github.com/owncloud/ocis/pull/8051
https://github.com/owncloud/ocis/pull/8074
* Enhancement - Update antivirus service: [#8062](https://github.com/owncloud/ocis/pull/8062)
We update the antivirus icap client library and optimize the antivirus scanning
service. ANTIVIRUS_ICAP_TIMEOUT is now deprecated and
ANTIVIRUS_ICAP_SCAN_TIMEOUT should be used instead.
ANTIVIRUS_ICAP_SCAN_TIMEOUT supports human durations like `1s`, `1m`, `1h` and
`1d`.
https://github.com/owncloud/ocis/issues/6764
https://github.com/owncloud/ocis/pull/8062
* Enhancement - Remove deprecated environment variables: [#8149](https://github.com/owncloud/ocis/pull/8149)
We have removed all deprecated environment variables that have been marked for
removal for 5.0.0
https://github.com/owncloud/ocis/issues/8025
https://github.com/owncloud/ocis/pull/8149
* Enhancement - Disable the password policy: [#8152](https://github.com/owncloud/ocis/pull/8152)
We reworked and moved disabling the password policy logic from the reva to the
ocis.
https://github.com/owncloud/ocis/issues/7916
https://github.com/owncloud/ocis/pull/8152
https://github.com/cs3org/reva/pull/4453
* Enhancement - Update reva to latest edge version: [#8287](https://github.com/owncloud/ocis/pull/8287)
We update reva to the latest edge version to get the latest fixes and features.
## Changelog for reva edge
* Bugfix [cs3org/reva#4454](https://github.com/cs3org/reva/pull/4454): Skip unnecessary share retrieval
* Bugfix [cs3org/reva#4461](https://github.com/cs3org/reva/pull/4461): CORS handling for WebDAV requests fixed
* Bugfix [cs3org/reva#4462](https://github.com/cs3org/reva/pull/4462): Prevent setting container specific permissions on files
* Bugfix [cs3org/reva#4463](https://github.com/cs3org/reva/pull/4463): Fix the resource name
* Bugfix [cs3org/reva#4466](https://github.com/cs3org/reva/pull/4466): Fix natsjskv store
* Bugfix [cs3org/reva#4469](https://github.com/cs3org/reva/pull/4469): Handle interrupted uploads
* Bugfix [cs3org/reva#4472](https://github.com/cs3org/reva/pull/4472): Fix concurrent access to a map
* Bugfix [cs3org/reva#4473](https://github.com/cs3org/reva/pull/4473): Decomposedfs now correctly lists sessions
* Bugfix [cs3org/reva#4474](https://github.com/cs3org/reva/pull/4474): Make /dav/meta consistent
* Bugfix [cs3org/reva#4475](https://github.com/cs3org/reva/pull/4475): Upload session specific processing flag
* Bugfix [cs3org/reva#4476](https://github.com/cs3org/reva/pull/4476): No need to unmark postprocessing when it was not started
* Bugfix [cs3org/reva#4479](https://github.com/cs3org/reva/pull/4479): Fix creating documents in the approvider
* Bugfix [cs3org/reva#4481](https://github.com/cs3org/reva/pull/4481): Distinguish failure and node metadata reversal
* Bugfix [cs3org/reva#4434](https://github.com/cs3org/reva/pull/4434): Fix the upload postprocessing
* Bugfix [cs3org/reva#4443](https://github.com/cs3org/reva/pull/4443): Fixed wrong status code when moving a file to a denied path
* Bugfix [cs3org/reva#4446](https://github.com/cs3org/reva/pull/4446): Disallow to delete a file during the processing
* Bugfix [cs3org/reva#4448](https://github.com/cs3org/reva/pull/4448): Fix truncating existing files
* Bugfix [cs3org/reva#4449](https://github.com/cs3org/reva/pull/4449): Keep failed processing status
* Bugfix [cs3org/reva#4452](https://github.com/cs3org/reva/pull/4452): More efficient share jail
* Bugfix [cs3org/reva#4456](https://github.com/cs3org/reva/pull/4456): Do not lose revisions when restoring the first revision
* Bugfix [cs3org/reva#4457](https://github.com/cs3org/reva/pull/4457): Fix concurrent map access in sharecache
* Enhancement [cs3org/reva#4453](https://github.com/cs3org/reva/pull/4453): Disable the password policy
* Enhancement [cs3org/reva#4477](https://github.com/cs3org/reva/pull/4477): Extend ResumePostprocessing event
* Enhancement - Update Reva to version 2.18.0: [#8038](https://github.com/owncloud/ocis/pull/8038)
## Changelog for reva 2.18.0 (2023-12-22)
@@ -1400,11 +1530,6 @@ The following sections list the changes for 5.0.0-rc.4.
* Enhancement [cs3org/reva#4170](https://github.com/cs3org/reva/pull/4170): Update password policies
* Enhancement [cs3org/reva#4232](https://github.com/cs3org/reva/pull/4232): Improve error handling in utils package
https://github.com/owncloud/ocis/pull/8287
https://github.com/owncloud/ocis/pull/8278
https://github.com/owncloud/ocis/pull/8264
https://github.com/owncloud/ocis/pull/8100
https://github.com/owncloud/ocis/pull/8100
https://github.com/owncloud/ocis/pull/8038
https://github.com/owncloud/ocis/pull/8056
https://github.com/owncloud/ocis/pull/7949
@@ -1417,21 +1542,12 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/pull/7727
https://github.com/owncloud/ocis/pull/7752
* Enhancement - Allow restarting multiple uploads with one command: [#8287](https://github.com/owncloud/ocis/pull/8287)
* Enhancement - Service Account roles: [#8051](https://github.com/owncloud/ocis/pull/8051)
Allows to restart all commands in a specific state.
Use a hidden role for service accounts. It will not appear in ListRoles calls
but internally handled by settings service
https://github.com/owncloud/ocis/pull/8287
* Enhancement - Modify the concurrency default: [#8309](https://github.com/owncloud/ocis/pull/8309)
We have changed the default MaxConcurrency value from 100 to 5 to prevent too
frequent gc runs on low memory systems. We have also bumped reva to pull in the
related changes from there.
https://github.com/owncloud/ocis/issues/8257
https://github.com/owncloud/ocis/pull/8309
https://github.com/cs3org/reva/pull/4485
https://github.com/owncloud/ocis/pull/8051
* Enhancement - Update web to v8.0.0-rc.3: [#8342](https://github.com/owncloud/ocis/pull/8342)
@@ -1681,7 +1797,6 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/pull/8342
https://github.com/owncloud/ocis/pull/8154
https://github.com/owncloud/ocis/pull/8154
https://github.com/owncloud/ocis/pull/8055
https://github.com/owncloud/ocis/pull/7930
https://github.com/owncloud/ocis/pull/7952
@@ -1689,7 +1804,6 @@ The following sections list the changes for 5.0.0-rc.4.
https://github.com/owncloud/ocis/pull/7883
https://github.com/owncloud/web/releases/tag/v8.0.0-rc.3
https://github.com/owncloud/web/releases/tag/v8.0.0-rc.2
https://github.com/owncloud/web/releases/tag/v8.0.0-rc.2
https://github.com/owncloud/web/releases/tag/v8.0.0-rc.1
https://github.com/owncloud/web/releases/tag/v8.0.0-beta.1
https://github.com/owncloud/web/releases/tag/v8.0.0-beta.2
+7
View File
@@ -168,10 +168,17 @@ clean:
docs-generate:
# empty the folders first to only have files that are generated without remnants
find docs/services/_includes/ -type f \( -name "*" ! -name ".git*" ! -name "_*" \) -delete || exit 1
@for mod in $(OCIS_MODULES); do \
$(MAKE) --no-print-directory -C $$mod docs-generate || exit 1; \
done
$(MAKE) --no-print-directory -C docs docs-generate || exit 1
cp docs/services/general-info/env-var-deltas/*.adoc docs/services/_includes/adoc/env-var-deltas/
.PHONY: check-env-var-annotations
check-env-var-annotations:
.make/check-env-var-annotations.sh
.PHONY: ci-go-generate
ci-go-generate:
@@ -0,0 +1,6 @@
Enhancement: Add cli commands for trash-bin
We added the `list` and `restore` commands to the trash-bin items to the CLI
https://github.com/owncloud/ocis/pull/7936
https://github.com/owncloud/ocis/issues/7845
@@ -0,0 +1,11 @@
Bugfix: fix reva config of frontend service to avoid misleading error logs
We set an empty Credentials chain for the frontend service now. In ocis all
non-reva token authentication is handled by the proxy. This avoids irritating
error messages about the missing 'auth-bearer' service.
https://github.com/owncloud/ocis/pull/7934
https://github.com/owncloud/ocis/pull/7453
https://github.com/cs3org/reva/pull/4396
https://github.com/cs3org/reva/pull/4241
https://github.com/owncloud/ocis/issues/6692
+5
View File
@@ -0,0 +1,5 @@
Bugfix: Fix trace ids
We changed the default tracing to produce non-empty traceids and fixed a problem where traces got disconnected further down the stack.
https://github.com/owncloud/ocis/pull/8026
@@ -0,0 +1,5 @@
Bugfix: Do not purge expired upload sessions that are still postprocessing
https://github.com/owncloud/ocis/pull/7941
https://github.com/owncloud/ocis/pull/7859
https://github.com/owncloud/ocis/pull/7958
@@ -0,0 +1,11 @@
Bugfix: Fix RED metrics on the metrics endpoint
We connected some metrics to the metrics endpoint to support the RED method for monitoring microservices.
- Request Rate: The number of requests per second. The total count of requests is available under `ocis_proxy_requests_total`.
- Error Rate: The number of failed requests per second. The total count of failed requests is available under `ocis_proxy_errors_total`.
- Duration: The amount of time each request takes. The duration of all requests is available under `ocis_proxy_request_duration_seconds`. This is a histogram metric, so it also provides information about the distribution of request durations.
The metrics are available under the following paths: `PROXY_DEBUG_ADDR/metrics` in a prometheus compatible format and maybe secured by `PROXY_DEBUG_TOKEN`.
https://github.com/owncloud/ocis/pull/7994
@@ -0,0 +1,5 @@
Bugfix: signed url verification
Signed urls now expire properly
https://github.com/owncloud/ocis/pull/8385
@@ -2,4 +2,4 @@ Enhancement: Support spec violating AD FS access token issuer
AD FS `/adfs/.well-known/openid-configuration` has an optional `access_token_issuer` which, in violation of the OpenID Connect spec, takes precedence over `issuer`.
https://github.com/owncloud/ocis/pull/7138
https://github.com/owncloud/ocis/pull/7140
@@ -1,5 +1,5 @@
Enhancement: Allow configuring additional routes
Allows adding custom routes to the ocis proxy. This enables customs ocis extensions
Allows adding custom routes to the ocis proxy. This enables custom ocis extensions.
https://github.com/owncloud/ocis/pull/7740
https://github.com/owncloud/ocis/pull/7741
@@ -5,6 +5,5 @@ In order to be able to send more content to the client, we have moved the endpoi
* notify postprocessing state changes.
* notify file locking and unlocking.
* ... @toDo
https://github.com/owncloud/ocis/pull/6992
@@ -1,5 +1,5 @@
Bugfix: IDP CS3 backend sessions now survire restart
Bugfix: IDP CS3 backend sessions now survive a restart
We now correctly reinitialize the CS3 backend session after the IDP has been restarted.
We now correctly reinitialize the CS3 backend session after the IDP service has been restarted.
https://github.com/owncloud/ocis/pull/8142
@@ -2,4 +2,4 @@ Enhancement: The password policies change request
The variables renaming OCIS-3767
https://github.com/cs3org/reva/pull/7264
https://github.com/owncloud/ocis/pull/7264
@@ -0,0 +1,7 @@
Bugfix: Fix Content-Disposition header for downloads
We have fixed a bug that caused downloads to fail on Chromebased browsers when the filename contained special characters.
https://github.com/owncloud/ocis/pull/8381
https://github.com/owncloud/ocis/issues/8361
https://github.com/cs3org/reva/pull/4498
@@ -0,0 +1,6 @@
Enhancement: bump reva
We have bumped reve to pull in the changes needed for automatically increment filenames on upload collisions in secret filedrops.
https://github.com/owncloud/ocis/pull/8340
https://github.com/owncloud/ocis/issues/8291
@@ -0,0 +1,6 @@
Enhancement: allow sending multiple user ids in one sse event
Sending multiple user ids in one sse event is now possible which reduces the number of sent events.
https://github.com/owncloud/ocis/pull/8379
https://github.com/cs3org/reva/pull/4501
@@ -0,0 +1,15 @@
Enhancement: Use environment variables in yaml config files
We added the ability to use environment variables in yaml config files. This allows to use environment variables in the config files of the ocis services which will be replaced by the actual value of the environment variable at runtime.
Example:
```
web:
http:
addr: ${SOME_HTTP_ADDR}
```
This makes it possible to use the same config file for different environments without the need to change the config file itself. This is especially useful when using docker-compose to run the ocis services. It is a common pattern to create an .env file which contains the environment variables for the docker-compose file. Now you can use the same .env file to configure the ocis services.
https://github.com/owncloud/ocis/pull/8339
@@ -0,0 +1,7 @@
Enhancement: allow to skip service listing
The ocis version cmd listed all services by default. This is not always intended,
so we allow to skip the listing of the services by using the --skip-services flag.
https://github.com/owncloud/ocis/pull/8408
https://github.com/owncloud/ocis/issues/8070
@@ -0,0 +1,6 @@
Enhancement: Add a make step to validate the env var annotations
We have added a make step `make validate-env-var-annotations` to validate the env var annotations in to the environment variables.
https://github.com/owncloud/ocis/pull/8436
https://github.com/owncloud/ocis/issues/8258
@@ -0,0 +1,6 @@
Bugfix: Fix extended env parser
The extended envvar parser would be angry if there are two `os.Getenv` in the same line.
We fixed this.
https://github.com/owncloud/ocis/pull/8409
+7
View File
@@ -0,0 +1,7 @@
Bugfix: Fix an error when move
We fixed a bug that caused Internal Server Error when move using destination id
https://github.com/owncloud/ocis/pull/8396
https://github.com/cs3org/reva/pull/4503
https://github.com/owncloud/ocis/issues/6739
@@ -0,0 +1,6 @@
Bugfix: Fix search error message
We fixed an error message returned when the search request is invalid
https://github.com/owncloud/ocis/pull/8444
https://github.com/owncloud/ocis/issues/8442
@@ -0,0 +1,6 @@
Bugfix: Fix search response
We fixed the search response code from 500 to 400 when the request is invalid
https://github.com/owncloud/ocis/pull/7815
https://github.com/owncloud/ocis/issues/7812
@@ -0,0 +1,6 @@
Bugfix: graph/drives/permission Expiration date update
We fixed a bug in the Update sharing permission the expiration dates can't be removed from link permissions.
https://github.com/owncloud/ocis/pull/8413
https://github.com/owncloud/ocis/issues/8405
@@ -0,0 +1,5 @@
Enhancement: Improve ocis single binary start
Removes waiting times when starting the single binary. Improves ocis single binary boot time from 8s to 2.5s
https://github.com/owncloud/ocis/pull/8320
+159
View File
@@ -0,0 +1,159 @@
Enhancement: Update web to v8.0.0-rc.4
Tags: web
We updated ownCloud Web to v8.0.0-rc.4. Please refer to the changelog (linked) for details on the web release.
## Summary
* Bugfix [owncloud/web#10489](https://github.com/owncloud/web/pull/10489): Wrong share permissions when resharing off
We updated ownCloud Web to v8.0.0-rc.3. Please refer to the changelog (linked) for details on the web release.
## Summary
* Bugfix [owncloud/web#10318](https://github.com/owncloud/web/pull/10318): Scrollable account page
* Bugfix [owncloud/web#10321](https://github.com/owncloud/web/pull/10321): Private link error messages
* Bugfix [owncloud/web#10347](https://github.com/owncloud/web/pull/10347): Readonly user attributes have no effect on group memberships
* Bugfix [owncloud/web#10424](https://github.com/owncloud/web/pull/10424): Restore space
* Enhancement [owncloud/web#10356](https://github.com/owncloud/web/pull/10356): Preview app add reset button for images
We updated ownCloud Web to v8.0.0-rc.2. Please refer to the changelog (linked) for details on the web release.
## Summary
* Bugfix [owncloud/web#10176](https://github.com/owncloud/web/pull/10176): Turned off file extensions not always respected
* Bugfix [owncloud/web#10232](https://github.com/owncloud/web/pull/10232): Skip searchbar preview fetch on reload
We updated ownCloud Web to v8.0.0-rc.1. Please refer to the changelog (linked) for details on the web release.
## Summary
* Enhancement [owncloud/web#10224](https://github.com/owncloud/web/issues/10224): Harmonize AppSwitcher icon colors
* Bugfix [owncloud/web#10230](https://github.com/owncloud/web/issues/10230): Configurable concurrent requests
* Bugfix [owncloud/web#10158](https://github.com/owncloud/web/issues/10158): GDPR export polling
* Bugfix [owncloud/web#10220](https://github.com/owncloud/web/issues/10220): Loading indicator during conflict dialog
* Bugfix [owncloud/web#10156](https://github.com/owncloud/web/issues/10156): Uploading the same files parallel
* Bugfix [owncloud/web#10179](https://github.com/owncloud/web/issues/10179): Space navigate to trash missing
* Bugfix [owncloud/web#10118](https://github.com/owncloud/web/issues/10118): Tilesview has whitespace
* Bugfix [owncloud/web#10182](https://github.com/owncloud/web/issues/10182): Make versions panel readonly in viewers and editors
We updated ownCloud Web to v8.0.0-beta.2. Please refer to the changelog (linked) for details on the web release.
## Summary
* Bugfix [owncloud/web#10010](https://github.com/owncloud/web/issues/10010): Displaying full video in their dimensions
* Bugfix [owncloud/web#10149](https://github.com/owncloud/web/pull/10149): Spaces files list previews cropped
* Bugfix [owncloud/web#10149](https://github.com/owncloud/web/pull/10149): Spaces overview tile previews zoomed
* Bugfix [owncloud/web#10154](https://github.com/owncloud/web/pull/10154): Resolving links without drive alias
We updated ownCloud Web to v8.0.0-beta.1. Please refer to the changelog (linked) for details on the web release.
## Summary
* Change [owncloud/web#9698](https://github.com/owncloud/web/pull/9698): Theme handling
* Enhancement [owncloud/web#10111](https://github.com/owncloud/web/pull/10111): Registering right sidebar panels as extension
* Enhancement [owncloud/web#10111](https://github.com/owncloud/web/pull/10111): File sidebar in viewer and editor apps
We updated ownCloud Web to v8.0.0-alpha.13. Please refer to the changelog (linked) for details on the web release.
## Summary
* Enhancement [owncloud/web#10104](https://github.com/owncloud/web/pull/10104): Create link modal
We updated ownCloud Web to v8.0.0-alpha.12. Please refer to the changelog (linked) for details on the web release.
## Summary
* Bugfix [owncloud/web#9257](https://github.com/owncloud/web/issues/9257): Filter out shares without display name
* Bugfix [owncloud/web#9483](https://github.com/owncloud/web/issues/9483): PDF loading Safari
* Bugfix [owncloud/web#9513](https://github.com/owncloud/web/pull/9513): Set or remove expiration date on group share not possible
* Bugfix [owncloud/web#9529](https://github.com/owncloud/web/pull/9529): Shared with action menu label alignment
* Bugfix [owncloud/web#9587](https://github.com/owncloud/web/pull/9587): Internal public link resolving
* Bugfix [owncloud/web#9593](https://github.com/owncloud/web/issues/9593): Audio- & video-loading on Shared with me page
* Bugfix [owncloud/web#9649](https://github.com/owncloud/web/pull/9649): Add project space filter
* Bugfix [owncloud/web#9663](https://github.com/owncloud/web/pull/9663): Respect the open-in-new-tab-config for external apps
* Bugfix [owncloud/web#9670](https://github.com/owncloud/web/pull/9670): Tiles view accessibility
* Bugfix [owncloud/web#9694](https://github.com/owncloud/web/issues/9694): Special characters in username
* Bugfix [owncloud/web#9788](https://github.com/owncloud/web/issues/9788): Create .space folder if it does not exist
* Bugfix [owncloud/web#9799](https://github.com/owncloud/web/issues/9799): Link resolving into default app
* Bugfix [owncloud/web#9832](https://github.com/owncloud/web/pull/9832): Copy quicklinks for webkit navigator
* Bugfix [owncloud/web#9843](https://github.com/owncloud/web/pull/9843): Fix display path on resources
* Bugfix [owncloud/web#9844](https://github.com/owncloud/web/pull/9844): Upload space image
* Bugfix [owncloud/web#9861](https://github.com/owncloud/web/pull/9861): Duplicated file search request
* Bugfix [owncloud/web#9873](https://github.com/owncloud/web/pull/9873): Tags are no longer editable for a locked file
* Bugfix [owncloud/web#9881](https://github.com/owncloud/web/pull/9881): Prevent rendering of old/wrong set of resources in search list
* Bugfix [owncloud/web#9915](https://github.com/owncloud/web/pull/9915): Keep both folders conflict in same-named folders
* Bugfix [owncloud/web#9931](https://github.com/owncloud/web/pull/9931): Enabling "invite people" for password-protected folder/file
* Bugfix [owncloud/web#10031](https://github.com/owncloud/web/issues/10031): Icon extension mapping
* Bugfix [owncloud/web#10065](https://github.com/owncloud/web/pull/10065): Logout page after token expiry
* Bugfix [owncloud/web#10083](https://github.com/owncloud/web/pull/10083): Disable expiration date for alias link (internal)
* Bugfix [owncloud/web#10092](https://github.com/owncloud/web/pull/10092): Allow empty search query in "in-here" search
* Bugfix [owncloud/web#10096](https://github.com/owncloud/web/pull/10096): Remove password buttons on input if disabled
* Change [owncloud/web#7338](https://github.com/owncloud/web/issues/7338): Remove deprecated code
* Enhancement [owncloud/web#7317](https://github.com/owncloud/ocis/pull/7317): Make login url configurable
* Enhancement [owncloud/web#7497](https://github.com/owncloud/ocis/issues/7497): Permission checks for shares and favorites
* Enhancement [owncloud/web#7600](https://github.com/owncloud/web/issues/7600): Scroll to newly created folder
* Enhancement [owncloud/web#9302](https://github.com/owncloud/web/issues/9302): Application unification
* Enhancement [owncloud/web#9423](https://github.com/owncloud/web/pull/9423): Show local loading spinner in sharing button
* Enhancement [owncloud/web#9441](https://github.com/owncloud/web/pull/9441): File versions tooltip with absolute date
* Enhancement [owncloud/web#9441](https://github.com/owncloud/web/pull/9441): Disabling extensions
* Enhancement [owncloud/web#9451](https://github.com/owncloud/web/pull/9451): Add SSE to get notifications instantly
* Enhancement [owncloud/web#9525](https://github.com/owncloud/web/pull/9525): Tags form improved
* Enhancement [owncloud/web#9527](https://github.com/owncloud/web/pull/9527): Don't display confirmation dialog on file deletion
* Enhancement [owncloud/web#9531](https://github.com/owncloud/web/issues/9531): Personal shares can be shown and hidden
* Enhancement [owncloud/web#9552](https://github.com/owncloud/web/pull/9552): Upload preparation time
* Enhancement [owncloud/web#9561](https://github.com/owncloud/web/pull/9561): Indicate processing state
* Enhancement [owncloud/web#9566](https://github.com/owncloud/web/pull/9566): Display locking information
* Enhancement [owncloud/web#9584](https://github.com/owncloud/web/pull/9584): Moving share's "set expiration date" function
* Enhancement [owncloud/web#9625](https://github.com/owncloud/web/pull/9625): Add keyboard navigation to spaces overview
* Enhancement [owncloud/web#9627](https://github.com/owncloud/web/pull/9627): Add batch actions to spaces
* Enhancement [owncloud/web#9653](https://github.com/owncloud/web/pull/9653): Keyword Query Language (KQL) search syntax
* Enhancement [owncloud/web#9671](https://github.com/owncloud/web/pull/9671): OcModal set buttons to same width
* Enhancement [owncloud/web#9682](https://github.com/owncloud/web/pull/9682): Add password policy compatibility
* Enhancement [owncloud/web#9691](https://github.com/owncloud/web/pull/9691): Password generator for public links
* Enhancement [owncloud/web#9696](https://github.com/owncloud/web/pull/9696): Added app banner for mobile devices
* Enhancement [owncloud/web#9706](https://github.com/owncloud/web/pull/9706): Unify sharing expiration date menu items
* Enhancement [owncloud/web#9727](https://github.com/owncloud/web/pull/9727): Show error if password is on a banned password list
* Enhancement [owncloud/web#9771](https://github.com/owncloud/web/pull/9771): Handle postprocessing state via Server Sent Events
* Enhancement [owncloud/web#9806](https://github.com/owncloud/web/pull/9806): Preview image presentation
* Enhancement [owncloud/web#9809](https://github.com/owncloud/web/pull/9809): Add editors to the application menu
* Enhancement [owncloud/web#9814](https://github.com/owncloud/web/pull/9814): Registering nav items as extension
* Enhancement [owncloud/web#9815](https://github.com/owncloud/web/pull/9815): Add new portal into runtime to include footer
* Enhancement [owncloud/web#9818](https://github.com/owncloud/web/pull/9818): Add `mode` config option
* Enhancement [owncloud/web#9831](https://github.com/owncloud/web/pull/9831): Last modified filter chips
* Enhancement [owncloud/web#9841](https://github.com/owncloud/web/pull/9841): Add embed mode actions
* Enhancement [owncloud/web#9847](https://github.com/owncloud/web/issues/9847): Provide vendor neutral file icons
* Enhancement [owncloud/web#9853](https://github.com/owncloud/web/pull/9853): Show only create folder button in embed mode
* Enhancement [owncloud/web#9854](https://github.com/owncloud/web/pull/9854): Search query term linking
* Enhancement [owncloud/web#9857](https://github.com/owncloud/web/pull/9857): Add permission to delete link passwords when password is enforced
* Enhancement [owncloud/web#9858](https://github.com/owncloud/web/pull/9858): Remove settings icon from searchbar
* Enhancement [owncloud/web#9863](https://github.com/owncloud/web/pull/9863): Location picker in embed mode
* Enhancement [owncloud/web#9864](https://github.com/owncloud/web/pull/9864): Search tags filter chips style aligned
* Enhancement [owncloud/web#9884](https://github.com/owncloud/web/pull/9884): Enable dark theme on importer
* Enhancement [owncloud/web#9890](https://github.com/owncloud/web/pull/9890): Create shortcuts
* Enhancement [owncloud/web#9905](https://github.com/owncloud/web/pull/9905): Manage tags in details panel
* Enhancement [owncloud/web#9906](https://github.com/owncloud/web/pull/9906): Reorganize "New" menu
* Enhancement [owncloud/web#9912](https://github.com/owncloud/web/pull/9912): Add media type filter chip
* Enhancement [owncloud/web#9940](https://github.com/owncloud/web/pull/9940): Display error message for upload to locked folder
* Enhancement [owncloud/web#9966](https://github.com/owncloud/web/issues/9966): Support more audio formats with correct icon
* Enhancement [owncloud/web#10007](https://github.com/owncloud/web/issues/10007): Additional languages
* Enhancement [owncloud/web#10013](https://github.com/owncloud/web/issues/10013): Shared by filter
* Enhancement [owncloud/web#10014](https://github.com/owncloud/web/issues/10014): Share search filter
* Enhancement [owncloud/web#10024](https://github.com/owncloud/web/pull/10024): Duplicate space
* Enhancement [owncloud/web#10037](https://github.com/owncloud/web/pull/10037): Default link permission
* Enhancement [owncloud/web#10047](https://github.com/owncloud/web/pull/10047): Add explaining contextual helper to spaces overview
* Enhancement [owncloud/web#10057](https://github.com/owncloud/web/pull/10057): Folder tree creation during upload
* Enhancement [owncloud/web#10062](https://github.com/owncloud/web/pull/10062): Show webdav information in details view
* Enhancement [owncloud/web#10072](https://github.com/owncloud/web/issues/10072): Add authentication delegation in the Embed mode
* Enhancement [owncloud/web#10099](https://github.com/owncloud/web/pull/10099): Support mandatory filter while listing users
* Enhancement [owncloud/web#10102](https://github.com/owncloud/web/pull/10102): Registering quick actions as extension
https://github.com/owncloud/ocis/pull/8342
https://github.com/owncloud/web/releases/tag/v8.0.0-rc.3
https://github.com/owncloud/ocis/pull/8154
https://github.com/owncloud/web/releases/tag/v8.0.0-rc.2
https://github.com/owncloud/ocis/pull/8154
https://github.com/owncloud/web/releases/tag/v8.0.0-rc.2
https://github.com/owncloud/ocis/pull/8055
https://github.com/owncloud/web/releases/tag/v8.0.0-rc.1
https://github.com/owncloud/ocis/pull/7930
https://github.com/owncloud/web/releases/tag/v8.0.0-beta.1
https://github.com/owncloud/ocis/pull/7952
https://github.com/owncloud/web/releases/tag/v8.0.0-beta.2
https://github.com/owncloud/ocis/pull/7918
https://github.com/owncloud/web/releases/tag/v8.0.0-alpha.13
https://github.com/owncloud/ocis/pull/7883
https://github.com/owncloud/web/releases/tag/v8.0.0-alpha.12
@@ -32,7 +32,7 @@
env:
INSECURE: "false"
TRAEFIK_ACME_MAIL: wkloucek@owncloud.com
OCIS_DOCKER_TAG: 5.0.0-rc.3
OCIS_DOCKER_TAG: 4.0.0
OCIS_DOMAIN: ocis.ocis-keycloak.released.owncloud.works
KEYCLOAK_DOMAIN: keycloak.ocis-keycloak.released.owncloud.works
COMPOSE_FILE: docker-compose.yml:monitoring_tracing/docker-compose-additions.yml
@@ -32,7 +32,7 @@
env:
INSECURE: "false"
TRAEFIK_ACME_MAIL: wkloucek@owncloud.com
OCIS_DOCKER_TAG: 5.0.0-rc.3
OCIS_DOCKER_TAG: 4.0.0
OCIS_DOMAIN: ocis.ocis-ldap.released.owncloud.works
LDAP_MANAGER_DOMAIN: ldap.ocis-ldap.released.owncloud.works
COMPOSE_FILE: docker-compose.yml:monitoring_tracing/docker-compose-additions.yml
@@ -32,7 +32,7 @@
env:
INSECURE: "false"
TRAEFIK_ACME_MAIL: wkloucek@owncloud.com
OCIS_DOCKER_TAG: 5.0.0-rc.3
OCIS_DOCKER_TAG: 4.0.0
OCIS_DOMAIN: ocis.ocis-traefik.released.owncloud.works
DEMO_USERS: "true"
INBUCKET_DOMAIN: mail.ocis-traefik.released.owncloud.works
@@ -34,6 +34,9 @@
TRAEFIK_ACME_MAIL: wkloucek@owncloud.com
OCIS_DOCKER_TAG: latest
OCIS_DOMAIN: ocis.ocis-wopi.daily.owncloud.works
COMPANION_DOMAIN: companion.ocis-wopi.daily.owncloud.works
COMPANION_WEB_CONFIG_FILE_NAME: web-daily.yaml
COMPANION_IMAGE: owncloud/uppy-companion:3.12.13-owncloud
WOPISERVER_DOMAIN: wopiserver.ocis-wopi.daily.owncloud.works
COLLABORA_DOMAIN: collabora.ocis-wopi.daily.owncloud.works
ONLYOFFICE_DOMAIN: onlyoffice.ocis-wopi.daily.owncloud.works
@@ -34,6 +34,9 @@
TRAEFIK_ACME_MAIL: wkloucek@owncloud.com
OCIS_DOCKER_TAG: latest
OCIS_DOMAIN: ocis.ocis-wopi.latest.owncloud.works
COMPANION_DOMAIN: companion.ocis-wopi.latest.owncloud.works
COMPANION_WEB_CONFIG_FILE_NAME: web-latest.yaml
COMPANION_IMAGE: owncloud/uppy-companion:3.12.13-owncloud
WOPISERVER_DOMAIN: wopiserver.ocis-wopi.latest.owncloud.works
COLLABORA_DOMAIN: collabora.ocis-wopi.latest.owncloud.works
ONLYOFFICE_DOMAIN: onlyoffice.ocis-wopi.latest.owncloud.works
@@ -32,8 +32,11 @@
env:
INSECURE: "false"
TRAEFIK_ACME_MAIL: wkloucek@owncloud.com
OCIS_DOCKER_TAG: 5.0.0-rc.3
OCIS_DOCKER_TAG: 4.0.0
OCIS_DOMAIN: ocis.ocis-wopi.released.owncloud.works
COMPANION_DOMAIN: companion.ocis-wopi.released.owncloud.works
COMPANION_IMAGE: owncloud/uppy-companion:3.12.13-owncloud
COMPANION_WEB_CONFIG_FILE_NAME: web-released.yaml
WOPISERVER_DOMAIN: wopiserver.ocis-wopi.released.owncloud.works
COLLABORA_DOMAIN: collabora.ocis-wopi.released.owncloud.works
ONLYOFFICE_DOMAIN: onlyoffice.ocis-wopi.released.owncloud.works
+10 -1
View File
@@ -47,7 +47,7 @@ ONLYOFFICE_DOMAIN=
# Inbucket / Mail domain. Defaults to "mail.owncloud.test"
INBUCKET_DOMAIN=
### Apache Tika Content analysis toolkit
### Apache Tika Content analysis toolkit ###
# Set the desired docker image tag or digest, defaults to "latest"
TIKA_IMAGE=
@@ -55,3 +55,12 @@ TIKA_IMAGE=
# you need uncomment following line. Please see documentation at
# https://owncloud.dev/ocis/deployment/monitoring-tracing/
#COMPOSE_FILE=docker-compose.yml:monitoring_tracing/docker-compose-additions.yml
### Uppy Companion settings ###
# Domain of Uppy Companion. Defaults to "companion.owncloud.test"
COMPANION_IMAGE=
COMPANION_DOMAIN=
COMPANION_WEB_CONFIG_FILE_NAME=
# Provider settings, see https://uppy.io/docs/companion/#provideroptions for reference. Empty by default, which disables providers.
COMPANION_ONEDRIVE_KEY=
COMPANION_ONEDRIVE_SECRET=
@@ -0,0 +1,18 @@
web:
config:
external_apps:
- id: preview
path: web-app-preview
config:
mimeTypes:
- image/tiff
- image/bmp
- image/x-ms-bmp
- id: importer
path: web-app-importer
config:
companionUrl: https://companion.ocis-wopi.daily.owncloud.works
supportedClouds:
- WebdavPublicLink
#- OneDrive # needs a client id and secret
#- GoogleDrive # needs a client id and secret and an addition to the DNS zone
@@ -0,0 +1,18 @@
web:
config:
external_apps:
- id: preview
path: web-app-preview
config:
mimeTypes:
- image/tiff
- image/bmp
- image/x-ms-bmp
- id: importer
path: web-app-importer
config:
companionUrl: https://companion.ocis-wopi.latest.owncloud.works
supportedClouds:
- WebdavPublicLink
#- OneDrive # needs a client id and secret
#- GoogleDrive # needs a client id and secret and an addition to the DNS zone
@@ -0,0 +1,18 @@
web:
config:
external_apps:
- id: preview
path: web-app-preview
config:
mimeTypes:
- image/tiff
- image/bmp
- image/x-ms-bmp
- id: importer
path: web-app-importer
config:
companionUrl: https://companion.ocis-wopi.released.owncloud.works
supportedClouds:
- WebdavPublicLink
#- OneDrive # needs a client id and secret
#- GoogleDrive # needs a client id and secret and an addition to the DNS zone
@@ -11,6 +11,7 @@ services:
- ${WOPISERVER_DOMAIN:-wopiserver.owncloud.test}
- ${COLLABORA_DOMAIN:-collabora.owncloud.test}
- ${ONLYOFFICE_DOMAIN:-onlyoffice.owncloud.test}
- ${COMPANION_DOMAIN:-companion.owncloud.test}
command:
- "--log.level=${TRAEFIK_LOG_LEVEL:-ERROR}"
# letsencrypt configuration
@@ -89,6 +90,7 @@ services:
NATS_NATS_PORT: 9233
volumes:
- ./config/ocis/app-registry.yaml:/etc/ocis/app-registry.yaml
- ./config/ocis/${COMPANION_WEB_CONFIG_FILE_NAME:-web.yaml}:/etc/ocis/web.yaml
- ocis-config:/etc/ocis
- ocis-data:/var/lib/ocis
labels:
@@ -245,6 +247,32 @@ services:
ocis-net:
restart: always
companion:
image: ${COMPANION_IMAGE:-transloadit/companion:4.5.1}
networks:
ocis-net:
environment:
NODE_ENV: production
NODE_TLS_REJECT_UNAUTHORIZED: 0
COMPANION_DATADIR: /tmp/companion/
COMPANION_DOMAIN: ${COMPANION_DOMAIN:-companion.owncloud.test}
COMPANION_PROTOCOL: https
COMPANION_UPLOAD_URLS: "^https://${OCIS_DOMAIN:-ocis.owncloud.test}/"
COMPANION_ONEDRIVE_KEY: "${COMPANION_ONEDRIVE_KEY}"
COMPANION_ONEDRIVE_SECRET: "${COMPANION_ONEDRIVE_SECRET}"
volumes:
- companion-data:/tmp/companion/
labels:
- "traefik.enable=true"
- "traefik.http.routers.companion.entrypoints=https"
- "traefik.http.routers.companion.rule=Host(`${COMPANION_DOMAIN:-companion.owncloud.test}`)"
- "traefik.http.routers.companion.tls.certresolver=http"
- "traefik.http.routers.companion.service=companion"
- "traefik.http.services.companion.loadbalancer.server.port=3020"
logging:
driver: "local"
restart: always
inbucket:
image: inbucket/inbucket
networks:
@@ -273,6 +301,7 @@ volumes:
ocis-config:
ocis-data:
wopi-recovery:
companion-data:
networks:
ocis-net:
+1 -1
View File
@@ -1,7 +1,7 @@
---
title: Architecture
date: 2023-12-06T13:00:00+01:00
weight: 25
weight: 10
geekdocRepo: https://github.com/owncloud/ocis
geekdocEditPath: edit/master/docs/architecture
geekdocFilePath: _index.md
+10 -8
View File
@@ -85,18 +85,20 @@ func GetRogueEnvs() {
}
res := re.FindAllSubmatch([]byte(r[1]), -1)
if len(res) != 1 || len(res[0]) < 2 {
if len(res) < 1 {
fmt.Printf("Error envvar not matching pattern: %s", r[1])
continue
}
path := r[0]
name := strings.Trim(string(res[0][1]), "\"")
currentVars[path+name] = Variable{
RawName: name,
Path: path,
FoundInCode: true,
Name: name,
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,
}
}
}
+26 -19
View File
@@ -32,19 +32,19 @@ variables:
default_value: ""
description: ""
do_ignore: true
- rawname: registryEnv
path: ocis-pkg/registry/registry.go:118
- rawname: _registryEnv
path: ocis-pkg/registry/registry.go:114
foundincode: true
name: MICRO_REGISTRY
type: string
default_value: ""
default_value: nats-js-kv
description: '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.'
do_ignore: false
- rawname: registryAddressEnv
path: ocis-pkg/registry/registry.go:122
- rawname: _registryAddressEnv
path: ocis-pkg/natsjsregistry/registry.go:145
foundincode: true
name: MICRO_REGISTRY_ADDRESS
type: string
@@ -52,19 +52,27 @@ variables:
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/registry/registry.go:115
- rawname: _registryAddressEnv
path: ocis-pkg/registry/registry.go:118
foundincode: true
name: MICRO_REGISTRY_ADDRESS
type: ""
default_value: ""
description: ""
do_ignore: true
- rawname: _registryPasswordEnv
path: ocis-pkg/natsjsregistry/registry.go:163
foundincode: true
name: MICRO_REGISTRY_AUTH_PASSWORD
type: ""
type: string
default_value: ""
description: Optional when using nats to authenticate with the nats cluster.
do_ignore: false
- rawname: registryUsernameEnv
path: ocis-pkg/registry/registry.go:114
- rawname: _registryUsernameEnv
path: ocis-pkg/natsjsregistry/registry.go:163
foundincode: true
name: MICRO_REGISTRY_AUTH_USERNAME
type: ""
type: string
default_value: ""
description: Optional when using nats to authenticate with the nats cluster.
do_ignore: false
@@ -73,21 +81,20 @@ variables:
foundincode: true
name: OCIS_BASE_DATA_PATH
type: string
default_value: '''/var/lib/ocis'' or ''$HOME/.ocis/'''
default_value: ""
description: The base directory location used by several services and for user data.
Predefined to '/var/lib/ocis' for container images (inside the container) or '$HOME/.ocis/'
for binary releases. Services can have, if available, an individual setting with
an own environment variable.
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: OCIS_CONFIG_DIR
path: ocis-pkg/config/defaults/paths.go:56
foundincode: true
name: OCIS_CONFIG_DIR
type: string
default_value: '''/etc/ocis'' or ''$HOME/.ocis/config'''
description: The default directory location for config files. Predefined to '/etc/ocis'
for container images (inside the container) or '$HOME/.ocis/config' for binary
releases.
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: parts[0]
path: ocis-pkg/config/envdecode/envdecode.go:382
+2 -1
View File
@@ -1,3 +1,4 @@
*_configvars.md
*-example.yaml
adoc/*adoc
adoc/*adoc
adoc/env-var-deltas/*adoc
@@ -0,0 +1,885 @@
// # 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]
| `OCIS_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]
| `OCIS_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.|
|
| `OCIS_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]
| `OCIS_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.|
|
| `OCIS_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]
| `OCIS_TRACING_ENABLED` +
`AUTH_SERVICE_TRACING_ENABLED`
| Activates tracing.|
|
| `OCIS_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."|
|
| `OCIS_TRACING_ENDPOINT` +
`AUTH_SERVICE_TRACING_ENDPOINT`
| The endpoint of the tracing agent.|
|
| `OCIS_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.|
|
| `OCIS_LOG_LEVEL` +
`AUTH_SERVICE_LOG_LEVEL`
| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'."|
|
| `OCIS_LOG_PRETTY` +
`AUTH_SERVICE_LOG_PRETTY`
| Activates pretty log output.|
|
| `OCIS_LOG_COLOR` +
`AUTH_SERVICE_LOG_COLOR`
| Activates colorized log output.|
|
| `OCIS_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_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.|
|
| `OCIS_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.|
|
| `OCIS_SERVICE_ACCOUNT_SECRET` +
`AUTH_SERVICE_SERVICE_ACCOUNT_SECRET`
| The service account secret.|
|
| `OCIS_JWT_SECRET` +
`AUTH_SERVICE_JWT_SECRET`
| The secret to mint and validate jwt tokens.|
| xref:{s-path}/clientlog.adoc[clientlog]
| `OCIS_REVA_GATEWAY`
| CS3 gateway used to look up user metadata|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_INSECURE` +
`CLIENTLOG_EVENTS_TLS_INSECURE`
| Whether to verify the server TLS certificates.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_JWT_SECRET` +
`CLIENTLOG_JWT_SECRET`
| The secret to mint and validate jwt tokens.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_LOG_LEVEL` +
`CLIENTLOG_USERLOG_LOG_LEVEL`
| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'."|
|
| `OCIS_LOG_PRETTY` +
`CLIENTLOG_USERLOG_LOG_PRETTY`
| Activates pretty log output.|
|
| `OCIS_LOG_COLOR` +
`CLIENTLOG_USERLOG_LOG_COLOR`
| Activates colorized log output.|
|
| `OCIS_LOG_FILE` +
`CLIENTLOG_USERLOG_LOG_FILE`
| The path to the log file. Activates logging to this file if set.|
|
| `OCIS_TRACING_ENABLED` +
`CLIENTLOG_TRACING_ENABLED`
| Activates tracing.|
|
| `OCIS_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."`
|
|
| `OCIS_TRACING_ENDPOINT` +
`CLIENTLOG_TRACING_ENDPOINT`
| The endpoint of the tracing agent.|
|
| `OCIS_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]
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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]
| `OCIS_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
|
| `OCIS_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
|
| `FRONTEND_OCS_LIST_OCM_SHARES`
| Include OCM shares when listing shares. See the OCM service documentation for more details.|
|
| `OCIS_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.|
|
| `FRONTEND_OCS_INCLUDE_OCM_SHAREES`
| nclude OCM sharees when listing sharees.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_SERVICE_ACCOUNT_SECRET` +
`FRONTEND_SERVICE_ACCOUNT_SECRET`
| The service account secret.|
|
| `OCIS_PASSWORD_POLICY_MIN_CHARACTERS` +
`FRONTEND_PASSWORD_POLICY_MIN_CHARACTERS`
| Define the minimum password length. Defaults to 0 if not set.| 0
|
| `OCIS_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
|
| `OCIS_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
|
| `OCIS_PASSWORD_POLICY_MIN_DIGITS` +
`FRONTEND_PASSWORD_POLICY_MIN_DIGITS`
| Define the minimum number of digits. Defaults to 0 if not set.| 0
|
| `OCIS_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
|
| `OCIS_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]
| `GATEWAY_STORAGE_REGISTRY_DRIVER`
| The driver name of the storage registry to use.|
|
| `GATEWAY_STORAGE_REGISTRY_RULES`
| The rules for the storage registry. See the Environment Variable Types description for more details.|
|
| `GATEWAY_STORAGE_REGISTRY_CONFIG_JSON`
| Additional configuration for the storage registry in json format.|
|
| `OCIS_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
|
| `OCIS_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
|
| `OCIS_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
| xref:{s-path}/graph.adoc[graph]
| `OCIS_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
|
| `OCIS_CACHE_AUTH_USERNAME` +
`GRAPH_CACHE_AUTH_USERNAME`
| The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_SERVICE_ACCOUNT_SECRET` +
`GRAPH_SERVICE_ACCOUNT_SECRET`
| The service account secret.|
|
| `OCIS_ENABLE_RESHARING` +
`GRAPH_ENABLE_RESHARING`
| Changing this value is NOT supported. Enables the support for resharing in the clients.|
| xref:{s-path}/notifications.adoc[notifications]
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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 /).|
|
| `OCIS_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.|
|
| `OCIS_SERVICE_ACCOUNT_SECRET` +
`OCM_SERVICE_ACCOUNT_SECRET`
| The service account secret.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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 $OCIS_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 $OCIS_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 $OCIS_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 $OCIS_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.|
|
| `OCIS_LOG_LEVEL` +
`OCM_LOG_LEVEL`
| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'."|
|
| `OCIS_LOG_PRETTY` +
`OCM_LOG_PRETTY`
| Activates pretty log output.|
|
| `OCIS_LOG_COLOR` +
`OCM_LOG_COLOR`
| Activates colorized log output.|
|
| `OCIS_LOG_FILE` +
`OCM_LOG_FILE`
| The path to the log file. Activates logging to this file if set.|
|
| `OCIS_TRACING_ENABLED` +
`OCM_TRACING_ENABLED`
| Activates tracing.|
|
| `OCIS_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."`
|
|
| `OCIS_TRACING_ENDPOINT` +
`OCM_TRACING_ENDPOINT`
| The endpoint of the tracing agent.|
|
| `OCIS_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}/policies.adoc[policies]
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_TRACING_ENABLED` +
`POLICIES_TRACING_ENABLED`
| Activates tracing.|
|
| `OCIS_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."`
|
|
| `OCIS_TRACING_ENDPOINT` +
`POLICIES_TRACING_ENDPOINT`
| The endpoint of the tracing agent.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_TRACING_ENABLED` +
`POSTPROCESSING_TRACING_ENABLED`
| Activates tracing.|
|
| `OCIS_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."`
|
|
| `OCIS_TRACING_ENDPOINT` +
`POSTPROCESSING_TRACING_ENDPOINT`
| The endpoint of the tracing agent.|
|
| `OCIS_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]
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_SERVICE_ACCOUNT_SECRET` +
`PROXY_SERVICE_ACCOUNT_SECRET`
| The service account secret.|
| xref:{s-path}/search.adoc[search]
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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` +
`OCIS_SERVICE_ACCOUNT_ID`
| The list of all service account IDs. These will be assigned the hidden 'service-account' role. Note: When using 'OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_EVENTS_AUTH_USERNAME` +
`SETTINGS_EVENTS_AUTH_USERNAME`
| The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured.|
|
| `OCIS_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]
| `OCIS_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.|
|
| `OCIS_PASSWORD_POLICY_MIN_CHARACTERS` +
`SHARING_PASSWORD_POLICY_MIN_CHARACTERS`
| Define the minimum password length. Defaults to 0 if not set.| 0
|
| `OCIS_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
|
| `OCIS_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
|
| `OCIS_PASSWORD_POLICY_MIN_DIGITS` +
`SHARING_PASSWORD_POLICY_MIN_DIGITS`
| Define the minimum number of digits. Defaults to 0 if not set.| 0
|
| `OCIS_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
|
| `OCIS_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]
| `OCIS_LOG_LEVEL` +
`SSE_LOG_LEVEL`
| The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'."|
|
| `OCIS_LOG_PRETTY` +
`SSE_LOG_PRETTY`
| Activates pretty log output.|
|
| `OCIS_LOG_COLOR` +
`SSE_LOG_COLOR`
| Activates colorized log output.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_INSECURE` +
`SSE_EVENTS_TLS_INSECURE`
| Whether to verify the server TLS certificates.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_JWT_SECRET` +
`SSE_JWT_SECRET`
| The secret to mint and validate jwt tokens.|
|
| `OCIS_TRACING_ENABLED` +
`SSE_TRACING_ENABLED`
| Activates tracing.|
|
| `OCIS_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."`
|
|
| `OCIS_TRACING_ENDPOINT` +
`SSE_TRACING_ENDPOINT`
| The endpoint of the tracing agent.|
|
| `OCIS_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]
| `OCIS_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
| xref:{s-path}/storage-users.adoc[storage-users]
| `OCIS_GATEWAY_GRPC_ADDR` +
`STORAGE_USERS_GATEWAY_GRPC_ADDR`
| The bind address of the gateway GRPC address.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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
|
| `OCIS_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
|
| `OCIS_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
|
| `OCIS_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.|
|
| `OCIS_SERVICE_ACCOUNT_SECRET` +
`STORAGE_USERS_SERVICE_ACCOUNT_SECRET`
| The service account secret.|
| xref:{s-path}/userlog.adoc[userlog]
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|
| `OCIS_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.|
|===
@@ -0,0 +1,233 @@
# Added Variables between oCIS 4.0.0 and oCIS 5.0.0
| File | Variable | Description | Default |
|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|
| ocis-pkg/shared/shared_types.go | `OCIS_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 | `OCIS_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. | |
| | `OCIS_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 | `OCIS_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. | |
| | `OCIS_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 | `OCIS_TRACING_ENABLED;AUTH_SERVICE_TRACING_ENABLED` | Activates tracing. | |
| | `OCIS_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."` | |
| | `OCIS_TRACING_ENDPOINT;AUTH_SERVICE_TRACING_ENDPOINT` | The endpoint of the tracing agent. | |
| | `OCIS_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. | |
| | `OCIS_LOG_LEVEL;AUTH_SERVICE_LOG_LEVEL` | The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'." | |
| | `OCIS_LOG_PRETTY;AUTH_SERVICE_LOG_PRETTY` | Activates pretty log output. | |
| | `OCIS_LOG_COLOR;AUTH_SERVICE_LOG_COLOR` | Activates colorized log output. | |
| | `OCIS_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_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. | |
| | `OCIS_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. | |
| | `OCIS_SERVICE_ACCOUNT_SECRET;AUTH_SERVICE_SERVICE_ACCOUNT_SECRET` | The service account secret. | |
| services/auth-service/pkg/config/reva.go | `OCIS_JWT_SECRET;AUTH_SERVICE_JWT_SECRET` | The secret to mint and validate jwt tokens. | |
| services/clientlog/pkg/config/config.go | `OCIS_REVA_GATEWAY` | CS3 gateway used to look up user metadata | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_INSECURE;CLIENTLOG_EVENTS_TLS_INSECURE` | Whether to verify the server TLS certificates. | |
| | `OCIS_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. | |
| | `OCIS_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.. | |
| | `OCIS_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.. | |
| | `OCIS_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.. | |
| | `OCIS_JWT_SECRET;CLIENTLOG_JWT_SECRET` | The secret to mint and validate jwt tokens. | |
| | `OCIS_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. | |
| | `OCIS_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 | `OCIS_LOG_LEVEL;CLIENTLOG_USERLOG_LOG_LEVEL` | The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'." | |
| | `OCIS_LOG_PRETTY;CLIENTLOG_USERLOG_LOG_PRETTY` | Activates pretty log output. | |
| | `OCIS_LOG_COLOR;CLIENTLOG_USERLOG_LOG_COLOR` | Activates colorized log output. | |
| | `OCIS_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 | `OCIS_TRACING_ENABLED;CLIENTLOG_TRACING_ENABLED` | Activates tracing. | |
| | `OCIS_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."` | |
| | `OCIS_TRACING_ENDPOINT;CLIENTLOG_TRACING_ENDPOINT` | The endpoint of the tracing agent. | |
| | `OCIS_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 | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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 | `OCIS_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 |
| | `OCIS_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 |
| | `FRONTEND_OCS_LIST_OCM_SHARES` | Include OCM shares when listing shares. See the OCM service documentation for more details. | |
| | `OCIS_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. | |
| | `FRONTEND_OCS_INCLUDE_OCM_SHAREES` | nclude OCM sharees when listing sharees. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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.. | |
| | `OCIS_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.. | |
| | `OCIS_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.. | |
| | `OCIS_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. | |
| | `OCIS_SERVICE_ACCOUNT_SECRET;FRONTEND_SERVICE_ACCOUNT_SECRET` | The service account secret. | |
| | `OCIS_PASSWORD_POLICY_MIN_CHARACTERS;FRONTEND_PASSWORD_POLICY_MIN_CHARACTERS` | Define the minimum password length. Defaults to 0 if not set. | 0 |
| | `OCIS_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 |
| | `OCIS_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 |
| | `OCIS_PASSWORD_POLICY_MIN_DIGITS;FRONTEND_PASSWORD_POLICY_MIN_DIGITS` | Define the minimum number of digits. Defaults to 0 if not set. | 0 |
| | `OCIS_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 |
| | `OCIS_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 | `GATEWAY_STORAGE_REGISTRY_DRIVER` | The driver name of the storage registry to use. | |
| | `GATEWAY_STORAGE_REGISTRY_RULES` | The rules for the storage registry. See the Environment Variable Types description for more details. | |
| | `GATEWAY_STORAGE_REGISTRY_CONFIG_JSON` | Additional configuration for the storage registry in json format. | |
| | `OCIS_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 |
| | `OCIS_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 |
| | `OCIS_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 |
| services/graph/pkg/config/cache.go | `OCIS_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 |
| | `OCIS_CACHE_AUTH_USERNAME;GRAPH_CACHE_AUTH_USERNAME` | The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_SERVICE_ACCOUNT_SECRET;GRAPH_SERVICE_ACCOUNT_SECRET` | The service account secret. | |
| | `OCIS_ENABLE_RESHARING;GRAPH_ENABLE_RESHARING` | Changing this value is NOT supported. Enables the support for resharing in the clients. | |
| services/notifications/pkg/config/config.go | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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 /). | |
| | `OCIS_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. | |
| | `OCIS_SERVICE_ACCOUNT_SECRET;OCM_SERVICE_ACCOUNT_SECRET` | The service account secret. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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 $OCIS_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 $OCIS_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 $OCIS_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 $OCIS_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 | `OCIS_LOG_LEVEL;OCM_LOG_LEVEL` | The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'." | |
| | `OCIS_LOG_PRETTY;OCM_LOG_PRETTY` | Activates pretty log output. | |
| | `OCIS_LOG_COLOR;OCM_LOG_COLOR` | Activates colorized log output. | |
| | `OCIS_LOG_FILE;OCM_LOG_FILE` | The path to the log file. Activates logging to this file if set. | |
| services/ocm/pkg/config/tracing.go | `OCIS_TRACING_ENABLED;OCM_TRACING_ENABLED` | Activates tracing. | |
| | `OCIS_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."` | |
| | `OCIS_TRACING_ENDPOINT;OCM_TRACING_ENDPOINT` | The endpoint of the tracing agent. | |
| | `OCIS_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/policies/pkg/config/config.go | `OCIS_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. | |
| | `OCIS_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 | `OCIS_TRACING_ENABLED;POLICIES_TRACING_ENABLED` | Activates tracing. | |
| | `OCIS_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."` | |
| | `OCIS_TRACING_ENDPOINT;POLICIES_TRACING_ENDPOINT` | The endpoint of the tracing agent. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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 | `OCIS_TRACING_ENABLED;POSTPROCESSING_TRACING_ENABLED` | Activates tracing. | |
| | `OCIS_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."` | |
| | `OCIS_TRACING_ENDPOINT;POSTPROCESSING_TRACING_ENDPOINT` | The endpoint of the tracing agent. | |
| | `OCIS_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 | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_SERVICE_ACCOUNT_SECRET;PROXY_SERVICE_ACCOUNT_SECRET` | The service account secret. | |
| services/search/pkg/config/config.go | `OCIS_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. | |
| | `OCIS_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 | `OCIS_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. | |
| | `OCIS_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;OCIS_SERVICE_ACCOUNT_ID` | The list of all service account IDs. These will be assigned the hidden 'service-account' role. Note: When using 'OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_EVENTS_AUTH_USERNAME;SETTINGS_EVENTS_AUTH_USERNAME` | The username to authenticate with the cache. Only applies when store type 'nats-js-kv' is configured. | |
| | `OCIS_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 | `OCIS_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. | |
| | `OCIS_PASSWORD_POLICY_MIN_CHARACTERS;SHARING_PASSWORD_POLICY_MIN_CHARACTERS` | Define the minimum password length. Defaults to 0 if not set. | 0 |
| | `OCIS_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 |
| | `OCIS_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 |
| | `OCIS_PASSWORD_POLICY_MIN_DIGITS;SHARING_PASSWORD_POLICY_MIN_DIGITS` | Define the minimum number of digits. Defaults to 0 if not set. | 0 |
| | `OCIS_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 |
| | `OCIS_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 | `OCIS_LOG_LEVEL;SSE_LOG_LEVEL` | The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'." | |
| | `OCIS_LOG_PRETTY;SSE_LOG_PRETTY` | Activates pretty log output. | |
| | `OCIS_LOG_COLOR;SSE_LOG_COLOR` | Activates colorized log output. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_INSECURE;SSE_EVENTS_TLS_INSECURE` | Whether to verify the server TLS certificates. | |
| | `OCIS_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. | |
| | `OCIS_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.. | |
| | `OCIS_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.. | |
| | `OCIS_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.. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_JWT_SECRET;SSE_JWT_SECRET` | The secret to mint and validate jwt tokens. | |
| services/sse/pkg/config/tracing.go | `OCIS_TRACING_ENABLED;SSE_TRACING_ENABLED` | Activates tracing. | |
| | `OCIS_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."` | |
| | `OCIS_TRACING_ENDPOINT;SSE_TRACING_ENDPOINT` | The endpoint of the tracing agent. | |
| | `OCIS_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 | `OCIS_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 |
| services/storage-users/pkg/config/config.go | `OCIS_GATEWAY_GRPC_ADDR;STORAGE_USERS_GATEWAY_GRPC_ADDR` | The bind address of the gateway GRPC address. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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 |
| | `OCIS_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 |
| | `OCIS_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 |
| | `OCIS_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. | |
| | `OCIS_SERVICE_ACCOUNT_SECRET;STORAGE_USERS_SERVICE_ACCOUNT_SECRET` | The service account secret. | |
| services/userlog/pkg/config/config.go | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
| | `OCIS_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. | |
@@ -0,0 +1,55 @@
// 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`
| `OCIS_LDAP_BIND_PASSWORD`
| Password to use for authenticating the 'bind_dn'.
| xref:{s-path}/graph.adoc[graph]
| `LDAP_BIND_PASSWORD`
| `OCIS_LDAP_BIND_PASSWORD`
| Password to use for authenticating the 'bind_dn'.
| xref:{s-path}/groups.adoc[groups]
| `LDAP_BIND_PASSWORD`
| `OCIS_LDAP_BIND_PASSWORD`
| Password to use for authenticating the 'bind_dn'.
| xref:{s-path}/idp.adoc[idp]
| `LDAP_BIND_PASSWORD`
| `OCIS_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`
| `OCIS_LDAP_BIND_PASSWORD`
| Password to use for authenticating the 'bind_dn'.
|
| `LDAP_USER_SCHEMA_ID_IS_OCTETSTRING`
| `OCIS_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.
|===
@@ -0,0 +1,13 @@
# 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` | `OCIS_LDAP_BIND_PASSWORD` | Password to use for authenticating the 'bind_dn'. |
| services/graph/pkg/config/config.go | `LDAP_BIND_PASSWORD` | `OCIS_LDAP_BIND_PASSWORD` | Password to use for authenticating the 'bind_dn'. |
| services/groups/pkg/config/config.go | `LDAP_BIND_PASSWORD` | `OCIS_LDAP_BIND_PASSWORD` | Password to use for authenticating the 'bind_dn'. |
| services/idp/pkg/config/config.go | `LDAP_BIND_PASSWORD` | `OCIS_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` | `OCIS_LDAP_BIND_PASSWORD` | Password to use for authenticating the 'bind_dn'. |
| | `LDAP_USER_SCHEMA_ID_IS_OCTETSTRING` | `OCIS_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. |
@@ -0,0 +1,46 @@
make the markdown a asciidoc table
cp 4.0.0-5.0.0.md 4.0.0-5.0.0.adoc copy file
sed -i 's/.$//g' 4.0.0-5.0.0.adoc remove last character of each line which is |
sed -i 's/ \+//g' 4.0.0-5.0.0.adoc remove any double spaces
fully remove the line containing |----...|
rename: | File| Variable| Description| Default --> | Service| Variable| Description| Default
add on top under the page heading:
[width="100%",cols="~,~,~,~",options="header"]
|===
and at the bottom
|===
check SSE_HTTP_ADDR and SSE_HTTP_ROOT, there is one | too much
check WEB_OPTION_LOGIN_URL, there is one | missing
check WEB_OPTION_DISABLED_EXTENSIONS, in the line before, there is one | too much
sed -i "s/\;/\` \+\n\`/g" 4.0.0-5.0.0.adoc make each envvar a single line for ease of readability
sed -i "s/\`|/\`\n|/g" 4.0.0-5.0.0.adoc put the next | after the last envvar in a line into a new line
sed -i "s/|| \`/|\n|\`/g" 4.0.0-5.0.0.adoc split the || before an envvar into two lines
sed -i "s/services\/(.*)\//xref\:\{s-path\}\/\1\.adoc/g" 4.0.0-5.0.0.adoc make "service" a xref
sed -i "s/\(services\/\)\(.*\)\(\/pkg\/config\/config.go\)/xref\:\{s-path\}\/\2.adoc\[\2\]/g" 4.0.0-5.0.0.adoc
sed -i "s/\(services\/\)\(.*\)\(\/pkg\/config\/reva.go\)/xref\:\{s-path\}\/\2.adoc\[\2\]/g" 4.0.0-5.0.0.adoc
sed -i "s/\(services\/\)\(.*\)\(\/pkg\/config\/debug.go\)/xref\:\{s-path\}\/\2.adoc\[\2\]/g" 4.0.0-5.0.0.adoc
sed -i "s/\(services\/\)\(.*\)\(\/pkg\/config\/log.go\)/xref\:\{s-path\}\/\2.adoc\[\2\]/g" 4.0.0-5.0.0.adoc
sed -i "s/\(services\/\)\(.*\)\(\/pkg\/config\/tracing.go\)/xref\:\{s-path\}\/\2.adoc\[\2\]/g" 4.0.0-5.0.0.adoc
sed -i "s/\(services\/\)\(.*\)\(\/pkg\/config\/cache.go\)/xref\:\{s-path\}\/\2.adoc\[\2\]/g" 4.0.0-5.0.0.adoc
sed -i "s/\(services\/\)\(.*\)\(\/pkg\/config\/content.go\)/xref\:\{s-path\}\/\2.adoc\[\2\]/g" 4.0.0-5.0.0.adoc
sed -i "s/\(services\/\)\(.*\)\(\/pkg\/config\/search.go\)/xref\:\{s-path\}\/\2.adoc\[\2\]/g" 4.0.0-5.0.0.adoc
sed -i "s/\(services\/\)\(.*\)\(\/pkg\/config\/options.go\)/xref\:\{s-path\}\/\2.adoc\[\2\]/g" 4.0.0-5.0.0.adoc
services/antivirus/pkg/config/config.go --> xref:{s-path}/antivirus.adoc[antivirus]
change: ocis-pkg/shared/shared_types.go --> Available in multiple services
sed -i "s/\]|/\]\n|/g" 4.0.0-5.0.0.adoc put tab separator of service and envvar into a new line
sed -i "s/|\`/| \`/g" 4.0.0-5.0.0.adoc |`OCIS --> | `OCIS
sed -i 's/\.\./\./g' 4.0.0-5.0.0.adoc remove trailing double dots in sentences
manually fix (remove) any double occurrences if a service like clientlog, auth-service, graph, ocm, policies, postprocessing, search, sse. this is because the origin path points to different go routines inside the same service.
manually checking the result and fixing issues (mostly minor) is mandatory
@@ -39,6 +39,6 @@ Use this checklist with copy/paste in your PR - right from the beginning. It ren
- [ ] 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 `OCIS_` (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/port-ranges.md) and to the readme.md file.
- 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.
```
+1 -2
View File
@@ -2,13 +2,12 @@
[caption=]
.Environment variables with extended scope not included in a service
[width="100%",cols="~,~,~,~",options="header"]
[width="100%",cols="35%,10%,18%,~"",options="header"]
|===
| Name
| Type
| Default Value
| Description
{{- range .Variables}}
{{- if .Ignore }}
-9
View File
@@ -1,12 +1,5 @@
// collected through docs/helpers/adoc-generator.go.tmpl
Note that some global environment variables have been deprecated and replaced by a new one starting with `OCIS_` for naming consistency:
* All envvars starting with `LDAP_`
* All envvars starting with `IDM_` except `IDM_CREATE_DEMO_USERS`
* The following envvars: `OCIS_REVA_GATEWAY`, `STORAGE_TRANSFER_SECRET`, `OCIS_ASYNC_UPLOADS`, `USERLOG_MACHINE_AUTH_API_KEY`.
* Note that `WEB_UI_CONFIG_FILE` is not a global envar and will dropped from the list in a later release.
[.landscape]
[caption=]
.Environment variables with global scope available in multiple services
@@ -17,9 +10,7 @@ Note that some global environment variables have been deprecated and replaced by
| Type
| Default Value
| Description
{{ range . }}
a| `{{ .Name }}`
a| [subs=attributes+]
+22 -22
View File
@@ -10,9 +10,10 @@ require (
github.com/Nerzal/gocloak/v13 v13.9.0
github.com/bbalet/stopwords v1.0.0
github.com/blevesearch/bleve/v2 v2.3.10
github.com/cenkalti/backoff v2.2.1+incompatible
github.com/coreos/go-oidc/v3 v3.9.0
github.com/cs3org/go-cs3apis v0.0.0-20231023073225-7748710e0781
github.com/cs3org/reva/v2 v2.18.1-0.20240129131717-cff0a2eeb959
github.com/cs3org/reva/v2 v2.18.1-0.20240208105019-d5e420d294be
github.com/dhowden/tag v0.0.0-20230630033851-978a0926ee25
github.com/disintegration/imaging v1.6.2
github.com/dutchcoders/go-clamd v0.0.0-20170520113014-b970184f4d9e
@@ -39,7 +40,7 @@ require (
github.com/go-micro/plugins/v4/wrapper/monitoring/prometheus v1.2.0
github.com/go-micro/plugins/v4/wrapper/trace/opentelemetry v1.2.0
github.com/go-ozzo/ozzo-validation/v4 v4.3.0
github.com/go-playground/validator/v10 v10.17.0
github.com/go-playground/validator/v10 v10.18.0
github.com/gofrs/uuid v4.4.0+incompatible
github.com/golang-jwt/jwt/v4 v4.5.0
github.com/golang/protobuf v1.5.3
@@ -59,7 +60,7 @@ require (
github.com/mitchellh/mapstructure v1.5.0
github.com/mna/pigeon v1.2.1
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
github.com/nats-io/nats-server/v2 v2.10.9
github.com/nats-io/nats-server/v2 v2.10.10
github.com/nats-io/nats.go v1.32.0
github.com/oklog/run v1.1.0
github.com/olekukonko/tablewriter v0.0.5
@@ -75,7 +76,7 @@ require (
github.com/r3labs/sse/v2 v2.10.0
github.com/riandyrn/otelchi v0.5.1
github.com/rogpeppe/go-internal v1.12.0
github.com/rs/zerolog v1.31.0
github.com/rs/zerolog v1.32.0
github.com/shamaton/msgpack/v2 v2.1.1
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.8.0
@@ -87,22 +88,22 @@ require (
github.com/xhit/go-simple-mail/v2 v2.16.0
go-micro.dev/v4 v4.9.0
go.etcd.io/bbolt v1.3.8
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0
go.opentelemetry.io/contrib/zpages v0.47.0
go.opentelemetry.io/otel v1.22.0
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0
go.opentelemetry.io/contrib/zpages v0.48.0
go.opentelemetry.io/otel v1.23.1
go.opentelemetry.io/otel/exporters/jaeger v1.17.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.22.0
go.opentelemetry.io/otel/sdk v1.22.0
go.opentelemetry.io/otel/trace v1.22.0
golang.org/x/crypto v0.18.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.23.1
go.opentelemetry.io/otel/sdk v1.23.1
go.opentelemetry.io/otel/trace v1.23.1
golang.org/x/crypto v0.19.0
golang.org/x/image v0.15.0
golang.org/x/net v0.20.0
golang.org/x/oauth2 v0.16.0
golang.org/x/net v0.21.0
golang.org/x/oauth2 v0.17.0
golang.org/x/sync v0.6.0
golang.org/x/term v0.16.0
golang.org/x/term v0.17.0
golang.org/x/text v0.14.0
google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe
google.golang.org/grpc v1.61.0
google.golang.org/grpc v1.61.1
google.golang.org/protobuf v1.32.0
gopkg.in/square/go-jose.v2 v2.6.0
gopkg.in/yaml.v2 v2.4.0
@@ -152,7 +153,6 @@ require (
github.com/bluele/gcache v0.0.2 // indirect
github.com/bmizerany/pat v0.0.0-20210406213842-e4b6760bdd6f // indirect
github.com/bombsimon/logrusr/v3 v3.1.0 // indirect
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/ceph/go-ceph v0.18.0 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
@@ -249,9 +249,9 @@ require (
github.com/json-iterator/go v1.1.12 // indirect
github.com/juliangruber/go-intersect v1.1.0 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/klauspost/compress v1.17.4 // indirect
github.com/klauspost/compress v1.17.5 // indirect
github.com/klauspost/cpuid/v2 v2.1.0 // indirect
github.com/leodido/go-urn v1.2.4 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/libregraph/oidc-go v1.0.0 // indirect
github.com/longsleep/go-metrics v1.0.0 // indirect
github.com/longsleep/rndm v1.2.0 // indirect
@@ -329,15 +329,15 @@ require (
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib v1.0.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 // indirect
go.opentelemetry.io/otel/metric v1.22.0 // indirect
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.23.1 // indirect
go.opentelemetry.io/otel/metric v1.23.1 // indirect
go.opentelemetry.io/proto/otlp v1.1.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.8.0 // indirect
go.uber.org/zap v1.23.0 // indirect
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
golang.org/x/mod v0.14.0 // indirect
golang.org/x/sys v0.16.0 // indirect
golang.org/x/sys v0.17.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.16.1 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
+42 -42
View File
@@ -1019,8 +1019,8 @@ github.com/crewjam/saml v0.4.14 h1:g9FBNx62osKusnFzs3QTN5L9CVA/Egfgm+stJShzw/c=
github.com/crewjam/saml v0.4.14/go.mod h1:UVSZCf18jJkk6GpWNVqcyQJMD5HsRugBPf4I1nl2mME=
github.com/cs3org/go-cs3apis v0.0.0-20231023073225-7748710e0781 h1:BUdwkIlf8IS2FasrrPg8gGPHQPOrQ18MS1Oew2tmGtY=
github.com/cs3org/go-cs3apis v0.0.0-20231023073225-7748710e0781/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY=
github.com/cs3org/reva/v2 v2.18.1-0.20240129131717-cff0a2eeb959 h1:8uiYRWlbrhQJk4pHawpJUTFx/Yy0G5yvMYam2TMKDYo=
github.com/cs3org/reva/v2 v2.18.1-0.20240129131717-cff0a2eeb959/go.mod h1:GCN3g6uYE0Nvd31dGlhaGGyUviUfbG2NkecPRv5oSc4=
github.com/cs3org/reva/v2 v2.18.1-0.20240208105019-d5e420d294be h1:vljLn7q9NPfiynhzGBRD1sv8qhYGd6SZOHgvzv+Q9iA=
github.com/cs3org/reva/v2 v2.18.1-0.20240208105019-d5e420d294be/go.mod h1:GCN3g6uYE0Nvd31dGlhaGGyUviUfbG2NkecPRv5oSc4=
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
@@ -1236,8 +1236,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.17.0 h1:SmVVlfAOtlZncTxRuinDPomC2DkXJ4E5T9gDA0AIH74=
github.com/go-playground/validator/v10 v10.17.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
github.com/go-playground/validator/v10 v10.18.0 h1:BvolUXjp4zuvkZ5YN5t7ebzbhlUtPsPm2S9NAZ5nl9U=
github.com/go-playground/validator/v10 v10.18.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM=
github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8=
@@ -1588,8 +1588,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE=
github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4=
github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM=
github.com/klauspost/compress v1.17.5 h1:d4vBd+7CHydUqpFBgUEKkSdtSugf9YFmSkvUYPquI5E=
github.com/klauspost/compress v1.17.5/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM=
github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
@@ -1617,8 +1617,8 @@ github.com/labbsr0x/bindman-dns-webhook v1.0.2/go.mod h1:p6b+VCXIR8NYKpDr8/dg1HK
github.com/labbsr0x/goh v1.0.1/go.mod h1:8K2UhVoaWXcCU7Lxoa2omWnC8gyW8px7/lmO61c027w=
github.com/labstack/echo/v4 v4.1.11/go.mod h1:i541M3Fj6f76NZtHSj7TXnyM8n2gaodfvfxNnFqi74g=
github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k=
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
github.com/leonelquinteros/gotext v1.5.3-0.20230317130943-71a59c05b2c1 h1:k56sFOOJ0CYuQtGoRSeAMhP1R692+iNH+S1dC/CEz0w=
github.com/leonelquinteros/gotext v1.5.3-0.20230317130943-71a59c05b2c1/go.mod h1:AT4NpQrOmyj1L/+hLja6aR0lk81yYYL4ePnj2kp7d6M=
github.com/libregraph/idm v0.4.1-0.20231213140724-56a222fb4215 h1:Yw/I6l/0S/zDq2Hnibvwy8cVLpMaBwDe0aUSv/FNU6U=
@@ -1745,8 +1745,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRW
github.com/namedotcom/go v0.0.0-20180403034216-08470befbe04/go.mod h1:5sN+Lt1CaY4wsPvgQH/jsuJi4XO2ssZbdsIizr4CVC8=
github.com/nats-io/jwt/v2 v2.5.3 h1:/9SWvzc6hTfamcgXJ3uYRpgj+QuY2aLNqRiqrKcrpEo=
github.com/nats-io/jwt/v2 v2.5.3/go.mod h1:iysuPemFcc7p4IoYots3IuELSI4EDe9Y0bQMe+I3Bf4=
github.com/nats-io/nats-server/v2 v2.10.9 h1:VEW43Zz+p+9lARtiPM9ctd6ckun+92ZT2T17HWtwiFI=
github.com/nats-io/nats-server/v2 v2.10.9/go.mod h1:oorGiV9j3BOLLO3ejQe+U7pfAGyPo+ppD7rpgNF6KTQ=
github.com/nats-io/nats-server/v2 v2.10.10 h1:g1Wd64J5SGsoqWSx1qoNu9/At7a2x+jE7Qtf2XpEx/I=
github.com/nats-io/nats-server/v2 v2.10.10/go.mod h1:/TE61Dos8NlwZnjzyE3ZlOnM6dgl7tf937dnf4VclrA=
github.com/nats-io/nats.go v1.32.0 h1:Bx9BZS+aXYlxW08k8Gd3yR2s73pV5XSoAQUyp1Kwvp0=
github.com/nats-io/nats.go v1.32.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8=
github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI=
@@ -1915,8 +1915,8 @@ github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo=
github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc=
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/zerolog v1.31.0 h1:FcTR3NnLWW+NnTwwhFWiJSZr4ECLpqCm6QsEnyvbV4A=
github.com/rs/zerolog v1.31.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss=
github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0=
github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss=
github.com/russellhaering/goxmldsig v1.4.0 h1:8UcDh/xGyQiyrW+Fq5t8f+l2DLB1+zlhYzkPUJ7Qhys=
github.com/russellhaering/goxmldsig v1.4.0/go.mod h1:gM4MDENBQf7M+V824SGfyIUVFWydB7n0KkEubVJl+Tw=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@@ -2094,32 +2094,32 @@ go.opentelemetry.io/contrib v1.0.0 h1:khwDCxdSspjOLmFnvMuSHd/5rPzbTx0+l6aURwtQdf
go.opentelemetry.io/contrib v1.0.0/go.mod h1:EH4yDYeNoaTqn/8yCWQmfNB78VHfGX2Jt2bvnvzBlGM=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.0 h1:PzIubN4/sjByhDRHLviCjJuweBXWFZWhghjg7cS28+M=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.0/go.mod h1:Ct6zzQEuGK3WpJs2n4dn+wfJYzd/+hNnxMRTWjGn30M=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw=
go.opentelemetry.io/contrib/zpages v0.47.0 h1:ekpdNa2wqOvAfwZIGDIIV02zmR+z08aWPt21KrPJnaU=
go.opentelemetry.io/contrib/zpages v0.47.0/go.mod h1:rBeFA/UxnMjRlEGpmClIqzf1mCIKtl7ahjww3wsSdGs=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 h1:doUP+ExOpH3spVTLS0FcWGLnQrPct/hD/bCPbDRUEAU=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0/go.mod h1:rdENBZMT2OE6Ne/KLwpiXudnAsbdrdBaqBvTN8M8BgA=
go.opentelemetry.io/contrib/zpages v0.48.0 h1:7vnqarYRu2VYvUUwrLWXRk5HqPuCbtuZdgR4eaVeP3Y=
go.opentelemetry.io/contrib/zpages v0.48.0/go.mod h1:fzewgBzh126TFUgnNhI9/1hjvnZes7wBKXAMQmyM01g=
go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs=
go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y=
go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI=
go.opentelemetry.io/otel v1.23.1 h1:Za4UzOqJYS+MUczKI320AtqZHZb7EqxO00jAHE0jmQY=
go.opentelemetry.io/otel v1.23.1/go.mod h1:Td0134eafDLcTS4y+zQ26GE8u3dEuRBiBCTUIRHaikA=
go.opentelemetry.io/otel/exporters/jaeger v1.17.0 h1:D7UpUy2Xc2wsi1Ras6V40q806WM07rqoCWzXu7Sqy+4=
go.opentelemetry.io/otel/exporters/jaeger v1.17.0/go.mod h1:nPCqOnEH9rNLKqH/+rrUjiMzHJdV1BlpKcTwRTyKkKI=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 h1:9M3+rhx7kZCIQQhQRYaZCdNu1V73tm4TvXs2ntl98C4=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0/go.mod h1:noq80iT8rrHP1SfybmPiRGc9dc5M8RPmGvtwo7Oo7tc=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.22.0 h1:H2JFgRcGiyHg7H7bwcwaQJYrNFqCqrbTQ8K4p1OvDu8=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.22.0/go.mod h1:WfCWp1bGoYK8MeULtI15MmQVczfR+bFkk0DF3h06QmQ=
go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg=
go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.23.1 h1:o8iWeVFa1BcLtVEV0LzrCxV2/55tB3xLxADr6Kyoey4=
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.23.1/go.mod h1:SEVfdK4IoBnbT2FXNM/k8yC08MrfbhWk3U4ljM8B3HE=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.23.1 h1:p3A5+f5l9e/kuEBwLOrnpkIDHQFlHmbiVxMURWRK6gQ=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.23.1/go.mod h1:OClrnXUjBqQbInvjJFjYSnMxBSCXBF8r3b34WqjiIrQ=
go.opentelemetry.io/otel/metric v1.23.1 h1:PQJmqJ9u2QaJLBOELl1cxIdPcpbwzbkjfEyelTl2rlo=
go.opentelemetry.io/otel/metric v1.23.1/go.mod h1:mpG2QPlAfnK8yNhNJAxDZruU9Y1/HubbC+KyH8FaCWI=
go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs=
go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw=
go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc=
go.opentelemetry.io/otel/sdk v1.23.1 h1:O7JmZw0h76if63LQdsBMKQDWNb5oEcOThG9IrxscV+E=
go.opentelemetry.io/otel/sdk v1.23.1/go.mod h1:LzdEVR5am1uKOOwfBWFef2DCi1nu3SA8XQxx2IerWFk=
go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk=
go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0=
go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo=
go.opentelemetry.io/otel/trace v1.23.1 h1:4LrmmEd8AU2rFvU1zegmvqW7+kWarxtNOPyeL6HmYY8=
go.opentelemetry.io/otel/trace v1.23.1/go.mod h1:4IpnpJFwr1mo/6HL8XIPJaE9y0+u1KcVmuW7dwFSVrI=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
go.opentelemetry.io/proto/otlp v1.1.0 h1:2Di21piLrCqJ3U3eXGCTPHE9R8Nh+0uglSnOyxikMeI=
go.opentelemetry.io/proto/otlp v1.1.0/go.mod h1:GpBHCBWiqvVLDqmHZsoMM3C5ySeKTC7ej/RNTae6MdY=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
@@ -2169,8 +2169,8 @@ golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIi
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc=
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -2315,8 +2315,8 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo=
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -2349,8 +2349,8 @@ golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4
golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI=
golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk=
golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ=
golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o=
golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ=
golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -2498,8 +2498,8 @@ golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -2516,8 +2516,8 @@ golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE=
golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -2935,8 +2935,8 @@ google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGO
google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0=
google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs=
google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY=
google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
google.golang.org/grpc/examples v0.0.0-20211102180624-670c133e568e h1:m7aQHHqd0q89mRwhwS9Bx2rjyl/hsFAeta+uGrHsQaU=
google.golang.org/grpc/examples v0.0.0-20211102180624-670c133e568e/go.mod h1:gID3PKrg7pWKntu9Ss6zTLJ0ttC0X9IHgREOCZwbCVU=
+1
View File
@@ -20,6 +20,7 @@ var (
func BindSourcesToStructs(service string, dst interface{}) (*gofig.Config, error) {
cnf := gofig.NewWithOptions(service)
cnf.WithOptions(func(options *gofig.Options) {
options.ParseEnv = true
options.DecoderConfig.TagName = decoderConfigTagName
})
cnf.AddDriver(gooyaml.Driver)
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
+23 -7
View File
@@ -5,29 +5,45 @@ import (
"os"
tw "github.com/olekukonko/tablewriter"
"github.com/urfave/cli/v2"
mreg "go-micro.dev/v4/registry"
"github.com/owncloud/ocis/v2/ocis-pkg/config"
"github.com/owncloud/ocis/v2/ocis-pkg/registry"
"github.com/owncloud/ocis/v2/ocis-pkg/version"
"github.com/owncloud/ocis/v2/ocis/pkg/register"
"github.com/urfave/cli/v2"
mreg "go-micro.dev/v4/registry"
)
const (
_skipServiceListingFlagName = "skip-services"
)
// VersionCommand is the entrypoint for the version command.
func VersionCommand(cfg *config.Config) *cli.Command {
return &cli.Command{
Name: "version",
Usage: "print the version of this binary and all running service instances",
Name: "version",
Usage: "print the version of this binary and all running service instances",
Flags: []cli.Flag{
&cli.BoolFlag{
Name: _skipServiceListingFlagName,
Usage: "skip service listing",
},
},
Category: "info",
Action: func(c *cli.Context) error {
fmt.Println("Version: " + version.GetString())
fmt.Printf("Compiled: %s\n", version.Compiled())
fmt.Println("")
if c.Bool(_skipServiceListingFlagName) {
return nil
}
fmt.Print("\n")
reg := registry.GetRegistry()
serviceList, err := reg.ListServices()
if err != nil {
fmt.Println(fmt.Errorf("could not list services: %v", err))
fmt.Printf("could not list services: %v\n", err)
return err
}
@@ -35,7 +51,7 @@ func VersionCommand(cfg *config.Config) *cli.Command {
for _, s := range serviceList {
s, err := reg.GetService(s.Name)
if err != nil {
fmt.Println(fmt.Errorf("could not get service: %v", err))
fmt.Printf("could not get service: %v\n", err)
return err
}
services = append(services, s...)
+174 -140
View File
@@ -13,12 +13,17 @@ import (
"syscall"
"time"
"github.com/cenkalti/backoff"
"github.com/cs3org/reva/v2/pkg/events/stream"
"github.com/cs3org/reva/v2/pkg/logger"
"github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool"
"github.com/mohae/deepcopy"
"github.com/olekukonko/tablewriter"
"github.com/thejerf/suture/v4"
ociscfg "github.com/owncloud/ocis/v2/ocis-pkg/config"
"github.com/owncloud/ocis/v2/ocis-pkg/log"
ogrpc "github.com/owncloud/ocis/v2/ocis-pkg/service/grpc"
"github.com/owncloud/ocis/v2/ocis-pkg/shared"
antivirus "github.com/owncloud/ocis/v2/services/antivirus/pkg/command"
appProvider "github.com/owncloud/ocis/v2/services/app-provider/pkg/command"
@@ -64,22 +69,19 @@ import (
var (
// runset keeps track of which services to start supervised.
runset map[string]struct{}
// time to wait after starting the preliminary services
_preliminaryDelay = 6 * time.Second
// time to wait between starting service groups (preliminary, main, delayed)
_startDelay = 2 * time.Second
// wait funcs run after the service group has been started.
_waitFuncs = []func(*ociscfg.Config) error{pingNats, pingGateway, nil, wait(time.Second), nil}
)
type serviceFuncMap map[string]func(*ociscfg.Config) suture.Service
// Service represents a RPC service.
type Service struct {
Supervisor *suture.Supervisor
Preliminary serviceFuncMap
ServicesRegistry serviceFuncMap
Delayed serviceFuncMap
Additional serviceFuncMap
Log log.Logger
Supervisor *suture.Supervisor
Services []serviceFuncMap
Additional serviceFuncMap
Log log.Logger
serviceToken map[string][]suture.ServiceToken
context context.Context
@@ -108,11 +110,9 @@ func NewService(options ...Option) (*Service, error) {
globalCtx, cancelGlobal := context.WithCancel(context.Background())
s := &Service{
Preliminary: make(serviceFuncMap),
ServicesRegistry: make(serviceFuncMap),
Delayed: make(serviceFuncMap),
Additional: make(serviceFuncMap),
Log: l,
Services: make([]serviceFuncMap, len(_waitFuncs)),
Additional: make(serviceFuncMap),
Log: l,
serviceToken: make(map[string][]suture.ServiceToken),
context: globalCtx,
@@ -120,162 +120,200 @@ func NewService(options ...Option) (*Service, error) {
cfg: opts.Config,
}
// start nats first - it is used as service registry
s.Preliminary[opts.Config.Nats.Service.Name] = NewSutureServiceBuilder(func(ctx context.Context, cfg *ociscfg.Config) error {
// populate services
reg := func(priority int, name string, exec func(context.Context, *ociscfg.Config) error) {
if s.Services[priority] == nil {
s.Services[priority] = make(serviceFuncMap)
}
s.Services[priority][name] = NewSutureServiceBuilder(exec)
}
// nats is in priority group 0. It needs to start before all other services
reg(0, opts.Config.Nats.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Nats.Context = ctx
cfg.Nats.Commons = cfg.Commons
return nats.Execute(cfg.Nats)
})
// populate services
reg := func(name string, exec func(context.Context, *ociscfg.Config) error) {
s.ServicesRegistry[name] = NewSutureServiceBuilder(exec)
}
reg(opts.Config.AppProvider.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AppProvider.Context = ctx
cfg.AppProvider.Commons = cfg.Commons
return appProvider.Execute(cfg.AppProvider)
})
reg(opts.Config.AppRegistry.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AppRegistry.Context = ctx
cfg.AppRegistry.Commons = cfg.Commons
return appRegistry.Execute(cfg.AppRegistry)
})
reg(opts.Config.AuthBasic.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AuthBasic.Context = ctx
cfg.AuthBasic.Commons = cfg.Commons
return authbasic.Execute(cfg.AuthBasic)
})
reg(opts.Config.AuthMachine.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AuthMachine.Context = ctx
cfg.AuthMachine.Commons = cfg.Commons
return authmachine.Execute(cfg.AuthMachine)
})
reg(opts.Config.AuthService.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AuthService.Context = ctx
cfg.AuthService.Commons = cfg.Commons
return authservice.Execute(cfg.AuthService)
})
reg(opts.Config.Clientlog.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Clientlog.Context = ctx
cfg.Clientlog.Commons = cfg.Commons
return clientlog.Execute(cfg.Clientlog)
})
reg(opts.Config.EventHistory.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.EventHistory.Context = ctx
cfg.EventHistory.Commons = cfg.Commons
return eventhistory.Execute(cfg.EventHistory)
})
reg(opts.Config.Gateway.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
// gateway is in priority group 1. It needs to start before the reva services
reg(1, opts.Config.Gateway.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Gateway.Context = ctx
cfg.Gateway.Commons = cfg.Commons
return gateway.Execute(cfg.Gateway)
})
reg(opts.Config.Graph.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
// priority group 2 is empty for now
// most services are in priority group 3
reg(3, opts.Config.AppProvider.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AppProvider.Context = ctx
cfg.AppProvider.Commons = cfg.Commons
return appProvider.Execute(cfg.AppProvider)
})
reg(3, opts.Config.AppRegistry.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AppRegistry.Context = ctx
cfg.AppRegistry.Commons = cfg.Commons
return appRegistry.Execute(cfg.AppRegistry)
})
reg(3, opts.Config.AuthBasic.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AuthBasic.Context = ctx
cfg.AuthBasic.Commons = cfg.Commons
return authbasic.Execute(cfg.AuthBasic)
})
reg(3, opts.Config.AuthMachine.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AuthMachine.Context = ctx
cfg.AuthMachine.Commons = cfg.Commons
return authmachine.Execute(cfg.AuthMachine)
})
reg(3, opts.Config.AuthService.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.AuthService.Context = ctx
cfg.AuthService.Commons = cfg.Commons
return authservice.Execute(cfg.AuthService)
})
reg(3, opts.Config.Clientlog.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Clientlog.Context = ctx
cfg.Clientlog.Commons = cfg.Commons
return clientlog.Execute(cfg.Clientlog)
})
reg(3, opts.Config.EventHistory.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.EventHistory.Context = ctx
cfg.EventHistory.Commons = cfg.Commons
return eventhistory.Execute(cfg.EventHistory)
})
reg(3, opts.Config.Graph.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Graph.Context = ctx
cfg.Graph.Commons = cfg.Commons
return graph.Execute(cfg.Graph)
})
reg(opts.Config.Groups.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Groups.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Groups.Context = ctx
cfg.Groups.Commons = cfg.Commons
return groups.Execute(cfg.Groups)
})
reg(opts.Config.IDM.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.IDM.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.IDM.Context = ctx
cfg.IDM.Commons = cfg.Commons
return idm.Execute(cfg.IDM)
})
reg(opts.Config.Invitations.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Invitations.Context = ctx
cfg.Invitations.Commons = cfg.Commons
return invitations.Execute(cfg.Invitations)
})
reg(opts.Config.Notifications.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Notifications.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Notifications.Context = ctx
cfg.Notifications.Commons = cfg.Commons
return notifications.Execute(cfg.Notifications)
})
reg(opts.Config.OCDav.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.OCDav.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.OCDav.Context = ctx
cfg.OCDav.Commons = cfg.Commons
return ocdav.Execute(cfg.OCDav)
})
reg(opts.Config.OCS.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.OCS.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.OCS.Context = ctx
cfg.OCS.Commons = cfg.Commons
return ocs.Execute(cfg.OCS)
})
reg(opts.Config.Postprocessing.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Postprocessing.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Postprocessing.Context = ctx
cfg.Postprocessing.Commons = cfg.Commons
return postprocessing.Execute(cfg.Postprocessing)
})
reg(opts.Config.Search.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Search.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Search.Context = ctx
cfg.Search.Commons = cfg.Commons
return search.Execute(cfg.Search)
})
reg(opts.Config.Settings.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Settings.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Settings.Context = ctx
cfg.Settings.Commons = cfg.Commons
return settings.Execute(cfg.Settings)
})
reg(opts.Config.StoragePublicLink.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.StoragePublicLink.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.StoragePublicLink.Context = ctx
cfg.StoragePublicLink.Commons = cfg.Commons
return storagepublic.Execute(cfg.StoragePublicLink)
})
reg(opts.Config.StorageShares.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.StorageShares.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.StorageShares.Context = ctx
cfg.StorageShares.Commons = cfg.Commons
return storageshares.Execute(cfg.StorageShares)
})
reg(opts.Config.StorageSystem.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.StorageSystem.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.StorageSystem.Context = ctx
cfg.StorageSystem.Commons = cfg.Commons
return storageSystem.Execute(cfg.StorageSystem)
})
reg(opts.Config.StorageUsers.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.StorageUsers.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.StorageUsers.Context = ctx
cfg.StorageUsers.Commons = cfg.Commons
return storageusers.Execute(cfg.StorageUsers)
})
reg(opts.Config.Store.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Store.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Store.Context = ctx
cfg.Store.Commons = cfg.Commons
return store.Execute(cfg.Store)
})
reg(opts.Config.Thumbnails.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Thumbnails.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Thumbnails.Context = ctx
cfg.Thumbnails.Commons = cfg.Commons
return thumbnails.Execute(cfg.Thumbnails)
})
reg(opts.Config.Userlog.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Userlog.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Userlog.Context = ctx
cfg.Userlog.Commons = cfg.Commons
return userlog.Execute(cfg.Userlog)
})
reg(opts.Config.Users.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Users.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Users.Context = ctx
cfg.Users.Commons = cfg.Commons
return users.Execute(cfg.Users)
})
reg(opts.Config.Web.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Web.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Web.Context = ctx
cfg.Web.Commons = cfg.Commons
return web.Execute(cfg.Web)
})
reg(opts.Config.WebDAV.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.WebDAV.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.WebDAV.Context = ctx
cfg.WebDAV.Commons = cfg.Commons
return webdav.Execute(cfg.WebDAV)
})
reg(opts.Config.Webfinger.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
reg(3, opts.Config.Webfinger.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Webfinger.Context = ctx
cfg.Webfinger.Commons = cfg.Commons
return webfinger.Execute(cfg.Webfinger)
})
reg(3, opts.Config.IDP.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.IDP.Context = ctx
cfg.IDP.Commons = cfg.Commons
return idp.Execute(cfg.IDP)
})
reg(3, opts.Config.Proxy.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Proxy.Context = ctx
cfg.Proxy.Commons = cfg.Commons
return proxy.Execute(cfg.Proxy)
})
reg(3, opts.Config.Sharing.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Sharing.Context = ctx
cfg.Sharing.Commons = cfg.Commons
return sharing.Execute(cfg.Sharing)
})
reg(3, opts.Config.SSE.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.SSE.Context = ctx
cfg.SSE.Commons = cfg.Commons
return sse.Execute(cfg.SSE)
})
reg(3, opts.Config.OCM.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.OCM.Context = ctx
cfg.OCM.Commons = cfg.Commons
return ocm.Execute(cfg.OCM)
})
// out of some unknown reason ci gets angry when frontend service starts in priority group 3
// this is not reproducible locally, it can start when nats and gateway are already running
// FIXME: find out why
reg(4, opts.Config.Frontend.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Frontend.Context = ctx
cfg.Frontend.Commons = cfg.Commons
return frontend.Execute(cfg.Frontend)
})
// populate optional services
areg := func(name string, exec func(context.Context, *ociscfg.Config) error) {
@@ -296,40 +334,10 @@ func NewService(options ...Option) (*Service, error) {
cfg.Policies.Commons = cfg.Commons
return policies.Execute(cfg.Policies)
})
// populate delayed services
dreg := func(name string, exec func(context.Context, *ociscfg.Config) error) {
s.Delayed[name] = NewSutureServiceBuilder(exec)
}
dreg(opts.Config.Frontend.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Frontend.Context = ctx
cfg.Frontend.Commons = cfg.Commons
return frontend.Execute(cfg.Frontend)
})
dreg(opts.Config.IDP.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.IDP.Context = ctx
cfg.IDP.Commons = cfg.Commons
return idp.Execute(cfg.IDP)
})
dreg(opts.Config.Proxy.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Proxy.Context = ctx
cfg.Proxy.Commons = cfg.Commons
return proxy.Execute(cfg.Proxy)
})
dreg(opts.Config.Sharing.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Sharing.Context = ctx
cfg.Sharing.Commons = cfg.Commons
return sharing.Execute(cfg.Sharing)
})
dreg(opts.Config.SSE.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.SSE.Context = ctx
cfg.SSE.Commons = cfg.Commons
return sse.Execute(cfg.SSE)
})
dreg(opts.Config.OCM.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.OCM.Context = ctx
cfg.OCM.Commons = cfg.Commons
return ocm.Execute(cfg.OCM)
areg(opts.Config.Invitations.Service.Name, func(ctx context.Context, cfg *ociscfg.Config) error {
cfg.Invitations.Context = ctx
cfg.Invitations.Commons = cfg.Commons
return invitations.Execute(cfg.Invitations)
})
return s, nil
@@ -378,14 +386,14 @@ func Start(o ...Option) error {
if err = rpc.Register(s); err != nil {
if s != nil {
s.Log.Fatal().Err(err)
s.Log.Fatal().Err(err).Msg("could not register rpc service")
}
}
rpc.HandleHTTP()
l, err := net.Listen("tcp", net.JoinHostPort(s.cfg.Runtime.Host, s.cfg.Runtime.Port))
if err != nil {
s.Log.Fatal().Err(err)
s.Log.Fatal().Err(err).Msg("could not start listener")
}
defer func() {
@@ -402,9 +410,6 @@ func Start(o ...Option) error {
// prepare the set of services to run
s.generateRunSet(s.cfg)
// schedule preliminary services first
scheduleServiceTokens(s, s.Preliminary)
// there are reasons not to do this, but we have race conditions ourselves. Until we resolve them, mind the following disclaimer:
// Calling ServeBackground will CORRECTLY start the supervisor running in a new goroutine. It is risky to directly run
// go supervisor.Serve()
@@ -415,19 +420,18 @@ func Start(o ...Option) error {
// trap will block on halt channel for interruptions.
go trap(s, halt)
// grace period for preliminary services to get up
time.Sleep(_preliminaryDelay)
// schedule services that we are sure don't have interdependencies.
scheduleServiceTokens(s, s.ServicesRegistry)
for i, service := range s.Services {
scheduleServiceTokens(s, service)
if _waitFuncs[i] != nil {
if err := _waitFuncs[i](s.cfg); err != nil {
s.Log.Fatal().Err(err).Msg("wait func failed")
}
}
}
// schedule services that are optional
scheduleServiceTokens(s, s.Additional)
// add services with delayed execution.
time.Sleep(_startDelay)
scheduleServiceTokens(s, s.Delayed)
return http.Serve(l, nil)
}
@@ -454,16 +458,10 @@ func (s *Service) generateRunSet(cfg *ociscfg.Config) {
return
}
for name := range s.Preliminary {
runset[name] = struct{}{}
}
for name := range s.ServicesRegistry {
runset[name] = struct{}{}
}
for name := range s.Delayed {
runset[name] = struct{}{}
for _, service := range s.Services {
for name := range service {
runset[name] = struct{}{}
}
}
// add additional services if explicitly added by config
@@ -516,3 +514,39 @@ func trap(s *Service, halt chan os.Signal) {
s.Log.Debug().Str("service", "runtime service").Msgf("terminating with signal: %v", s)
os.Exit(0)
}
// pingNats will attempt to connect to nats, blocking until a connection is established
func pingNats(cfg *ociscfg.Config) error {
// We need to get a natsconfig from somewhere. We can use any one.
evcfg := cfg.Postprocessing.Postprocessing.Events
_, err := stream.NatsFromConfig("initial", true, stream.NatsConfig(evcfg))
return err
}
func pingGateway(_ *ociscfg.Config) error {
// init grpc connection
_, err := ogrpc.NewClient()
if err != nil {
return err
}
b := backoff.NewExponentialBackOff()
o := func() error {
n := b.NextBackOff()
_, err := pool.GetGatewayServiceClient("com.owncloud.api.gateway")
if err != nil && n > time.Second {
logger.New().Error().Err(err).Msgf("can't connect to gateway service, retrying in %s", n)
}
return err
}
err = backoff.Retry(o, b)
return err
}
func wait(d time.Duration) func(cfg *ociscfg.Config) error {
return func(cfg *ociscfg.Config) error {
time.Sleep(d)
return nil
}
}
+3 -3
View File
@@ -28,9 +28,9 @@ type Events struct {
Cluster string `yaml:"cluster" env:"OCIS_EVENTS_CLUSTER;AUDIT_EVENTS_CLUSTER" desc:"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."`
TLSInsecure bool `yaml:"tls_insecure" env:"OCIS_INSECURE;AUDIT_EVENTS_TLS_INSECURE" desc:"Whether to verify the server TLS certificates."`
TLSRootCACertificate string `yaml:"tls_root_ca_certificate" env:"OCIS_EVENTS_TLS_ROOT_CA_CERTIFICATE;AUDIT_EVENTS_TLS_ROOT_CA_CERTIFICATE" desc:"The root CA certificate used to validate the server's TLS certificate. If provided AUDIT_EVENTS_TLS_INSECURE will be seen as false."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;AUDIT_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;AUDIT_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;AUDIT_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;AUDIT_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;AUDIT_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;AUDIT_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
}
// Auditlog holds audit log information
+3 -3
View File
@@ -34,9 +34,9 @@ type Events struct {
Cluster string `yaml:"cluster" env:"OCIS_EVENTS_CLUSTER;CLIENTLOG_EVENTS_CLUSTER" desc:"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."`
TLSInsecure bool `yaml:"tls_insecure" env:"OCIS_INSECURE;CLIENTLOG_EVENTS_TLS_INSECURE" desc:"Whether to verify the server TLS certificates."`
TLSRootCACertificate string `yaml:"tls_root_ca_certificate" env:"OCIS_EVENTS_TLS_ROOT_CA_CERTIFICATE;CLIENTLOG_EVENTS_TLS_ROOT_CA_CERTIFICATE" desc:"The root CA certificate used to validate the server's TLS certificate. If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;CLIENTLOG_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;CLIENTLOG_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;CLIENTLOG_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;CLIENTLOG_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;CLIENTLOG_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;CLIENTLOG_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
}
// TokenManager is the config for using the reva token manager
+8 -8
View File
@@ -8,13 +8,15 @@ import (
"reflect"
gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
"go.opentelemetry.io/otel/trace"
"github.com/cs3org/reva/v2/pkg/events"
"github.com/cs3org/reva/v2/pkg/rgrpc/todo/pool"
"github.com/cs3org/reva/v2/pkg/storagespace"
"github.com/cs3org/reva/v2/pkg/utils"
"github.com/owncloud/ocis/v2/ocis-pkg/log"
"github.com/owncloud/ocis/v2/services/clientlog/pkg/config"
"go.opentelemetry.io/otel/trace"
)
// ClientlogService is the service responsible for user activities
@@ -116,22 +118,20 @@ func (cl *ClientlogService) processEvent(event events.Event) {
}
// II) instruct sse service to send the information
for _, id := range users {
if err := cl.sendSSE(id, evType, data); err != nil {
cl.log.Error().Err(err).Str("userID", id).Str("eventid", event.ID).Msg("failed to store event for user")
return
}
if err := cl.sendSSE(users, evType, data); err != nil {
cl.log.Error().Err(err).Interface("userIDs", users).Str("eventid", event.ID).Msg("failed to store event for user")
return
}
}
func (cl *ClientlogService) sendSSE(userid string, evType string, data interface{}) error {
func (cl *ClientlogService) sendSSE(userIDs []string, evType string, data interface{}) error {
b, err := json.Marshal(data)
if err != nil {
return err
}
return events.Publish(context.Background(), cl.publisher, events.SendSSE{
UserID: userid,
UserIDs: userIDs,
Type: evType,
Message: b,
})
+3 -3
View File
@@ -53,7 +53,7 @@ type Events struct {
Cluster string `yaml:"cluster" env:"OCIS_EVENTS_CLUSTER;EVENTHISTORY_EVENTS_CLUSTER" desc:"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."`
TLSInsecure bool `yaml:"tls_insecure" env:"OCIS_INSECURE;EVENTHISTORY_EVENTS_TLS_INSECURE" desc:"Whether to verify the server TLS certificates."`
TLSRootCACertificate string `yaml:"tls_root_ca_certificate" env:"OCIS_EVENTS_TLS_ROOT_CA_CERTIFICATE;EVENTHISTORY_EVENTS_TLS_ROOT_CA_CERTIFICATE" desc:"The root CA certificate used to validate the server's TLS certificate. Will be seen as empty if NOTIFICATIONS_EVENTS_TLS_INSECURE is provided."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;EVENTHISTORY_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;EVENTHISTORY_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;EVENTHISTORY_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;EVENTHISTORY_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;EVENTHISTORY_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;EVENTHISTORY_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
}
+3 -3
View File
@@ -171,9 +171,9 @@ type Events struct {
Cluster string `yaml:"cluster" env:"OCIS_EVENTS_CLUSTER;FRONTEND_EVENTS_CLUSTER" desc:"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."`
TLSInsecure bool `yaml:"tls_insecure" env:"OCIS_INSECURE;FRONTEND_EVENTS_TLS_INSECURE" desc:"Whether to verify the server TLS certificates."`
TLSRootCACertificate string `yaml:"tls_root_ca_certificate" env:"FRONTEND_EVENTS_TLS_ROOT_CA_CERTIFICATE;OCS_EVENTS_TLS_ROOT_CA_CERTIFICATE" desc:"The root CA certificate used to validate the server's TLS certificate. If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;FRONTEND_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;FRONTEND_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;FRONTEND_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;FRONTEND_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;FRONTEND_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;FRONTEND_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
}
// ServiceAccount is the configuration for the used service account
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
+3 -3
View File
@@ -120,9 +120,9 @@ type Events struct {
Cluster string `yaml:"cluster" env:"OCIS_EVENTS_CLUSTER;GRAPH_EVENTS_CLUSTER" desc:"The clusterID of the event system. The event system is the message queuing service. It is used as message broker for the microservice architecture."`
TLSInsecure bool `yaml:"tls_insecure" env:"OCIS_INSECURE;GRAPH_EVENTS_TLS_INSECURE" desc:"Whether to verify the server TLS certificates."`
TLSRootCACertificate string `yaml:"tls_root_ca_certificate" env:"OCIS_EVENTS_TLS_ROOT_CA_CERTIFICATE;GRAPH_EVENTS_TLS_ROOT_CA_CERTIFICATE" desc:"The root CA certificate used to validate the server's TLS certificate. If provided GRAPH_EVENTS_TLS_INSECURE will be seen as false."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;GRAPH_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;GRAPH_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;GRAPH_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;GRAPH_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;GRAPH_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;GRAPH_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
}
// CORS defines the available cors configuration.
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
+1 -1
View File
@@ -202,7 +202,7 @@ func (g Graph) libreGraphPermissionFromCS3PublicShare(createdLink *link.PublicSh
}
func parseAndFillUpTime(t *time.Time) *types.Timestamp {
if t == nil {
if t == nil || t.IsZero() {
return nil
}
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
+1 -1
View File
@@ -28,7 +28,7 @@ type Nats struct {
TLSCert string `yaml:"tls_cert" env:"NATS_TLS_CERT" desc:"Path/File name of the TLS server certificate (in PEM format) for the NATS listener. If not defined, the root directory derives from $OCIS_BASE_DATA_PATH:/nats."`
TLSKey string `yaml:"tls_key" env:"NATS_TLS_KEY" desc:"Path/File name for the TLS certificate key (in PEM format) for the NATS listener. If not defined, the root directory derives from $OCIS_BASE_DATA_PATH:/nats."`
TLSSkipVerifyClientCert bool `yaml:"tls_skip_verify_client_cert" env:"OCIS_INSECURE;NATS_TLS_SKIP_VERIFY_CLIENT_CERT" desc:"Whether the NATS server should skip the client certificate verification during the TLS handshake."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;NATS_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;NATS_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services."`
}
// Tracing is the tracing config
+3 -3
View File
@@ -55,9 +55,9 @@ type Events struct {
Cluster string `yaml:"cluster" env:"OCIS_EVENTS_CLUSTER;NOTIFICATIONS_EVENTS_CLUSTER" desc:"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."`
TLSInsecure bool `yaml:"tls_insecure" env:"OCIS_INSECURE;NOTIFICATIONS_EVENTS_TLS_INSECURE" desc:"Whether to verify the server TLS certificates."`
TLSRootCACertificate string `yaml:"tls_root_ca_certificate" env:"OCIS_EVENTS_TLS_ROOT_CA_CERTIFICATE;NOTIFICATIONS_EVENTS_TLS_ROOT_CA_CERTIFICATE" desc:"The root CA certificate used to validate the server's TLS certificate. If provided NOTIFICATIONS_EVENTS_TLS_INSECURE will be seen as false."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;NOTIFICATIONS_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;NOTIFICATIONS_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;NOTIFICATIONS_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;NOTIFICATIONS_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthUsername string `yaml:"username" env:"OCIS_EVENTS_AUTH_USERNAME;NOTIFICATIONS_EVENTS_AUTH_USERNAME" desc:"The username to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthPassword string `yaml:"password" env:"OCIS_EVENTS_AUTH_PASSWORD;NOTIFICATIONS_EVENTS_AUTH_PASSWORD" desc:"The password to authenticate with the events broker. The events broker is the ocis service which receives and delivers events between the services."`
}
// ServiceAccount is the configuration for the used service account
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: EMAIL\n"
"POT-Creation-Date: 2024-01-19 00:48+0000\n"
"POT-Creation-Date: 2024-02-08 01:09+0000\n"
"PO-Revision-Date: 2023-04-19 11:11+0000\n"
"Last-Translator: Michael Barz <mbarz@owncloud.com>, 2023\n"
"Language-Team: German (https://app.transifex.com/owncloud-org/teams/6149/de/)\n"
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: EMAIL\n"
"POT-Creation-Date: 2024-01-19 00:48+0000\n"
"POT-Creation-Date: 2024-02-08 01:09+0000\n"
"PO-Revision-Date: 2023-04-19 11:11+0000\n"
"Last-Translator: Michael Barz <mbarz@owncloud.com>, 2023\n"
"Language-Team: German (Germany) (https://app.transifex.com/owncloud-org/teams/6149/de_DE/)\n"
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: EMAIL\n"
"POT-Creation-Date: 2024-01-14 00:06+0000\n"
"POT-Creation-Date: 2024-02-03 00:35+0000\n"
"PO-Revision-Date: 2023-04-19 11:11+0000\n"
"Last-Translator: Begüm Topyıldız <bgmtpyldz@gmail.com>, 2023\n"
"Language-Team: Turkish (https://app.transifex.com/owncloud-org/teams/6149/tr/)\n"
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: EMAIL\n"
"POT-Creation-Date: 2024-01-19 00:48+0000\n"
"POT-Creation-Date: 2024-02-08 01:09+0000\n"
"PO-Revision-Date: 2023-04-19 11:11+0000\n"
"Last-Translator: Shouyuan, 2023\n"
"Language-Team: Chinese Simplified (https://app.transifex.com/owncloud-org/teams/6149/zh-Hans/)\n"
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: EMAIL\n"
"POT-Creation-Date: 2024-01-19 00:48+0000\n"
"POT-Creation-Date: 2024-02-08 01:09+0000\n"
"PO-Revision-Date: 2023-04-19 11:11+0000\n"
"Last-Translator: Shouyuan, 2023\n"
"Language-Team: Chinese (China) (https://app.transifex.com/owncloud-org/teams/6149/zh_CN/)\n"
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
+4
View File
@@ -22,6 +22,7 @@ import (
storageProvider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/cs3org/reva/v2/pkg/errtypes"
"github.com/cs3org/reva/v2/pkg/storagespace"
"github.com/cs3org/reva/v2/pkg/utils"
@@ -123,6 +124,9 @@ func BuildBleveMapping() (mapping.IndexMapping, error) {
func (b *Bleve) Search(ctx context.Context, sir *searchService.SearchIndexRequest) (*searchService.SearchIndexResponse, error) {
createdQuery, err := b.queryCreator.Create(sir.Query)
if err != nil {
if searchQuery.IsValidationError(err) {
return nil, errtypes.BadRequest(err.Error())
}
return nil, err
}
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
@@ -1,4 +1,4 @@
package kql
package query
import (
"fmt"
@@ -37,3 +37,11 @@ type UnsupportedTimeRangeError struct {
func (e UnsupportedTimeRangeError) Error() string {
return fmt.Sprintf("unable to convert '%v' to a time range", e.Value)
}
func IsValidationError(err error) bool {
switch err.(type) {
case *StartsWithBinaryOperatorError, *NamedGroupInvalidNodesError, *UnsupportedTimeRangeError:
return true
}
return false
}
+3 -2
View File
@@ -5,6 +5,7 @@ import (
"time"
"github.com/jinzhu/now"
"github.com/owncloud/ocis/v2/services/search/pkg/query"
"github.com/owncloud/ocis/v2/services/search/pkg/query/ast"
)
@@ -84,7 +85,7 @@ func toTimeRange(in interface{}) (*time.Time, *time.Time, error) {
value, err := toString(in)
if err != nil {
return &from, &to, UnsupportedTimeRangeError{}
return &from, &to, &query.UnsupportedTimeRangeError{}
}
c := &now.Config{
@@ -131,7 +132,7 @@ func toTimeRange(in interface{}) (*time.Time, *time.Time, error) {
}
if from.IsZero() || to.IsZero() {
return nil, nil, UnsupportedTimeRangeError{}
return nil, nil, &query.UnsupportedTimeRangeError{}
}
return &from, &to, nil
@@ -6,6 +6,7 @@ import (
"time"
"github.com/jinzhu/now"
"github.com/owncloud/ocis/v2/services/search/pkg/query"
tAssert "github.com/stretchr/testify/assert"
"github.com/owncloud/ocis/v2/services/search/pkg/query/ast"
@@ -34,13 +35,13 @@ func TestParse_Spec(t *testing.T) {
},
{
name: `AND`,
error: kql.StartsWithBinaryOperatorError{
error: query.StartsWithBinaryOperatorError{
Node: &ast.OperatorNode{Value: kql.BoolAND},
},
},
{
name: `AND cat AND dog`,
error: kql.StartsWithBinaryOperatorError{
error: query.StartsWithBinaryOperatorError{
Node: &ast.OperatorNode{Value: kql.BoolAND},
},
},
@@ -80,13 +81,13 @@ func TestParse_Spec(t *testing.T) {
},
{
name: `OR`,
error: kql.StartsWithBinaryOperatorError{
error: query.StartsWithBinaryOperatorError{
Node: &ast.OperatorNode{Value: kql.BoolOR},
},
},
{
name: `OR cat AND dog`,
error: kql.StartsWithBinaryOperatorError{
error: query.StartsWithBinaryOperatorError{
Node: &ast.OperatorNode{Value: kql.BoolOR},
},
},
@@ -862,37 +863,37 @@ func TestParse_Errors(t *testing.T) {
tests := []testCase{
{
query: "animal:(mammal:cat mammal:dog reptile:turtle)",
error: kql.NamedGroupInvalidNodesError{
error: query.NamedGroupInvalidNodesError{
Node: &ast.StringNode{Key: "mammal", Value: "cat"},
},
},
{
query: "animal:(cat mammal:dog turtle)",
error: kql.NamedGroupInvalidNodesError{
error: query.NamedGroupInvalidNodesError{
Node: &ast.StringNode{Key: "mammal", Value: "dog"},
},
},
{
query: "animal:(AND cat)",
error: kql.StartsWithBinaryOperatorError{
error: query.StartsWithBinaryOperatorError{
Node: &ast.OperatorNode{Value: kql.BoolAND},
},
},
{
query: "animal:(OR cat)",
error: kql.StartsWithBinaryOperatorError{
error: query.StartsWithBinaryOperatorError{
Node: &ast.OperatorNode{Value: kql.BoolOR},
},
},
{
query: "(AND cat)",
error: kql.StartsWithBinaryOperatorError{
error: query.StartsWithBinaryOperatorError{
Node: &ast.OperatorNode{Value: kql.BoolAND},
},
},
{
query: "(OR cat)",
error: kql.StartsWithBinaryOperatorError{
error: query.StartsWithBinaryOperatorError{
Node: &ast.OperatorNode{Value: kql.BoolOR},
},
},
+2 -1
View File
@@ -3,6 +3,7 @@ package kql_test
import (
"testing"
"github.com/owncloud/ocis/v2/services/search/pkg/query"
tAssert "github.com/stretchr/testify/assert"
"github.com/owncloud/ocis/v2/services/search/pkg/query/ast"
@@ -22,7 +23,7 @@ func TestNewAST(t *testing.T) {
{
name: "error",
givenQuery: kql.BoolAND,
expectedError: kql.StartsWithBinaryOperatorError{
expectedError: query.StartsWithBinaryOperatorError{
Node: &ast.OperatorNode{Value: kql.BoolAND},
},
},
+4 -4
View File
@@ -1,6 +1,7 @@
package kql
import (
"github.com/owncloud/ocis/v2/services/search/pkg/query"
"github.com/owncloud/ocis/v2/services/search/pkg/query/ast"
)
@@ -9,10 +10,9 @@ func validateAst(a *ast.Ast) error {
case *ast.OperatorNode:
switch node.Value {
case BoolAND, BoolOR:
return StartsWithBinaryOperatorError{Node: node}
return &query.StartsWithBinaryOperatorError{Node: node}
}
}
return nil
}
@@ -21,14 +21,14 @@ func validateGroupNode(n *ast.GroupNode) error {
case *ast.OperatorNode:
switch node.Value {
case BoolAND, BoolOR:
return StartsWithBinaryOperatorError{Node: node}
return &query.StartsWithBinaryOperatorError{Node: node}
}
}
if n.Key != "" {
for _, node := range n.Nodes {
if ast.NodeKey(node) != "" {
return NamedGroupInvalidNodesError{Node: node}
return &query.NamedGroupInvalidNodesError{Node: node}
}
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
@@ -1,4 +1,4 @@
// Code generated by mockery v2.40.1. DO NOT EDIT.
// Code generated by mockery v2.40.2. DO NOT EDIT.
package mocks
+1 -1
View File
@@ -152,7 +152,7 @@ type Events struct {
ClusterID string `yaml:"cluster" env:"OCIS_EVENTS_CLUSTER;SHARING_EVENTS_CLUSTER" desc:"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."`
TLSInsecure bool `yaml:"tls_insecure" env:"OCIS_INSECURE;SHARING_EVENTS_TLS_INSECURE" desc:"Whether to verify the server TLS certificates."`
TLSRootCaCertPath string `yaml:"tls_root_ca_cert_path" env:"OCIS_EVENTS_TLS_ROOT_CA_CERTIFICATE;SHARING_EVENTS_TLS_ROOT_CA_CERTIFICATE" desc:"The root CA certificate used to validate the server's TLS certificate. If provided SHARING_EVENTS_TLS_INSECURE will be seen as false."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;SHARING_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services.."`
EnableTLS bool `yaml:"enable_tls" env:"OCIS_EVENTS_ENABLE_TLS;SHARING_EVENTS_ENABLE_TLS" desc:"Enable TLS for the connection to the events broker. The events broker is the ocis service which receives and delivers events between the services."`
AuthUsername string `yaml:"auth_username" env:"OCIS_EVENTS_AUTH_USERNAME;SHARING_EVENTS_AUTH_USERNAME" desc:"Username for the events broker."`
AuthPassword string `yaml:"auth_password" env:"OCIS_EVENTS_AUTH_PASSWORD;SHARING_EVENTS_AUTH_PASSWORD" desc:"Password for the events broker."`
}
+9 -6
View File
@@ -3,11 +3,12 @@ package service
import (
"net/http"
revactx "github.com/cs3org/reva/v2/pkg/ctx"
"github.com/cs3org/reva/v2/pkg/events"
"github.com/go-chi/chi/v5"
"github.com/r3labs/sse/v2"
revactx "github.com/cs3org/reva/v2/pkg/ctx"
"github.com/cs3org/reva/v2/pkg/events"
"github.com/owncloud/ocis/v2/ocis-pkg/log"
"github.com/owncloud/ocis/v2/services/sse/pkg/config"
)
@@ -51,10 +52,12 @@ func (s SSE) ListenForEvents() {
default:
s.l.Error().Interface("event", ev).Msg("unhandled event")
case events.SendSSE:
s.sse.Publish(ev.UserID, &sse.Event{
Event: []byte(ev.Type),
Data: ev.Message,
})
for _, uid := range ev.UserIDs {
s.sse.Publish(uid, &sse.Event{
Event: []byte(ev.Type),
Data: ev.Message,
})
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More