Search by

biigle / user-disks

mzur

BIIGLE module to offer private storage disks for users.

Package info

github.com/biigle/user-disks

Homepage

pkg:composer/biigle/user-disks

Statistics

Installs: 6 034

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 3

v1.10.0 2026-09-10 08:53 UTC

README

Test status

This is a BIIGLE module that offers private storage disks for users.

Configuration

This module supports s3, azure, webdav, elements, dcache and aruna storage disks but by default only S3 is enabled. Configure the enabled storage disk types as a comma-separated list with the USER_DISKS_TYPES environment variable (e.g. s3,webdav).

Required Configuration by Disk Type

Different storage disk types require additional packages to be installed:

  • S3: No additional packages required (included by default)

  • Azure: Requires biigle/laravel-azure-storage

    composer require biigle/laravel-azure-storage
  • WebDAV: Requires biigle/laravel-webdav

    composer require biigle/laravel-webdav
  • Elements: Requires biigle/laravel-elements-storage

    composer require biigle/laravel-elements-storage
  • dCache: Requires both biigle/laravel-dcache and biigle/laravel-socialite-haai

    composer require biigle/laravel-dcache biigle/laravel-socialite-haai

    Follow the installation instructions of biigle/laravel-socialite-haai in case it wasn't set up laready (e.g via biigle/auth-haai). In addition, you have to add the DCACHE_TOKEN_EXCHANGE_CLIENT_ID and DCACHE_TOKEN_EXCHANGE_CLIENT_SECRET variables to the .env file. These are the OICD credentials for the dCache Keycloak.

    A dCache token is obtained in two steps: first the HAAI access token of the user is exchanged for a token addressed to the dCache Keycloak at the Helmholtz AAI token endpoint (using the HAAI client credentials of services.haai, i.e. the ones configured for biigle/laravel-socialite-haai), then this token is presented to the dCache Keycloak in a JWT authorization grant to obtain the actual dCache access and refresh tokens (using the credentials mentioned above). The endpoints of this flow have sensible defaults but can be overridden with these optional environment variables:

    • DCACHE_HELMHOLTZ_TOKEN_ENDPOINT: Token endpoint of the Helmholtz AAI used for the first step.
    • DCACHE_TOKEN_ENDPOINT: Token endpoint of the dCache Keycloak used for the second step and for token refreshes.
    • DCACHE_KEYCLOAK_AUDIENCE: Audience requested in the first step. This must match the dCache Keycloak realm URL, otherwise Keycloak rejects the token in the second step.
  • Aruna: No additional packages required (included by default but disabled)

Install only the packages for the disk types you plan to enable.

Installation

  1. Run composer require biigle/user-disks.
  2. Add Biigle\Modules\UserDisks\UserDisksServiceProvider::class to the providers array in config/app.php.
  3. Run php artisan vendor:publish --tag=public to refresh the public assets of the modules. Do this for every update of this module.
  4. Run php artisan migrate to create the new database tables.

Developing

Take a look at the development guide of the core repository to get started with the development setup.

Want to develop a new module? Head over to the biigle/module template repository.

Contributions and bug reports

Contributions to BIIGLE are always welcome. Check out the contribution guide to get started.