Merge pull request #3952 from owncloud/edit-docs-20220613

Minor docs changes
This commit is contained in:
Willy Kloucek
2022-06-13 10:47:32 +02:00
committed by GitHub
13 changed files with 21 additions and 21 deletions

View File

@@ -176,7 +176,7 @@ graph TD
{{</mermaid>}}
Since the active clients will poll the etag for all active users the gateway will have their ETag cached. This is where sharing comes into play: The gateway also needs to stat the ETag of all other entry points ... or mount points. That may increases the number of stat like requests to storage providers by an order of magnitude.
Since the active clients will poll the etag for all active users the gateway will have their ETag cached. This is where sharing comes into play: The gateway also needs to stat the ETag of all other entry points ... or mount points. That may increase the number of stat like requests to storage providers by an order of magnitude.
### Ram considerations
@@ -192,7 +192,7 @@ The bandwidth for a single machine might be another bottleneck. Consider a propf
This can be scaled by adding more gateways and sharding users because these components are stateless.
## Share mount point polling cache
What can we do to reduce the number of stat calls to storage providers. Well, the gateway queries the share manager for all mounted shares of a user (or all entry points, not only the users own root/home). The share references contain the storage provider that contains the share. If every user has it's own storage provider id the gateway could check in its own cache if the storage root etag has changed. It will be up to date because another client likely already polled for its etag.
What can we do to reduce the number of stat calls to storage providers. Well, the gateway queries the share manager for all mounted shares of a user (or all entry points, not only the users own root/home). The share references contain the storage provider that contains the share. If every user has its own storage provider id the gateway could check in its own cache if the storage root etag has changed. It will be up-to-date because another client likely already polled for its etag.
This would reduce the number of necessary stat requests to active storages.
### Active share node cache invalidation

View File

@@ -68,7 +68,7 @@ While the above is a simplification to get an understanding of what needs to go
**Proxy can do user based routing**
The ocis proxy authenticates requests an can forward requests to different backends, depending on the logged in user or cookies. For example multiple ocdav services can be configured to shard users based on username or affiliation.
The ocis proxy authenticates requests and can forward requests to different backends, depending on the logged-in user or cookies. For example multiple ocdav services can be configured to shard users based on username or affiliation.
{{<mermaid class="text-center">}}
%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%%
@@ -129,7 +129,7 @@ sequenceDiagram
**PROPFIND request against old webdav endpoints**
To route a PROPFIND request against the old webdav endpoints like `/dav/files/username`, ocdav first has to build a CS3 namespace prefix, eg. `/users/{{.Id.OpaqueId}}` to the users home.
To route a PROPFIND request against the old webdav endpoints like `/dav/files/username`, ocdav first has to build a CS3 namespace prefix, e.g. `/users/{{.Id.OpaqueId}}` to the users home.
{{<mermaid class="text-center">}}
%%{init: {"sequence": { "showSequenceNumbers":true, "messageFontFamily":"courier", "messageFontWeight":"normal", "messageFontSize":"11"}}}%%

View File

