Skip to content

WebDAV

Compare
Choose a tag to compare
@mih mih released this 28 Apr 06:52
· 1572 commits to main since this release
0.2.0
38bfa49

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 with datalad-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 with exporttree=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 the mihextras 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 URL
    • get_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 credentials
    • update_specialremote_credential() updates a credential in a store after successful use
    • get_specialremote_credential_envpatch() returns a suitable environment "patch" from a credential for a particular special remote type