filesystem.listdir

Get the contents of a directory.

The select option may be used to optimize listdir performance. Metadata-related fields that are not selected will not be retrieved from the filesystem.

For example {“select”: [“path”, “type”]} will avoid querying an xattr list and ZFS attributes for files in a directory.

NOTE: an empty list for select (default) is treated as requesting all information.

Each entry of the list consists of: name(str): name of the file path(str): absolute path of the entry realpath(str): absolute real path of the entry (if SYMLINK) type(str): DIRECTORY | FILE | SYMLINK | OTHER size(int): size of the entry allocation_size(int): on-disk size of entry mode(int): file mode/permission uid(int): user id of entry owner gid(int): group id of entry owner acl(bool): extended ACL is present on file is_mountpoint(bool): path is a mountpoint is_ctldir(bool): path is within special .zfs directory attributes(list): list of statx file attributes that apply to the file. See statx(2) manpage for more details. xattrs(list): list of extended attribute names. zfs_attrs(list): list of ZFS file attributes on file

Type: object

Type: array
No Additional Items

Tuple Validation

Parameter 1: path

path

Type: string

Must be at least 1 characters long

Parameter 2: query_filters

query_filters

Type: array Default: []

List of filters for query results. See API documentation for "Query Methods" for more guidance.

No Additional Items
Each item of this array must be:
Type: object

Examples:

[
    [
        "name",
        "=",
        "bob"
    ]
]
[
    [
        "OR",
        [
            [
                [
                    "name",
                    "=",
                    "bob"
                ]
            ],
            [
                [
                    "name",
                    "=",
                    "larry"
                ]
            ]
        ]
    ]
]
Parameter 3: query_options

query_options

Type: object
Default:
{ "relationships": true, "extend": null, "extend_fk": [], "extend_context": null, "prefix": null, "extra": {}, "order_by": [], "select": [], "count": false, "get": false, "offset": 0, "limit": 0, "force_sql_filters": false }

Query options customize the results returned by a query method. More complete documentation with examples
are covered in the "Query methods" section of the TrueNAS API documentation.

No Additional Properties

Relationships

Type: boolean Default: true

Extend

Default: null

Type: string
Type: null

Extend Fk

Type: array of string Default: []
No Additional Items
Each item of this array must be:
Type: string

Extend Context

Default: null

Type: string
Type: null

Prefix

Default: null

Type: string
Type: null

Extra

Type: object Default: {}

Extra options are defined on a per-endpoint basis and are described in the documentation for the associated
query method.

Order By

Type: array of string Default: []

An array of field names describing the manner in which query results should be ordered. The field names may
also have one of more of the following special prefixes: - (reverse sort direction), nulls_first: (place
any null values at the head of the results list), nulls_last: (place any null values at the tail of the
results list).

No Additional Items
Each item of this array must be:
Type: string

Example:

[
    "size",
    "-devname",
    "nulls_first:-expiretime"
]

Select

Type: array Default: []

An array of field names specifying the exact fields to include in the query return. The dot character .
may be used to explicitly select only subkeys of the query result.

No Additional Items
Each item of this array must be:

Type: string
Type: array
No Additional Items
Each item of this array must be:
Type: object

Example:

[
    "username",
    "Authentication.status"
]

Count

Type: boolean Default: false

Return a numeric value representing the number of items that match the specified query-filters.

Get

Type: boolean Default: false

Return the JSON object of the first result matching the specified query-filters. The query fails
if there specified query-filters return no results.

Offset

Type: integer Default: 0

This specifies the beginning offset of the results array. When combined with the limit query-option
it may be used to implement pagination of large results arrays. WARNING: some query methods provide
volatile results and the onus is on the developer to understand whether pagination is appropriate
for a particular query API method.

Limit

Type: integer Default: 0

This specifies the maximum number of results matching the specified query-filters to return. When
combined wtih the offset query-option it may be used to implement pagination of large results arrays.
WARNING: some query methods provide volatile results and the onus is on the developer to understand whether
pagination is appropriate for a particular query API method.

Force Sql Filters

Type: boolean Default: false

Result


Type: array of object
No Additional Items
Each item of this array must be:

FilesystemDirQueryResultItem

Type: object
No Additional Properties

Name

Type: string

Entry's base name.

Must be at least 1 characters long

Path

Type: string

Entry's full path.

Must be at least 1 characters long

Realpath

Type: string

Canonical path of the entry, eliminating any symbolic links

Must be at least 1 characters long

Type

Type: enum (of string)
Must be one of:
  • "DIRECTORY"
  • "FILE"
  • "SYMLINK"
  • "OTHER"

Size

Type: integer

Size in bytes of a plain file. This corresonds with stx_size.

Allocation Size

Type: integer

Allocated size of file. Calculated by multiplying stx_blocks by 512.

