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 theDATAFILESdirectory on your target SymhelpFiles- targets theHELPFILESdirectory on your target SymletterFiles- targets theLETTERSPECSdirectory on your target SympowerOns- targets theREPWRITERSPECSdirectory 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 | -- |
|
Connection Type
connectionType • This determines which connection adapter to use.
ssh- uses the legacy Symitar CLI over SSH as well as some native SSH commandshttps- 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 directorypull- strictly downloads files which are present on your Symitar host directorymirror- 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 commandshttps- 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 |