oCIS opens your macro workbooks with our engine.
Infinite Scale talks to office editors over WOPI, through its own collaboration service — the same door Collabora and Microsoft use. SumOffice answers that protocol, so the editor is configuration on the oCIS side, not a patch to it. Below is the stand we ran on 24 September 2026, the numbers we measured, and the six things that will bite you.
What was measured
| Stand | oCIS 8.2.0 in Docker on a laptop, native arm64, no emulation; SumSheet and SumDoc behind one https address; a real macro workbook (cashflow-2026.xlsm, 19 204 bytes, VBA). |
|---|---|
| oCIS sees us | /app/list returns four types — docx, xlsx, xlsm, xlsb — from provider SumOffice. |
| The WOPI round | CheckFileInfo 200 in 182 ms (UserCanWrite: true, SupportsLocks: true), GetFile 200, 19 204 bytes, 12 ms; Lock / PutFile / Unlock 200 / 200 / 200, the write itself 24 ms. |
| Time to a ready sheet | Editor frame 200 in 13 ms; the editor page 10.0 MB in 0.43 s; the workbook itself ready in 671 ms. From /app/open to a ready page: about 1.5 s. |
| Signatures verified | oCIS checks the proof key on every request and refuses anything that does not match. With verification on: zero refusals. This took a fix on our side — see below — and it is the part most editors quietly skip. |
| Not counted | People, spaces, documents. Evaluation is free with no time limit; production is the per-application license. |
Measured again, on a real workbook
The numbers above came from a stand that used a small fixture workbook. We have since repeated the whole round on a real macro workbook — VBA and a Power Query binding — editing a cell in the browser and pressing Ctrl+S:
| Infinite Scale 8.2 | The edit came back into the file, 22 parts of 22, vbaProject.bin byte for byte, the hidden Power Query name intact — and Microsoft Excel opened the file taken out of oCIS without a single dialog. |
|---|---|
| ownCloud Classic 10.15 | Same round through the richdocuments app, same result: VBA byte for byte, Excel silent. |
What this stand shows
- Editing a cell in the browser and pressing Ctrl+S on this stand: the write path is proven by
PutFilereturning 200 with the engine's bytes. - SumDoc is up and announced here as well; the document round itself, and two people in one document, are measured on our Nextcloud and OpenCloud stands — the status table says where each of these runs.
Step 1 — start the editors, on https
oCIS refuses to run on plain http at all — its identity provider requires an https issuer — so your editor address has to be https too, or the browser blocks the frame as mixed content. Same compose as for any WOPI host: two editors behind one address and one merged discovery.
mkdir sumoffice-ocis && cd sumoffice-ocis
git clone https://github.com/SumOfficeApp/sumoffice-docker && cd sumoffice-docker/nextcloud # the same compose serves oCIS
cp env.example .env # PUBLIC_URL=https://office.example.com
docker compose up -d
curl -s $PUBLIC_URL/hosting/discovery | head -c 300
Step 2 — point the collaboration service at us
The collaboration service is not started by ocis server; you run it separately, from the same image.
COLLABORATION_APP_NAME=SumOffice
COLLABORATION_APP_ADDR=https://office.example.com
COLLABORATION_APP_PRODUCT=Collabora
COLLABORATION_WOPI_SRC=https://wopi.example.com
It needs NATS from the oCIS container (NATS_NATS_HOST=0.0.0.0) and the data gateway at the very address oCIS knows itself by (https://…:9200/data). On our stand the service shared the oCIS network namespace; in production it is a separate node with the right OCIS_URL.
Six things that will bite you
| Proof keys | oCIS verifies the signature of every request. Two editors must sign with one key, because discovery publishes one. We shipped that fix — a single canonical key for the whole stack, taken from SUMOFFICE_WOPI_PROOF_KEY or generated once into a shared volume. With older images you will see ProofKeys verification failed: Invalid timestamp and a 502 in the frame; COLLABORATION_APP_PROOF_DISABLE=true hides it on a stand and should never be used in production. |
|---|---|
| oCIS keys actions by file extension | Actions declared by MIME name only, without ext=, do not appear at all — xlsm was simply missing from /app/list until the discovery carried ext="xlsm". |
APP_PRODUCT=Collabora expects one action per extension | If both view and edit are declared, oCIS may take view — and your people get a silent read-only editor. Check the mode on .docx before you roll out. |
| The allowlist is a host name, not a URL | --wopi-allow ocis. Give it http://ocis:9300 and our facade answers 403. |
| nginx caches the container address | After you recreate an editor container the front answers 502 until it is restarted. Use a resolver, or restart the front after every image update. |
| The collaboration service is separate | It does not come up with ocis server; if the editor never appears in oCIS Web, check that this service is running before you check anything else. |
Step 3 — open a workbook
- In oCIS Web, open any
.xlsxor.xlsm. The first document takes a moment while its process starts; the next ones are faster. - Edit and save: the file goes back through WOPI and oCIS keeps the previous version.
- Download it and open it in Excel: the VBA project and the formulas are the ones you put there.
OpenCloud and ownCloud 10
OpenCloud is a fork of Infinite Scale and uses the same collaboration service, so this page is its setup too. We ran the full round on OpenCloud 8.0.1: workbook and document opened, edited, saved back, VBA and pictures byte for byte — and we checked the refusal path from the other side, sending the same request with a missing or corrupted signature, which the host rejects with 500.
Classic ownCloud 10 is a different door: the editor arrives through the richdocuments app, the way it does in Nextcloud, so the settings look like the Nextcloud page. The round is complete on 10.15. One difference is worth knowing if you write your own client: ownCloud 10 reports the write permission as a number rather than a true/false, which our editors now handle.
Scope today
- Spreadsheets and documents:
.xlsx/.xlsm/.xlsband.docxare edited and saved back natively;.ods/.odtopen by import and save as.xlsx/.docx. - Macros and Power Query travel with the file untouched; the queries refresh in the desktop SumSheet.
- Presentations: not in this server yet. SumSlide, the presentations editor, ships as desktop apps for macOS, Windows and Linux.
Before you move a department, run its workbooks through Check my Excel file: it names every macro, every function and every data source the engine knows or does not know, in seconds, without running anything.
- Order a change under your process — your identity provider, your storage rules: from 150 €, price and date before we start.
- Tell us what kind of organization embeds it — the production license is per embedding application, no meters on your users.