# Commandline Application - 4ss

#### Command-line client for 4Suite repository access

> This command is a client that provides access to a 4Suite repository and RDF model from the command line. The repository must exist and must be accessible via a 4Suite RPC server.

## Usage

    4ss
    [--help] [--show-commands]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
--show-commands | show system command tree

## Sub Commands

Command | Description
--- | ---
4ss add | Relate two resources in a repository (e.g., add a User to a Group)
4ss agent | Spawn a subshell that knows authentication defaults
4ss create | Create a resource in a repository
4ss delete | Delete a resource from a repository
4ss export | Export an application from a repository to the filesystem
4ss fetch | Retrieve a resource from the repository
4ss install | Install, update, or remove a repository application
4ss list | List certain types of resources in a repository
4ss login | Associate a default password, host, port with a username
4ss passwd | Set the password for a User in a repository
4ss rdf | Perform basic operations on an RDF model in a repository
4ss remove | Unrelate two resources in a repository (e.g., remove a User from a Group)
4ss render | Perform an XSLT transformation using documents in a repository
4ss set | Set properties on a resource in a repository
4ss update | Update the content of a resource in a repository

# Command - 4ss set

#### Set properties on a resource in a repository

> This command sets properties, such as access permissions or arbitrary user data, for a resource in a 4Suite repository. A subcommand specifying which type of property to set is required. See the help message for a subcommand for specific usage info.

## Usage

    4ss set
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Sub Commands

Command | Description
--- | ---
4ss set acl | Set access control info for a resource in a repository
4ss set owner | Set the owner of a resource in a repository
4ss set strobe | In a repository, flag a stylesheet to be executed at regular intervals
4ss set userdata | Set custom data associated with a User in a repository

# Command - 4ss set owner

#### Set the owner of a resource in a repository

> This command sets the owner of a resource in a 4Suite repository. The new owner must be an existing User. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss set owner
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>] path
    newowner

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
path | path of the resource
newowner | name of the User to set as the new owner

# Command - 4ss set userdata

#### Set custom data associated with a User in a repository

> This command sets one custom name-value data pair associated with a User resource in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss set userdata
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    userName key [value]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
userName | the name of the User
key | the key (name part) of a name-value pair
value | the value for a name-value pair; no value means delete the key

# Command - 4ss set strobe

#### In a repository, flag a stylesheet to be executed at regular intervals

> This command adds an XSLT Stylesheet resource in a 4Suite repository to a list of stylesheets that will be automatically executed against an empty source document at regular intervals.

## Usage

    4ss set strobe
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>] path

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
path | path of stylesheet to set for the strobe

# Command - 4ss set acl

#### Set access control info for a resource in a repository

> This command sets access control info for a resource in a 4Suite repository. It will prompts for specific permissions to add or modify. Requires write access on the resource. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss set acl
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>] path

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
path | the path of the resource

# Command - 4ss render

#### Perform an XSLT transformation using documents in a repository

> This command will use 4xslt to render a source document with an XSLT stylesheet. Both the source and stylesheet must exist in a 4Suite repository, although the source document can be a virtual document such as the metadata XML for any resource in the repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss render
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--define=<NAME=VALUE>] path stylesheet...

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-D, --define=<NAME=VALUE> | Bind a top-level parameter

## Arguments

Name | Description
--- | ---
path | the path of the source document
stylesheet | the path of the stylesheet

# Command - 4ss passwd

#### Set the password for a User in a repository

> This command sets a 4Suite repository User's password. It will first prompt for the new password to set. Then it will attempt to connect to the repository and change the password, prompting first for credentials and access info if necessary. The user accessing the repository must have write access on the User resource for which the password is being modified.

## Usage

    4ss passwd
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    userName

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
userName | User for which to change the password

# Command - 4ss create

#### Create a resource in a repository

> This command will create a resource in a 4Suite repository. It requires a subcommand specifying which type of resource to create. See the help message for one of the subcommands for specific usage info.

