Skip to content

Who controls what

The two modes run the same image; they differ only in who holds the configuration, the secrets and the host.

Customer-operatedPrivately managed
Host, network, TLSYour ITThe operator you contract, on infrastructure you name
Storage (database, stored files, backups)Your volumes and backupsThe operator’s volumes; backups delivered to you on request
Compute (calculations, runners)Your hostThe operator’s host
Models (AI use)Only providers you configure; nothing by defaultThe same: only providers you approve
Access (who may read what)Project administrators in your organisationProject administrators in your organisation: the first administrator in config.json is your nominee; the operator places that first token and hands it over, and it should be replaced after first sign-in (a new token revokes the old one)
Operations (upgrade, restore, members)Your operator, with ophiolite-opsThe contracted operator, with ophiolite-ops
ExitPortable bundles and backups, any timePortable bundles any time; a backup or a project move to your own deployment on request
What the operator can seeYour operator, who runs the host, can read the database and the stored files; inside the product only what a project administrator grantsThe contracted operator, who runs the host, can read the database and the stored files; inside the product only what a project administrator grants
What Ophiolite (the vendor) seesNothing: no telemetry, no vendor accountNothing: no telemetry, no vendor account

What an operator can see. Whoever runs the host can read the database and the stored files: that is true of any server software. What Ophiolite adds is that access inside the product is by explicit grant, every change is recorded in the activity history, and a project can be moved or exported without the operator’s cooperation in the data format (bundles are readable without Ophiolite).

What Ophiolite (the vendor) sees. Nothing: the image sends no telemetry and needs no vendor account.

What the image contains. The image lists its own dependencies in /opt/ophiolite/DEPENDENCIES.json (read it with docker run --rm --entrypoint cat <image> /opt/ophiolite/DEPENDENCIES.json): the operating-system packages, the Python distributions and the shared libraries the server and worker load, each checked against the image by the release qualification. The list also covers the libraries built into the binaries, which come from their build, and the third-party code in the Workspace and site bundles, which comes from those builds’ licence output. Each entry names its licence and the licence texts the image carries: the operating-system packages’ copyright files, the Python distributions’ own licence files and those of the libraries their wheels bundle, and the native and web texts under /opt/ophiolite/licences/. The release qualification fails an image where any licence is unresolved or any text is missing or changed. The code that compiled Python extensions link statically is listed too, with its licences and texts, per package and version; the qualification fails an image with a compiled extension that this list does not account for.