RapidIdentity Product Guide: New UI

File Actions

Add Access Control Entry (ACE) to a file/directory on an SMB/CIFS file system.

Property

Value

Description

smbFilesystem*

expression, variable

the filesystem definition to use (must be SMB/CIFS filesystem)

path*

text, expression, variable

the path of the target file or directory

principal*

text, expression, variable

The user or group to which the ACE applies. For single-domain environments, this will be the sAMAAccountName. If you are referencing a user account that is on another trusted domain, use the objectSid of the user

type*

choice (ALLOW, DENY), text, expression, variable

the ACE type

mask*

choice (NONE, READ_ONLY, READ_EXECUTE, CHANGE, FULL), text, expression, variable

the permissions mask

containerInherit*

boolean, expression, variable

the ACE will be inherited by directories

objectInherit*

boolean, expression, variable

the ACE will by files

inheritOnly*

boolean, expression, variable

the ACE does not apply to the current file/directory

noPropagateInherit*

boolean, expression, variable

the ACE does not propagate inheritance

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

smbFS = defineRemoteFilesystem("smb", "smbtestserver", "/testdir")
result = addSMBFileACE(smbFS, "/testdir", "testuser", "ALLOW", 
    "CHANGE", true, true, false, false)

Build a file path from a directory path, file name, and optional added extension.

Property

Value

Description

parentPath*

text, expression, variable

the parent path of the file

name*

text, expression, variable

the file name

ext

text, expression, variable

the added extension

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

path = buildFilePath("/home/bsmith","students","csv")

Clear Access Control Entry (ACE) from a file/directory on an SMB/CIFS file system.

Property

Value

Description

smbFilesystem*

expression, variable

the filesystem definition to use (must be SMB/CIFS filesystem)

path*

text, expression, variable

the path of the target file or directory

principal*

text, expression, variable

the User or Group to clear

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

smbFS = defineRemoteFilesystem("smb", "smbtestserver", "/testdir")
result = clearSMBFileACE(smbFS, "/testdir", "testuser")

Copy a file or directory.

Property

Value

Description

srcFilesystem

expression, variable

the source filesystem definition to use (default: dss server managed files)

srcPath*

text, expression, variable

the path of the source file or directory

destFilesystem

expression, variable

the destination filesystem definition to use (default: dss server managed files)

destPath*

text, expression, variable

the path of the destination file or directory

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

srcfs = defineRemoteFilesystem("sftp","host1","user","password","/")
destfs = defineRemoteFilesystem("sftp","host2","user","password","/")
result = copyFile(srcfs,"etc/hosts",destfs,"etc/hosts")

Create a directory.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path of the directory

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

fs = defineRemoteFilesystem("sftp","host","user","password",
    "/home/bsmith")
createDirectory(fs,"dir1") 

Define a remote filesystem.

Property

Value

Description

protocol*

choice (sftp, ftp, ftps, smb, s3), text, expression, variable

The remote access protocol

host*

text, expression, variable

The remote host name, address, or s3 [<region-or-endpoint>:]<bucket-name>

port

expression, variable

The remote port (default: depends on protocol)

user

text, expression, variable

The remote username (default:none)

password

password, string, expression, variable

The remote password (default:none)

basePath*

text, expression, variable

The path to the base of the filesystem object or Record containing extra configuration properties to customize the connection

extraProperties

expression, variable

Defined below as applicable

Field

Value

connectTimeout

S3/FTP/FTPS Connection Timeout (in milliseconds (ms))

dataTimeout

FTP/FTPS Data Timeout or S3 Request Timeout (ms)

ftpsImplicitMode

Set to true to use implicit mode (default explicit)

ftpsProtC

Set to true to use PROT C (default is P)

ftpsProtS

Set to true to use PROT S (default is P)

ftpsProtE

Set to true to use PROT E (default is P)

ftpsTrustAll

Set to true to trust all TLS Certificates

ftpsTrustSelfSigned

Set to true to trust a self-signed TLS Certificate from the defined host

sftp.passPhrase

The passphrase for sftp.privateKey (required if sftp.privateKey is passphrase protected).

sftp.privateKey

SSH private key as a String in OpenSSH/PEM format.

sftp.publicKey

SSH public key as a String in OpenSSH/PEM format (required if the sftp.privateKey is in a format that does not include the public key).

