waldur-site-agent-nextcloud
Nextcloud plugin for Waldur Site Agent.
Users purchase storage plans in Waldur and automatically receive access to a shared Nextcloud Group Folder. Login is via Keycloak OIDC.
How it works
- Each Waldur resource → a Nextcloud Group + Group Folder (with quota from the plan)
- Users added to the resource → added to the Nextcloud group → can access the folder
- Usage is reported as Group Folder bytes used
Prerequisites
Install and enable in Nextcloud admin:
- User OIDC app (
user_oidc) — configure to point at your Keycloak realm - Group Folders app (
groupfolders)
In the OIDC provider settings, set the user ID attribute to preferred_username
(matches the Keycloak username that the site-agent uses when calling the OCS API).
Configuration example
offerings:
- name: "Nextcloud Storage"
waldur_api_url: "https://sky.sigma2.no/api/"
waldur_api_token: "${SITE_AGENT_API_TOKEN}"
waldur_offering_uuid: "${OFFERING_UUID}"
backend_type: "nextcloud"
order_processing_backend: "nextcloud"
membership_sync_backend: "nextcloud"
reporting_backend: "nextcloud"
# STOMP is strongly recommended for Nextcloud. On event-based deployments
# the agent retries the team-member fetch to avoid a race where the
# create-order event arrives before Waldur commits the initial membership.
stomp_enabled: true
# stomp_membership_sync_enabled: false # uncomment to keep HTTP polling for
# # membership sync even with STOMP on
backend_settings:
nextcloud_url: "https://nextcloud.example.com"
admin_username: "admin"
admin_password: "${NEXTCLOUD_ADMIN_PASSWORD}"
group_prefix: "waldur-" # prefix for auto-created groups
default_storage_quota_gb: 25 # fallback if plan has no storage limit (GiB)
allow_resharing: false # allow users to reshare folder contents
backend_components:
storage:
# Quota values are in GiB (1 GiB = 1024³ bytes), consistent with how
# Nextcloud labels storage in its UI.
measured_unit: "GiB"
accounting_type: "limit"
label: "Storage"
unit_factor: 1
Backend settings reference
| Key | Default | Description |
|---|---|---|
nextcloud_url |
(required) | Base URL of the Nextcloud instance |
admin_username |
(required) | Admin account for OCS API calls |
admin_password |
(required) | Admin password (use env var substitution) |
group_prefix |
"waldur-" |
Prefix prepended to every auto-created group name |
default_storage_quota_gb |
25 |
Fallback quota (GiB) when the Waldur plan has no storage limit |
allow_resharing |
false |
If false, group members cannot reshare folder contents |
STOMP settings reference
| Key | Default | Description |
|---|---|---|
stomp_enabled |
false |
Enable STOMP event-driven processing |
stomp_membership_sync_enabled |
null |
Inherits stomp_enabled. Set false to keep HTTP polling for membership. |
team_fetch_attempts (backend-level, non-configurable)
The Nextcloud backend sets team_fetch_attempts = 4 internally.
On order-processing paths (including STOMP create-order events) the event can
arrive before Waldur has committed the initial team membership row. The agent
retries the team-member fetch up to 4 times (with a 3 s delay between
attempts) if the list comes back empty. Other backends default to 1 (no
retry); this higher value is specific to Nextcloud's create-order path.
Note: the retry only helps when the team is entirely absent. A non-empty but stale team (new member not yet committed) breaks on the first attempt.
Metadata
Release files for waldur-site-agent-nextcloud 1.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| waldur_site_agent_nextcloud-1.0.7.tar.gz | 16.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| waldur_site_agent_nextcloud-1.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.7 kB
Release files / waldur_site_agent_nextcloud-1.0.7.tar.gz
| Download URL | waldur_site_agent_nextcloud-1.0.7.tar.gz |
|---|---|
| Size | 16.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b3fb2a97eb1874c85fa11cd29a159cfc06a940becd2fa75815aa0253ffa6bf6f
|
|
BLAKE2b-256 checksum How to use checksums |
9b1f4ab77ab1eebd96494642222d1c9901bf5709a374610004e9f24c35596c53
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / waldur_site_agent_nextcloud-1.0.7-py3-none-any.whl
| Download URL | waldur_site_agent_nextcloud-1.0.7-py3-none-any.whl |
|---|---|
| Size | 14.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
118b934d85f286b3dd37fbbc4a4d447c524717daea3ae826c112c4fc9f0a9964
|
|
BLAKE2b-256 checksum How to use checksums |
f14f42e18040c30943d652cecba1305721b4c12b0d2dca8d66982e96dd6b5547
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for waldur-site-agent-nextcloud 1.0.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.