Skip to content

Tasks⁠

The PowerOn Pipelines Azure DevOps extension comes with two primary tasks which can be configured to best serve your credit union. This page gives a comprehensive overview of what's available within each one.

SynchronizeDirectory⁠

Available • Synchronizes a Symitar directory (DATAFILES, LETTERSPECS, HELPFILES, or REPWRITERSPECS) with your Azure repository using a release artifact created as your default branch receives changes. In the case of PowerOn files (e.g. the REPWRITERSPECS directory), the task will Install & Uninstall based on your checked-in PowerOn Pipelines configuration.

Inputs⁠

The following inputs are available using the SynchronizeDirectory task in any Azure DevOps pipeline.

Directory Type⁠

directoryType • This determine which directory is going to be targeted by the sync operation. The is interpreted and then translated into the known Symitar directory.

  • dataFiles - targets the DATAFILES directory on your target Sym
  • helpFiles - targets the HELPFILES directory on your target Sym
  • letterFiles - targets the LETTERSPECS directory on your target Sym
  • powerOns - targets the REPWRITERSPECS directory on your target Sym
Required Available Values Default Value
Yes dataFiles, helpFiles, letterFiles, powerOns --

Local Directory Path⁠

localDirectoryPath • This is the local directory path in your repository containing the files to synchronize. It can be any path relative to the project root and the defaults listed below are dependent on your value for directoryType.

Required Available Values Default Value
No --
  • DATAFILES/ with dataFiles
  • HELPFILES/ with helpFiles
  • LETTERSPECS/ with letterFiles
  • REPWRITERSPECS/ with powerOns

Connection Type⁠

connectionType • This determines which connection adapter to use.

  • ssh - uses the legacy Symitar CLI over SSH as well as some native SSH commands
  • https - uses the available SymAppServer endpoints to perform a limited number of operations on the Sym (this is coupled with native SSH commands for full functionality)
Required Available Values Default Value
Yes ssh or https --

Sync Mode⁠

syncMode • This determines how to synchronize your Sym directory relative to your local path.

  • push - strictly uploads files which are present in your local directory
  • pull - strictly downloads files which are present on your Symitar host directory
  • mirror - synchronizes your Symitar host to match your local directory
Required Available Values Default Value
Yes push, pull or mirror --

Dry Run⁠

isDryRun • This determines whether or not to make physical changes in the Sym. With this enabled no files are changed, only output which will communicate what would have changed.

Required Available Values Default Value
No true or false true

Sync Method⁠

syncMethod • The transport method for file synchronization. SFTP is the default and supports concurrent transfers. rsync is faster for large directories but requires rsync + sshpass to be installed on the ADO agent.

Required Available Values Default Value
No rsync or sftp sftp

SFTP Concurrency⁠

sftpConcurrency • Number of concurrent SFTP transfers (1-20). Only applies when syncMethod is set to sftp.

Required Available Values Default Value
No 1 through 20 4

Preserve Server Files⁠

preserveServerFiles • Comma-delimited list of exact filenames or glob patterns where the Symitar copy should be preserved during push and mirror. Use with pullPreservedOnly to pull only these files from Symitar. When omitted, the task uses the preserveServerFiles array from .poweron-pipelines/config.yml.

Required Available Values Default Value
No -- Config value or empty

Pull Preserved Only⁠

pullPreservedOnly • When syncMode is pull, only download files matched by preserveServerFiles. If no preserve patterns are configured, the task exits without pulling files.

Required Available Values Default Value
No true or false false

Commit Pulled Changes⁠

commitPulledChanges • When syncMode is pull, commit and push pulled repository changes directly after synchronization. The task never commits during a dry run. Prefer createPullRequest when branch policies protect the target branch.

Required Available Values Default Value
No true or false false

Create Pull Request⁠

createPullRequest • When syncMode is pull, commit pulled changes to a separate branch and create or reuse an Azure Repos pull request. The pipeline checkout must use persistCredentials: true for the Git push, and the build service identity needs permission to contribute to the source branch and create pull requests.

Required Available Values Default Value
No true or false false

Commit Message⁠

commitMessage • Commit message used when commitPulledChanges or createPullRequest is enabled.

Required Available Values Default Value
No -- chore: sync server-managed Symitar files [skip ci]

Commit Branch⁠

commitBranch • Branch to push the commit to when commitPulledChanges is enabled. Defaults to the checked-out branch.

Required Available Values Default Value
No -- Checked-out branch

Pull Request Branch⁠

pullRequestBranch • Source branch used for generated pull requests. A fixed branch name updates the same pull request on later runs.

Required Available Values Default Value
No -- chore/symitar-pull

Pull Request Target Branch⁠

pullRequestTargetBranch • Target branch for generated pull requests. Defaults to the build source branch name.

Required Available Values Default Value
No -- Build source branch

Pull Request Title⁠

pullRequestTitle • Title for the generated pull request.

Required Available Values Default Value
No -- chore: sync server-managed Symitar files

Pull Request Description⁠

pullRequestDescription • Description for the generated pull request.

Required Available Values Default Value
No -- Auto-generated pull of server-managed Symitar files.

Git User Name⁠

gitUserName • Git author name used when commitPulledChanges or createPullRequest is enabled.

Required Available Values Default Value
No -- libum-bot

Git User Email⁠

gitUserEmail • Git author email used when commitPulledChanges or createPullRequest is enabled.

