wl template - Storage template management

Synopsis

wl template list [--show-filenames]
wl template create <storage_type> [<storage_params>] NAME
wl template add <storage_type> [<storage_params>] NAME
wl template remove NAME [NAME ...]
wl template edit [--editor] PATH/NAME
wl template dump PATH/NAME

Description

Storage templates are a convenient tool to easily create storage manifests for containers.

The difference between create command and add commands is that create creates a new template while add appends to an existing template.

Storage Templates

Templates are jinja2 template files for .yaml storage manifests (:ref: manifests) located in templates directory in Wildland config directory (~/.config/wildland/templates/); template files must have filenames ending with .template.jinja.

Template files can use the following variables in their jinja templates:

  • uuid: container uuid

  • categories: categories (you can use jinja syntax to extract only e.g. first category: {{ categories|first }}

  • title: container title

  • paths: container paths (a list of PurePosixPaths)

  • local_path: container local path (path to container file)

  • owner: container owner. Warning: you must encapsulate {{ owner }} variable in quotes, eg. ‘{{ owner }}’

Warning: title and categories are optional; thus, if the container does not have them, they will not be passed to the template. Use jinja’s {% if variable is defined %} syntax to check if they are defined and provide reasonable defaults.

A few examples of basic storage templates:

path: /home/user/storage{{ paths|last }}
type: local

Sample template using is defined syntax:

path: /home/user/storage/{% if title is defined -%} {{ title }} {% else -%} {{ uuid }} {% endif %}
type: local

More complex example:

path: /home/user/storage/{% if categories is defined -%} {{ categories|first }} {% else -%} {{ (paths|last).relative_to('/') }} {% endif %}
type: local

Commands

wl template list [--show-filenames]

Display known storage templates.

--show-filenames, -s

Show filenames.

wl template remove NAME [NAME ...]

Delete a storage template from local filesystem.

wl template create bear-db --path <absolute_path_to_sqlite_db> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--path <path>

Path to Bear SQLite database. Required.

wl template create categorization --reference-container-url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage. Required.

--with-unclassified-category

Create unclassified directory holding all of the untagged directories. Not set by default.

--unclassified-category-path <path>

Path to directory where unclassified directories are mounted (/unclassified by default). This option is ignored unless –with-unclassified-category is set.

wl template create transpose --reference-container-url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage.

--rules <rules>

Rules to be followed when modifying the initial categories of the subcontainers, each to be passed as a dictionary enclosed in single quotes, e.g.: ‘{“match-with:: “/category”, “replace-with”: “/other”}’ Whenever a capture group is to be used in a regex rule, the user should precede the rule that includes a backreference with a raw string indicator, e.g.: ‘{“match-category-regex: “/(.*)”, “replace-with”: r”/prefix/1”}’

--conflict <conflict>

A keyword explaining the behaviour of the backend when encountering conflicting rules (first-apply|last-apply|all-apply)

wl template create timeline --reference-container-url <url> [--timeline-root <dir>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage.

--timeline-root <dir>

The name of the root of the timeline tree. Defaults to ‘/timeline’

wl template create delegate --reference-container-url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage.

--subdirectory <path>

Subdirectory within reference container. When set, content of this directory will be considered content of the container.

wl template create dropbox --token <access_token> --app-key <app_key> [--refresh-token <refresh_token>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <absolute_path>

Absolute path to root directory in your Dropbox account.

--token <access_token>

Dropbox app token. You can generate it with Dropbox App Console. Required if not –app-key.

--app-key <app_key>

Dropbox App Key. You obtain it in Dropbox App Console when creating an application. Required. if not –token.

--refresh-token <refresh_token>

Dropbox refresh token. You can generate it with Dropbox SDK or API. Optional.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template create dummy NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

wl template create encrypted --reference-container-url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage. Required.

--engine <ENGINE>

Cryptographic filesystem to use. Choices are: GoCryptFS or EncFS.

Both choices do not provide integrity protection. Sophisticated attacker might achieve a remote code execution on your machine, breaking confidentiality.

Please note that GoCryptFS is secure against attacker with read-only access to encrypted data.

EncFS (v1.x) is considered insecure! Use it only as a last resort measure! For details, see https://github.com/vgough/encfs/issues/9

When considering what option should be used, and if any of the options provided are good enough, please think in terms of your own threat model. E.g. who might want to break confidentiality of data you store? Are they sophisticated enough? What will happen if they will succeed?

wl template create googledrive --credentials <credentials> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <absolute_path>

Absolute path to root directory in your Google Drive account.

--credentials <credentials>

Google Drive Client Congifuration Object. You can generate it in Google Developer Console. Required. More info: https://developers.google.com/drive/api/v3/quickstart/python#step_1_turn_on_the

--skip-interaction

Enable this optional flag if user passes authorization token object as credentials

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template create http --url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--url <url>

HTTP URL.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template create imap --host <host> --login <login> --password <password> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--host <host>

IMAP server hostname. Required.

--login <login>

IMAP account / login name. Required.

--password <password>

IMAP account password. Required.

--folder <folder>

IMAP folder to expose (defaults to INBOX).

--ssl, --no-ssl

Use SSL or unencrypted connection. Default is to use SSL.

wl template create gitlab --personal-token <personal-token> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--server-url <url>

GitLab url; default value set to https://gitlab.com/. Necessary in order to communicate with the server.

--personal-token <personal-token>

Personal access token generated by GitLab. Used for authorisation purposes.

--projectid <id>

(Optional) GitLab project ID. When provided, only the issues from said project will be retrieved from the server. Otherwise, we retrieve all issues from all the projects that the user is a member of.

wl template create gitlab-graphql --personal-token <personal-token> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--personal-token <personal-token>

Personal access token generated by GitLab. Used for authorisation purposes.

--project-path <id>

(Optional) GitLab full project path (e.g. wildland/wildland-client). When provided, only the issues from said project will be retrieved from the server. Otherwise, we retrieve all issues from all the projects that the user is a member of.

wl template create git --url <url> [--username <username>] [--password <password>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--url <url>

The git URL leading to the repository which is to be exposed; Should follow the ‘http[s]://host.xz[:port]/path/to/repo.git’ format.

--username <username>

The git username used for authorization purposes. Paired with the personal token (passed as the –password parameter) can be used to skip the default authorization via the command line

--password <password>

The git password/personal token.

wl template create ipfs --ipfs-hash <url> --endpoint-address <multiaddress> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--ipfs-hash <URL>

IPFS CID or IPNS name to access the resource, of the form /ipfs/CID or /ipns/name. Required.

--endpoint-addr <multiaddress>

Override default IPFS gateway address (/ip4/127.0.0.1/tcp/8080/http) with the given address.

wl template create jira --workspace-url <url> [--username <username>] [--personal-token <personal-token>] [--project-name <project-name>] [--limit <issues-limit>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--workspace-url <url>

Address of the REST endpoint of your Jira Work Management Cloud site. For example https://{your site name}.atlassian.net/rest/api/2. The plugin works only with version v2 of Jira REST API. Necessary in order to communicate with the server.

--username <username>

(Optional) The name of Jira user. Used for authorisation purposes.

--personal-token <personal-token>

(Optional) Personal access token generated by Jira. Used for authorisation purposes.

--project-name <project-name>

(Optional, Multiple) when defined, only issues associated with the project (or projects) will be mounted. By default, all issues from the projects accessible by the user in the given Jira Work Management Cloud site will be exposed.

--limit <issues-limit>

(Optional) The maximum number of issues is limited to avoid unintentionally cloning large workspaces. By default 1000 of the most recently updated issues is fetched.

wl template create local --location <absolute_path> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <filesystem_path>

Path to directory containing the backend. Required.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template create local-cached --location <absolute_path> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <filesystem_path>

Path to directory containing the backend. Required.

wl template create local-dir-cached --location <absolute_path> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <filesystem_path>

Path to directory containing the backend. Required.

wl template create s3 --s3-url <s3_url> --access-key <access_key> [--secret-key <secret_key>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--s3-url <url>

S3 URL, of the form s3://bucket/ or s3://bucket/path/. Required.

--endpoint-url <URL>

Override default AWS S3 URL with the given URL.

--with-index

Generate index pages. When this option is enabled, Wildland will maintain an / (yes, just slash) file with directory listing in every directory. These files will be invisible in the mounted filesystem, but they can be used to browse the S3 bucket when it’s exposed using public HTTP.

--access-key STRING

S3 access key

--secret-key STRING

S3 secret key (omit for a prompt)

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template create sshfs [--sshfs-command <cmd>] --host <host> [--path <path>] [--ssh-user <user>] [--ssh-identity <path>|--pwprompt] [-mount-options <OPT1>[,OPT2,OPT3,...]] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--sshfs-command <cmd>

Command to use to internally mount an SSHFS filesystem, overriding default sshfs. Depending on your system configuration, you may need to provide an absolute path to this command (i.e. /usr/local/bin/sshfs).

--host <host>

Provide a hostname or IP address of SSH server to connect to.

--path <path>

Path on SSH server to access.

--ssh-user <user>

Username for authentication with SSH server, overriding local user name.

--ssh-identity <path>

Path to file containing private key which will be used for authentication. The contents of this file is embedded in the manifest.

--pwprompt

When backend is created, prompt user for password used to login to the SSH server. Provided password will be embedded in the manifest and used to authenticate with SSH server.

--mount-options <opt1,[opt2[,opt3[,...]]]>

Additional options that are passed to sshfs command.

wl template create static [--file <path>=<content> ...] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--file <path>=<content>

Single file to be included in the storage. The file path may contain slash (/) to put it into a subdirectory. Path should be relative (without leading slash).

wl template create webdav --url <url> --login <login> --password <password> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--url <url>

Base URL for WebDAV resource. Required.

--login <login>

Login. Required.

--password <password>

Password. Required.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.container.yaml. Can use {path}` and * special characters.

wl template create zip-archive --location <absoute_path_to_zip_file> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <filesystem_path>

Path to ZIP archive.

wl template create redis --hostname <string> --database <int> [--password <string>] [--port 6379] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--prefix <absolute_path>

Redis key prefix as an absolute path, defaults to /. Optional.

--database <int>

Redis DB index

--hostname <string>

Server hostname

--port <int>

Server port, defaults to 6379. Optional.

--username <string>

Server username. Optional.

--password <string>

Server password. Optional.

--tls <boolean>

Use TLS. Optional.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template add bear-db --path <absolute_path_to_sqlite_db> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--path <path>

Path to Bear SQLite database. Required.

wl template add categorization --reference-container-url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage. Required.

--with-unclassified-category

Create unclassified directory holding all of the untagged directories. Not set by default.

--unclassified-category-path <path>

Path to directory where unclassified directories are mounted (/unclassified by default). This option is ignored unless –with-unclassified-category is set.

wl template add transpose --reference-container-url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage.

--rules <rules>

Rules to be followed when modifying the initial categories of the subcontainers, each to be passed as a dictionary enclosed in single quotes, e.g.: ‘{“match-with:: “/category”, “replace-with”: “/other”}’ Whenever a capture group is to be used in a regex rule, the user should precede the rule that includes a backreference with a raw string indicator, e.g.: ‘{“match-category-regex: “/(.*)”, “replace-with”: r”/prefix/1”}’

--conflict <conflict>

A keyword explaining the behaviour of the backend when encountering conflicting rules (first-apply|last-apply|all-apply)

wl template add timeline --reference-container-url <url> [--timeline-root <dir>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage.

--timeline-root <dir>

The name of the root of the timeline tree. Defaults to ‘/timeline’

wl template add delegate --reference-container-url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage.

--subdirectory <path>

Subdirectory within reference container. When set, content of this directory will be considered content of the container.

wl template add dropbox --token <access_token> --app-key <app_key> [--refresh-token <refresh_token>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <absolute_path>

Absolute path to root directory in your Dropbox account.

--token <access_token>

Dropbox app token. You can generate it with Dropbox App Console. Required if not –app-key.

--app-key <app_key>

Dropbox App Key. You obtain it in Dropbox App Console when creating an application. Required. if not –token.

--refresh-token <refresh_token>

Dropbox refresh token. You can generate it with Dropbox SDK or API. Optional.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template add dummy NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

wl template add encrypted --reference-container-url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--reference-container-url <url>

Inner container URL for this storage. Required.

--engine <ENGINE>

Cryptographic filesystem to use. Choices are: GoCryptFS or EncFS.

Both choices do not provide integrity protection. Sophisticated attacker might achieve a remote code execution on your machine, breaking confidentiality.

Please note that GoCryptFS is secure against attacker with read-only access to encrypted data.

EncFS (v1.x) is considered insecure! Use it only as a last resort measure! For details, see https://github.com/vgough/encfs/issues/9

When considering what option should be used, and if any of the options provided are good enough, please think in terms of your own threat model. E.g. who might want to break confidentiality of data you store? Are they sophisticated enough? What will happen if they will succeed?

wl template add googledrive --credentials <credentials> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <absolute_path>

Absolute path to root directory in your Google Drive account.

--credentials <credentials>

Google Drive Client Congifuration Object. You can generate it in Google Developer Console. Required. More info: https://developers.google.com/drive/api/v3/quickstart/python#step_1_turn_on_the

--skip-interaction

Enable this optional flag if user passes authorization token object as credentials

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template add http --url <url> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--url <url>

HTTP URL.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template add imap --host <host> --login <login> --password <password> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--host <host>

IMAP server hostname. Required.

--login <login>

IMAP account / login name. Required.

--password <password>

IMAP account password. Required.

--folder <folder>

IMAP folder to expose (defaults to INBOX).

--ssl, --no-ssl

Use SSL or unencrypted connection. Default is to use SSL.

wl template add ipfs --ipfs-hash <url> --endpoint-address <multiaddress> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--ipfs-hash <URL>

IPFS CID or IPNS name to access the resource, of the form /ipfs/CID or /ipns/name. Required.

--endpoint-addr <multiaddress>

Override default IPFS gateway address (/ip4/127.0.0.1/tcp/8080/http) with the given address.

wl template add local --location <absolute_path> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <filesystem_path>

Path to directory containing the backend. Required.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template add local-cached --location <absolute_path> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <filesystem_path>

Path to directory containing the backend. Required.

wl template add local-dir-cached --location <absolute_path> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <filesystem_path>

Path to directory containing the backend. Required.

wl template add s3 --s3-url <s3_url> --access-key <access_key> [--secret-key <secret_key>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--s3-url <url>

S3 URL, of the form s3://bucket/ or s3://bucket/path/. Required.

--endpoint-url <URL>

Override default AWS S3 URL with the given URL.

--with-index

Generate index pages. When this option is enabled, Wildland will maintain an / (yes, just slash) file with directory listing in every directory. These files will be invisible in the mounted filesystem, but they can be used to browse the S3 bucket when it’s exposed using public HTTP.

--access-key STRING

S3 access key

--secret-key STRING

S3 secret key (omit for a prompt)

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template add sshfs [--sshfs-command <cmd>] --host <host> [--path <path>] [--ssh-user <user>] [--ssh-identity <path>|--pwprompt] [-mount-options <OPT1>[,OPT2,OPT3,...]] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--sshfs-command <cmd>

Command to use to internally mount an SSHFS filesystem, overriding default sshfs. Depending on your system configuration, you may need to provide an absolute path to this command (i.e. /usr/local/bin/sshfs).

--host <host>

Provide a hostname or IP address of SSH server to connect to.

--path <path>

Path on SSH server to access.

--ssh-user <user>

Username for authentication with SSH server, overriding local user name.

--ssh-identity <path>

Path to file containing private key which will be used for authentication. The contents of this file is embedded in the manifest.

--pwprompt

When backend is created, prompt user for password used to login to the SSH server. Provided password will be embedded in the manifest and used to authenticate with SSH server.

--mount-options <opt1,[opt2[,opt3[,...]]]>

Additional options that are passed to sshfs command.

wl template add static [--file <path>=<content> ...] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--file <path>=<content>

Single file to be included in the storage. The file path may contain slash (/) to put it into a subdirectory. Path should be relative (without leading slash).

wl template add webdav --url <url> --login <login> --password <password> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--url <url>

Base URL for WebDAV resource. Required.

--login <login>

Login. Required.

--password <password>

Password. Required.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.container.yaml. Can use {path}` and * special characters.

wl template add zip-archive --location <absoute_path_to_zip_file> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--location <filesystem_path>

Path to ZIP archive.

wl template create gitlab --personal-token <personal-token> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--server-url <url>

GitLab url; default value set to https://gitlab.com/. Necessary in order to communicate with the server.

--personal-token <personal-token>

Personal access token generated by GitLab. Used for authorisation purposes.

--projectid <id>

(Optional) GitLab project ID. When provided, only the issues from said project will be retrieved from the server. Otherwise, we retrieve all issues from all the projects that the user is a member of.

wl template add gitlab-graphql --personal-token <personal-token> NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--personal-token <personal-token>

Personal access token generated by GitLab. Used for authorisation purposes.

--project-path <id>

(Optional) GitLab full project path (e.g. wildland/wildland-client). When provided, only the issues from said project will be retrieved from the server. Otherwise, we retrieve all issues from all the projects that the user is a member of.

wl template add jira --workspace-url <url> [--username <username>] [--personal-token <personal-token>] [--project-name <project-name>] [--limit <issues-limit>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--workspace-url <url>

Address of the REST endpoint of your Jira Work Management Cloud site. For example https://{your site name}.atlassian.net/rest/api/2. The plugin works only with version v2 of Jira REST API. Necessary in order to communicate with the server.

--username <username>

(Optional) The name of Jira user. Used for authorisation purposes.

--personal-token <personal-token>

(Optional) Personal access token generated by Jira. Used for authorisation purposes.

--project-name <project-name>

(Optional, Multiple) when defined, only issues associated with the project (or projects) will be mounted. By default, all issues from the projects accessible by the user in the given Jira Work Management Cloud site will be exposed.

--limit <issues-limit>

(Optional) The maximum number of issues is limited to avoid unintentionally cloning large workspaces. By default 1000 of the most recently updated issues is fetched.

wl template add git --url <url> [--username <username>] [--password <password>] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--url <url>

The git URL leading to the repository which is to be exposed; Should follow the ‘http[s]://host.xz[:port]/path/to/repo.git’ format.

--username <username>

The git username used for authorization purposes. Paired with the personal token (passed as the –password parameter) can be used to skip the default authorization via the command line

--password <password>

The git password/personal token.

wl template add redis --hostname <string> --database <int> [--password <string>] [--port 6379] NAME

--access USER

Allow an additional user access to this storage manifest. By default, storage manifests inherit access settings from the container.

--watcher-interval SECONDS

Sets naive storage watcher interval (in seconds).

--read-only

Mark storage as read-only.

--default-cache

Mark template as default for container caches

--prefix <absolute_path>

Redis key prefix as an absolute path, defaults to /. Optional.

--database <int>

Redis DB index

--hostname <string>

Server hostname

--port <int>

Server port, defaults to 6379. Optional.

--username <string>

Server username. Optional.

--password <string>

Server password. Optional.

--tls <boolean>

Use TLS. Optional.

--subcontainer-manifest <path_in_storage>

Absolute path to a subcontainer manifest (can be repeated). Optional.

--manifest-pattern <glob>

Glob pattern to find manifest files in the storage, e.g. /*.{object-type}.yaml. Can use {path}` and * special characters.

wl template edit PATH/NAME

Edit template in an external tool. If you provide template name, command will find its location and open that file. You can also provide the path directly. After editing, command will validate edited file and if everything is fine it will be saved.

--editor <editor>

Use custom editor instead of the one configured with usual VISUAL or EDITOR variables.

wl template dump PATH/NAME

The command will output a template file’s contents. If you provide template name, command will find its location and open that file. You can also provide the path directly.