Skip to content

owncloud/ocis-workflows

oCIS Workflows

License

oCIS Workflows is a full-stack extension for ownCloud Infinite Scale (oCIS) that lets end users define their own automated AI-powered workflows on their files — for example "when I upload a PDF to /Invoices, summarize it with an LLM and tag it" — without writing any code. Users build workflows visually (trigger → LLM step → actions) using a node-graph editor, and the extension runs them on demand, on a schedule, or in reaction to file activity.

It ships as two parts:

  • backend/ — a Go sidecar service that stores workflow definitions, runs them, and talks to oCIS only through its standard public APIs (WebDAV, Graph, the OIDC identity provider, and the sse notification stream) — no NATS dependency, no changes to oCIS core.
  • frontend/ — a Vue 3 extension for ownCloud Web providing the workflow builder UI, built with Vue Flow.

LLM calls are made directly by the backend against a configured OpenAI-compatible LLM_ENDPOINT — there is no external LLM proxy service or dependency.

Getting Started

Prerequisites

  • Docker and Docker Compose
  • pnpm (check frontend/package.json's packageManager field)
  • Go (check backend/go.mod for the required version)
  • An OpenAI-compatible LLM endpoint reachable from Docker for local testing (e.g. Ollama on the host — the default LLM_ENDPOINT in docker-compose.yml points at host.docker.internal:11434).

Development Environment

git clone https://github.com/owncloud/ocis-workflows.git
cd ocis-workflows

# frontend, build in watch mode
cd frontend && pnpm install && pnpm build:w &

# backend, run locally
cd backend && go run ./cmd/workflows server

Add to /etc/hosts:

127.0.0.1 host.docker.internal

Start the development stack (oCIS + Traefik):

docker compose up

Open https://host.docker.internal:9200 (default login: admin/admin).

Testing

# backend
cd backend && go test ./...                    # unit
go test -tags=e2e ./tests/e2e/...               # e2e, requires the stack above running

# frontend
cd frontend && pnpm test:unit                   # unit
pnpm test:e2e                                   # e2e, requires the stack above running

Every feature or fix in this repo ships with e2e coverage on both the backend and frontend, driven against the real docker-compose stack rather than mocks.

The stack above defaults to a real LLM endpoint (Ollama), so e2e runs against it depend on a model being installed and are non-deterministic. For CI-equivalent, deterministic e2e runs that don't need a real model, start the stack with the test profile instead, which swaps in a fake LLM fixture:

LLM_ENDPOINT=http://fake-llm:8080/v1 LLM_MODEL=fake-model LLM_API_KEY= docker compose --profile test up -d

Production Build

cd frontend && pnpm build         # output in frontend/dist/, deploy via WEB_ASSET_APPS_PATH
cd backend && go build ./cmd/workflows   # or docker build -f docker/Dockerfile .

Documentation

Support

See SUPPORT.md for details.

Contributing

We welcome contributions! Please read the Contributing Guidelines and our Code of Conduct before getting started.

Workflow

  • Rebase Early, Rebase Often! We use a rebase workflow. Always rebase on the target branch before submitting a PR.
  • Conventional Commits: enforced via commitlint, see CONTRIBUTING.md.
  • Signed Commits: All commits must be PGP/GPG signed.
  • DCO Sign-off: Every commit must carry a Signed-off-by line: git commit -s -S -m "...".
  • GitHub Actions Policy: Workflows may only use actions that are created by GitHub (actions/*) or verified in the GitHub Marketplace, pinned to a full commit SHA.

Security

Do not open a public GitHub issue for security vulnerabilities.

See SECURITY.md for how to report one privately.

License

This project is licensed under the Apache-2.0 license, copyright ownCloud GmbH - A Kiteworks Company and ownCloud contributors.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages