add documentation for all new config elements

Sun, 15 Dec 2019 12:11:16 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 15 Dec 2019 12:11:16 +0100
changeset 700
165811ea12ab
parent 699
1091cb3c6dad
child 701
0a48f17c729d

add documentation for all new config elements

dav/scfg.c file | annotate | diff | comparison | revisions
dav/xattrtool.c file | annotate | diff | comparison | revisions
docs/src/configuration.md file | annotate | diff | comparison | revisions
docs/src/sync-configuration.md file | annotate | diff | comparison | revisions
--- a/dav/scfg.c	Sun Dec 15 10:44:11 2019 +0100
+++ b/dav/scfg.c	Sun Dec 15 12:11:16 2019 +0100
@@ -391,7 +391,7 @@
         xmlFree(attr_type);
     }
     if(attr_always) {
-        v.always = util_getboolean(attr_always);
+        v.always = util_getboolean((const char*)attr_always);
         xmlFree(attr_always);
     }
     
--- a/dav/xattrtool.c	Sun Dec 15 10:44:11 2019 +0100
+++ b/dav/xattrtool.c	Sun Dec 15 12:11:16 2019 +0100
@@ -165,7 +165,7 @@
     char *attr = argv[3];
     int ret = 0;
     
-    size_t valuelen = 0;
+    ssize_t valuelen = 0;
     char *value = xattr_get(file, attr, &valuelen);
     if(value) {
         if(raw) {
--- a/docs/src/configuration.md	Sun Dec 15 10:44:11 2019 +0100
+++ b/docs/src/configuration.md	Sun Dec 15 12:11:16 2019 +0100
@@ -41,6 +41,13 @@
 Type: base64 string \
 Example: `<password>MTIzNDU2Nzg=</password>`
 
+### stored-user
+
+Credentials id used for authentication. The credentials must be stored in the secret store.
+
+Type: string \
+Example: `<stored-user>alice</stored-user>`
+
 ### default-key
 
 Identifer of the key used by default for encryption. There must be a configured key with this name.
--- a/docs/src/sync-configuration.md	Sun Dec 15 10:44:11 2019 +0100
+++ b/docs/src/sync-configuration.md	Sun Dec 15 12:11:16 2019 +0100
@@ -11,7 +11,7 @@
 This element configures a sync-directory. A sync-directory must have a unique name, a (local) path, repository and a database.
 
 Required elements: `<name>`, `<repository>`, `<path>`, `<database>` \
-Optional elements: `<collection>`, `<trash>`, `<max-retry>`, `<backup-on-pull>`, `<lock-pull>`, `<lock-push>`, `<lock-timeout>`, `<filter>`
+Optional elements: `<collection>`, `<trash>`, `<max-retry>`, `<backup-on-pull>`, `<lock-pull>`, `<lock-push>`, `<lock-timeout>`, `<filter>`, `<metadata>`, `<versioning>`, `<splitconfig>`, `<symlink-intern>`, `<symlink-extern>`, `<tagconfig>`, `<allow-cmd>`
 
 ### name
 
@@ -53,6 +53,14 @@
 Default: / \
 Example: `<collection>/myfiles</collection>`
 
+### hashing
+
+Enables file hashing. The hash will be used for checking if files are modified and should be synchronized.
+
+Type: boolean \
+Default: false \
+Example: `<hashing>true</hashing>`
+
 ### trash
 
 Path to the trash directory for this sync-directory. Files that should be deleted will be moved to this directory. The value must be an absolute path or relative to the sync-directory path.
@@ -60,6 +68,14 @@
 Type: string \
 Example: `<trash>.trash</trash>`
 
+### push-strategy
+
+Controls the strategy *push* uses for deciding which files should be pushed. Possible values are: `metadata` and `hash`.
+
+Type: pushstrategy enum \
+Default: metadata
+Example: `<push-strategy>hash</push-strategy>`
+
 ### max-retry
 
 This integer value controls how many attempts of downloading/uploading a file in case of an error are made.
@@ -100,6 +116,54 @@
 Default: 0 \
 Example: `<lock-timeout>50</lock-timeout>`
 
+### metadata
+
+Controls which file metadata should be synchronized. Possible values are: `mtime`, `mode`, `xattr` and `all`. If this element is not specified, no metadata will be synchronized.
+
+Type: list of metadata \
+Example: `<metadata>mtime mode</metadata>`
+
+### versioning
+
+Enables resource versioning for the commands *push* and *archive*.
+
+Possible attributes: `type`, `always`
+
+The attribute `type` sets the versioning method type. Possible values are `simple` and `deltav`. With *simple* versioning, resources are moved to a version history collection before the new content is uploaded. With *deltav*, the DeltaV methods *checkout* and *checkin* are used to store versions. The default value of the `type` attribute is `simple`.
+
+The boolean attribute `always` specifies if new versions should be always created. The default value is `false`.
+
+Optional elements: `<history>`
+Example: `<versioning type="simple" always="true" />`
+
+### history
+
+Specifies the history collection path for *simple* versioning. The path is interpreted relatively to the root of the sync directory.
+
+Type: string \
+Default: `/.dav-version-history`
+Example:
+
+	<versioning type="simple">
+		<history>/.backup/</history>
+	</versioning>
+
+### symlink-intern
+
+Configures the handling of symlinks, which have a target inside the sync directory. Possible values are: `sync`, `follow` and `ignore`.
+
+Type: symlink enum \
+Default: follow \
+Example: `<symlink-intern>sync</symlink-intern>`
+
+## symlink-extern
+
+Configures the handling of symlinks, which have a target outside the sync directory. Possible values are: `follow` and `ignore`. Unlike internal symlinks, external symlinks cannot be synced.
+
+Type: symlink enum \
+Default: follow \
+Example: `<symlink-extern>ignore</symlink-extern>`
+
 ### tagconfig
 
 Configures the local store for resource tags. If this element is specified, resource tags are stored locally.
@@ -140,6 +204,48 @@
 Default: no_conflict \
 Example: `<on-conflict>merge</on-conflict>`
 
+### splitconfig
+
+Parent element for all `<split>` elements.
+
+### split
+
+Configures if and how files should be splitted into multiple parts on *push*.
+
+The blocksize element configures the size of each part.
+
+The elements filter and minsize specify, in which case the files should be splitted.
+
+Required elements: `<blocksize>` \
+Optional elements: `<filter>`, `<minsize>`
+
+Example:
+
+	<splitconfig>
+		<!-- split all files with .vmdk file extension that are bigger than 100mb -->
+		<split>
+			<blocksize>10m</blocksize>
+			<filter>
+				<include>\.vmdk$</include>
+			</filter>
+			<minsize>100m</minsize>
+		</split>
+	</splitconfig>
+
+### blocksize
+
+Specifies the size of each file part.
+
+Type: size \
+Example: `<blocksize>100k</blocksize>`
+
+### minsize
+
+Specifies the minimal size a file must have for enabling file splitting.
+
+Type: size \
+Default: 0 \
+Example: `<minsize>100m</minsize>`
 
 ### filter
 

mercurial