socketTimeout

S3/FTP/FTPS Socket Timeout or SFTP Timeout (ms)

userDirIsRoot

true =  basePath is relative to the user's home directory false=  (default) basePath is relative to the root directory where home is the directory where the user is initially placed upon login and root directory corresponds to the path / which may be the actual root of the physical file system or may be a virtual root, depending on how the file server is configured. Applies only to ftp and sftp.

Various Properties for JCIFS NG

Multiple properties for JCIFS NG are now supported in RapidIdentity. These properties can be used for troubleshooting, performance enhancements, etc. as needed.

Note

This is only applicable when protocol = smb

Property

Value

Description

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

fs = defineRemoteFilesystem("sftp","host","user","password",
    "/home/bsmith")

Delete a file or directory.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path of the file

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

fs = defineRemoteFilesystem("sftp","host","user","password",
    "/home/bsmith")
fileExists = isFile(fs,"deleteme")
if(fileExists) {
    deleteFile(fs,"deleteme")
} else {
    log("There is no file to delete")
}

Get the extension from a file name or file path.

Property

Value

Description

path*

text, expression, variable

the path of the file

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

# should return "log"
ext = getFileExtension("apache.log")

Get the name from a file path.

Property

Value

Description

path*

text, expression, variable

the path of the file

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

# should return ".XAuthority"
ext = getFileName("/home/jdoe/.XAuthority")

Get the parent directory path from a file path

Property

Value

Description

path*

text, expression, variable

the path of the file

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

# should return "/home/jdoe"
ext = getFileParentDirectory("/home/jdoe/.XAuthority")

Gets the file size in bytes.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path of the file

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

size = getFileSize("/tmp/temp.jpg")

Get the file timestamp.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path of the file

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

fileTimestamp = getFileTimestamp("/tmp/temp.jpg")

Test if a path is a directory.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path to test

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

isDir = isDirectory("/tmp") 

Test if a path is a file.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path to test

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

isFile = isFile("/tmp/temp.jpg") 

List the files in a directory.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path of the directory

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

logDirs = listFiles("log/jobs")
forEach(dir, logDirs) {
    # process log directory
} 

Load the contents of a file as byte array.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path of the file

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

image = loadFileAsBytes("images/test.jpg") 

Load the contents of a file as a string.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path of the file

encoding

text, expression, variable

The character encoding of the file. Defaults ISO-8859-1

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

templateText = loadFileAsString("template/test.json")
template = parseJSON(templateText) 

Load the contents of a file as XML.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path of the file

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

soapTemplate = loadFileAsXML("template/soapEnvelope.xml") 

Move and/or rename a file or directory.

Property

Value

Description

srcFilesystem

expression, variable

the source filesystem definition to use (default: dss server managed files)

srcPath*

text, expression, variable

The path of the source file or directory.

destFilesystem

expression, variable

the destination filesystem definition to use (default: dss server managed files)

destPath*

text, expression, variable

the path of the destination file or directory

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

srcfs = defineRemoteFilesystem("sftp","host1","user","password","/")
destfs = defineRemoteFilesystem("sftp","host2","user","password","/")
result = moveFile(srcfs,"/home/jdoe/install.bin",destfs,
    "/home/jdoe/install.bin")

Save to a file.

Property

Value

Description

filesystem

expression, variable

the filesystem definition to use (default: dss server managed files)

path*

text, expression, variable

the path of the file

value*

text, expression, variable

value to save to the file

encoding

text, expression, variable

the character encoding of the file (default: UTF8 for XML, ISO-8859-1 for string)(ignored if value is a byte array)

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

saveToFile("temp/hello.txt","hello") 

Set Access Control Entry (ACE) to a file/directory on an SMB/CIFS file system, replacing any existing ACE for the given principal.

Property

Value

Description

smbFilesystem*

expression, variable

the filesystem definition to use (must be SMB/CIFS filesystem)

path*

text, expression, variable

the path of the target file or directory

principal*

text, expression, variable

the User or Group to which the ACE applies

type*

choice (ALLOW, DENY), text, expression, variable

the ACE type

mask*

choice (NONE, READ_ONLY, READ_EXECUTE, CHANGE, FULL), text, expression, variable

the permissions mask

containerInherit*

boolean, expression, variable

the ACE will be inherited by directories

objectInherit*

