reva

module
v2.0.0-...-c48d65c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2026 License: Apache-2.0

README

Reva

License ownCloud OSPO Docker Hub

Reva is an interoperability platform for cloud storage sync and share services. It connects storage backends, sync clients and application providers in a vendor-neutral way by implementing the CS3 APIs, enabling seamless federation and data exchange between different EFSS (Enterprise File Sync and Share) systems.

Part of oCIS

Reva serves as the core storage interoperability layer for ownCloud Infinite Scale (oCIS). This is ownCloud's fork of the upstream CS3 Organization Reva project, customized to work with oCIS-specific storage drivers and authentication mechanisms. It handles all CS3-compliant file operations including WebDAV, data gateways and user management within the oCIS architecture.

oCIS is available on Docker Hub.

Note: This repository is a fork of the upstream CS3 Organization Reva project.

Getting Started

You need Go (version 1.16 or higher), git and make installed.

git clone https://github.com/owncloud/reva
cd reva
make build

To run:

mkdir -p /etc/revad
cp examples/storage-references/users.demo.json /etc/revad/users.json
cp examples/storage-references/groups.demo.json /etc/revad/groups.json
cp examples/storage-references/providers.demo.json /etc/revad/ocm-providers.json
cmd/revad/revad -dev-dir examples/storage-references

Run tests with:

make test                  # unit tests
make test-integration      # integration tests (requires Redis)

Documentation

Original README Content

REVA is an interoperability platform. It connects storage, sync and share platforms and application providers, and it does it in a vendor and platform neutral way by using the CS3 APIS.

Installation

Head to Documentation for documentation or download to get the latest available release.

Build and run it yourself

You need to have Go (version 1.16 or higher), git and make installed.

Run tests

Reva's codebase continuously undergoes testing at various levels.

Unit tests: Runs the <unit>_test.go files that appear next to <unit>.go files. Run all with make test.

Integration tests (GRPC): Requires Redis. See tests/integration.

export REDIS_ADDRESS=127.0.0.1:6379
make test-integration

Litmus tests (WebDAV): Uses ownCloud's litmus Docker image for WebDAV testing.

Acceptance tests: See Running Acceptance Tests.

Daily releases

On every commit on the master branch a new release will be created and available at daily releases.

Major versions
  • 1.x versions: The master branch is the stable development branch.
  • 2.x versions: The edge branch is for the next version based on the "Spaces" concept.
Plugin development

Checkout the Tutorials.

Community & Support

Star this repo and Watch for release notifications!

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.
  • Dependabot: Automated dependency updates are managed via Dependabot. Review and merge dependency PRs promptly.
  • Signed Commits: All commits must be PGP/GPG signed. See GitHub's signing guide.
  • DCO Sign-off: Every commit must carry a Signed-off-by line:
    git commit -s -S -m "your commit message"
    
  • GitHub Actions Policy: Workflows may only use actions that are (a) owned by owncloud, (b) created by GitHub (actions/*), or (c) verified in the GitHub Marketplace.

Security

Do not open a public GitHub issue for security vulnerabilities.

Report vulnerabilities at https://security.owncloud.com -- see SECURITY.md.

Bug bounty: YesWeHack ownCloud Program

License

This project is licensed under the Apache-2.0.

About the ownCloud OSPO

The Kiteworks Open Source Program Office, operating under the ownCloud brand, launched on May 5, 2026, to steward the open source ecosystem around ownCloud's products. The OSPO ensures transparent governance, license compliance, community health, and sustainable collaboration between the open source community and Kiteworks, which acquired ownCloud in 2023.

For questions about the OSPO or licensing, contact ospo@kiteworks.com.

License status: This repository is already licensed under Apache-2.0 -- the OSPO target license. No migration is required.

Directories

Path Synopsis
cmd
reva command
revad command
examples
plugin/json command
sdk command
internal
grpc/services/publicstorageprovider
Package publicstorageprovider provides a CS3 storageprovider implementation for public links.
Package publicstorageprovider provides a CS3 storageprovider implementation for public links.
http/interceptors/appctx
Package appctx creates a context with useful components attached to the context like loggers and token managers.
Package appctx creates a context with useful components attached to the context like loggers and token managers.
pkg
app
auth/manager/nextcloud
Package nextcloud verifies a clientID and clientSecret against a Nextcloud backend.
Package nextcloud verifies a clientID and clientSecret against a Nextcloud backend.
auth/manager/oidc
Package oidc verifies an OIDC token against the configured OIDC provider and obtains the necessary claims to obtain user information.
Package oidc verifies an OIDC token against the configured OIDC provider and obtains the necessary claims to obtain user information.
bytesize
Package bytesize provides easy conversions from human readable strings (eg.
Package bytesize provides easy conversions from human readable strings (eg.
conversions
Package conversions sits between CS3 type definitions and OCS API Responses
Package conversions sits between CS3 type definitions and OCS API Responses
ctx
errtypes
Package errtypes contains definitions for common errors.
Package errtypes contains definitions for common errors.
events/example command
events/example/consumer
Package consumer contains an example implementation of an event consumer
Package consumer contains an example implementation of an event consumer
events/example/publisher
Package publisher contains an example implementation for a publisher
Package publisher contains an example implementation for a publisher
events/stream
Package stream provides streaming clients used by `Consume` and `Publish` methods
Package stream provides streaming clients used by `Consume` and `Publish` methods
micro/ocdav/cmd command
ocm/share/repository/nextcloud
Package nextcloud verifies a clientID and clientSecret against a Nextcloud backend.
Package nextcloud verifies a clientID and clientSecret against a Nextcloud backend.
publicshare/manager/owncloudsql
Package owncloudsql implements a publiclink share manager backed by an existing ownCloud 10 database
Package owncloudsql implements a publiclink share manager backed by an existing ownCloud 10 database
rgrpc/status
Package status contains helpers functions to create grpc Status with contextual information, like traces.
Package status contains helpers functions to create grpc Status with contextual information, like traces.
rhttp/datatx
Package datatx provides a library to abstract the complexity of using various data transfer protocols.
Package datatx provides a library to abstract the complexity of using various data transfer protocols.
rhttp/datatx/metrics
Package metrics provides prometheus metrics for the data managers..
Package metrics provides prometheus metrics for the data managers..
rhttp/datatx/utils/download
Package download provides a library to handle file download requests.
Package download provides a library to handle file download requests.
sdk
storage/utils/indexer
Package indexer provides symlink-based indexer for on-disk document-directories.
Package indexer provides symlink-based indexer for on-disk document-directories.
storage/utils/templates
Package templates contains data-driven templates for path layouts.
Package templates contains data-driven templates for path layouts.
tests
tools
check-changelog command
check-license command
prepare-release command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL