WebDAV
This release primarly brings the ability to store DataLad datasets on a WebDAV server. This is done in a way that allows for cloning such dataset with datalad clone
from such a WebDAV server too. This feature enables full-featured DataLad-based collaborative workflows on widely available cloud storage systems, such as owncloud/next/cloud -- which are also the basis for several institutional services like the European Open Science Cloud's (EOSC) B2DROP service.
Changes in this release:
- A
create-sibling-webdav
command for hosting datasets on a WebDAV server via a sibling tandem for Git history and file storage. Datasets hosted on WebDAV in this fashion are cloneable withdatalad-clone
. A full annex setup for storing complete datasets with historical file content version, and an additional mode for depositing single-version dataset snapshot are supported. The latter enables convenient collaboration with audiences that are not using DataLad, because all files are browsable via a WebDAV server's point-and-click user interface. - Enhance
datalad-push
to automatically export files to git-annex special remotes configured withexporttree=yes
. - Enhance
datalad-siblings enable
(AnnexRepo.enable_remote()
to automatically deploy credentials for git-annex special remotes that require them. git-remote-datalad-annex
is a Git remote helper to push/fetch to any location accessible by any git-annex special remote.git-annex-backend-XDLRA
(originally available from themihextras
extension) is a custom external git-annex backend used by git-remote-datalad-annex. A base class to facilitate development of external backends in Python is also provided.serve_path_via_webdav
test decorator that automatically deploys a local WebDAV server.with_credential
test decorator that temporarily deploy a credential to the local credential system.- Utilities for HTTP handling
probe_url()
to discover redirects and authentication requirements for an HTTP URLget_auth_realm()
return a label for an authentication realm that can be used to query for matching credentials
- Utilities for special remote credential management:
get_specialremote_credential_properties()
inspects a special remote and return properties for querying a credential store for matching credentialsupdate_specialremote_credential()
updates a credential in a store after successful useget_specialremote_credential_envpatch()
returns a suitable environment "patch" from a credential for a particular special remote type