@@ -18,7 +18,7 @@ Rclone itself is not able to open and maintain an OpenID Connect session. But it
You need to install the [OIDC-agent](https://github.com/indigo-dc/oidc-agent) from your OS' package repository (e.g. [Debian](https://github.com/indigo-dc/oidc-agent#debian-packages) or [MacOS](https://github.com/indigo-dc/oidc-agent#debian-packages)).
### Configuring the the OIDC-agent
### Configuring the OIDC-agent
Run the following command to add a OpenID Connect profile to your OIDC-agent. It will open the login page of OpenID Connect identity provider where you need to log in if you don't have an active session.

View File

@@ -7,7 +7,7 @@ geekdocEditPath: edit/master/docs/extensions/app-registry
geekdocFilePath: apps.md
---
oCIS is all about files. But most of the time you want to do something with files that is beyond the basic upload, download and share behavior. Therefore, oCIS has a concept for apps, that can handle specific file types, so called mime types.
oCIS is all about files. But most of the time you want to do something with files that is beyond the basic upload, download and share behavior. Therefore, oCIS has a concept for apps, that can handle specific file types, so-called mime types.
## App provider capability
@@ -79,7 +79,7 @@ Fields:
- `mime_type` is the mime type you want to configure
- `extension` is the file extension to be used for new files
- `name` is the name of the file / mime type
- `description` is a human readable description of the file / mime type
- `description` is a human-readable description of the file / mime type
- `icon` URL to an icon which should be used for that mime type
- `default_app` name of the default app which opens this mime type when the user doesn't specify one
- `allow_creation` is whether a user should be able to create new file from that mime type (`true` or `false`)
@@ -428,7 +428,7 @@ App drivers represent apps, if the app is not able to register itself. Currently
### CS3org WOPI server app driver
The CS3org WOPI server app driver is included in oCIS by default. It needs at least one WOPI compliant app (e.g. Collabora, OnlyOffice or Microsoft Online Online Server) or a CS3org WOPI bridge supported app (CodiMD or Etherpad) and the CS3org WOPI server.
The CS3org WOPI server app driver is included in oCIS by default. It needs at least one WOPI compliant app (e.g. Collabora, OnlyOffice or Microsoft Online Server) or a CS3org WOPI bridge supported app (CodiMD or Etherpad) and the CS3org WOPI server.
Here is a closer look at the configuration of the actual app provider in a docker-compose example (see also [full example](https://github.com/owncloud/ocis/blob/master/deployments/examples/ocis_wopi/docker-compose.yml)):

View File

@@ -26,7 +26,7 @@ Layouts of all pages are located in the `idp/ui/src/containers` folder. By editi
#### What pages to theme
- Login
- Login - login form used to authenticate the users
- Consent - consent page used to authorise apps for already signed in users
- Consent - consent page used to authorise apps for already signed-in users
- Chooseaccount - page with a list of accounts to choose from
- Goodbye
- Goodbyescreen - goodbye message displayed to users after they signed out

View File

@@ -8,7 +8,7 @@ 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
extension registering the bundle and the key of the bundle itself. Its purpose is to let
oCIS extensions define settings and make them available to users. They are dynamically
rendered into forms, available in the frontend.

View File

@@ -27,7 +27,7 @@ oCIS currently is configured to jail users into the CS3 `/home` namespace in the
{{< hint warning >}}
In the global CS3 namespaces we plan to move `/home/Shares`, which currently lists all mounted shares of the currently logged in user to a dedicated `/shares` namespace. See [below]({{< ref "#cs3-namespaces" >}}) and [Move shares folder out from home directory to a separate mount reva#1584](https://github.com/cs3org/reva/pull/1584).
In the global CS3 namespaces we plan to move `/home/Shares`, which currently lists all mounted shares of the currently logged-in user to a dedicated `/shares` namespace. See [below]({{< ref "#cs3-namespaces" >}}) and [Move shares folder out from home directory to a separate mount reva#1584](https://github.com/cs3org/reva/pull/1584).
{{< /hint >}}
## ownCloud namespaces
@@ -73,7 +73,7 @@ In ownCloud 10 you can not only create *public links* but also *private links*.
| https://demo.owncloud.com/s/piLdAAt1m3Bg0Fk | public link |
{{< hint >}}
The `dir` parameter alone cannot be used to look up the directory, because the path for a file may be different depending on the currently logged in user:
The `dir` parameter alone cannot be used to look up the directory, because the path for a file may be different depending on the currently logged-in user:
- User A shares his `/path/to/Photos` with User X.
- User B shares his `/other/path/to/Photos` with User X and Y.
- User A shares his `/path/to/Photos` with User Y.

View File

@@ -158,8 +158,8 @@ Resources can be looked up because the oc_filecache has a unique fileid over all
Now we again migrate the space `345` to another storage driver:
- the storage registry contains a new entry for `instanceprefix!1` so the storage space root now points to the new storage provider
- The registry needs to be aware of node ids to route properly. This is a no go. We don't want to keep a cache of *all* nodeids in the registry. Only the root nodes of spaces.
- The new storage driver only has a nodeid which might collide with other nodeids from other storage spaces, eg when two instances are imported into one ocis instance. Although it would be possible to just set up two storage providers extra care would have to be taken to prevent nodeid collisions when importing a space.
- The registry needs to be aware of node ids to route properly. This is a no-go. We don't want to keep a cache of *all* nodeids in the registry. Only the root nodes of spaces.
- The new storage driver only has a nodeid which might collide with other nodeids from other storage spaces, e.g. when two instances are imported into one ocis instance. Although it would be possible to just set up two storage providers extra care would have to be taken to prevent nodeid collisions when importing a space.
If we now have to fetch the path on the `/dav/meta/` endpoint:
`/dav/meta/instanceprefix!1` would work because it is the root of a space

View File

@@ -188,7 +188,7 @@ a *quota*, *permissions* and is identified by a `storage space id`.
{{< figure src="/extensions/storage/static/storagespace.drawio.svg" >}}
Examples would be every user's personal storage *space*, project storage *spaces* or group storage *spaces*. While they all serve different purposes and may or may not have workflows like anti virus scanning enabled, we need a way to identify and manage these subtrees in a generic way. By creating a dedicated concept for them this becomes easier and literally makes the codebase cleaner. A storage [*Spaces Registry*]({{< ref "./spacesregistry.md" >}}) then allows listing the capabilities of storage *spaces*, e.g. free space, quota, owner, syncable, root etag, upload workflow steps, ...
Examples would be every user's personal storage *space*, project storage *spaces* or group storage *spaces*. While they all serve different purposes and may or may not have workflows like antivirus scanning enabled, we need a way to identify and manage these subtrees in a generic way. By creating a dedicated concept for them this becomes easier and literally makes the codebase cleaner. A storage [*Spaces Registry*]({{< ref "./spacesregistry.md" >}}) then allows listing the capabilities of storage *spaces*, e.g. free space, quota, owner, syncable, root etag, upload workflow steps, ...
Finally, a logical `storage space id` is not tied to a specific [*spaces provider*]({{< ref "./spacesprovider.md" >}}). If the [*storage driver*]({{< ref "./storagedrivers.md" >}}) supports it, we can import existing files including their `file id`, which makes it possible to move storage *spaces* between [*spaces providers*]({{< ref "./spacesprovider.md" >}}) to implement storage classes, e.g. with or without archival, workflows, on SSDs or HDDs.

View File

@@ -98,7 +98,7 @@ The OCS service makes a stat request to the storage provider to get a [ResourceI
{{< hint >}}
The user and public share provider implementations identify the file using the [`ResourceId`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceId). The [`ResourceInfo`](https://cs3org.github.io/cs3apis/#cs3.storage.provider.v1beta1.ResourceInfo) is passed so the share provider can also store who the owner of the resource is. The *path* is not part of the other API calls, e.g. when listing shares.
The OCM API takes an id based reference on the CS3 api, even if the OCM HTTP endpoint takes a path argument. *@jfd: Why? Does it not need the owner? It only stores the owner of the share, which is always the currently logged in user, when creating a share. Afterwards only the owner can update a share ... so collaborative management of shares is not possible. At least for OCM shares.*
The OCM API takes an id based reference on the CS3 api, even if the OCM HTTP endpoint takes a path argument. *@jfd: Why? Does it not need the owner? It only stores the owner of the share, which is always the currently logged-in user, when creating a share. Afterwards only the owner can update a share ... so collaborative management of shares is not possible. At least for OCM shares.*
{{< /hint >}}

View File

@@ -80,7 +80,7 @@ The storage keeps an activity history, tracking the different actions that have
## Storage drivers
Reva currently has several storage driver implementations that can be used for *storage providers* an well as *data providers*.
Reva currently has several storage driver implementations that can be used for *storage providers* as well as *data providers*.
### OCIS and S3NG Storage Driver
@@ -122,7 +122,7 @@ The *minimal* storage driver for a POSIX based filesystem. It literally supports
- using extended attributes to implement expiry or sharing that does not require OS level integration
- fuse filesystem overlay
- no native trash
- could use the [The FreeDesktop.org Trash specification](https://specifications.freedesktop.org/trash-spec/trashspec-latest.html)
- could use [The FreeDesktop.org Trash specification](https://specifications.freedesktop.org/trash-spec/trashspec-latest.html)
- fuse filesystem overlay
- no native versions, multiple options possible
- git for folders
@@ -160,7 +160,7 @@ Clients using the CS3 API use an [InitiateFileDownload](https://cs3org.github.io
The *data provider* uses the same *storage driver* as the *storage provider* but can be scaled independently.
The dataprovider allows uploading the file to a quarantine area where further data analysis may happen before making the file accessible again. One use case for this is anti virus scanning for files coming from untrusted sources.
The dataprovider allows uploading the file to a quarantine area where further data analysis may happen before making the file accessible again. One use case for this is antivirus scanning for files coming from untrusted sources.
## Future work

View File

@@ -124,7 +124,7 @@ See also [example server setup]({{< ref "preparing_server" >}})
Now it's time to set up Collabora and you need to configure the domain of Collabora in `COLLABORA_DOMAIN=`.
If you want to use the Collabora admin panel you need to set user name and password for in `COLLABORA_ADMIN_USER=` and `COLLABORA_ADMIN_PASSWORD=`.
If you want to use the Collabora admin panel you need to set the username and password for the administrator in `COLLABORA_ADMIN_USER=` and `COLLABORA_ADMIN_PASSWORD=`.
Next up is OnlyOffice, which also needs a domain in `ONLYOFFICE_DOMAIN=`.

View File

@@ -52,7 +52,7 @@ IDM_CREATE_DEMO_USERS=true ./ocis server
The default primary storage location is `~/.ocis` or `/var/lib/ocis` depending on the packaging format and your operating system user. You can change that value by configuration.
{{< hint info >}}
When you're using oCIS with self-signed certificates, you need to answer the the question for certificate checking with "yes" or set the environment variable `OCIS_INSECURE=true`, in order to make oCIS work.
When you're using oCIS with self-signed certificates, you need to answer the question for certificate checking with "yes" or set the environment variable `OCIS_INSECURE=true`, in order to make oCIS work.
{{< /hint >}}
{{< hint warning >}}