Mode

Type: integer

Entry's mode including file type information and file permission bits. This corresponds with stx_mode.

Mount Id

Type: integer

The mount ID of the mount containing the entry. This corresponds to the number in first
field of /proc/self/mountinfo and stxmntid.

Acl

Type: boolean

Specifies whether ACL is present on the entry. If this is the case then file permission
bits as reported in mode may not be representative of the actual permissions.

Uid

Type: integer

User ID of the entry's owner. This corresponds with stx_uid.

Gid

Type: integer

Group ID of the entry's owner. This corresponds with stx_gid.

Is Mountpoint

Type: boolean

Specifies whether the entry is also the mountpoint of a filesystem.

Is Ctldir

Type: boolean

Specifies whether the entry is located within the ZFS ctldir (for example a snapshot).

Attributes

Type: array of enum (of string)

Extra file attribute indicators for entry as returned by statx. Expanded from stx_attributes.

No Additional Items
Each item of this array must be:
Type: enum (of string)
Must be one of:
  • "COMPRESSED"
  • "APPEND"
  • "NODUMP"
  • "IMMUTABLE"
  • "AUTOMOUNT"
  • "MOUNT_ROOT"
  • "VERIFY"
  • "DAX"

Xattrs

Type: array of string

List of xattr names of extended attributes on file.

No Additional Items
Each item of this array must be:
Type: string

Must be at least 1 characters long

Zfs Attrs


List of extra ZFS-related file attribute indicators on file. Will be None type if filesystem is not ZFS.

Type: array of enum (of string)
No Additional Items
Each item of this array must be:
Type: enum (of string)
Must be one of:
  • "READONLY"
  • "HIDDEN"
  • "SYSTEM"
  • "ARCHIVE"
  • "IMMUTABLE"
  • "NOUNLINK"
  • "APPENDONLY"
  • "NODUMP"
  • "OPAQUE"
  • "AV_QUARANTINED"
  • "AV_MODIFIED"
  • "REPARSE"
  • "OFFLINE"
  • "SPARSE"
Type: null

FilesystemDirQueryResultItem

Type: object
No Additional Properties

Name

Type: string

Entry's base name.

Must be at least 1 characters long

Path

Type: string

Entry's full path.

Must be at least 1 characters long

Realpath

Type: string

Canonical path of the entry, eliminating any symbolic links

Must be at least 1 characters long

Type

Type: enum (of string)
Must be one of:
  • "DIRECTORY"
  • "FILE"
  • "SYMLINK"
  • "OTHER"

Size

Type: integer

Size in bytes of a plain file. This corresonds with stx_size.

Allocation Size

Type: integer

Allocated size of file. Calculated by multiplying stx_blocks by 512.

Mode

Type: integer

Entry's mode including file type information and file permission bits. This corresponds with stx_mode.

Mount Id

Type: integer

The mount ID of the mount containing the entry. This corresponds to the number in first
field of /proc/self/mountinfo and stxmntid.

Acl

Type: boolean

Specifies whether ACL is present on the entry. If this is the case then file permission
bits as reported in mode may not be representative of the actual permissions.

Uid

Type: integer

User ID of the entry's owner. This corresponds with stx_uid.

Gid

Type: integer

Group ID of the entry's owner. This corresponds with stx_gid.

Is Mountpoint

Type: boolean

Specifies whether the entry is also the mountpoint of a filesystem.

Is Ctldir

Type: boolean

Specifies whether the entry is located within the ZFS ctldir (for example a snapshot).

Attributes

Type: array of enum (of string)

Extra file attribute indicators for entry as returned by statx. Expanded from stx_attributes.

No Additional Items
Each item of this array must be:
Type: enum (of string)
Must be one of:
  • "COMPRESSED"
  • "APPEND"
  • "NODUMP"
  • "IMMUTABLE"
  • "AUTOMOUNT"
  • "MOUNT_ROOT"
  • "VERIFY"
  • "DAX"

Xattrs

Type: array of string

List of xattr names of extended attributes on file.

No Additional Items
Each item of this array must be:
Type: string

Must be at least 1 characters long

Zfs Attrs


List of extra ZFS-related file attribute indicators on file. Will be None type if filesystem is not ZFS.

Type: array of enum (of string)
No Additional Items
Each item of this array must be:
Type: enum (of string)
Must be one of:
  • "READONLY"
  • "HIDDEN"
  • "SYSTEM"
  • "ARCHIVE"
  • "IMMUTABLE"
  • "NOUNLINK"
  • "APPENDONLY"
  • "NODUMP"
  • "OPAQUE"
  • "AV_QUARANTINED"
  • "AV_MODIFIED"
  • "REPARSE"
  • "OFFLINE"
  • "SPARSE"
Type: null
Type: integer


Required roles: FILESYSTEM_ATTRS_READ