run remark linter locally

This commit is contained in:
A.Unger
2020-09-23 11:34:11 +02:00
parent d9e8b60f49
commit 97c348f1ae
447 changed files with 6178 additions and 6088 deletions

View File

@@ -1,4 +1,4 @@
# Changelog for [unreleased] (UNRELEASED)
# Changelog for [unreleased] \(UNRELEASED)
The following sections list the changes in ocis-settings unreleased.
@@ -6,56 +6,56 @@ The following sections list the changes in ocis-settings unreleased.
## Summary
* Bugfix - Fix loading and saving system scoped values: [#66](https://github.com/owncloud/ocis/settings/pull/66)
* Bugfix - Complete input validation: [#66](https://github.com/owncloud/ocis/settings/pull/66)
* Change - Add filter option for bundle ids in ListBundles and ListRoles: [#59](https://github.com/owncloud/ocis/settings/pull/59)
* Change - Reuse roleIDs from the metadata context: [#69](https://github.com/owncloud/ocis/settings/pull/69)
* Change - Update ocis-pkg/v2: [#72](https://github.com/owncloud/ocis/settings/pull/72)
- Bugfix - Fix loading and saving system scoped values: [#66](https://github.com/owncloud/ocis/settings/pull/66)
- Bugfix - Complete input validation: [#66](https://github.com/owncloud/ocis/settings/pull/66)
- Change - Add filter option for bundle ids in ListBundles and ListRoles: [#59](https://github.com/owncloud/ocis/settings/pull/59)
- Change - Reuse roleIDs from the metadata context: [#69](https://github.com/owncloud/ocis/settings/pull/69)
- Change - Update ocis-pkg/v2: [#72](https://github.com/owncloud/ocis/settings/pull/72)
## Details
* Bugfix - Fix loading and saving system scoped values: [#66](https://github.com/owncloud/ocis/settings/pull/66)
- Bugfix - Fix loading and saving system scoped values: [#66](https://github.com/owncloud/ocis/settings/pull/66)
We fixed loading and saving system scoped values. Those are now saved without an account uuid,
so that the value can be loaded by other accounts as well.
We fixed loading and saving system scoped values. Those are now saved without an account uuid,
so that the value can be loaded by other accounts as well.
https://github.com/owncloud/ocis/settings/pull/66
<https://github.com/owncloud/ocis/settings/pull/66>
* Bugfix - Complete input validation: [#66](https://github.com/owncloud/ocis/settings/pull/66)
- Bugfix - Complete input validation: [#66](https://github.com/owncloud/ocis/settings/pull/66)
There was one handler function without input validation. We implemented the input validation
for `ValueService.ReadValueByUniqueIdentifiers`.
There was one handler function without input validation. We implemented the input validation
for `ValueService.ReadValueByUniqueIdentifiers`.
https://github.com/owncloud/ocis/settings/pull/66
<https://github.com/owncloud/ocis/settings/pull/66>
* Change - Add filter option for bundle ids in ListBundles and ListRoles: [#59](https://github.com/owncloud/ocis/settings/pull/59)
- Change - Add filter option for bundle ids in ListBundles and ListRoles: [#59](https://github.com/owncloud/ocis/settings/pull/59)
We added bundle ids as filter option for ListBundles and ListRoles and a new endpoint for
fetching a permission by ID.
We added bundle ids as filter option for ListBundles and ListRoles and a new endpoint for
fetching a permission by ID.
https://github.com/owncloud/ocis/settings/pull/59
<https://github.com/owncloud/ocis/settings/pull/59>
* Change - Reuse roleIDs from the metadata context: [#69](https://github.com/owncloud/ocis/settings/pull/69)
- Change - Reuse roleIDs from the metadata context: [#69](https://github.com/owncloud/ocis/settings/pull/69)
The roleIDs of the authenticated user are coming in from the metadata context. Since we decided
to move the role assignments over to the accounts service we need to start trusting those
roleIDs from the metadata context instead of reloading them from disk on each request.
The roleIDs of the authenticated user are coming in from the metadata context. Since we decided
to move the role assignments over to the accounts service we need to start trusting those
roleIDs from the metadata context instead of reloading them from disk on each request.
https://github.com/owncloud/ocis/settings/pull/69
<https://github.com/owncloud/ocis/settings/pull/69>
* Change - Update ocis-pkg/v2: [#72](https://github.com/owncloud/ocis/settings/pull/72)
- Change - Update ocis-pkg/v2: [#72](https://github.com/owncloud/ocis/settings/pull/72)
The helper we used from ocis-pkg for extracting roleIDs from the metadata context has moved to
another package, so we needed to update as well.
The helper we used from ocis-pkg for extracting roleIDs from the metadata context has moved to
another package, so we needed to update as well.
https://github.com/owncloud/ocis/settings/pull/72
https://github.com/owncloud/ocis-pkg/pull/60
<https://github.com/owncloud/ocis/settings/pull/72>
<https://github.com/owncloud/ocis-pkg/pull/60>
# Changelog for [0.3.1] (2020-08-27)
# Changelog for [0.3.1] \(2020-08-27)
The following sections list the changes in ocis-settings 0.3.1.
@@ -63,18 +63,18 @@ The following sections list the changes in ocis-settings 0.3.1.
## Summary
* Bugfix - Fix fetching bundles in settings UI: [#61](https://github.com/owncloud/ocis/settings/pull/61)
- Bugfix - Fix fetching bundles in settings UI: [#61](https://github.com/owncloud/ocis/settings/pull/61)
## Details
* Bugfix - Fix fetching bundles in settings UI: [#61](https://github.com/owncloud/ocis/settings/pull/61)
- Bugfix - Fix fetching bundles in settings UI: [#61](https://github.com/owncloud/ocis/settings/pull/61)
We fixed the settings UI to use the changed API endpoint `BundleService.ListBundles`
properly.
We fixed the settings UI to use the changed API endpoint `BundleService.ListBundles`
properly.
https://github.com/owncloud/ocis/settings/pull/61
<https://github.com/owncloud/ocis/settings/pull/61>
# Changelog for [0.3.0] (2020-08-26)
# Changelog for [0.3.0] \(2020-08-26)
The following sections list the changes in ocis-settings 0.3.0.
@@ -82,20 +82,20 @@ The following sections list the changes in ocis-settings 0.3.0.
## Summary
* Change - Filter settings by permissions: [#99](https://github.com/owncloud/product/issues/99)
- Change - Filter settings by permissions: [#99](https://github.com/owncloud/product/issues/99)
## Details
* Change - Filter settings by permissions: [#99](https://github.com/owncloud/product/issues/99)
- Change - Filter settings by permissions: [#99](https://github.com/owncloud/product/issues/99)
`BundleService.GetBundle` and `BundleService.ListBundles` are now filtered by READ
permissions in the role of the authenticated user. This prevents settings from being visible
to the user when their role doesn't have appropriate permissions.
`BundleService.GetBundle` and `BundleService.ListBundles` are now filtered by READ
permissions in the role of the authenticated user. This prevents settings from being visible
to the user when their role doesn't have appropriate permissions.
https://github.com/owncloud/product/issues/99
https://github.com/owncloud/ocis/settings/pull/48
<https://github.com/owncloud/product/issues/99>
<https://github.com/owncloud/ocis/settings/pull/48>
# Changelog for [0.2.0] (2020-08-20)
# Changelog for [0.2.0] \(2020-08-20)
The following sections list the changes in ocis-settings 0.2.0.
@@ -103,42 +103,42 @@ The following sections list the changes in ocis-settings 0.2.0.
## Summary
* Change - Add role service: [#110](https://github.com/owncloud/product/issues/110)
* Change - Rename endpoints and message types: [#36](https://github.com/owncloud/ocis/settings/issues/36)
* Change - Use UUIDs instead of alphanumeric identifiers: [#46](https://github.com/owncloud/ocis/settings/pull/46)
- Change - Add role service: [#110](https://github.com/owncloud/product/issues/110)
- Change - Rename endpoints and message types: [#36](https://github.com/owncloud/ocis/settings/issues/36)
- Change - Use UUIDs instead of alphanumeric identifiers: [#46](https://github.com/owncloud/ocis/settings/pull/46)
## Details
* Change - Add role service: [#110](https://github.com/owncloud/product/issues/110)
- Change - Add role service: [#110](https://github.com/owncloud/product/issues/110)
We added service endpoints for registering roles and maintaining permissions.
We added service endpoints for registering roles and maintaining permissions.
https://github.com/owncloud/product/issues/110
https://github.com/owncloud/ocis/settings/issues/10
https://github.com/owncloud/ocis/settings/pull/47
<https://github.com/owncloud/product/issues/110>
<https://github.com/owncloud/ocis/settings/issues/10>
<https://github.com/owncloud/ocis/settings/pull/47>
* Change - Rename endpoints and message types: [#36](https://github.com/owncloud/ocis/settings/issues/36)
- Change - Rename endpoints and message types: [#36](https://github.com/owncloud/ocis/settings/issues/36)
We decided to rename endpoints and message types to be less verbose. Specifically,
`SettingsBundle` became `Bundle`, `Setting` (inside a bundle) kept its name and
`SettingsValue` became `Value`.
We decided to rename endpoints and message types to be less verbose. Specifically,
`SettingsBundle` became `Bundle`, `Setting` (inside a bundle) kept its name and
`SettingsValue` became `Value`.
https://github.com/owncloud/ocis/settings/issues/36
https://github.com/owncloud/ocis/settings/issues/32
https://github.com/owncloud/ocis/settings/pull/46
<https://github.com/owncloud/ocis/settings/issues/36>
<https://github.com/owncloud/ocis/settings/issues/32>
<https://github.com/owncloud/ocis/settings/pull/46>
* Change - Use UUIDs instead of alphanumeric identifiers: [#46](https://github.com/owncloud/ocis/settings/pull/46)
- Change - Use UUIDs instead of alphanumeric identifiers: [#46](https://github.com/owncloud/ocis/settings/pull/46)
`Bundles`, `Settings` and `Values` were identified by a set of alphanumeric identifiers so
far. We switched to UUIDs in order to achieve a flat file hierarchy on disk. Referencing the
respective entities by their alphanumeric identifiers (as used in UI code) is still
supported.
`Bundles`, `Settings` and `Values` were identified by a set of alphanumeric identifiers so
far. We switched to UUIDs in order to achieve a flat file hierarchy on disk. Referencing the
respective entities by their alphanumeric identifiers (as used in UI code) is still
supported.
https://github.com/owncloud/ocis/settings/pull/46
<https://github.com/owncloud/ocis/settings/pull/46>
# Changelog for [0.1.0] (2020-08-17)
# Changelog for [0.1.0] \(2020-08-17)
The following sections list the changes in ocis-settings 0.1.0.
@@ -146,113 +146,112 @@ The following sections list the changes in ocis-settings 0.1.0.
## Summary
* Bugfix - Adjust UUID validation to be more tolerant: [#41](https://github.com/owncloud/ocis/settings/issues/41)
* Bugfix - Fix runtime error when type asserting on nil value: [#38](https://github.com/owncloud/ocis/settings/pull/38)
* Bugfix - Fix multiple submits on string and number form elements: [#745](https://github.com/owncloud/owncloud-design-system/issues/745)
* Bugfix - Build docker images with alpine:latest instead of alpine:edge: [#39](https://github.com/owncloud/ocis/settings/pull/39)
* Change - Dynamically add navItems for extensions with settings bundles: [#25](https://github.com/owncloud/ocis/settings/pull/25)
* Change - Introduce input validation: [#22](https://github.com/owncloud/ocis/settings/pull/22)
* Change - Use account uuid from x-access-token: [#14](https://github.com/owncloud/ocis/settings/pull/14)
* Change - Use server config variable from ocis-web: [#34](https://github.com/owncloud/ocis/settings/pull/34)
* Enhancement - Remove paths from Makefile: [#33](https://github.com/owncloud/ocis/settings/pull/33)
* Enhancement - Extend the docs: [#11](https://github.com/owncloud/ocis/settings/issues/11)
* Enhancement - Update ocis-pkg/v2: [#42](https://github.com/owncloud/ocis/settings/pull/42)
- Bugfix - Adjust UUID validation to be more tolerant: [#41](https://github.com/owncloud/ocis/settings/issues/41)
- Bugfix - Fix runtime error when type asserting on nil value: [#38](https://github.com/owncloud/ocis/settings/pull/38)
- Bugfix - Fix multiple submits on string and number form elements: [#745](https://github.com/owncloud/owncloud-design-system/issues/745)
- Bugfix - Build docker images with alpine:latest instead of alpine:edge: [#39](https://github.com/owncloud/ocis/settings/pull/39)
- Change - Dynamically add navItems for extensions with settings bundles: [#25](https://github.com/owncloud/ocis/settings/pull/25)
- Change - Introduce input validation: [#22](https://github.com/owncloud/ocis/settings/pull/22)
- Change - Use account uuid from x-access-token: [#14](https://github.com/owncloud/ocis/settings/pull/14)
- Change - Use server config variable from ocis-web: [#34](https://github.com/owncloud/ocis/settings/pull/34)
- Enhancement - Remove paths from Makefile: [#33](https://github.com/owncloud/ocis/settings/pull/33)
- Enhancement - Extend the docs: [#11](https://github.com/owncloud/ocis/settings/issues/11)
- Enhancement - Update ocis-pkg/v2: [#42](https://github.com/owncloud/ocis/settings/pull/42)
## Details
* Bugfix - Adjust UUID validation to be more tolerant: [#41](https://github.com/owncloud/ocis/settings/issues/41)
- Bugfix - Adjust UUID validation to be more tolerant: [#41](https://github.com/owncloud/ocis/settings/issues/41)
The UUID now allows any alphanumeric character and "-", "_", ".", "+" and "@" which can also
allow regular user names.
The UUID now allows any alphanumeric character and "-", "\_", ".", "+" and "@" which can also
allow regular user names.
https://github.com/owncloud/ocis/settings/issues/41
<https://github.com/owncloud/ocis/settings/issues/41>
* Bugfix - Fix runtime error when type asserting on nil value: [#38](https://github.com/owncloud/ocis/settings/pull/38)
- Bugfix - Fix runtime error when type asserting on nil value: [#38](https://github.com/owncloud/ocis/settings/pull/38)
Fixed the case where an account UUID present in the context is nil, and type asserting it as a
string would produce a runtime error.
Fixed the case where an account UUID present in the context is nil, and type asserting it as a
string would produce a runtime error.
https://github.com/owncloud/ocis/settings/issues/37
https://github.com/owncloud/ocis/settings/pull/38
<https://github.com/owncloud/ocis/settings/issues/37>
<https://github.com/owncloud/ocis/settings/pull/38>
* Bugfix - Fix multiple submits on string and number form elements: [#745](https://github.com/owncloud/owncloud-design-system/issues/745)
- Bugfix - Fix multiple submits on string and number form elements: [#745](https://github.com/owncloud/owncloud-design-system/issues/745)
We had a bug with keyboard event listeners triggering multiple submits on input fields. This
was recently fixed in the ownCloud design system (ODS). We rolled out that bugfix to the
settings ui as well.
We had a bug with keyboard event listeners triggering multiple submits on input fields. This
was recently fixed in the ownCloud design system (ODS). We rolled out that bugfix to the
settings ui as well.
https://github.com/owncloud/owncloud-design-system/issues/745
https://github.com/owncloud/owncloud-design-system/pull/768
https://github.com/owncloud/ocis/settings/pulls/31
<https://github.com/owncloud/owncloud-design-system/issues/745>
<https://github.com/owncloud/owncloud-design-system/pull/768>
<https://github.com/owncloud/ocis/settings/pulls/31>
* Bugfix - Build docker images with alpine:latest instead of alpine:edge: [#39](https://github.com/owncloud/ocis/settings/pull/39)
- Bugfix - Build docker images with alpine:latest instead of alpine:edge: [#39](https://github.com/owncloud/ocis/settings/pull/39)
ARM builds were failing when built on alpine:edge, so we switched to alpine:latest instead.
ARM builds were failing when built on alpine:edge, so we switched to alpine:latest instead.
https://github.com/owncloud/ocis/settings/pull/39
<https://github.com/owncloud/ocis/settings/pull/39>
* Change - Dynamically add navItems for extensions with settings bundles: [#25](https://github.com/owncloud/ocis/settings/pull/25)
- Change - Dynamically add navItems for extensions with settings bundles: [#25](https://github.com/owncloud/ocis/settings/pull/25)
We now make use of a new feature in ocis-web-core, allowing us to add navItems not only through
configuration, but also after app initialization. With this we now have navItems available
for all extensions within the settings ui, that have at least one settings bundle registered.
We now make use of a new feature in ocis-web-core, allowing us to add navItems not only through
configuration, but also after app initialization. With this we now have navItems available
for all extensions within the settings ui, that have at least one settings bundle registered.
https://github.com/owncloud/ocis/settings/pull/25
<https://github.com/owncloud/ocis/settings/pull/25>
* Change - Introduce input validation: [#22](https://github.com/owncloud/ocis/settings/pull/22)
- Change - Introduce input validation: [#22](https://github.com/owncloud/ocis/settings/pull/22)
We set up input validation, starting with enforcing alphanumeric identifier values and UUID
format on account uuids. As a result, traversal into parent folders is not possible anymore. We
also made sure that get and list requests are side effect free, i.e. not creating any folders.
We set up input validation, starting with enforcing alphanumeric identifier values and UUID
format on account uuids. As a result, traversal into parent folders is not possible anymore. We
also made sure that get and list requests are side effect free, i.e. not creating any folders.
https://github.com/owncloud/ocis/settings/issues/15
https://github.com/owncloud/ocis/settings/issues/16
https://github.com/owncloud/ocis/settings/issues/19
https://github.com/owncloud/ocis/settings/pull/22
<https://github.com/owncloud/ocis/settings/issues/15>
<https://github.com/owncloud/ocis/settings/issues/16>
<https://github.com/owncloud/ocis/settings/issues/19>
<https://github.com/owncloud/ocis/settings/pull/22>
* Change - Use account uuid from x-access-token: [#14](https://github.com/owncloud/ocis/settings/pull/14)
- Change - Use account uuid from x-access-token: [#14](https://github.com/owncloud/ocis/settings/pull/14)
We are now using an ocis-pkg middleware for extracting the account uuid of the authenticated
user from the `x-access-token` of the http request header and inject it into the Identifier
protobuf messages wherever possible. This allows us to use `me` instead of an actual account
uuid, when the request comes through the proxy.
We are now using an ocis-pkg middleware for extracting the account uuid of the authenticated
user from the `x-access-token` of the http request header and inject it into the Identifier
protobuf messages wherever possible. This allows us to use `me` instead of an actual account
uuid, when the request comes through the proxy.
https://github.com/owncloud/ocis/settings/pull/14
<https://github.com/owncloud/ocis/settings/pull/14>
* Change - Use server config variable from ocis-web: [#34](https://github.com/owncloud/ocis/settings/pull/34)
- Change - Use server config variable from ocis-web: [#34](https://github.com/owncloud/ocis/settings/pull/34)
We are not providing an api url anymore but use the server url from ocis-web config instead. This
still - as before - requires that ocis-proxy is in place for routing requests to ocis-settings.
We are not providing an api url anymore but use the server url from ocis-web config instead. This
still - as before - requires that ocis-proxy is in place for routing requests to ocis-settings.
https://github.com/owncloud/ocis/settings/pull/34
<https://github.com/owncloud/ocis/settings/pull/34>
* Enhancement - Remove paths from Makefile: [#33](https://github.com/owncloud/ocis/settings/pull/33)
- Enhancement - Remove paths from Makefile: [#33](https://github.com/owncloud/ocis/settings/pull/33)
We have a variable for the proto files path in our Makefile, but were not using it. Changed the
Makefile to use the PROTO_SRC variable where possible.
We have a variable for the proto files path in our Makefile, but were not using it. Changed the
Makefile to use the PROTO_SRC variable where possible.
https://github.com/owncloud/ocis/settings/pull/33
<https://github.com/owncloud/ocis/settings/pull/33>
* Enhancement - Extend the docs: [#11](https://github.com/owncloud/ocis/settings/issues/11)
- Enhancement - Extend the docs: [#11](https://github.com/owncloud/ocis/settings/issues/11)
We have extended the documentation by adding a chapter about settings values.
We have extended the documentation by adding a chapter about settings values.
https://github.com/owncloud/ocis/settings/issues/11
https://github.com/owncloud/ocis/settings/pulls/28
<https://github.com/owncloud/ocis/settings/issues/11>
<https://github.com/owncloud/ocis/settings/pulls/28>
* Enhancement - Update ocis-pkg/v2: [#42](https://github.com/owncloud/ocis/settings/pull/42)
- Enhancement - Update ocis-pkg/v2: [#42](https://github.com/owncloud/ocis/settings/pull/42)
Update to ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d
https://github.com/owncloud/ocis/settings/pull/42
Update to ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d
<https://github.com/owncloud/ocis/settings/pull/42>

View File

@@ -1,7 +1,7 @@
# ownCloud Infinite Scale: SETTINGS
[![Build Status](https://cloud.drone.io/api/badges/owncloud/ocis-settings/status.svg)](https://cloud.drone.io/owncloud/ocis-settings)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/4383f209aa904572b415ef5a8f9e379f)](https://www.codacy.com/gh/owncloud/ocis-settings?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=owncloud/ocis-settings&amp;utm_campaign=Badge_Grade)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/4383f209aa904572b415ef5a8f9e379f)](https://www.codacy.com/gh/owncloud/ocis-settings?utm_source=github.com&utm_medium=referral&utm_content=owncloud/ocis-settings&utm_campaign=Badge_Grade)
[![Go Doc](https://godoc.org/github.com/owncloud/ocis-settings?status.svg)](http://godoc.org/github.com/owncloud/ocis-settings)
[![Go Report Card](https://goreportcard.com/badge/github.com/owncloud/ocis-settings)](https://goreportcard.com/report/github.com/owncloud/ocis-settings)
[![](https://images.microbadger.com/badges/image/owncloud/ocis-settings.svg)](https://microbadger.com/images/owncloud/ocis-settings "Get your own image badge on microbadger.com")
@@ -27,7 +27,7 @@ make generate build
## Security
If you find a security issue please contact security@owncloud.com first.
If you find a security issue please contact [security@owncloud.com](mailto:security@owncloud.com) first.
## Contributing

View File

@@ -1,6 +1,6 @@
Bugfix: Adjust UUID validation to be more tolerant
The UUID now allows any alphanumeric character and "-", "_", ".", "+" and "@" which
The UUID now allows any alphanumeric character and "-", "\_", ".", "+" and "@" which
can also allow regular user names.
https://github.com/owncloud/ocis/settings/issues/41
<https://github.com/owncloud/ocis/settings/issues/41>

View File

@@ -3,4 +3,4 @@ Enhancement: Remove paths from Makefile
We have a variable for the proto files path in our Makefile, but were not using
it. Changed the Makefile to use the PROTO_SRC variable where possible.
https://github.com/owncloud/ocis/settings/pull/33
<https://github.com/owncloud/ocis/settings/pull/33>

View File

@@ -2,5 +2,5 @@ Enhancement: Extend the docs
We have extended the documentation by adding a chapter about settings values.
https://github.com/owncloud/ocis/settings/issues/11
https://github.com/owncloud/ocis/settings/pulls/28
<https://github.com/owncloud/ocis/settings/issues/11>
<https://github.com/owncloud/ocis/settings/pulls/28>

View File

@@ -5,4 +5,4 @@ navItems not only through configuration, but also after app initialization.
With this we now have navItems available for all extensions within the
settings ui, that have at least one settings bundle registered.
https://github.com/owncloud/ocis/settings/pull/25
<https://github.com/owncloud/ocis/settings/pull/25>

View File

@@ -2,5 +2,5 @@ Bugfix: Fix runtime error when type asserting on nil value
Fixed the case where an account UUID present in the context is nil, and type asserting it as a string would produce a runtime error.
https://github.com/owncloud/ocis/settings/pull/38
https://github.com/owncloud/ocis/settings/issues/37
<https://github.com/owncloud/ocis/settings/pull/38>
<https://github.com/owncloud/ocis/settings/issues/37>

View File

@@ -4,7 +4,7 @@ We set up input validation, starting with enforcing alphanumeric identifier valu
format on account uuids. As a result, traversal into parent folders is not possible anymore.
We also made sure that get and list requests are side effect free, i.e. not creating any folders.
https://github.com/owncloud/ocis/settings/pull/22
https://github.com/owncloud/ocis/settings/issues/15
https://github.com/owncloud/ocis/settings/issues/16
https://github.com/owncloud/ocis/settings/issues/19
<https://github.com/owncloud/ocis/settings/pull/22>
<https://github.com/owncloud/ocis/settings/issues/15>
<https://github.com/owncloud/ocis/settings/issues/16>
<https://github.com/owncloud/ocis/settings/issues/19>

View File

@@ -2,4 +2,4 @@ Enhancement: Update ocis-pkg/v2
Update to ocis-pkg/v2 v2.2.2-0.20200812103920-db41b5a3d14d
https://github.com/owncloud/ocis/settings/pull/42
<https://github.com/owncloud/ocis/settings/pull/42>

View File

@@ -4,6 +4,6 @@ We had a bug with keyboard event listeners triggering multiple submits on input
This was recently fixed in the ownCloud design system (ODS). We rolled out that bugfix
to the settings ui as well.
https://github.com/owncloud/owncloud-design-system/issues/745
https://github.com/owncloud/owncloud-design-system/pull/768
https://github.com/owncloud/ocis/settings/pulls/31
<https://github.com/owncloud/owncloud-design-system/issues/745>
<https://github.com/owncloud/owncloud-design-system/pull/768>
<https://github.com/owncloud/ocis/settings/pulls/31>

View File

@@ -5,4 +5,4 @@ authenticated user from the `x-access-token` of the http request header and inje
it into the Identifier protobuf messages wherever possible. This allows us to use
`me` instead of an actual account uuid, when the request comes through the proxy.
https://github.com/owncloud/ocis/settings/pull/14
<https://github.com/owncloud/ocis/settings/pull/14>

View File

@@ -2,4 +2,4 @@ Bugfix: build docker images with alpine:latest instead of alpine:edge
ARM builds were failing when built on alpine:edge, so we switched to alpine:latest instead.
https://github.com/owncloud/ocis/settings/pull/39
<https://github.com/owncloud/ocis/settings/pull/39>

View File

@@ -2,4 +2,4 @@ Change: Use server config variable from ocis-web
We are not providing an api url anymore but use the server url from ocis-web config instead. This still - as before - requires that ocis-proxy is in place for routing requests to ocis-settings.
https://github.com/owncloud/ocis/settings/pull/34
<https://github.com/owncloud/ocis/settings/pull/34>

View File

@@ -2,6 +2,6 @@ Change: Add role service
We added service endpoints for registering roles and maintaining permissions.
https://github.com/owncloud/product/issues/110
https://github.com/owncloud/ocis/settings/issues/10
https://github.com/owncloud/ocis/settings/pull/47
<https://github.com/owncloud/product/issues/110>
<https://github.com/owncloud/ocis/settings/issues/10>
<https://github.com/owncloud/ocis/settings/pull/47>

View File

@@ -3,6 +3,6 @@ Change: Rename endpoints and message types
We decided to rename endpoints and message types to be less verbose. Specifically, `SettingsBundle` became `Bundle`,
`Setting` (inside a bundle) kept its name and `SettingsValue` became `Value`.
https://github.com/owncloud/ocis/settings/issues/36
https://github.com/owncloud/ocis/settings/issues/32
https://github.com/owncloud/ocis/settings/pull/46
<https://github.com/owncloud/ocis/settings/issues/36>
<https://github.com/owncloud/ocis/settings/issues/32>
<https://github.com/owncloud/ocis/settings/pull/46>

View File

@@ -4,4 +4,4 @@ Change: Use UUIDs instead of alphanumeric identifiers
in order to achieve a flat file hierarchy on disk. Referencing the respective entities by their alphanumeric
identifiers (as used in UI code) is still supported.
https://github.com/owncloud/ocis/settings/pull/46
<https://github.com/owncloud/ocis/settings/pull/46>

View File

@@ -2,5 +2,5 @@ Change: Filter settings by permissions
`BundleService.GetBundle` and `BundleService.ListBundles` are now filtered by READ permissions in the role of the authenticated user. This prevents settings from being visible to the user when their role doesn't have appropriate permissions.
https://github.com/owncloud/product/issues/99
https://github.com/owncloud/ocis/settings/pull/48
<https://github.com/owncloud/product/issues/99>
<https://github.com/owncloud/ocis/settings/pull/48>

View File

@@ -2,5 +2,4 @@ Bugfix: Fix fetching bundles in settings UI
We fixed the settings UI to use the changed API endpoint `BundleService.ListBundles` properly.
https://github.com/owncloud/ocis/settings/pull/61
<https://github.com/owncloud/ocis/settings/pull/61>

View File

@@ -2,5 +2,4 @@ Change: Add filter option for bundle ids in ListBundles and ListRoles
We added bundle ids as filter option for ListBundles and ListRoles and a new endpoint for fetching a permission by ID.
https://github.com/owncloud/ocis/settings/pull/59
<https://github.com/owncloud/ocis/settings/pull/59>

View File

@@ -3,5 +3,4 @@ Bugfix: Fix loading and saving system scoped values
We fixed loading and saving system scoped values. Those are now saved without an account uuid, so that the value
can be loaded by other accounts as well.
https://github.com/owncloud/ocis/settings/pull/66
<https://github.com/owncloud/ocis/settings/pull/66>

View File

@@ -2,5 +2,4 @@ Bugfix: Complete input validation
There was one handler function without input validation. We implemented the input validation for `ValueService.ReadValueByUniqueIdentifiers`.
https://github.com/owncloud/ocis/settings/pull/66
<https://github.com/owncloud/ocis/settings/pull/66>

View File

@@ -2,5 +2,4 @@ Change: Reuse roleIDs from the metadata context
The roleIDs of the authenticated user are coming in from the metadata context. Since we decided to move the role assignments over to the accounts service we need to start trusting those roleIDs from the metadata context instead of reloading them from disk on each request.
https://github.com/owncloud/ocis/settings/pull/69
<https://github.com/owncloud/ocis/settings/pull/69>

View File

@@ -3,5 +3,5 @@ Change: Update ocis-pkg/v2
The helper we used from ocis-pkg for extracting roleIDs from the metadata context has moved to another package, so we needed
to update as well.
https://github.com/owncloud/ocis/settings/pull/72
https://github.com/owncloud/ocis-pkg/pull/60
<https://github.com/owncloud/ocis/settings/pull/72>
<https://github.com/owncloud/ocis-pkg/pull/60>

View File

@@ -1,11 +1,12 @@
---
* * *
title: "Settings"
date: 2018-05-02T00:00:00+00:00
weight: 10
geekdocRepo: https://github.com/owncloud/ocis-settings
geekdocRepo: <https://github.com/owncloud/ocis-settings>
geekdocEditPath: edit/master/docs
geekdocFilePath: _index.md
---
## geekdocFilePath: \_index.md
## Abstract
@@ -17,7 +18,7 @@ For ease of use, this extension provides an ocis-web extension which allows user
Please refer to the [ocis-web extension docs](https://owncloud.github.io/ocis/extensions/#external-phoenix-apps)
for running ocis-web extensions.
{{< mermaid class="text-center">}}
{{&lt; mermaid class="text-center">}}
graph TD
subgraph ow[ocis-web]
ows[ocis-web-settings]
@@ -29,18 +30,20 @@ graph TD
sdks ---|"yes"| os
sdks ---|"no"| defaults[Use set of<br>default values]
oa[oCIS extensions<br>e.g. ocis-accounts] ---|"saveSettingsBundle(bundle)"| os
{{< /mermaid >}}
{{&lt; /mermaid >}}
The diagram shows how the settings service integrates into oCIS:
**Settings management:**
- oCIS extensions can register *settings bundles* with the ocis-settings service.
- The settings frontend can be plugged into ocis-web, showing forms for changing *settings values* as a user.
The forms are generated from the registered *settings bundles*.
- oCIS extensions can register _settings bundles_ with the ocis-settings service.
- The settings frontend can be plugged into ocis-web, showing forms for changing _settings values_ as a user.
The forms are generated from the registered _settings bundles_.
**Settings usage:**
- Extensions can query ocis-settings for *settings values* of a user.
- The ownCloud SDK, used as a data abstraction layer for ocis-web, will query ocis-settings for *settings values* of a user,
if it's available. The SDK uses sensible defaults when ocis-settings is not part of the setup.
- Extensions can query ocis-settings for _settings values_ of a user.
- The ownCloud SDK, used as a data abstraction layer for ocis-web, will query ocis-settings for _settings values_ of a user,
if it's available. The SDK uses sensible defaults when ocis-settings is not part of the setup.
For compatibility with ownCloud 10, a migration of ownCloud 10 settings into the storage of ocis-settings will be available.

View File

@@ -1,28 +1,29 @@
---
* * *
title: "Building"
date: 2018-05-02T00:00:00+00:00
weight: 30
geekdocRepo: https://github.com/owncloud/ocis-settings
geekdocRepo: <https://github.com/owncloud/ocis-settings>
geekdocEditPath: edit/master/docs
geekdocFilePath: building.md
---
{{< toc >}}
## geekdocFilePath: building.md
{{&lt; toc >}}
As this project is built with Go, so you need to install that first. The installation of Go is out of the scope of this document, please follow the official documentation for [Go](https://golang.org/doc/install), to build this project you have to install Go >= v1.12. After the installation of the required tools you need to get the sources:
{{< highlight txt >}}
git clone https://github.com/owncloud/ocis-settings.git
{{&lt; highlight txt >}}
git clone <https://github.com/owncloud/ocis-settings.git>
cd ocis-settings
{{< / highlight >}}
{{&lt; / highlight >}}
All required tool besides Go itself and make are bundled or getting automatically installed within the `GOPATH`. All commands to build this project are part of our `Makefile`.
## Backend
{{< highlight txt >}}
{{&lt; highlight txt >}}
make generate
make build
{{< / highlight >}}
{{&lt; / highlight >}}
Finally you should have the binary within the `bin/` folder now, give it a try with `./bin/ocis-settings -h` to see all available options.

View File

@@ -1,11 +1,12 @@
---
* * *
title: "Settings Bundles"
date: 2020-05-04T00:00:00+00:00
weight: 50
geekdocRepo: https://github.com/owncloud/ocis-settings
geekdocRepo: <https://github.com/owncloud/ocis-settings>
geekdocEditPath: edit/master/docs
geekdocFilePath: bundles.md
---
## geekdocFilePath: bundles.md
A **Settings Bundle** is a collection of settings, uniquely identified by the key of the
extension registering the bundle and the key of the bundle itself. It's purpose is to let
@@ -13,11 +14,12 @@ oCIS extensions define settings and make them available to users. They are dynam
rendered into forms, available in the frontend.
As of now we support five different types of settings:
- boolean
- integer
- string
- single choice list of integers or strings
- multiple choice list of integers or strings
- boolean
- integer
- string
- single choice list of integers or strings
- multiple choice list of integers or strings
Each **Setting** is uniquely identified by a key within the bundle. Some attributes
depend on the chosen type of setting. Through the information provided with the

View File

@@ -1,13 +1,14 @@
---
* * *
title: "Getting Started"
date: 2018-05-02T00:00:00+00:00
weight: 25
geekdocRepo: https://github.com/owncloud/ocis-settings
geekdocRepo: <https://github.com/owncloud/ocis-settings>
geekdocEditPath: edit/master/docs
geekdocFilePath: getting-started.md
---
{{< toc >}}
## geekdocFilePath: getting-started.md
{{&lt; toc >}}
## Installation
@@ -92,59 +93,59 @@ If you prefer to configure the service with commandline flags you can see the av
#### Global
--config-file
\--config-file
: Path to config file, empty default value
--log-level
\--log-level
: Set logging level, defaults to `info`
--log-color
\--log-color
: Enable colored logging, defaults to `true`
--log-pretty
\--log-pretty
: Enable pretty logging, defaults to `true`
#### Server
--tracing-enabled
\--tracing-enabled
: Enable sending traces, defaults to `false`
--tracing-type
\--tracing-type
: Tracing backend type, defaults to `jaeger`
--tracing-endpoint
\--tracing-endpoint
: Endpoint for the agent, empty default value
--tracing-collector
\--tracing-collector
: Endpoint for the collector, empty default value
--tracing-service
\--tracing-service
: Service name for tracing, defaults to `settings`
--debug-addr
\--debug-addr
: Address to bind debug server, defaults to `0.0.0.0:9194`
--debug-token
\--debug-token
: Token to grant metrics access, empty default value
--debug-pprof
\--debug-pprof
: Enable pprof debugging, defaults to `false`
--debug-zpages
\--debug-zpages
: Enable zpages debugging, defaults to `false`
--http-addr
\--http-addr
: Address to bind http server, defaults to `0.0.0.0:9190`
--http-namespace
\--http-namespace
: Namespace for internal services communication, defaults to `com.owncloud.web`
--http-root
\--http-root
: Root path of http server, defaults to `/`
#### Health
--debug-addr
\--debug-addr
: Address to debug endpoint, defaults to `0.0.0.0:9194`
### Configuration file
@@ -159,17 +160,17 @@ The program provides a few sub-commands on execution. The available configuratio
The server command is used to start the http and debug server on two addresses within a single process. The http server is serving the general webservice while the debug server is used for health check, readiness check and to server the metrics mentioned below. For further help please execute:
{{< highlight txt >}}
{{&lt; highlight txt >}}
ocis-settings server --help
{{< / highlight >}}
{{&lt; / highlight >}}
### Health
The health command is used to execute a health check, if the exit code equals zero the service should be up and running, if the exist code is greater than zero the service is not in a healthy state. Generally this command is used within our Docker containers, it could also be used within Kubernetes.
{{< highlight txt >}}
{{&lt; highlight txt >}}
ocis-settings health --help
{{< / highlight >}}
{{&lt; / highlight >}}
## Metrics

View File

@@ -1,42 +1,43 @@
---
* * *
title: "Glossary"
date: 2020-05-04T12:35:00+01:00
weight: 80
geekdocRepo: https://github.com/owncloud/ocis-settings
geekdocRepo: <https://github.com/owncloud/ocis-settings>
geekdocEditPath: edit/master/docs
geekdocFilePath: glossary.md
---
## geekdocFilePath: glossary.md
In the context of this extension and oCIS in general, we are using the following terminology.
### Configuration
- System configuration
- e.g. service host names and ports
- Changes need to be propagated to other services
- Typically modified on the CLI
- System configuration
- e.g. service host names and ports
- Changes need to be propagated to other services
- Typically modified on the CLI
### Settings
- Application level settings
- e.g. default language
- Can be modified at runtime without restarting the service
- Typically modified in the UI
- Application level settings
- e.g. default language
- Can be modified at runtime without restarting the service
- Typically modified in the UI
### Preferences
- User settings
- Subset of "Settings"
- e.g. preferred language of a user
- User settings
- Subset of "Settings"
- e.g. preferred language of a user
### Settings Bundle
- Collection of related settings
- Registered by an ocis extension
- Collection of related settings
- Registered by an ocis extension
### Settings Value
- Manifestation of a setting for a specific user
- E.g. used for customization (at runtime) in `ocis-web`
- `ocis-web-settings` extension for modifying settings values is provided by this service
- Can be queried and modified by other ocis extensions
- Manifestation of a setting for a specific user
- E.g. used for customization (at runtime) in `ocis-web`
- `ocis-web-settings` extension for modifying settings values is provided by this service
- Can be queried and modified by other ocis extensions

View File

@@ -1,10 +1,11 @@
---
* * *
title: "License"
date: 2018-05-02T00:00:00+00:00
weight: 90
geekdocRepo: https://github.com/owncloud/ocis-settings
geekdocRepo: <https://github.com/owncloud/ocis-settings>
geekdocEditPath: edit/master/docs
geekdocFilePath: license.md
---
## geekdocFilePath: license.md
This project is licensed under the [Apache 2.0](https://github.com/owncloud/ocis/settings/blob/master/LICENSE) license. For the license of the used libraries you have to check the respective sources.

View File

@@ -1,32 +1,34 @@
---
* * *
title: "Settings Values"
date: 2020-05-04T00:00:00+00:00
weight: 51
geekdocRepo: https://github.com/owncloud/ocis-settings
geekdocRepo: <https://github.com/owncloud/ocis-settings>
geekdocEditPath: edit/master/docs
geekdocFilePath: values.md
---
## geekdocFilePath: values.md
A **Settings Value** is the value an authenticated user has chosen for a specific setting, defined in a
*settings bundle*. For choosing settings values as a user the sole entry point is the ocis-web extension
_settings bundle_. For choosing settings values as a user the sole entry point is the ocis-web extension
provided by this service.
## Identifying settings values
A *settings value* is uniquely identified by four attributes. Three of them are coming from the definition of
A _settings value_ is uniquely identified by four attributes. Three of them are coming from the definition of
the setting within it's settings bundle (see [Settings Bundles](https://owncloud.github.io/extensions/ocis_settings/bundles/)
for an example). The fourth identifies the user.
- extension: Key of the extension that registered the settings bundle,
- bundleKey: Key of the settings bundle,
- settingKey: Key of the setting as defined within the bundle,
- accountUuid: The UUID of the authenticated user who has saved the setting.
{{< hint info >}}
- extension: Key of the extension that registered the settings bundle,
- bundleKey: Key of the settings bundle,
- settingKey: Key of the setting as defined within the bundle,
- accountUuid: The UUID of the authenticated user who has saved the setting.
{{&lt; hint info >}}
When requests are going through `ocis-proxy`, the accountUuid attribute can be set to the static keyword `me`
instead of using a real UUID. `ocis-proxy` will take care of minting the UUID of the authenticated user into
a JWT, providing it in the HTTP header as `x-access-token`. That UUID is then used in this service, to replace
`me` with the actual UUID of the authenticated user.
{{< /hint >}}
{{&lt; /hint >}}
## Example of stored settings values
@@ -68,8 +70,9 @@ a JWT, providing it in the HTTP header as `x-access-token`. That UUID is then us
```
## gRPC endpoints
The obvious way of modifying settings is the ocis-web extension, as described earlier. However, services can
use the respective gRPC endpoints of the `ValueService` to query and modify *settings values* as well.
use the respective gRPC endpoints of the `ValueService` to query and modify _settings values_ as well.
The gRPC endpoints require the same identifier attributes as described above, so for making a request to
the `ValueService` you will have to make sure that the accountUuid of the authenticated user is available in
your service at the time of the request.