---
name: "dacs.vfs"
section: "5"
platform: "linux"
package: "dacs"
version: "1.4.40-2"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/dacs.vfs"
---

# dacs.vfs(5)

the DACS virtual filestore

## NAME

dacs.vfs - the **DACS** virtual filestore

## DESCRIPTION

These files are part of the **DACS** suite.

The virtual filestore provides flexible ways for **DACS** and software built on top of **DACS** to obtain information regardless of how or where the information is stored. The **DACS** core accesses (almost) all configuration information through the virtual filestore layer, allowing information to be more easily shared and maintained, secured, or organized for better performance.

Sometimes it is easiest to store information in a regular file initially, where it can be modified using an ordinary text editor, but after some growth a database might improve performance. In some situations, accessing the information remotely, via HTTP, makes administration more convenient or is more secure. A goal of the virtual filestore is to make data storage alternatives easier to specify and change.

### The vfs\_uri and Item Types

Many **DACS** components need to access data to perform their function. The documentation for a component will specify a reserved, case-sensitive name called an item type for each data set that it may use. For example, **[dacspasswd(1)](/dacspasswd/1.md)**\[1\] identifies the account information that it manages by the name passwds.

Item types start with an alphabetic character followed by zero or more alphanumerics, hyphens, and underscores. Item types used by **DACS** are always completely lower case. Some other item types used by **DACS** are federation\_keys and jurisdiction\_keys (used by **[dacskey(1)](/dacskey/1.md)**\[2\] and others), and revocations (used by **[dacs.acls(5)](/dacs.acls/5.md)**\[3\] and others). The **[dacsconf(1)](/dacsconf/1.md)**\[4\] command can list all reserved item types.

The **VFS**\[5\] directive is used to specify the mapping from an item type to a vfs\_uri, which describes where and how the information is stored. Some commands and functions take a vfs\_uri as an argument to provide a default or override a default. A vfs\_uri has the following syntax:

```
vfs_uri -> [ '[' item_type ']' ] URI
```

The general form of the URI syntax is (see **RFC 2396**\[6\] and **RFC 3986**\[7\]):

```
scheme : [ // authority] [path] [query] [fragment]
```

The distribution's conf/site.conf-std file (by default installed as /usr/local/dacs/federations/site.conf; see **[dacs.install(7)](/dacs.install/7.md)**\[8\]) specifies defaults for many item types. For example, it defines the "roles file" (item type roles; see **[dacs\_authenticate(8)](/dacs_authenticate/8.md)**\[9\]) as:

```
VFS "[roles]dacs-kwv-fs:${Conf::FEDERATIONS_ROOT}/${Conf::FEDERATION_DOMAIN}/${Conf::JURISDICTION_NAME}/roles"
```

For the hypothetical federation domain example.com and jurisdiction J1, by default this would resolve to a file, /usr/local/dacs/federations/example.com/J1/roles. That file might consist of entries like:

```
julia:project1/dacs,admin,horses
sara:project2/dacs,project1/dacs,lps
sam:project2/dacs,project1/dacs
admin:root,project2/admin
```

The default location of the **DACS** XML DTDs (item type dtds) is defined as:

```
VFS "[dtds]dacs-fs:${Conf::DACS_HOME}/www/dtd-xsd"
```

By default, this would resolve to the directory /usr/local/dacs/www/dtd-xsd.

Refer to the **VFS**\[5\] directive for additional detail.

### Virtual Filestore Details

Each virtual filestore instance contains either an uninterpreted sequence of bytes (e.g., a Unix file or the output of a program) or an object that contains zero or more items, each of which is associated with a key (i.e., the name of an item relative in its virtual filestore context) and has an uninterpreted sequence of bytes as its value (e.g., a database file, a Unix file containing lines having a particular keyword/value structure, or a directory containing regular files).

For maximum portability, a key should be composed of characters from the **Portable Filename Character Set**\[10\]: any alphanumeric character, period, hyphen, or underscore. The true limitation on the character set depends on the underlying storage scheme and URI syntax constraints. There is no *a priori* limit on naming context or key length.

## SEE ALSO

**[dacsvfs(1)](/dacsvfs/1.md)**\[11\], **[dacs.conf(5)](/dacs.conf/5.md)**\[12\], **[dacs.install(7)](/dacs.install/7.md)**\[8\], **[dacs\_vfs(8)](/dacs_vfs/8.md)**\[13\]

## AUTHOR

Distributed Systems Software (**www.dss.ca**\[14\])

## COPYING

Copyright © 2003-2015 Distributed Systems Software. See the **LICENSE**\[15\] file that accompanies the distribution for licensing information.

## NOTES

- 1\.

  [dacspasswd(1)](/dacspasswd/1.md)

  http://dacs.dss.ca/man/dacspasswd.1.html

- 2\.

  [dacskey(1)](/dacskey/1.md)

  http://dacs.dss.ca/man/dacskey.1.html

- 3\.

  [dacs.acls(5)](/dacs.acls/5.md)

  http://dacs.dss.ca/man/dacs.acls.5.html

- 4\.

  [dacsconf(1)](/dacsconf/1.md)

  http://dacs.dss.ca/man/dacsconf.1.html

- 5\.

  VFS

  http://dacs.dss.ca/man/dacs.conf.5.html#VFS

- 6\.

  RFC 2396

  http://www.rfc-editor.org/rfc/rfc2396.txt

- 7\.

  RFC 3986

  http://www.rfc-editor.org/rfc/rfc3986.txt

- 8\.

  [dacs.install(7)](/dacs.install/7.md)

  http://dacs.dss.ca/man/dacs.install.7.html

- 9\.

  [dacs\_authenticate(8)](/dacs_authenticate/8.md)

  http://dacs.dss.ca/man/dacs\_authenticate.8.html#local\_roles

- 10\.

  Portable Filename Character Set

  http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd\_chap03.html#tag\_03\_276

- 11\.

  [dacsvfs(1)](/dacsvfs/1.md)

  http://dacs.dss.ca/man/dacsvfs.1.html

- 12\.

  [dacs.conf(5)](/dacs.conf/5.md)

  http://dacs.dss.ca/man/dacs.conf.5.html

- 13\.

  [dacs\_vfs(8)](/dacs_vfs/8.md)

  http://dacs.dss.ca/man/dacs\_vfs.8.html

- 14\.

  www.dss.ca

  http://www.dss.ca

- 15\.

  LICENSE

  http://dacs.dss.ca/man/../misc/LICENSE
