ownCloud
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode

WOPI server

oCIS WOPI server is a proof of concept extension to open office files in ownCloud Infinite Scale. It uses the CS3ORG WOPI server and can integrate WOPI compliant online office suites like Collabora or Office Online Server.

Request flow between services

sequenceDiagram
    autonumber
    participant User
    participant ownCloud Web
    participant oCIS WOPI server
    participant CS3 WOPI server
    participant oCIS
    participant REVA


    User ->> ownCloud Web: Log in with OpenID connect


    activate ownCloud Web
        Note over ownCloud Web: user session represended by OpenID Connect access token
        User ->> ownCloud Web: open office file

        activate ownCloud Web
            ownCloud Web ->> oCIS: /api/v0/wopi/open [OpenID Connect access token]
            activate oCIS
                oCIS ->> oCIS: mints REVA access token for the user
                oCIS ->> oCIS WOPI server: /api/v0/wopi/open [REVA access token]
                activate oCIS WOPI server

					oCIS WOPI server ->> oCIS WOPI server: mint new REVA user token with specified TTL 
(default 1h) oCIS WOPI server ->> REVA: stat file [REVA access token] activate REVA REVA -->> oCIS WOPI server: file info deactivate REVA oCIS WOPI server ->> CS3 WOPI server: get supported file extensions [unauthenticated] activate CS3 WOPI server CS3 WOPI server -->> oCIS WOPI server: file extensions deactivate CS3 WOPI server oCIS WOPI server ->> CS3 WOPI server: /wopi/iop/open [CS3 WOPI shared IOP secret] (REVA access token is contained in payload) activate CS3 WOPI server activate CS3 WOPI server CS3 WOPI server ->> CS3 WOPI server: mints CS3 WOPI server access token
embeds the REVA access token of the user deactivate CS3 WOPI server CS3 WOPI server -->> oCIS WOPI server: Collabora URL, CS3 WOPI server token deactivate CS3 WOPI server oCIS WOPI server -->> oCIS: Collabora URL, CS3 WOPI server token deactivate oCIS WOPI server oCIS -->> ownCloud Web: Collabora URL, CS3 WOPI server token deactivate oCIS ownCloud Web ->> Collabora: open Collabora in new tab (Collabora URL, CS3 WOPI server token as parameters) deactivate ownCloud Web activate Collabora Collabora ->> CS3 WOPI server: /wopi/files/"<"fileid> [CS3 WOPI server token] activate CS3 WOPI server CS3 WOPI server ->> CS3 WOPI server: get REVA access token from inside the CS3 WOPI server token CS3 WOPI server ->> REVA: open file [REVA access token] activate REVA REVA -->> CS3 WOPI server: return file deactivate REVA CS3 WOPI server -->> Collabora: return file deactivate CS3 WOPI server activate User Collabora -->> User: display the file Note over User: can edit the file User ->> Collabora: stop editing deactivate User deactivate Collabora User ->> ownCloud Web: logout deactivate ownCloud Web