boolean, expression, variable

the ACE will be inherited by files

inheritOnly*

boolean, expression, variable

the ACE does not apply to the current file/directory

noPropagateInherit*

boolean, expression, variable

the ACE does not propagate inheritance

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

smbFS = defineRemoteFilesystem("smb", "smbtestserver", "/testdir")
result = setSMBFileACE(smbFS, "/testdir", "testuser", "ALLOW", 
    "CHANGE", true, true, false, false)

Extract the contents of a ZIP archive.

Property

Value

Description

zipFilesystem

expression, variable

the filesystem definition to use for the destination zip file (default: dss server managed files)

zipPath*

text, expression, variable

the path of the zip file

destFilesystem

expression, variable

the destination filesystem definition to use (default: dss server managed files)

destDir*

text, expression, variable

the path of the directory to receive the extracted files

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

result = unzipFile("log/jobs/test.zip", "log/jobs/test/")

Create a ZIP archive from a file or directory.

Property

Value

Description

srcFilesystem

expression, variable

the source filesystem definition to use (default: dss server managed files)

srcPath*

text, expression, variable

the path or array of paths to the files or directories to add the the ZIP file

zipFilesystem

expression, variable

the filesystem definition to use for the destination zip file (default: dss server managed files)

zipPath*

text, expression, variable

the path of the zip file

compressionLevel

expression, variable

the level of compression to use (0-9)

returnVariable

expression, variable

name of the variable to be assigned to the return value

Example

# Add an item to the directories array for each directory 
    relative to the root / var / opt / idauto / dss / files / 
    to process
directories = createArray()
appendArrayItem(directories, "log/jobs/")
appendArrayItem(directories, "log/run/")
# Set deleteFiles to true
if the log files should be deleted after archival
deleteFiles = true
# Set deleteArchivesAfter to the number of days you want to retain 
    log files
for.Set it to 0 to keep all Archives.
deleteArchivesAfter = 30
# Set myActionName to the scheduled job name of this action to 
    avoid archiving it.
myActionName = "archiveLogs"
# Set deleteMyLogs to true
if the logs
for this job should be deleted after running
deleteMyLogs = true
# Begin code
currentTime = now()
parseDate = splitString(currentTime, " ")
currentDate = parseDate[2] + "-" + parseDate[1] + "-" + parseDate[3]
forEach(directory, directories) {
    dir = listFiles(directory)
    forEach(entry, dir) {
        # Process directories
        isDir = isDirectory(entry)
        if (isDir && (entry != directory + myActionName)) {
            parsePath = splitString(entry, "/")
            path = directory + parsePath[2]
            files = listFiles(entry)
            # Find unique filename
            for archive
            archiveFile = path + "-" + currentDate + ".zip"
            fileExists = isFile(archiveFile)
            counter = 0
            while (fileExists) {
                archiveFile = path + "-" + currentDate 
                    + "-" + counter + ".zip"
                fileExists = isFile(archiveFile)
                counter = counter + 1
            }
            log("Creating archive: " + archiveFile)
            retVal = zipFile(files, archiveFile)
            if (retVal && deleteFiles) {
                log("Deleting log files from " + path)
                deleteFile(path)
            } else {
            }
        } else {
        }
        # Process archives
        for deletion
        isAFile = isFile(entry)
        isArchive = stringEndsWith(entry, ".zip", true)
        if (isAFile && (deleteArchivesAfter != 0) && isArchive) {
            datetime = getFileTimestamp(entry)
            parseDate2 = splitString(datetime, " ")
            fileDate = parseDate2[2] + "-" + parseDate2[1] + "-" 
                + parseDate2[3]
            dateFormat = new java.text.SimpleDateFormat("dd-MMM-yyyy")
            difference = Math.round((dateFormat.parse(currentDate).getTime() 
                - dateFormat.parse(fileDate).getTime()) / (3600000 * 24))
            # log("File: " + entry + " - " + difference)
            if ((difference > deleteArchivesAfter)) {
                log("Deleting archive " + entry)
                deleteFile(entry)
            } else {
            }
        } else {
        }
    }
    logDirExists = isDirectory(directory + myActionName)
    if (deleteMyLogs && logDirExists) {
        log("Deleting my log files from " + directory + myActionName)
        deleteFile(directory + myActionName)
    } else {}
}