## Usage

    4ss create
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Sub Commands

Command | Description
--- | ---
4ss create alias | Create a new Alias for an existing resource in a repository
4ss create container | Create a new Container in a 4Suite repository
4ss create document | Create a new XML Document in a repository
4ss create group | Create a new Group in a repository
4ss create rawfile | Create a new Raw File in a repository
4ss create server | Create a new server definition in a 4Suite repository
4ss create urireference | Create a new URI Reference in a repository
4ss create user | Create a new User and sets its password in a repository

# Command - 4ss create container

#### Create a new Container in a 4Suite repository

> This command creates a new Container resource in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss create container
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--create-parents] path

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-r, --create-parents | Recursively build all parent containers to complete the path.

## Arguments

Name | Description
--- | ---
path | The name (repo path) of container to create

# Command - 4ss create urireference

#### Create a new URI Reference in a repository

> This command creates a new URI Reference resource in a 4Suite repository. A URI Reference resource is like a Raw File but its content is always obtained on demand by dereferencing the stored URI. The first dereference operation occurs when this command is run, so the resource identified by the URI must be retrievable at that time. Resource metadata (size, etc.) from the last dereference operation is stored in the repository. Media type information is not obtained automatically; if a media type is not given on the command line, it will default to text/plain. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss create urireference
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--imt=<imt>] path sourceUri

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
--imt=<imt> | The referenced resource's Internet Media Type. Default: text/plain.

## Arguments

Name | Description
--- | ---
path | The repo path of the new UriReference resource
sourceUri | The URI to reference

# Command - 4ss create server

#### Create a new server definition in a 4Suite repository

> This command creates a new Server definiiton resource in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss create server
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

# Command - 4ss create alias

#### Create a new Alias for an existing resource in a repository

> This command creates a new Alias resource for an existing resource in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository. Prior to 4Suite 1.0b1, this command was known as '4ss add alias'.

## Usage

    4ss create alias
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    alias sourcePath

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
alias | The full repository path of the new alias.
sourcePath | The path to the resource being aliased.

# Command - 4ss create user

#### Create a new User and sets its password in a repository

> This command creates a new User resource in the 4Suite repository. It will first prompt for a password for the new User. Then it will attempt to connect to the repository to create the user, prompting first for credentials and access info if necessary. The user accessing the repository must have sufficient permissions in order to create the new User, and the new User must not already exist.

## Usage

    4ss create user
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--container=<PATH>] userName

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-c, --container=<PATH> | The container in which to create the user (default: '/ftss/users')

## Arguments

Name | Description
--- | ---
userName | The name of the user to create.

# Command - 4ss create rawfile

#### Create a new Raw File in a repository

> This command creates a new Raw File resource in a 4Suite repository. A Raw File is used to store non-XML based data in the repository. If you are storing XML data, please see the '4ss create document' command. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss create rawfile
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--imt=<imt>] path source-uri [alias]...

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
--imt=<imt> | The file's Internet Media Type. Default: text/plain.

## Arguments

Name | Description
--- | ---
path | The repo path of the Raw File to create
source-uri | The URI to read the file's content from, or '-' for stdin
alias | Additional aliases to assign to the new file.

# Command - 4ss create group

#### Create a new Group in a repository

> This command creates a new Group resource in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss create group
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--container=<PATH>] groupName

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-c, --container=<PATH> | The container in which to create the group (default: '/ftss/groups')

## Arguments

Name | Description
--- | ---
groupName | The name of the group to create

# Command - 4ss create document

#### Create a new XML Document in a repository

