Jörn Friedrich Dreyer bd4325b75b feat(policies): pass request lengths to the proxy policies
The proxy policies middleware now passes the Content-Length of the
request body and the TUS Upload-Length header to the policies engine
as input.request.content_length and input.request.upload_length. This
allows rejecting uploads that are too big before any data is
transferred, instead of only in postprocessing after the upload has
completed.

We add them to the request instead of setting resource.size, because
the resource describes the target of the request (the middleware may
even stat it) and in postprocessing resource.size is the actual file
size.

This can only be an early check. The TUS concatenation extension
allows merging several smaller uploads into one file, so the file size
still has to be checked in postprocessing.

protojson encodes uint64 values as strings with camelCase keys, so
NewEnvironmentFromPB copies the lengths explicitly.

Assisted-by: Claude Code:claude-opus-5-5
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2026-11-05 15:28:49 +01:00
2026-10-05 14:07:30 +02:00
2026-10-29 21:55:14 +01:00
2025-01-28 18:03:12 +01:00
2026-10-26 17:11:14 +01:00
2025-08-15 12:41:36 +02:00
2026-10-27 15:15:57 +01:00
2025-02-04 11:29:46 +01:00
2025-01-17 17:21:23 +01:00
2026-07-14 09:32:35 +02:00

OpenCloud logo

status-badge Matrix License

Server Backend

Tip

For general information about OpenCloud and how to install please visit OpenCloud on Github and OpenCloud GmbH.

This is the main repository of the OpenCloud server. It contains the golang codebase for the backend services.

Getting Involved

The OpenCloud server is released under Apache 2.0. The project is thrilled to receive contributions in all forms. Start hacking now, there are many ways to get involved such as:

Every contribution is meaningful and appreciated! Please refer to our Contribution Guidelines if you want to get started.

Build OpenCloud

To build the backend, follow these instructions:

Generate the assets needed by e.g., the web UI and the builtin IDP

make generate

Then compile the opencloud binary

make -C opencloud build

That will produce the binary opencloud/bin/opencloud. It can be started as a local test instance right away with a two step command:

opencloud/bin/opencloud init && opencloud/bin/opencloud server

This creates a server configuration (by default in $HOME/.opencloud) and starts the server.

For more setup- and installation options consult the Development Documentation.

Technology

Important information for contributors about the technology in use.

Authentication

The OpenCloud backend authenticates users via OpenID Connect using either an external IdP like Keycloak or the embedded LibreGraph Connect identity provider.

Database

The OpenCloud backend does not use a database. It stores all data in the filesystem. By default, the root directory of the backend is $HOME/.opencloud/.

Security

If you find a security-related issue, please contact security@opencloud.eu immediately.

S
Description
No description provided
Readme Apache-2.0
376 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 52.4%
Gherkin 33.6%
PHP 11.4%
JavaScript 1.1%
Shell 0.6%
Other 0.7%