Required Available Values Default Value
No -- bot@libum.io

Repository Path⁠

repositoryPath • Path to the Git checkout used when commitPulledChanges or createPullRequest is enabled. Defaults to BUILD_SOURCESDIRECTORY.

Required Available Values Default Value
No -- BUILD_SOURCESDIRECTORY

Azure DevOps Access Token⁠

azureDevOpsAccessToken • Token used for the Azure Repos pull request API. Defaults to System.AccessToken when available. The Git push still requires checkout: self with persistCredentials: true.

Required Available Values Default Value
No -- System.AccessToken

Artifact Path⁠

artifactPath • Simply the destination folder of your artifact after it has been extracted.

Required Available Values Example Value
Yes -- repo

Symitar Hostname⁠

symitarHostname • The endpoint by which you connect to the Symitar host.

Required Available Values Example Value
Yes -- 93.455.43.232

Symitar App Port⁠

symitarAppPort • The port which your Symitar Application Server communicates over. This is typically 42 + symNumber unless you're running at the SYSTEM level.

Required Available Values Example Value
Yes (for connectionType = http) -- 42627

SSH Username⁠

sshUsername • The AIX user name for the Symitar host.

Required Available Values Example Value
Yes -- libum

SSH Password⁠

sshPassword • The AIX password for the Symitar host.

Required Available Values Example Value
Yes -- hunter2

SSH Port⁠

sshPort • The port to connect to the Symitar (AIX) host over SSH.

Required Available Values Default Value
No -- 22

Symitar User Number⁠

symitarUserNumber • Your Symitar Quest user number (fka. Teller Number). It is recommended you provide more of a "system user" instead of your personal for Production instances.

Required Available Values Example Value
Yes -- 1995

Symitar User Password⁠

symitarUserPassword • Your Symitar Quest user password.

Required Available Values Example Value
Yes -- {symx-user-password}

API Key⁠

apiKey • Your PowerOn Pipelines API Key from Libum Portal.

Required Available Values Default Value
Yes See API Keys in Libum Portal --

Sym Number⁠

symNumber • The directory (aka Sym) number to deploy to. If nothing is defined here, the task will attempt to pull from the branchSymNumbers you have defined in your Configuration.

Required Available Values Example Value
No -- 627

Debug⁠

debug • Enable debug logging for the Symitar client.

Required Available Values Default Value
No true or false false

ValidatePowerOn⁠

Available • Validates the updated PowerOn files in the configured powerOnsDirectory. In the PR context this will only validate changes between target and source branches. In the build context, this will validate differences between the current state and what exists in the provided symNumber.

Inputs⁠

The following inputs are available using the ValidatePowerOn task in any Azure DevOps pipeline.

Connection Type⁠

connectionType • This determines which connection adapter to use.

  • ssh - uses the legacy Symitar CLI over SSH as well as some native SSH commands
  • https - uses the available SymAppServer endpoints to perform a limited number of operations on the Sym (this is coupled with native SSH commands for full functionality)
Required Available Values Default Value
Yes ssh or https --

Symitar Hostname⁠

symitarHostname • The endpoint by which you connect to the Symitar host.

Required Available Values Example Value
Yes -- 93.455.43.232

Symitar App Port⁠

symitarAppPort • The port which your Symitar Application Server communicates over. This is typically 42 + symNumber unless you're running at the SYSTEM level.

Required Available Values Example Value
Yes (for connectionType = http) -- 42627

SSH Username⁠

sshUsername • The AIX user name for the Symitar host.

Required Available Values Example Value
Yes -- libum

SSH Password⁠

sshPassword • The AIX password for the Symitar host.

Required Available Values Example Value
Yes -- hunter2

SSH Port⁠

sshPort • The port to connect to the Symitar (AIX) host over SSH.

Required Available Values Default Value
No -- 22

Symitar User Number⁠

symitarUserNumber • Your Symitar Quest user number (fka. Teller Number). It is recommended you provide more of a "system user" instead of your personal for Production instances.

Required Available Values Example Value
Yes -- 1995

Symitar User Password⁠

symitarUserPassword • Your Symitar Quest user password.

Required Available Values Example Value
Yes -- {symx-user-password}

API Key⁠

apiKey • Your PowerOn Pipelines API Key from Libum Portal.

Required Available Values Default Value
Yes See API Keys in Libum Portal --

Sym Number⁠

symNumber • The directory (aka Sym) number to deploy to. If nothing is defined here, the task will attempt to pull from the branchSymNumbers you have defined in your Configuration.

Required Available Values Example Value
No -- 627

PowerOns Directory⁠

powerOnsDirectory • The directory in the repository to monitor PowerOn changes in.

Required Available Values Default Value
No -- REPWRITERSPECS/

Preserve Server Files⁠

preserveServerFiles • Comma-delimited list of exact filenames or glob patterns to skip during validation because the Symitar copy is preserved. When omitted, the task uses the preserveServerFiles array from .poweron-pipelines/config.yml.

Required Available Values Default Value
No -- Config value or empty

Sync Method⁠

syncMethod • The transport method for file synchronization. SFTP is the default and supports concurrent transfers. rsync is faster for large directories but requires rsync + sshpass to be installed on the ADO agent.

Required Available Values Default Value
No rsync or sftp sftp

Debug⁠

debug • Enable debug logging for the Symitar client.

Required Available Values Default Value
No true or false false