biigle / user-disks
BIIGLE module to offer private storage disks for users.
Requires
- league/flysystem-aws-s3-v3: ^3.12
- league/flysystem-read-only: ^3.3
Requires (Dev)
None
Suggests
- biigle/laravel-azure-storage: Required if the 'azure' disk type should be enabled
- biigle/laravel-dcache: Required if the 'dcache' disk type should be enabled
- biigle/laravel-elements-storage: Required if the 'elements' disk type should be enabled
- biigle/laravel-socialite-haai: Required if the 'dcache' disk type should be enabled
- biigle/laravel-webdav: Required if the 'webdav' disk type should be enabled
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-10 10:34:26 UTC
README
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-storagecomposer require biigle/laravel-azure-storage
-
WebDAV: Requires
biigle/laravel-webdavcomposer require biigle/laravel-webdav
-
Elements: Requires
biigle/laravel-elements-storagecomposer require biigle/laravel-elements-storage
-
dCache: Requires both
biigle/laravel-dcacheandbiigle/laravel-socialite-haaicomposer require biigle/laravel-dcache biigle/laravel-socialite-haai
Follow the installation instructions of
biigle/laravel-socialite-haaiin case it wasn't set up laready (e.g viabiigle/auth-haai). In addition, you have to add theDCACHE_TOKEN_EXCHANGE_CLIENT_IDandDCACHE_TOKEN_EXCHANGE_CLIENT_SECRETvariables to the.envfile. 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 forbiigle/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
- Run
composer require biigle/user-disks. - Add
Biigle\Modules\UserDisks\UserDisksServiceProvider::classto theprovidersarray inconfig/app.php. - Run
php artisan vendor:publish --tag=publicto refresh the public assets of the modules. Do this for every update of this module. - Run
php artisan migrateto 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.