> This command creates a new XML Document resource in a 4Suite repository. An XML Document resource is used to store XML-based data in the repository. If you are storing non-XML data, see the '4ss create rawfile' command. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss create document
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--imt=<IMT>] [--docdef=<docdef>]
    [--type=[xml|xslt|schematron|rdf|container|user|xpathdocdef|xsltdocdef|group|alias|server]]
    path source-uri [alias]...

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-i, --imt=<IMT> | The document's Internet Media Type. Default: text/xml
-D, --docdef=<docdef> | The path of a Document Definition (already in the repo) to use, if RDF statements are to be derived from the document
-t, --type=[xml|xslt|schematron|rdf|container|user|xpathdocdef|xsltdocdef|group|alias|server] | The 4SS document type. If none specified, then the type is inferred from the document's content Allowed Values:
xml | generic XML Document (this is the default)
xslt | XSLT Document
schematron | Schematron Document
rdf | RDF Document
container | Container
user | User
xpathdocdef | XPath Document Definition
xsltdocdef | XSLT Document Definition
group | Group
alias | Alias
server | Server definition

## Arguments

Name | Description
--- | ---
path | The repo path of the document to create
source-uri | The URI to read the document's content from, or '-' for stdin
alias | Additional aliases to assign to the new document

# Command - 4ss list

#### List certain types of resources in a repository

> This command lists information about sets of certain types of resources in a 4Suite repository. A subcommand specifying which type of resource to list is required. See the help message for a subcommand for specific usage info.

## Usage

    4ss list
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Sub Commands

Command | Description
--- | ---
4ss list docdefs | List all Document Definitions in a repository
4ss list groups | List all Groups in a repository
4ss list users | List all Users in a repository

# Command - 4ss list docdefs

#### List all Document Definitions in a repository

> This command lists all Document Definition resources in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss list docdefs
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

# Command - 4ss list users

#### List all Users in a repository

> This command lists all User resources in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss list users
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--fullpaths]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-f, --fullpaths | list full paths instead of user names

# Command - 4ss list groups

#### List all Groups in a repository

> This command lists all Group resources in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss list groups
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--fullpaths]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-f, --fullpaths | list full paths instead of group names

# Command - 4ss update

#### Update the content of a resource in a repository

> This command will replace the content of an existing resource in a 4Suite repository, reading in the new content from a file on the local filesystem, for example. A subcommand specifying which type of resource to update is required. See the help message for a subcommand for specific usage info.

## Usage

    4ss update
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Sub Commands

Command | Description
--- | ---
4ss update document | Update the content of an XML Document in a repository
4ss update extension | Reload an extension module in a repository
4ss update rawfile | Update the content of a Raw File in a repository

# Command - 4ss update document

#### Update the content of an XML Document in a repository

> This command updates the content of an existing XML Document resource in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss update document
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--imt=<imt>] [[--docdef=<docdef>] | [--nodocdef]] path
    sourceUri

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
--imt=<imt> | The internet media type to assign to the document. If not specified it is left unchanged.
--docdef=<docdef> | The new document definition for this document
--nodocdef | remove the current doc def

## Arguments

Name | Description
--- | ---
path | The repo path of the existing document in the repository.
sourceUri | The URI to read the source from (Use '-' to read it from standard input)

# Command - 4ss update extension

#### Reload an extension module in a repository

> This command reloads an extension module in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss update extension
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    module

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
module | The Python module name

# Command - 4ss update rawfile

#### Update the content of a Raw File in a repository

> This command updates the content of an existing Raw File resource in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss update rawfile
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--imt=<imt>] path sourceUri

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
--imt=<imt> | The file's Internet Media Type. Default: no change.

## Arguments

Name | Description
--- | ---
path | The repo path of the file
sourceUri | The URI to read the file's content from, or '-' for stdin

# Command - 4ss agent

#### Spawn a subshell that knows authentication defaults

> This command will set a default username, password hash, hostname and port in an environment variable in a new shell so that you do not need to provide this info for subsequent invocations of 4ss command-line scripts. The username and password must be valid for the repository server on the given host and port. This command is an alternative to the login command.

## Usage

    4ss agent
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [shell]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
shell | name of shell to execute (default is system specific)

# Command - 4ss add

#### Relate two resources in a repository (e.g., add a User to a Group)

> This command is used to create a certain type of relationship between two objects in a 4Suite repository. See the help message for one of the subcommands for details.

