ocis
ocis copied to clipboard
[Epic] New WOPI Server
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