ocis icon indicating copy to clipboard operation
ocis copied to clipboard

[Epic] New WOPI Server

Open dragotin opened this issue 5 months ago • 4 comments

Implement a WOPI Server following the WOPI protocol specification as described here: https://learn.microsoft.com/en-us/microsoft-365/cloud-storage-partner-program/rest/

This new WOPI Server should be written in Golang and can be based on Willy Klouceks work in https://github.com/wkloucek/cs3-wopi-server/

The new server does not have to maintain oC10 compatibility.

The most important collaborative editor applications for the WOPI are

  • OnlyOffice
  • Collabora office
  • Microsoft Office 365

other applications should be integrated later, such as

  • CodiMD
  • ...

Locking is mandatory utilizing the oCIS locking API.

Extra features

The following extra features would add considerable benefit:

  • Stateless: No permanent storage needed (if possible)
  • Simple to extend if needed to connect other collaborative editors
  • Good runtime debugging capabilities through comprehensive loggings
  • Audit functionality (ie. which documents were opened/closed when) based on events via NATS (already existing)

Definition of done

  • [ ] Functional requirements

Quality Assurance

  • [ ] CI based test suite that runs different testing scenarios
  • [ ] Successful WOPI validation tool
  • [ ] Manual tests with oCIS and the main editors

Deployment

The new WOPI Server does have the following deployment requirements:

  • [ ] Deployable in the single binary. Included in the default build.
  • [ ] Simple to deploy on a "developer machine" to work on it
  • [ ] Good docker/kubernetes "support", health endpoint, using the micro service registry, should survive restarts,
  • [ ] metrics
    • TBD

Documentation

The following documentation related work has to be delivered:

  • Documentation for the Dev-Docs about
    • [ ] Development setup
    • [ ] Docker deployment
    • [ ] Kubernetes considerations
  • Input for the administrator documentation written by docs team

References

  • https://github.com/owncloud/enterprise/issues/3639
  • https://jira.owncloud.com/browse/OCIS-406
  • https://github.com/pydio/cells/tree/main/gateway/wopi

dragotin avatar Jan 19 '24 14:01 dragotin