## Usage

    4ss add
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Sub Commands

Command | Description
--- | ---
4ss add member | Add a User to a Group in a repository

# Command - 4ss add member

#### Add a User to a Group in a repository

> This command adds a User to a Group in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss add member
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    groupName memberName

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
groupName | The name (not path) of the Group
memberName | The name (not path) of the User

# Command - 4ss rdf

#### Perform basic operations on an RDF model in a repository

> This command allows one to perform basic operations on the 4Suite RDF model. It requires a subcommand specifying what operation is desired. See the help message for each subcommand for specific usage info.

## Usage

    4ss rdf
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Sub Commands

Command | Description
--- | ---
4ss rdf add | Add RDF statements to a given scope
4ss rdf complete | Perform an RDF complete
4ss rdf remove | Remove RDF statements from a given scope
4ss rdf versa | Perform a Versa query

# Command - 4ss rdf add

#### Add RDF statements to a given scope

> Adds statements to the user RDF model associated with a 4Suite repository. A single statement can be given via command-line arguments, or multiple statements can be given in an RDF XML file that will be deserialized. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss rdf add
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--document=<URI>] [--create] [--imt] [--objtype=<TYPE>]
    scope [subject] [predicate] [object] [uri]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-d, --document=<URI> | Add statements deserialized from the given document
--create | When adding a single statement, create a virtual RDF document representing the scope, if it doesn't already exist
--imt | When creating a virtual RDF document, the Internet Media Type (default: text/xml) to set
--objtype=<TYPE> | When adding a single statement, the type of the object, either 'resource' or 'literal' (default: literal)

## Arguments

Name | Description
--- | ---
scope | The scope into which the statements are to be added
subject | The subject of the new statement
predicate | The predicate of the new statement
object | The object of the new statement
uri | The URI of the new statement.

# Command - 4ss rdf versa

#### Perform a Versa query

> This command performs a query on the combined user and system RDF models, using the Versa query language for RDF. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss rdf versa
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--quiet] [--query-file=<query-file>] [--no-mapping-file]
    [--scope=<scope>] [query]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-q, --quiet | Present no output except for errors or any result
-f, --query-file=<query-file> | A file with the Versa query
--no-mapping-file | Do not use the user's namespace mapping file
--scope=<scope> | a scope to restrict the query

## Arguments

Name | Description
--- | ---
query | The query to perform. Required if --file is not specified

# Command - 4ss rdf complete

#### Perform an RDF complete

> This command performs an RDF "complete": a query that returns, by default, all RDF statements from the combined system and user models in a 4Suite repository. The query can be constrained to return only those statements with a certain subject, predicate, object, scope, or statement URI, in any combination. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss rdf complete
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--subject=<subject>] [--predicate=<predicate>]
    [--object=<object>] [--uri=<URI>] [--scope=<scope>] [--xml]
    [--flat-model]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
--subject=<subject> | The subject for the complete
--predicate=<predicate> | The predicate for the complete
--object=<object> | The object for the complete
--uri=<URI> | The URI of the statement to fetch
--scope=<scope> | The scope of statements to fetch
-x, --xml | Generate Serialized RDF in XML format
--flat-model | Do not show the results sorted by scope

# Command - 4ss rdf remove

#### Remove RDF statements from a given scope

> This command removes statements from the user RDF model in a 4Suite repository. A single statement can be given via command-line arguments, or multiple statements can be given in an RDF XML file that will be deserialized. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss rdf remove
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--document=<document>] [--subject=<subject>]
    [--predicate=<predicate>] [--object=<object>]
    [--subject-regex] [--predicate-regex] [--object-regex]
    [scope]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-d, --document=<document> | Remove statements deserialized from the given document
--subject=<subject> | The subject of statements selected to be deleted
--predicate=<predicate> | The predicate of statements selected to be deleted
--object=<object> | The object of statements selected to be deleted
--subject-regex | The subject string is a regular expression to match
--predicate-regex | The predicate string is a regular expression to match
--object-regex | The object string is a regular expression to match

## Arguments

Name | Description
--- | ---
scope | The scope from which the statements are to be removed

# Command - 4ss export

#### Export an application from a repository to the filesystem

> This command will export an application from a 4Suite repository, creating a setup.xml file and a mirror of the application's resources as files on the local filesystem. The application is assumed to be all resources in a particular container (including descendant containers). The user doing the export must have read access to all of the files in the container. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss export
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--directory=<DIR>] [--version=<VERS>]
    [--description=<DESC>] [--title=<TITLE>]
    [--archive=[gztar|ztar|bztar|zip|tar]] [path]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-d, --directory=<DIR> | directory to export to (must already exist)
--version=<VERS> | set version of exported application
--description=<DESC> | set description of exported application
--title=<TITLE> | set title of exported application
--archive=[gztar|ztar|bztar|zip|tar] | archive the exported data (options are platform-dependent) Allowed Values:
gztar | gzip'ed tar-file
ztar | compressed tar file
bztar | bzip2'ed tar-file
zip | ZIP file
tar | uncompressed tar file

## Arguments

Name | Description
--- | ---
path | the base path (in the repo) of the application to export (default: /)

# Command - 4ss remove

#### Unrelate two resources in a repository (e.g., remove a User from a Group)

> This command is used to delete a certain type of relationship between two objects in a 4Suite repository. See the help message for one of the subcommands for details.

## Usage

    4ss remove
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Sub Commands

Command | Description
--- | ---
4ss remove member | Remove a User from a Group in a repository

# Command - 4ss remove member

#### Remove a User from a Group in a repository

> This command removes a User from a Group in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss remove member
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    groupName userName

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
groupName | The name (not path) of the Group
userName | The name (not path) of the User

# Command - 4ss install

#### Install, update, or remove a repository application

> This command reads a 4Suite repository application's setup XML file from the local filesystem and uses it to install, update or remove the application in a repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss install
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--demo] [--dashboard] [--delete] [--base=<base>] [--quiet]
    [--no-acl] [setup]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
--demo | install the 4Suite repository demo applications
--dashboard | install the 4Suite repository Dashboard applicaiton
-D, --delete | delete an installed repository application
-b, --base=<base> | base path (in the repo) where the application should be installed
-q, --quiet | don't display what is happening
--no-acl | don't sync ACL (install faster)

## Arguments

Name | Description
--- | ---
setup | the location of the setup XML file on the local filesystem; if not given, then you must provide the --demo flag

# Command - 4ss login

#### Associate a default password, host, port with a username

> This command will associate a password hash, hostname and port with a username, storing the info in a password file on the local filesystem. Subsequent invocations of 4ss command-line scripts can then automatically look up access info for connecting to a repository. The location of the password file is determined by the FTSS_PASSWORD_FILE environment variable. If not set, then the location is assumed to be a file named '.4ss.passwd' in the directory determined by the environment variable HOME (on Unix) or HOMEPATH (on Windows), or the environment variable WINDIR (on Windows) (one must be set). If the password file does not exist, it will be created when the first entry is stored. The location must be writable by the user invoking the command. At this time, this command does NOT verify that the username, password hash, hostname and port combination is valid; no repository connection is made.

## Usage

    4ss login
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [username]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
username | User for which to set defaults

# Command - 4ss fetch

#### Retrieve a resource from the repository

> This command retrieves the content of a resource from a 4Suite repository. It requires a subcommand specifying which type of resource to fetch. See the help message for one of the subcommands for specific usage info.

## Usage

    4ss fetch
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Sub Commands

Command | Description
--- | ---
4ss fetch container | List contents of a Container in a repository
4ss fetch docdef | Print info about a Document Definition in a repository
4ss fetch document | Print content of an XML-based document in a repository
4ss fetch group | Print information about a Group in a repository
4ss fetch rawfile | Print raw content of a resource in a repository
4ss fetch resource | Print general info about a resource in a repository
4ss fetch user | Print information about a User in a repository
4ss fetch userdata | List custom data associated with a User in a repository

# Command - 4ss fetch resource

#### Print general info about a resource in a repository

> This command prints a summary of the metadata for a resource in a 4Suite repository. Metadata includes the resource type, creation date, last modified date, Internet Media Type, size, owner, and ACL. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss fetch resource
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>] path

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
path | the path of the resource

# Command - 4ss fetch group

#### Print information about a Group in a repository

> This command prints information about a Group resource in a 4Suite repository. It lists the group's members and summarizes its ACL. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss fetch group
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    groupName

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
groupName | the name of the Group

# Command - 4ss fetch userdata

#### List custom data associated with a User in a repository

> This command lists the custom name-value data pairs associated with a User resource in a 4Suite repository. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss fetch userdata
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    userName [key]...

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
userName | the name of the User
key | the key (name part) of a name-value pair; if none are given, all data will be listed

# Command - 4ss fetch docdef

#### Print info about a Document Definition in a repository

> This command produces a summary of the information in a Document Definition resource ("DocDef") in a 4Suite repository. For XSLT based DocDefs, fetches the XSLT document. For XPath based DocDefs, provides a formatted summary. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss fetch docdef
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>] path

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
path | the path of the Document Definition

# Command - 4ss fetch user

#### Print information about a User in a repository

> This command prints information about a User resource in the 4Suite repository. Lists the user's password hash, ACL, and group membership. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss fetch user
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    userName

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
userName | the name of the User

# Command - 4ss fetch rawfile

#### Print raw content of a resource in a repository

> This command prints the raw content of a resource in a 4Suite repository, without additional interpretation. The resource type must be a Raw File or a subclass thereof (most resource types are). If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss fetch rawfile
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--quiet] path

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-q, --quiet | Don't preface output with informational header

## Arguments

Name | Description
--- | ---
path | the path of the Raw File

# Command - 4ss fetch container

#### List contents of a Container in a repository

> This command produces a directory-like listing of the resources that are the children of a Container in a 4Suite repository. Columns in the listing include: Internet Media Type, size in bytes, date last modified, and resource's relative name. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss fetch container
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [path]

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to

## Arguments

Name | Description
--- | ---
path | the path of the Container (default: /)

# Command - 4ss fetch document

#### Print content of an XML-based document in a repository

> This command prints the content of an XML-based document (e.g. an XML Document or XSLT Document) in a 4Suite repository. Currently, the output is the same as for '4ss fetch rawfile', but it may eventually be interpreted as if processed by a repository-aware version of '4xml'. If necessary, you will be prompted first for credentials and access info to connect to the repository.

## Usage

    4ss fetch document
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--quiet] path

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
-q, --quiet | Don't preface output with informational header

## Arguments

Name | Description
--- | ---
path | the path of the Document

# Command - 4ss delete

#### Delete a resource from a repository

> This command will delete from a 4Suite repository all resources with paths matching a given pattern. The pattern may contain shell-style wildcards as supported by Python's fnmatch module (but you probably have to escape them from being matched by your own shell first). If necessary, you will be prompted first for credentials and access info to connect to the repository. Aliases are normally traversed, so in order to delete an Alias, use the --no-traverse option.

## Usage

    4ss delete
    [--help] [[--username=<USER>] | [--anonymous]]
    [--password=<PASSWORD>] [--port=<PORT>] [--host=<HOST>]
    [--no-traverse] [--interactive] path

## Options

Name | Description
--- | ---
-h, --help | show detailed help message
-u, --username=<USER> | connect using the given user name
-a, --anonymous | connect as anonymous user
--password=<PASSWORD> | connect using the given password
-p, --port=<PORT> | the port to connect to
--host=<HOST> | the host to connect to
--no-traverse | don't traverse aliases
-i, --interactive | prompt for confirmation before deleting

## Arguments

Name | Description
--- | ---
path | the path of the resource to delete; can be a regular expression