From 9df45969079b81927092dd0fc8808134918dc1ad Mon Sep 17 00:00:00 2001 From: dj4oC Date: Sun, 19 Apr 2026 15:53:10 +0200 Subject: [PATCH] docs: OSPO community health rollout v2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduced by the Kiteworks Open Source Program Office (OSPO) on May 5, 2026. Changes: - README.md: rewritten with OSPO v2 template — license-specific Apache 2.0 migration guidance, Community & Support section with mandatory links (GitHub Discussions, Matrix, docs, enterprise support), Contributing workflow (Rebase Early/Often, Dependabot, PGP-signed commits, DCO, GitHub Actions policy), Security pointing to security.owncloud.com + YesWeHack bug bounty - agents.md: added OSPO Policy Constraints (GitHub Actions, Dependabot, Git Workflow) for AI coding agents - CODE_OF_CONDUCT.md: redirect to https://owncloud.com/contribute/code-of-conduct/ - CONTRIBUTING.md: redirect to https://owncloud.com/contribute/ - SECURITY.md: redirect to https://security.owncloud.com + YesWeHack - SUPPORT.md: redirect to https://owncloud.com/contact-us/ + channels OSPO: https://kiteworks.com/opensource Signed-off-by: David Walter --- CODE_OF_CONDUCT.md | 8 ++ CONTRIBUTING.md | 266 +-------------------------------------------- README.md | 221 ++++++++++++++++++------------------- SECURITY.md | 11 ++ SUPPORT.md | 10 ++ agents.md | 74 +++++++++++++ 6 files changed, 215 insertions(+), 375 deletions(-) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 SECURITY.md create mode 100644 SUPPORT.md create mode 100644 agents.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000000..ce144bf1fa0 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,8 @@ +# Code of Conduct + +This project follows the ownCloud Code of Conduct. + +Please read the full Code of Conduct at: +**** + +By participating in this project, you agree to abide by its terms. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c73c64e328..65c99156de9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,263 +1,9 @@ -First of all, thank you for taking the time to read this and your interest in contributing to ownCloud Infinite Scale! +# Contributing -The following is a set of guidelines for contributing to most of the projects hosted in the [ownCloud Organization](https://github.com/owncloud) on [GitHub](https://www.github.com). These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. +Thank you for your interest in contributing to this project! -For simplicity reasons, this document mostly refers to the ownCloud [Infinite Scale project](https://www.github.com/owncloud/ocis), but it should be easily transferable to other (sub)projects. +Please read the full contributing guidelines at: +**** -#### Table Of Contents - -[I don't want to read this whole thing, I just have a question](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question) - -[What should I know before I get started](#what-should-i-know-before-i-get-started) -* [ownCloud is hosted on GitHub](#owncloud-is-hosted-on-github) -* [ownCloud Company, Engineering Partners and Community](#owncloud-company,-engineering-partners-and-community) -* [Licensing and CLA](#licensing-and-cla) - -[How Can I Contribute](#how-can-i-contribute) -* [Help spreading the word](#help-spreading-the-word) -* [Reporting Bugs](#reporting-bugs) -* [Suggesting Enhancements](#suggesting-enhancements) -* [Your First Code Contribution](#your-first-code-contribution) -* [Pull Requests](#pull-requests) -* [Documentation Contributions](#documentation-contributions) -* [Internationalization](#internationalization) -* [Deployments: Docker, Ansible and friends](#deployments-docker-ansible-and-friends) - -[Styleguides](#styleguides) -* [Git Commit Messages](#git-commit-messages) -* [Golang Styleguide](#golang-styleguide) -* [Web Styleguide](#web-styleguide) -* [Documentation Styleguide](#documentation-styleguide) - -[Additional Notes](#additional-notes) -* [Issue and Pull Request Labels](#issue-and-pull-request-labels) - - ## I don't want to read this whole thing I just have a question - -> **Note:** Please don't file an issue to ask a question. You'll get faster results by using the resources below. - -For general questions, please refer to [ownCloud's FAQs](https://owncloud.com/faq/) or ask on the [ownCloud Central Server](https://central.owncloud.org/). - -We also have a [Matrix channel](https://matrix.to/#/#ocis:matrix.org) to answer your questions specifically about ownCloud Infinite Scale. - -## What should I know before I get started - -### ownCloud is hosted on GitHub - -To effectively contribute to ownCloud Infinite Scale, you need a GitHub account. You can get that for free at [GitHub](https://github.com/join). You can find howtos on the internet, for example [here](https://www.wikihow.com/Create-an-Account-on-GitHub). - -For other ways of contributing, for example with translations, other systems require you to have an account as well, for example [Transifex](https://www.transifex.com). - -The ownCloud project follows the strict GitHub workflow of development as briefly [described here](https://guides.github.com/introduction/flow/). - -### ownCloud Company, Engineering Partners and Community - -ownCloud Infinite Scale is largely created by developers who are employed by the [ownCloud company](https://www.owncloud.com), which is located in Germany. It is providing support for ownCloud for customers worldwide. In addition, there are engineering partners who also work full time on ownCloud related code, for example in [CERN REVA](https://github.com/cs3org/reva/). - -Because of that fact, the pace that the development is moving forward is sometimes high for people who are not willing and/or able to spend a comparable amount of time to contribute. Even though this can be a challenge, it should not scare anybody away. Here is our clear commitment that we feel honored by everybody who is interested in our work and improves it, no matter how big the contribution might be. - -We as the full time devs from either organization are doing our best to listen, review and consider all changes that are brought forward following this guideline and make sense for the project. - -### Licensing and CLA - -We are very happy that there is *no CLA* required for most of the code of ownCloud Infinite Scale. - -Currently, only for the following components you need to sign a [Contributors License Agreement](https://en.wikipedia.org/wiki/Contributor_License_Agreement): - -* [ownCloud Web](https://github.com/owncloud/web/): [Link to CLA](https://owncloud.com/contribute/join-the-development/contributor-agreement/) - -Please make sure to read and understand the details of the CLA before starting to invest time on a component that requires it. If you have any questions or concerns please feel free to raise them with us. - -## How Can I Contribute - -There are many ways to contribute to open source projects, and all are equally valuable and appreciated. - -### Help spreading the word - -This way to contribute to the project can not be overestimated: People who talk about their experience with ownCloud Infinite Scale and help others with that are the key to success of the project. - -There are too many ways of doing that to line them up here, but examples are answering questions in [ownCloud Central](https://central.owncloud.org/) or on [ownCloud Talk](https://talk.owncloud.com/channel/ocis), writing blog posts etc. pp. - -There is no formal guideline to this, just do it :-) - -### Reporting Bugs - -This section guides you through submitting a bug report for ownCloud Infinite Scale. Following these guidelines helps maintainers and the community understand your report :pencil:, reproduce the behavior :computer: :computer:, and find related reports :mag_right:. - -Before creating bug reports, please check [this list](#before-submitting-a-bug-report) as you might find out that you don't need to create one. When you are creating a bug report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report). Fill out [the required template](https://github.com/owncloud/ocis/issues/new?Type%3ABug&template=bug_report.md), the information it asks for helps us resolve issues faster. - -> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one. If you have permission to reopen the issue, feel free to do so. - -#### Before Submitting A Bug Report - -* **Make sure you are running a recent version** Usually, developers' interest in old versions of software drops very fast once a new shiny version has been released. So the general recommendation is: Use the latest released version or even the current master to reproduce problems that you might encounter. That helps a lot to attract developers attention. -* **Determine which [repository](https://github.com/owncloud) the problem should be reported in**. -* **Perform a [cursory search](https://github.com/search?q=+is%3Aissue+user%3Aowncloud)** with possibly a more granular filter on the repository, to see if the problem has already been reported. If it has **and the issue is still open**, add a comment to the existing issue instead of opening a new one **if you have new information**. Please abstain from adding "plus ones", except using the GitHub emojis. That might indicate how many users are affected. - -#### How Do I Submit A (Good) Bug Report - -Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). After you've determined [which repository](https://github.com/owncloud) your bug is related to, create an issue on that repository and provide the following information by filling in [the template](https://github.com/owncloud/ocis/issues/new?Type%3ABug&template=bug_report.md). - -Explain the problem and include additional details to help maintainers reproduce the problem: - -* **Use a clear and descriptive title** for the issue to identify the problem. -* **Describe the exact steps which reproduce the problem** in as many details as possible. Start with describing, from a user perspective, what you tried to achieve, i.e. "I want to share some pictures with Grandma". When listing steps, **don't just say what you did, but explain how you did it**. For example, if you uploaded a file to ownCloud, say which client you used, which way of uploading you chose, if the name was special somehow and how big it was. -* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). -* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. -* **Explain which behavior you expected to see instead and why.** -* **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux. -* **If you report a web browser related problem**, consider to using the browser's Web developer tools (such as the debugger, console or network monitor) to check what happened. Make sure to add screenshots of the utilities if you are short of time to interpret it. -* **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below. - -Provide more context by answering these questions: - -* **Did the problem start happening recently** (e.g. after updating to a new version) or was this always a problem? -* If the problem started happening recently, **can you reproduce the problem in an older version?** What's the most recent version in which the problem doesn't happen? You can find more information about how to set up [test environments](https://owncloud.dev/ocis/development/testing/) in the [developer documentation](https://owncloud.dev/#developer-documentation). -* **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens. - -Include details about your configuration and environment as asked for in the template. - -### Suggesting Enhancements - -This section guides you through submitting an enhancement suggestion for ownCloud Infinite Scale, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion :pencil: and find related suggestions :mag_right:. - -Before creating enhancement suggestions, please check [this list](#before-submitting-an-enhancement-suggestion) as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion). Fill in [the template](https://github.com/owncloud/ocis/.github/blob/master/.github/ISSUE_TEMPLATE/feature_request.md), including the steps that you imagine you would take if the feature you're requesting existed. - -#### Before Submitting An Enhancement Suggestion - -* **Check if there's already an extension or other component which provides that enhancement, even in a different way.** -* **Perform a [cursory search](https://github.com/search?q=+is%3Aissue+user%3Aowncloud)** to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. Feel free to use the GitHub emojis to indicate that you are in favour of an enhancement request. - -#### How Do I Submit A (Good) Enhancement Suggestion - -Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/). After you've determined [which repository](https://github.com/owncloud) your enhancement suggestion is related to, create an issue on that repository and provide the following information: - -* **Use a clear and descriptive title** for the issue to identify the suggestion. -* **Provide a step-by-step description of the suggested enhancement** in as many details as possible. -* **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets which you use in those examples, as [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). -* **Explain why this enhancement would be useful** to most ownCloud users. -* **List some other projects or products where this enhancement exists.** - -### Your First Code Contribution - -Unsure where to begin contributing to ownCloud? You can start by looking through these `Needs-help` issues: - -* The [Good first issue](https://github.com/owncloud/ocis/labels/Topic%3Agood-first-issue) label marks good items to start with. -* [Tests needed](https://github.com/owncloud/ocis/labels/Interaction%3ANeeds-tests) - issues which would benefit from a test. -* [Help wanted issues](https://github.com/owncloud/ocis/labels/Interaction%3ANeeds-help) - issues which should be a bit more involved. - -It is fine to pick one of the list following personal preference. While not perfect, number of comments is a reasonable proxy for impact a given change will have. - -To find out how to set up ownCloud Infinite Scale for local development please refer to the [Developer Documentation](https://owncloud.dev/ocis/development/getting-started/). It contains a lot of information that will come in handy when starting to work on the project. - -### Pull Requests - -All contributions to ownClouds projects use so-called pull requests following the [GitHub PR workflow](https://guides.github.com/introduction/flow/). - -Please follow these steps to have your contribution considered by the maintainers: - -* Follow all instructions in [the template](https://github.com/owncloud/ocis/blob/master/.github/pull_request_template.md) -* Follow the [styleguides](#styleguides) where applicable -* After you submit your pull request, verify that all [status checks](https://help.github.com/articles/about-status-checks/) are passing
What if the status checks are failing?If a status check is failing, and you believe that the failure is unrelated to your change, please leave a comment on the pull request explaining why you believe the failure is unrelated. A maintainer will re-run the status check for you. If we conclude that the failure was a false positive, then we will open an issue to track that problem with our status check suite.
- -While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted. - -### Documentation Contributions - -ownCloud is very proud of the documentation it has, which is the work of a great team of people. Of course, also the documentation is open to contributions. - -See the [Getting Started Guide](https://owncloud.dev/ocis/development/getting-started/) on how to get started. Other useful information is summarized in the [Documentation Readme](https://github.com/owncloud/docs). - -### Internationalization - -Our projects are getting translated into many languages to allow people from all over the world to use ownCloud in their native language. For translations, ownCloud uses [Transifex](https://www.transifex.com) as a community based collaboration platform for internationalization. - -For contributions please refer to the [Transifex Resources](https://www.transifex.com/resources/) to learn how to improve ownClouds translations there. - -### Deployments: Docker, Ansible and friends - -Depending on the ownCloud component, there is complex deployment tooling to install in various environments. There is for example [ownCloud Ansible](https://github.com/owncloud-ansible) with Ansible resources. Contributions to that are very appreciated and follow the same guidelines as every other code contribution. - -## Styleguides - -To keep up with a consistent code and tooling landscape, some ownCloud modules maintain styleguides for contributions. It is mandatory to follow them in contributions. - -### Git Commit Messages - -* Use the present tense ("Add feature" not "Added feature") -* Use the imperative mood ("Move cursor to..." not "Moves cursor to...") -* Limit the first line to 72 characters or less -* Reference issues and pull requests liberally after the first line -* When only changing documentation, include `[docs-only]` in the commit title - -### Golang Styleguide - -Use the built-in golang code formatter before submitting the patch. Also, consulting documentation like [Effective Go](https://golang.org/doc/effective_go) or [Practical Go](http://bit.ly/gcsg-2019) helps to improve the code quality. - -### Web Styleguide - -Refer to related documents in the [ownCloud Web Repository](https://github.com/owncloud/web). - -#### Documentation Styleguide - -See the [ownCloud Documentation Styleguide](https://github.com/owncloud/docs/blob/master/docs/style-guide.md). - -## Additional Notes - -### Issue and Pull Request Labels - -This section lists the labels we use to help us track and manage issues and pull requests. Most labels are used across all ownCloud repositories, but some are specific. - -[GitHub search](https://help.github.com/articles/searching-issues/) makes it easy to use labels for finding groups of issues or pull requests you're interested in. To help you find issues and pull requests, each label can be used in search links for finding open items with that label in the ownCloud repositories. - -The labels are loosely grouped by their purpose, but it's not required that every issue has a label from every group or that an issue can't have more than one label from the same group. - -The list here contains all the more general categories of issues which are followed by a colon and a specific value. For example severity 1 looks like `Severity:sev1-critical`. - -#### Platform - -Describes the platform the issue is happening on, i.e. iOS or Windows. - -#### Estimation - -T-Shirt sizes for effort estimation to fix that bug or implement an enhancement. Ranges from XS to XXXL. - -#### Priority - -P1 to P4 (lowest) to indicate a priority. Mostly a tool for internal project management and support. - -#### QA - -Flags to indicate the internal QA status in terms of process and priority. Please leave alone unless you're QA ;-) - -#### Severity - -Severity for the product, mostly impact on user. - -#### Type - -The issue type, helps to structure the issues in the agile categories (Epic, Story...) but also organizational ones. - -#### Topic - -A general category of the topic of a ticket. - -#### Category - -Categorizes the issue to also indicate the type of the issue. - -#### Status - -The status in the ticket life cycle. Keep an eye on that one, especially for the `Waiting-for-Feedback` tag which might indicate that the reporter is asked for feedback. - -#### Interaction - -Another label that indicates the type of the issue. - -#### Browser - -Important for browser dependent web issues. It specifies the browser that shows the error. - -#### Early-Adopter - -Tags issues that were reported by one of the oCIS early adopters, i.e. customers and users who start using ownCloud Infinite Scale before its general availability. +For development setup, coding standards, and pull request process, +see the README in this repository. diff --git a/README.md b/README.md index 15ef8058263..bacdf37ada4 100644 --- a/README.md +++ b/README.md @@ -1,170 +1,161 @@ # ownCloud Infinite Scale -[![Matrix](https://img.shields.io/matrix/ocis%3Amatrix.org?logo=matrix)](https://app.element.io/#/room/#ocis:matrix.org) -[![Build Status](https://drone.owncloud.com/api/badges/owncloud/ocis/status.svg)](https://drone.owncloud.com/owncloud/ocis) -[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=owncloud_ocis&metric=security_rating)](https://sonarcloud.io/dashboard?id=owncloud_ocis) -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=owncloud_ocis&metric=coverage)](https://sonarcloud.io/dashboard?id=owncloud_ocis) -[![Acceptance Test Coverage](https://sonarcloud.io/api/project_badges/measure?project=owncloud-1_ocis_acceptance-tests&metric=coverage)](https://sonarcloud.io/summary/new_code?id=owncloud-1_ocis_acceptance-tests) -[![Go Report](https://goreportcard.com/badge/github.com/owncloud/ocis)](https://goreportcard.com/report/github.com/owncloud/ocis) -[![Go Doc](https://godoc.org/github.com/owncloud/ocis?status.svg)](http://godoc.org/github.com/owncloud/ocis) -[![oCIS docker image](https://img.shields.io/docker/v/owncloud/ocis?label=oCIS%20docker%20image&logo=docker&sort=semver)](https://hub.docker.com/r/owncloud/ocis) -[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) - -- [ownCloud Infinite Scale](#owncloud-infinite-scale) - - [Introduction](#introduction) - - [Quickstart](#quickstart) - - [Overview](#overview) - - [Clients](#clients) - - [Web Office Applications](#web-office-applications) - - [Authentication](#authentication) - - [Installation](#installation) - - [Important Readings](#important-readings) - - [Run ownCloud Infinite Scale](#run-owncloud-infinite-scale) - - [Use the Official Documentation](#use-the-official-documentation) - - [Use the ocis Repo as Source](#use-the-ocis-repo-as-source) - - [Documentation](#documentation) - - [Admin Documentation](#admin-documentation) - - [Development Documentation](#development-documentation) - - [Security](#security) - - [Contributing](#contributing) - - [End User License Agreement](#end-user-license-agreement) - - [Copyright](#copyright) - -## Introduction - -ownCloud Infinite Scale (oCIS) is the new file sync & share platform that will be the foundation of your data management platform. - -Make sure to download the [latest released version](https://download.owncloud.com/ocis/ocis/stable/?sort=time&order=desc) today! - -## Quickstart - -For details of the commands used see the [Minimalistic Evaluation Guide for oCIS with Docker](https://owncloud.dev/ocis/guides/ocis-mini-eval/). + + +[![License](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE) [![ownCloud OSPO](https://img.shields.io/badge/OSPO-ownCloud-blue)](https://kiteworks.com/opensource) [![Docker Hub](https://img.shields.io/docker/pulls/owncloud)](https://hub.docker.com/r/owncloud/ocis) + +ownCloud Infinite Scale (oCIS) is the next-generation file sync, share, and collaboration platform built in Go. It is a single-binary, cloud-native server that replaces the classic PHP-based ownCloud Server with a microservices architecture supporting S3-compatible storage backends, spaces-based file organization, OpenID Connect authentication, and the Libre Graph API for extensibility. + +## Getting Started + +Follow the steps below to deploy oCIS using Docker or build from source. + +### Docker Quickstart ```bash -mkdir -p $HOME/ocis/ocis-config \ -mkdir -p $HOME/ocis/ocis-data -sudo chown -Rfv 1000:1000 $HOME/ocis/ -docker pull owncloud/ocis +mkdir -p $HOME/ocis/ocis-config $HOME/ocis/ocis-data docker run --rm -it \ --mount type=bind,source=$HOME/ocis/ocis-config,target=/etc/ocis \ --mount type=bind,source=$HOME/ocis/ocis-data,target=/var/lib/ocis \ - owncloud/ocis init --insecure yes -docker run \ - --name ocis_runtime \ - --rm \ - -it \ -p 9200:9200 \ + owncloud/ocis init +docker run -d \ --mount type=bind,source=$HOME/ocis/ocis-config,target=/etc/ocis \ --mount type=bind,source=$HOME/ocis/ocis-data,target=/var/lib/ocis \ - -e OCIS_INSECURE=true \ - -e PROXY_HTTP_ADDR=0.0.0.0:9200 \ - -e OCIS_URL=https://localhost:9200 \ - owncloud/ocis + -p 9200:9200 \ + owncloud/ocis server ``` -Use as URL `localhost:9200` and the user/password printed. -## Overview +### Build from Source -### Clients +```bash +make -C ocis build +./ocis/bin/ocis init +./ocis/bin/ocis server +``` -Infinite Scale allows the following ownCloud clients: +### Run Tests -* [web](https://github.com/owncloud/web), -* [Android](https://github.com/owncloud/android), -* [iOS](https://github.com/owncloud/ios-app) and -* [Desktop](https://github.com/owncloud/client/) +```bash +make test +``` -to synchronize and share file spaces with a scalable server backend based on [reva](https://reva.link/) using open and well-defined APIs like [WebDAV](http://www.webdav.org/) and [CS3](https://github.com/cs3org/cs3apis/). +## Documentation -### Web Office Applications +- [Admin Documentation](https://doc.owncloud.com/ocis/next/) +- [Developer Documentation](https://owncloud.dev/) +- [Deployment Guide](https://doc.owncloud.com/ocis/next/deployment/) +- [oCIS Quickstart with Docker](https://owncloud.dev/ocis/guides/ocis-mini-eval/) -Infinite Scale can integrate web office applications such as: +## Features -* [Collabora Online](https://github.com/CollaboraOnline/online), -* [OnlyOffice Docs](https://github.com/ONLYOFFICE/DocumentServer) or -* [Microsoft Office Online Server](https://owncloud.com/microsoft-office-online-integration-with-wopi/) +Key capabilities of ownCloud Infinite Scale: -Collaborative editing is supported by the [WOPI application gateway](https://github.com/cs3org/wopiserver). +### Clients -### Authentication +oCIS supports all official ownCloud clients: -Users are authenticated via [OpenID Connect](https://openid.net/connect/) using either an external IdP like [Keycloak](https://www.keycloak.org/) or the embedded [LibreGraph Connect](https://github.com/libregraph/lico) identity provider. +- [ownCloud Web](https://github.com/owncloud/web) +- [Android](https://github.com/owncloud/android) +- [iOS](https://github.com/owncloud/ios-app) +- [Desktop](https://github.com/owncloud/client/) -### Installation +### Web Office Integration -With focus on easy install and operation, Infinite Scale is delivered as a single binary or container that allows scaling from a Raspberry Pi to a Kubernetes cluster by changing the configuration and starting multiple services as needed. The multiservice architecture allows tailoring the functionality to your needs and reusing services that may already be in place like when using Keycloak. See the details below for various installation options. +Collaborative editing via [WOPI](https://github.com/cs3org/wopiserver) with: -## Important Readings +- [Collabora Online](https://github.com/CollaboraOnline/online) +- [OnlyOffice Docs](https://github.com/ONLYOFFICE/DocumentServer) +- [Microsoft Office Online Server](https://owncloud.com/microsoft-office-online-integration-with-wopi/) -Before starting to set up an instance, we **highly** recommend reading the [Prerequisites](https://doc.owncloud.com/ocis/next/prerequisites/prerequisites.html), the [Deployment](https://doc.owncloud.com/ocis/next/deployment/) section and especially the [General Information](https://doc.owncloud.com/ocis/next/deployment/general/general-info.html) page describing and explaining information that is valid for all deployment types. +### Authentication -## Run ownCloud Infinite Scale +Users authenticate via [OpenID Connect](https://openid.net/connect/) using either an external IdP (e.g., [Keycloak](https://www.keycloak.org/)) or the embedded [LibreGraph Connect](https://github.com/libregraph/lico) identity provider. -### Use the Official Documentation +### Architecture -See the [Install Infinite Scale on a Server](https://doc.owncloud.com/ocis/next/depl-examples/ubuntu-compose/ubuntu-compose-prod.html) for a production ready deployment starting with a Raspberry Pi, a single server or VM. +oCIS is delivered as a single binary or container with a microservices architecture built on [reva](https://reva.link/). It scales from a Raspberry Pi to a Kubernetes cluster and uses open APIs including [WebDAV](http://www.webdav.org/) and [CS3](https://github.com/cs3org/cs3apis/). No external database or IdP is required for basic deployments. -### Use the ocis Repo as Source +### Building from Source -Use this method to build and run an instance with the latest code. This is only recommended for development purposes. +Requires Go >= 1.25.7 and a C compiler (for reva's C-Go dependencies): -The minimum go version required is `1.25.7`.\ -Note that you need a C compile environment installed as a prerequisite because some dependencies, like reva, have components that require C-Go libraries and toolchains. The command installing for debian based systems is: `sudo apt install build-essential`. +```bash +git clone git@github.com:owncloud/ocis.git && cd ocis +make generate +make -C ocis build +./ocis/bin/ocis init +IDM_CREATE_DEMO_USERS=true ./ocis/bin/ocis server +``` -To build and run a local instance with demo users: +Access the web UI at `http://localhost:9200`. -```console -# get the source -git clone git@github.com:owncloud/ocis.git +## Part of ownCloud Infinite Scale -# enter the ocis dir -cd ocis +This is the core repository for oCIS -- the primary product of the ownCloud open source project. -# generate assets -make generate +- [Download latest release](https://download.owncloud.com/ocis/ocis/stable/?sort=time&order=desc) +- [Docker Hub: owncloud/ocis](https://hub.docker.com/r/owncloud/ocis) -# build the binary -make -C ocis build +## Community & Support -# initialize a minimal oCIS configuration -./ocis/bin/ocis init +**[Star](https://github.com/owncloud/ocis)** this repo and **Watch** for release notifications! -# run with demo users -IDM_CREATE_DEMO_USERS=true ./ocis/bin/ocis server +- [ownCloud Website](https://owncloud.com) +- [Community Discussions](https://github.com/orgs/owncloud/discussions) +- [Matrix Chat](https://app.element.io/#/room/#owncloud:matrix.org) +- [Documentation](https://doc.owncloud.com) +- [Enterprise Support](https://owncloud.com/contact-us/) +- [OSPO Home](https://kiteworks.com/opensource) -# Open your browser on http://localhost:9200 to access the bundled web-ui -``` +## Contributing -All batteries included: no external database, no external IDP needed! +We welcome contributions! Please read the [Contributing Guidelines](CONTRIBUTING.md) +and our [Code of Conduct](CODE_OF_CONDUCT.md) before getting started. -## Documentation +### 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](https://docs.github.com/en/authentication/managing-commit-signature-verification). +- **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. -### Admin Documentation -Refer to the [Admin Documentation - Introduction to Infinite Scale](https://doc.owncloud.com/ocis/next/) to get started with running oCIS in production. +## Translations -### Development Documentation -See the [Development Documentation - Getting Started](https://owncloud.dev/ocis/development/getting-started/) to get an overview of [Requirements](https://owncloud.dev/ocis/development/getting-started/#requirements), the [repository structure](https://owncloud.dev/ocis/development/getting-started/#repository-structure) and [other starting points](https://owncloud.dev/ocis/development/getting-started/#starting-points). +Help translate this project on Transifex: +**** + +Please submit translations via Transifex -- do not open pull requests for translation changes. ## Security -See the [Security Aspects](https://doc.owncloud.com/ocis/next/security/security.html) for a general overview of security related topics. -If you find a security issue, please contact [security@owncloud.com](mailto:security@owncloud.com) first. +**Do not open a public GitHub issue for security vulnerabilities.** -## Contributing +Report vulnerabilities at **** -- see [SECURITY.md](SECURITY.md). -We are _very_ happy that oCIS does not require a Contributor License Agreement (CLA) as it is [Apache 2.0 licensed](LICENSE). We hope this will make it easier to contribute code. If you want to get in touch, most of the developers hang out in our [matrix channel](https://app.element.io/#/room/#ocis:matrix.org) or reach out to the [ownCloud central forum](https://central.owncloud.org/). +Bug bounty: [YesWeHack ownCloud Program](https://yeswehack.com/programs/owncloud-bug-bounty-program) -Infinite Scale is carefully internationalized so that everyone, no matter what language they speak, has a great experience. To achieve this, we rely on the help of volunteer translators. If you want to help, you can find the projects behind the following links: - [Transifex for ownCloud web](https://app.transifex.com/owncloud-org/owncloud-web/translate/) and [Transifex for ownCloud](https://app.transifex.com/owncloud-org/owncloud/translate/) (Select the resource by filtering for `ocis-`). +## License -Please always refer to our [Contribution Guidelines](https://github.com/owncloud/ocis/blob/master/CONTRIBUTING.md). +This project is licensed under the [Apache-2.0](LICENSE). -## End User License Agreement +## About the ownCloud OSPO -Some builds of stable ownCloud Infinite Scale releases provided by ownCloud GmbH are subject to an [End User License Agreement](https://owncloud.com/license-owncloud-infinite-scale/). +The [Kiteworks Open Source Program Office](https://kiteworks.com/opensource), operating under +the [ownCloud](https://owncloud.com) 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](https://www.kiteworks.com), which acquired ownCloud in 2023. -## Copyright +- **OSPO Home**: +- **GitHub**: +- **ownCloud**: -```console -Copyright (c) 2020-2023 ownCloud GmbH -``` +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. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000000..78094ae4caf --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,11 @@ +# Security Policy + +## Reporting a Vulnerability + +**Do NOT open a public GitHub issue for security vulnerabilities.** + +Please report security issues responsibly via: +**** + +You can also report vulnerabilities through our YesWeHack bug bounty program: +**** diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 00000000000..d87c0ca865a --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,10 @@ +# Support + +For support with this project, please use the following channels: + +- **Enterprise Support**: +- **Community discussions**: https://github.com/orgs/owncloud/discussions +- **Matrix Chat**: +- **Documentation**: + +Please do not use GitHub issues for general support questions. diff --git a/agents.md b/agents.md new file mode 100644 index 00000000000..14eaa17ccbb --- /dev/null +++ b/agents.md @@ -0,0 +1,74 @@ +# agents.md -- ownCloud Infinite Scale + +## Repository Overview + +The core oCIS repository -- a next-generation file sync and share platform written in Go. Single-binary, cloud-native microservices architecture. Licensed under Apache-2.0. + +## Architecture & Key Paths + +- `ocis/` -- Main binary entry point +- `services/` -- Individual microservice implementations +- `ocis-pkg/` -- Shared packages across services +- `internal/` -- Internal packages +- `protogen/` -- Generated protobuf code +- `vendor/` -- Vendored Go dependencies +- `deployments/` -- Docker Compose and deployment configs +- `tests/` -- Acceptance and integration tests +- `docs/` -- Documentation source +- `scripts/` -- Build and utility scripts +- `tools/` -- Development tools +- `assets/` -- Static assets +- `Makefile` -- Build and test automation +- `Dockerfile` -- Docker image build +- `go.mod` / `go.sum` -- Go module definition +- `composer.json` -- PHP dependencies (for acceptance tests) +- `vendor-bin/` -- PHP tools (behat) + +## Development Conventions + +- Go codebase with microservices architecture +- Protobuf for service definitions +- Makefile-driven build system +- Acceptance tests use Behat (PHP) +- SonarCloud for quality gate + +## Build & Test Commands + +```bash +make -C ocis build # Build the ocis binary +make test # Run Go tests +make go-coverage # Generate coverage report +make generate # Run code generation +make vet # Run go vet +make ci-go-generate # CI code generation +make go-mod-tidy # Tidy go modules +``` + +## Important Constraints + +- Licensed under Apache-2.0 (already at the OSPO target license). The broader ownCloud organization is migrating other repositories from copyleft licenses to Apache 2.0. +- Contains protobuf-generated code in `protogen/` -- do not edit directly. +- All contributions require a DCO sign-off. + + +## OSPO Policy Constraints + +### GitHub Actions +- **Only** use actions owned by `owncloud`, created by GitHub (`actions/*`), or verified on the GitHub Marketplace. +- Pin all actions to their full commit SHA (not tags): `uses: actions/checkout@ # vX.Y.Z` +- Never introduce actions from unverified third parties. + +### Dependency Management +- Dependabot is configured for automated dependency updates. +- Review and merge Dependabot PRs as part of regular maintenance. +- Do not introduce new dependencies without discussion in an issue first. + +### Git Workflow +- **Rebase policy**: Always rebase; never create merge commits. Use `git pull --rebase` and `git rebase` before pushing. +- **Signed commits**: All commits **must** be PGP/GPG signed (`git commit -S -s`). +- **DCO sign-off**: Every commit needs a `Signed-off-by` line (`git commit -s`). +- **Conventional Commits**: Use the [Conventional Commits](https://www.conventionalcommits.org/) format where the repository enforces it. + +## Context for AI Agents + +oCIS is the primary ownCloud product. It uses a microservices architecture where each service in `services/` runs as part of a single binary. The `ocis-pkg/` directory contains shared libraries. Protobuf definitions generate service interfaces. The Libre Graph API is the primary API surface.