├── .java-version
├── tasks
├── msteams
│ ├── .gitignore
│ ├── examples
│ │ ├── minimal
│ │ │ ├── README.md
│ │ │ ├── run.sh
│ │ │ └── concord.yml
│ │ ├── msteamsV2
│ │ │ ├── README.md
│ │ │ ├── run.sh
│ │ │ └── concord.yml
│ │ └── usingSectionsActions
│ │ │ ├── README.md
│ │ │ └── run.sh
│ └── src
│ │ ├── test
│ │ └── resources
│ │ │ └── logback.xml
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── msteams
│ │ ├── TeamsConfiguration.java
│ │ ├── TeamsV2Configuration.java
│ │ ├── Utils.java
│ │ ├── ContextVariables.java
│ │ ├── Constants.java
│ │ └── TeamsTask.java
├── jira
│ └── src
│ │ ├── test
│ │ ├── resources
│ │ │ ├── sample.txt
│ │ │ └── logback-test.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── jira
│ │ │ └── NativeJiraHttpClientTest.java
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── jira
│ │ ├── JiraSecretService.java
│ │ ├── Constants.java
│ │ └── JiraCredentials.java
├── terraform
│ ├── src
│ │ ├── test
│ │ │ ├── terraform
│ │ │ │ ├── varfile0.tfvars
│ │ │ │ ├── varfile1.tfvars
│ │ │ │ ├── terraform.tfstate
│ │ │ │ ├── minimal_azure
│ │ │ │ │ └── main.tf
│ │ │ │ ├── minimal_aws
│ │ │ │ │ └── main.tf
│ │ │ │ └── main.tf
│ │ │ ├── filtered-resources
│ │ │ │ └── version.properties
│ │ │ └── resources
│ │ │ │ ├── com
│ │ │ │ └── walmartlabs
│ │ │ │ │ └── concord
│ │ │ │ │ └── plugins
│ │ │ │ │ └── terraform
│ │ │ │ │ ├── it
│ │ │ │ │ └── main.tf
│ │ │ │ │ ├── runtimeV1
│ │ │ │ │ └── concord.yml
│ │ │ │ │ └── runtimeV2
│ │ │ │ │ └── concord.yml
│ │ │ │ └── logback.xml
│ │ └── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── terraform
│ │ │ ├── Action.java
│ │ │ ├── VersionUtils.java
│ │ │ ├── backend
│ │ │ ├── DummyBackend.java
│ │ │ └── Backend.java
│ │ │ ├── TerraformExecutable.java
│ │ │ └── Utils.java
│ └── examples
│ │ ├── azure-ansible
│ │ ├── playbook.yml
│ │ ├── run.sh
│ │ └── concord.yml
│ │ ├── README.md
│ │ ├── minimal
│ │ ├── run.sh
│ │ ├── concord.yml
│ │ └── example.tf
│ │ ├── output
│ │ ├── run.sh
│ │ ├── example.tf
│ │ └── concord.yml
│ │ ├── azure-minimal
│ │ ├── run.sh
│ │ ├── example.tf
│ │ └── concord.yml
│ │ ├── gcp-minimal
│ │ ├── run.sh
│ │ ├── concord.yml
│ │ ├── example.tf
│ │ └── README.md
│ │ └── approval
│ │ ├── example.tf
│ │ ├── run.sh
│ │ └── concord.yml
├── gremlin
│ ├── src
│ │ └── main
│ │ │ ├── resources
│ │ │ └── version.properties
│ │ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── gremlin
│ │ │ ├── GremlinClientParams.java
│ │ │ ├── Constants.java
│ │ │ ├── Version.java
│ │ │ ├── K8SAttackResult.java
│ │ │ ├── AttackResult.java
│ │ │ └── v2
│ │ │ └── GremlinTaskV2.java
│ └── examples
│ │ ├── README.md
│ │ ├── run.sh
│ │ └── concord.yml
├── akeyless
│ └── src
│ │ ├── test
│ │ ├── filtered-resources
│ │ │ └── version.properties
│ │ └── resources
│ │ │ └── logback-test.xml
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── akeyless
│ │ ├── model
│ │ ├── SecretCache.java
│ │ ├── auth
│ │ │ └── ApiKeyAuth.java
│ │ ├── SecretCacheNoop.java
│ │ └── Secret.java
│ │ ├── SecretExporter.java
│ │ └── AkeylessTaskResult.java
├── argocd
│ ├── local_argo
│ │ ├── .gitignore
│ │ ├── playbook
│ │ │ ├── main.yml
│ │ │ ├── inventory.yml
│ │ │ └── roles
│ │ │ │ └── argocd
│ │ │ │ └── files
│ │ │ │ └── test_deployment.yaml
│ │ └── docker-compose.yml
│ └── src
│ │ ├── test
│ │ ├── filtered-resources
│ │ │ └── version.properties
│ │ └── resources
│ │ │ ├── com
│ │ │ └── walmartlabs
│ │ │ │ └── concord
│ │ │ │ └── plugins
│ │ │ │ └── argocd
│ │ │ │ ├── emptyResponse.json
│ │ │ │ └── it
│ │ │ │ └── runtimeV2
│ │ │ │ └── concord.yml
│ │ │ ├── example-flow
│ │ │ └── run.sh
│ │ │ └── logback-test.xml
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── argocd
│ │ ├── model
│ │ ├── EventStatus.java
│ │ ├── HttpExecutor.java
│ │ ├── SyncStatus.java
│ │ └── HealthStatus.java
│ │ ├── TokenAuthHandler.java
│ │ ├── WaitWatchParams.java
│ │ └── ArgoCdConstants.java
├── confluence
│ ├── examples
│ │ ├── path
│ │ │ └── toMy
│ │ │ │ └── myFile.ini
│ │ ├── README.md
│ │ ├── run.sh
│ │ └── content.mustache
│ └── src
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── confluence
│ │ └── Constants.java
├── puppet
│ ├── src
│ │ ├── test
│ │ │ ├── resources
│ │ │ │ ├── tokenCreate.json
│ │ │ │ ├── logback.xml
│ │ │ │ └── simpleQueryResult.json
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── walmartlabs
│ │ │ │ └── concord
│ │ │ │ └── plugins
│ │ │ │ └── puppet
│ │ │ │ └── ApiExceptionTest.java
│ │ └── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── puppet
│ │ │ └── model
│ │ │ ├── SecretExporter.java
│ │ │ ├── exception
│ │ │ ├── ConfigException.java
│ │ │ └── MissingParameterException.java
│ │ │ ├── token
│ │ │ └── TokenResult.java
│ │ │ ├── dbquery
│ │ │ └── DbQueryPayload.java
│ │ │ └── PuppetResult.java
│ └── wiremock_cert
│ │ ├── cert.ext
│ │ ├── ca.pem
│ │ ├── server.crt
│ │ └── server.key
├── jsonpath
│ ├── examples
│ │ └── todos
│ │ │ ├── README.md
│ │ │ ├── run.sh
│ │ │ └── concord.yml
│ └── src
│ │ └── test
│ │ ├── resources
│ │ └── logback.xml
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── jsonpath
│ │ └── JsonPathTest.java
├── zoom
│ ├── examples
│ │ └── send_message
│ │ │ ├── README.md
│ │ │ ├── run.sh
│ │ │ └── concord.yml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── zoom
│ │ ├── ZoomConfiguration.java
│ │ ├── Constants.java
│ │ └── v2
│ │ └── ZoomTaskV2.java
├── git
│ └── src
│ │ ├── test
│ │ ├── resources
│ │ │ ├── wiremock
│ │ │ │ ├── pullRequest
│ │ │ │ │ └── __files
│ │ │ │ │ │ ├── merge_pr.json
│ │ │ │ │ │ └── get_files.json
│ │ │ │ ├── repo
│ │ │ │ │ ├── __files
│ │ │ │ │ │ ├── create_ref.json
│ │ │ │ │ │ ├── list_tags.json
│ │ │ │ │ │ ├── list_branches.json
│ │ │ │ │ │ ├── create_tag.json
│ │ │ │ │ │ ├── create_hook.json
│ │ │ │ │ │ └── contents.json
│ │ │ │ │ └── mappings
│ │ │ │ │ │ └── get_error.json
│ │ │ │ ├── commit
│ │ │ │ │ └── __files
│ │ │ │ │ │ ├── create_status.json
│ │ │ │ │ │ └── list_statuses.json
│ │ │ │ └── auth
│ │ │ │ │ └── __files
│ │ │ │ │ └── installation.json
│ │ │ └── logback.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── git
│ │ │ └── GitHubCommonTest.java
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── git
│ │ ├── GitClient.java
│ │ ├── GitSecretService.java
│ │ ├── TokenSecret.java
│ │ ├── GitHubTaskAction.java
│ │ ├── client
│ │ ├── PageHandler.java
│ │ └── GitHubApiException.java
│ │ ├── tokens
│ │ └── BasicTokenProvider.java
│ │ ├── model
│ │ ├── GitHubApiInfo.java
│ │ ├── AppInstallationAccessToken.java
│ │ └── AppInstallation.java
│ │ ├── GitClientFactory.java
│ │ ├── GitHubTaskParams.java
│ │ ├── v2
│ │ └── SecretServiceV2.java
│ │ └── v1
│ │ └── GitTaskV1.java
├── xml
│ ├── src
│ │ └── test
│ │ │ └── resources
│ │ │ ├── test_external.xml
│ │ │ └── test2.xml
│ └── examples
│ │ └── maven
│ │ ├── README.md
│ │ ├── concord.yml
│ │ └── pom.xml
├── hashivault
│ ├── src
│ │ ├── test
│ │ │ └── resources
│ │ │ │ ├── vault.conf
│ │ │ │ ├── cert.ext
│ │ │ │ ├── nginx.conf
│ │ │ │ ├── logback-test.xml
│ │ │ │ ├── ca.pem
│ │ │ │ ├── server.crt
│ │ │ │ └── server.key
│ │ └── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── hashivault
│ │ │ └── HashiVaultTaskException.java
│ └── testCLI.yml
├── packer
│ └── src
│ │ ├── main
│ │ ├── resources
│ │ │ └── packer
│ │ │ │ └── descriptor.yml
│ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── packer
│ │ │ ├── commands
│ │ │ └── Version.java
│ │ │ └── PackerTask.java
│ │ └── test
│ │ ├── resources
│ │ └── logback.xml
│ │ └── packer
│ │ └── packer-test.json
├── aws
│ ├── src
│ │ └── test
│ │ │ ├── resources
│ │ │ └── logback.xml
│ │ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── aws
│ │ │ └── EcrTaskTest.java
│ └── examples
│ │ └── ecr
│ │ └── concord.yml
├── ssh
│ └── src
│ │ ├── test
│ │ └── resources
│ │ │ └── logback-test.xml
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── ssh
│ │ └── NoopHostKeyRepository.java
├── jenkins
│ └── src
│ │ ├── test
│ │ └── resources
│ │ │ └── logback.xml
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── jenkins
│ │ ├── model
│ │ ├── Executable.java
│ │ ├── BuildInfo.java
│ │ └── QueueItem.java
│ │ ├── Utils.java
│ │ ├── Constants.java
│ │ └── v2
│ │ └── JenkinsTaskV2.java
├── s3
│ ├── src
│ │ ├── test
│ │ │ └── resources
│ │ │ │ └── logback-test.xml
│ │ └── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── s3
│ │ │ ├── Result.java
│ │ │ ├── Constants.java
│ │ │ ├── ErrorResult.java
│ │ │ ├── GetObjectResult.java
│ │ │ └── PutObjectResult.java
│ └── examples
│ │ └── put_get
│ │ └── concord.yml
└── ldap
│ └── src
│ └── main
│ └── java
│ └── com
│ └── walmartlabs
│ └── concord
│ └── plugins
│ └── ldap
│ ├── LdapSearchParams.java
│ └── LdapConnectionCfg.java
├── .mvn
├── jvm.config
└── wrapper
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── .travis.yml
├── .gitignore
├── .circleci
└── config.yml
├── runtime
├── opentelemetry
│ ├── src
│ │ ├── test
│ │ │ ├── resources
│ │ │ │ └── logback.xml
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── walmartlabs
│ │ │ │ └── concord
│ │ │ │ └── plugins
│ │ │ │ └── opentelemetry
│ │ │ │ └── TelemetryExporterTest.java
│ │ └── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── walmartlabs
│ │ │ └── concord
│ │ │ └── plugins
│ │ │ └── opentelemetry
│ │ │ ├── ConcordSpanData.java
│ │ │ ├── OpentelemetryModule.java
│ │ │ └── StepId.java
│ └── README.md
└── codecoverage
│ ├── README.md
│ └── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── walmartlabs
│ │ └── concord
│ │ └── plugins
│ │ └── codecoverage
│ │ ├── CodecoverageModule.java
│ │ └── StepInfo.java
│ └── test
│ └── resources
│ └── gen_html.bash
├── LICENSE
└── .github
└── workflows
└── build.yml
/.java-version:
--------------------------------------------------------------------------------
1 | 17.0
2 |
--------------------------------------------------------------------------------
/tasks/msteams/.gitignore:
--------------------------------------------------------------------------------
1 | it_vars/
2 |
--------------------------------------------------------------------------------
/tasks/jira/src/test/resources/sample.txt:
--------------------------------------------------------------------------------
1 | Sample file
--------------------------------------------------------------------------------
/tasks/terraform/src/test/terraform/varfile0.tfvars:
--------------------------------------------------------------------------------
1 | name = "bob"
2 |
--------------------------------------------------------------------------------
/tasks/terraform/src/test/terraform/varfile1.tfvars:
--------------------------------------------------------------------------------
1 | time = "now"
2 |
--------------------------------------------------------------------------------
/.mvn/jvm.config:
--------------------------------------------------------------------------------
1 | -Dorg.slf4j.simpleLogger.log.org.openapitools.codegen=warn
2 |
--------------------------------------------------------------------------------
/tasks/gremlin/src/main/resources/version.properties:
--------------------------------------------------------------------------------
1 | version=${project.version}
2 |
--------------------------------------------------------------------------------
/tasks/akeyless/src/test/filtered-resources/version.properties:
--------------------------------------------------------------------------------
1 | version=${project.version}
--------------------------------------------------------------------------------
/tasks/argocd/local_argo/.gitignore:
--------------------------------------------------------------------------------
1 | playbook/roles/argocd/files/generated
2 | *venv
3 |
--------------------------------------------------------------------------------
/tasks/argocd/src/test/filtered-resources/version.properties:
--------------------------------------------------------------------------------
1 | version=${project.version}
--------------------------------------------------------------------------------
/tasks/confluence/examples/path/toMy/myFile.ini:
--------------------------------------------------------------------------------
1 | This is my confluence page attachment.
--------------------------------------------------------------------------------
/tasks/terraform/src/test/filtered-resources/version.properties:
--------------------------------------------------------------------------------
1 | version=${project.version}
--------------------------------------------------------------------------------
/tasks/argocd/src/test/resources/com/walmartlabs/concord/plugins/argocd/emptyResponse.json:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walmartlabs/concord-plugins/HEAD/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/tasks/puppet/src/test/resources/tokenCreate.json:
--------------------------------------------------------------------------------
1 | {
2 | "token":"0vghixAlYQF2-aJPtDCGa_d4CbOadf23rSDRFwe3fMwY"
3 | }
4 |
--------------------------------------------------------------------------------
/tasks/terraform/src/test/resources/com/walmartlabs/concord/plugins/terraform/it/main.tf:
--------------------------------------------------------------------------------
1 | provider "aws" {
2 | profile = "default"
3 | }
4 |
--------------------------------------------------------------------------------
/tasks/confluence/examples/README.md:
--------------------------------------------------------------------------------
1 | # Running
2 |
3 | - start the process by running:
4 | ```
5 | $ ./run.sh http://concordhost:8001
6 | ```
7 |
--------------------------------------------------------------------------------
/tasks/argocd/local_argo/playbook/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Main playbook
3 | hosts: all
4 | gather_facts: false
5 | roles:
6 | - role: argocd
7 |
--------------------------------------------------------------------------------
/tasks/jsonpath/examples/todos/README.md:
--------------------------------------------------------------------------------
1 | # Running
2 |
3 | - start the process by running:
4 | ```
5 | $ ./run.sh http://concordhost:8001
6 | ```
7 |
--------------------------------------------------------------------------------
/tasks/msteams/examples/minimal/README.md:
--------------------------------------------------------------------------------
1 | # Running
2 |
3 | - start the process by running:
4 | ```
5 | $ ./run.sh concord.example.com:8001
6 | ```
7 |
--------------------------------------------------------------------------------
/tasks/msteams/examples/msteamsV2/README.md:
--------------------------------------------------------------------------------
1 | # Running
2 |
3 | - start the process by running:
4 | ```
5 | $ ./run.sh concord.example.com:8001
6 | ```
7 |
--------------------------------------------------------------------------------
/tasks/zoom/examples/send_message/README.md:
--------------------------------------------------------------------------------
1 | # Running
2 |
3 | - start the process by running:
4 | ```
5 | $ ./run.sh concord.example.com:8001
6 | ```
7 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: java
2 | jdk:
3 | - oraclejdk8
4 |
5 | cache:
6 | directories:
7 | - $HOME/.m2
8 |
9 | script:
10 | - mvn -U -B clean package
11 |
--------------------------------------------------------------------------------
/tasks/msteams/examples/usingSectionsActions/README.md:
--------------------------------------------------------------------------------
1 | # Running
2 |
3 | - start the process by running:
4 | ```
5 | $ ./run.sh concord.example.com:8001
6 | ```
7 |
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/wiremock/pullRequest/__files/merge_pr.json:
--------------------------------------------------------------------------------
1 | {
2 | "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e",
3 | "merged": true,
4 | "message": "Pull Request successfully merged"
5 | }
6 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/azure-ansible/playbook.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - hosts: myHosts
3 | tasks:
4 | - name: Install a package
5 | become: true
6 | apt:
7 | name: vim
8 | state: present
9 |
--------------------------------------------------------------------------------
/tasks/xml/src/test/resources/test_external.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | ]>
5 | &xxe;
6 |
--------------------------------------------------------------------------------
/tasks/hashivault/src/test/resources/vault.conf:
--------------------------------------------------------------------------------
1 | listener "tcp" {
2 | address = "127.0.0.1:9201"
3 | tls_disable = 0
4 | tls_cert_file = "/vault/config/server.crt"
5 | tls_key_file = "/vault/config/server.key"
6 | }
7 |
--------------------------------------------------------------------------------
/tasks/puppet/wiremock_cert/cert.ext:
--------------------------------------------------------------------------------
1 | authorityKeyIdentifier=keyid,issuer
2 | basicConstraints=CA:FALSE
3 | keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
4 | subjectAltName = @alt_names
5 |
6 | [alt_names]
7 | DNS.1 = localhost
8 |
--------------------------------------------------------------------------------
/tasks/hashivault/src/test/resources/cert.ext:
--------------------------------------------------------------------------------
1 | authorityKeyIdentifier=keyid,issuer
2 | basicConstraints=CA:FALSE
3 | keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
4 | subjectAltName = @alt_names
5 |
6 | [alt_names]
7 | IP.1 = 127.0.0.1
8 | DNS.1 = localhost
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | *.ipr
3 | *.iws
4 | target/
5 | pom.xml.versionsBackup
6 | .idea
7 | .*.swp
8 | .*.swo
9 | .project
10 | .classpath
11 | .settings
12 | .pmdruleset.xml
13 | .pmd
14 | .arcconfig
15 | nohup.out
16 | nb-configuration.xml
17 | pom.xml.bak
18 | jmeter.log
19 | .terraform/
--------------------------------------------------------------------------------
/tasks/gremlin/examples/README.md:
--------------------------------------------------------------------------------
1 | # Running
2 |
3 | - create a Concord project. Enable "Allow payload archives" (not necessary for production usage);
4 | - update the credentials in `concord.yml`;
5 | - start the process by running:
6 | ```
7 | $ ./run.sh http://concordhost:8001 orgName projectName
8 | ```
9 |
--------------------------------------------------------------------------------
/tasks/packer/src/main/resources/packer/descriptor.yml:
--------------------------------------------------------------------------------
1 | ---
2 | id: packer
3 | name: Packer
4 | executable: packer
5 | architecture: amd64
6 | namingStyle: LOWER
7 | packaging: ZIP
8 | defaultVersion: 1.5.5
9 | urlTemplate: https://releases.hashicorp.com/packer/{version}/packer_{version}_{os}_{arch}.zip
10 |
--------------------------------------------------------------------------------
/tasks/argocd/local_argo/playbook/inventory.yml:
--------------------------------------------------------------------------------
1 | ---
2 | local:
3 | hosts:
4 | k3s:
5 | ansible_host: localhost
6 | kubconfig_path: roles/argocd/files/generated/kubeconfig.yaml
7 | k8s_ca_cert: roles/argocd/files/generated/k3s_server_ca.crt
8 | ansible_connection: local
9 | k8s_ns: argocd
10 |
--------------------------------------------------------------------------------
/tasks/xml/examples/maven/README.md:
--------------------------------------------------------------------------------
1 | # Example
2 |
3 | Demonstrates how to use the `xmlUtils` task to extract data from
4 | a Maven `pom.xml` file.
5 |
6 | ## Usage
7 |
8 | ```
9 | curl -i -u username \
10 | -F concord.yml=@concord.yml \
11 | -F pom.xml=@pom.xml \
12 | https://concord.example.com/api/v1/process
13 | ```
14 |
15 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/README.md:
--------------------------------------------------------------------------------
1 | # Running
2 |
3 | - create a Concord project. Enable "Allow payload archives" (not necessary for production usage);
4 | - update the credentials and other parameters in `concord.yml` if necessary;
5 | - start the process by running:
6 | ```
7 | $ ./run.sh http://concordhost:8001 orgName projectName
8 | ```
9 |
--------------------------------------------------------------------------------
/tasks/jsonpath/examples/todos/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 |
5 | rm -rf target && mkdir target
6 | cp concord.yml target/
7 |
8 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
9 |
10 | read -p "Username: " CURL_USER
11 | curl -u ${CURL_USER} -F archive=@target/payload.zip http://${SERVER_ADDR}/api/v1/process
12 |
--------------------------------------------------------------------------------
/tasks/msteams/examples/minimal/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 |
5 | rm -rf target && mkdir target
6 | cp concord.yml target/
7 |
8 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
9 |
10 | read -p "Username: " CURL_USER
11 | curl -u ${CURL_USER} -F archive=@target/payload.zip http://${SERVER_ADDR}/api/v1/process
12 |
--------------------------------------------------------------------------------
/tasks/msteams/examples/msteamsV2/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 |
5 | rm -rf target && mkdir target
6 | cp concord.yml target/
7 |
8 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
9 |
10 | read -p "Username: " CURL_USER
11 | curl -u ${CURL_USER} -F archive=@target/payload.zip http://${SERVER_ADDR}/api/v1/process
12 |
--------------------------------------------------------------------------------
/tasks/confluence/examples/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 |
5 | rm -rf target && mkdir target
6 | cp concord.yml test.yml target/
7 |
8 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
9 |
10 | read -p "Username: " CURL_USER
11 | curl -u ${CURL_USER} -F archive=@target/payload.zip http://${SERVER_ADDR}/api/v1/process
12 |
--------------------------------------------------------------------------------
/tasks/zoom/examples/send_message/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 |
5 | rm -rf target && mkdir target
6 | cp concord.yml test.yml target/
7 |
8 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
9 |
10 | read -p "Username: " CURL_USER
11 | curl -u ${CURL_USER} -F archive=@target/payload.zip http://${SERVER_ADDR}/api/v1/process
12 |
--------------------------------------------------------------------------------
/tasks/msteams/examples/usingSectionsActions/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 |
5 | rm -rf target && mkdir target
6 | cp concord.yml target/
7 |
8 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
9 |
10 | read -p "Username: " CURL_USER
11 | curl -u ${CURL_USER} -F archive=@target/payload.zip http://${SERVER_ADDR}/api/v1/process
12 |
--------------------------------------------------------------------------------
/tasks/confluence/examples/content.mustache:
--------------------------------------------------------------------------------
1 |
2 |
Hello, {{initiator.displayName}}
3 | Hello, {{templateParams.myVariable1}}
4 | Hello, {{templateParams.myVariable2}}
5 | Hello, {{templateParams.myVariable3}}
6 | This is my first paragraph
7 | This is my second paragraph
8 | To add or remove subscribers create a pull request against the file
9 |
--------------------------------------------------------------------------------
/tasks/xml/examples/maven/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | dependencies:
3 | - "mvn://com.walmartlabs.concord.plugins:xml-tasks:1.28.0"
4 |
5 | flows:
6 | default:
7 | - expr: "${xmlUtils.mavenGav('pom.xml')}"
8 | out: gav
9 |
10 | - log: "groupId: ${gav.groupId}"
11 | - log: "artifactId: ${gav.artifactId}"
12 | - log: "version: ${gav.version}"
13 |
--------------------------------------------------------------------------------
/tasks/aws/src/test/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tasks/jsonpath/src/test/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tasks/ssh/src/test/resources/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tasks/gremlin/examples/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 | ORG_NAME="$2"
5 | PROJECT_NAME="$3"
6 |
7 | rm -rf target && mkdir target
8 | cp concord.yml example.tf target/
9 |
10 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
11 |
12 | read -p "Username: " CURL_USER
13 | curl -u ${CURL_USER} -F archive=@target/payload.zip -F org=${ORG_NAME} -F project=${PROJECT_NAME} http://${SERVER_ADDR}/api/v1/process
--------------------------------------------------------------------------------
/tasks/hashivault/src/test/resources/nginx.conf:
--------------------------------------------------------------------------------
1 | server {
2 | listen 80;
3 | listen [::]:80;
4 | listen 443 ssl;
5 | server_name localhost;
6 | ssl_certificate /etc/nginx/certs/server.crt;
7 | ssl_certificate_key /etc/nginx/certs/server.key;
8 |
9 | location / {
10 | proxy_pass ${VAULT_ENDPOINT};
11 | error_log /var/log/front_end_errors.log;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/minimal/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 | ORG_NAME="$2"
5 | PROJECT_NAME="$3"
6 |
7 | rm -rf target && mkdir target
8 | cp concord.yml example.tf target/
9 |
10 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
11 |
12 | read -p "Username: " CURL_USER
13 | curl -u ${CURL_USER} -F archive=@target/payload.zip -F org=${ORG_NAME} -F project=${PROJECT_NAME} http://${SERVER_ADDR}/api/v1/process
--------------------------------------------------------------------------------
/tasks/terraform/examples/output/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 | ORG_NAME="$2"
5 | PROJECT_NAME="$3"
6 |
7 | rm -rf target && mkdir target
8 | cp concord.yml example.tf target/
9 |
10 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
11 |
12 | read -p "Username: " CURL_USER
13 | curl -u ${CURL_USER} -F archive=@target/payload.zip -F org=${ORG_NAME} -F project=${PROJECT_NAME} http://${SERVER_ADDR}/api/v1/process
--------------------------------------------------------------------------------
/tasks/terraform/examples/minimal/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | dependencies:
3 | - mvn://com.walmartlabs.concord.plugins:terraform-task:1.12.0
4 |
5 | flows:
6 | default:
7 | - task: terraform
8 | in:
9 | action: apply
10 | extraVars:
11 | aws_access_key: "AWS access key" # replace with the real values
12 | aws_secret_key: "AWS secret key" # or use Concord Secrets, `decryptString` etc
13 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/azure-minimal/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 | ORG_NAME="$2"
5 | PROJECT_NAME="$3"
6 |
7 | rm -rf target && mkdir target
8 | cp concord.yml example.tf target/
9 |
10 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
11 |
12 | read -p "Username: " CURL_USER
13 | curl -u ${CURL_USER} -F archive=@target/payload.zip -F org=${ORG_NAME} -F project=${PROJECT_NAME} http://${SERVER_ADDR}/api/v1/process
14 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/gcp-minimal/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 | ORG_NAME="$2"
5 | PROJECT_NAME="$3"
6 |
7 | rm -rf target && mkdir target
8 | cp concord.yml example.tf target/
9 |
10 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
11 |
12 | read -p "Username: " CURL_USER
13 | curl -u ${CURL_USER} -F archive=@target/payload.zip -F org=${ORG_NAME} -F project=${PROJECT_NAME} http://${SERVER_ADDR}/api/v1/process
14 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/approval/example.tf:
--------------------------------------------------------------------------------
1 | variable "aws_access_key" {}
2 | variable "aws_secret_key" {}
3 |
4 | provider "aws" {
5 | access_key = "${var.aws_access_key}"
6 | secret_key = "${var.aws_secret_key}"
7 | region = "us-east-1"
8 | }
9 |
10 | resource "aws_instance" "example" {
11 | ami = "ami-2757f631"
12 | instance_type = "t2.micro"
13 | vpc_security_group_ids = ["sg-b92859c2"]
14 | subnet_id = "subnet-f04d4d86"
15 | }
16 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/approval/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 | ORG_NAME="$2"
5 | PROJECT_NAME="$3"
6 |
7 | rm -rf target && mkdir target
8 | cp concord.yml example.tf forms target/
9 |
10 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
11 |
12 | read -p "Username: " CURL_USER
13 | curl -u ${CURL_USER} -F archive=@target/payload.zip -F org=${ORG_NAME} -F project=${PROJECT_NAME} http://${SERVER_ADDR}/api/v1/process
14 |
--------------------------------------------------------------------------------
/.circleci/config.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | executorType: machine
3 | jobs:
4 | build:
5 | steps:
6 | - checkout
7 |
8 | - restore_cache:
9 | key: concord-plugins-{{ checksum "pom.xml" }}
10 |
11 | - run: ./mvnw -B dependency:go-offline > /dev/null
12 |
13 | - save_cache:
14 | paths:
15 | - ~/.m2
16 | key: concord-plugins-{{ checksum "pom.xml" }}
17 |
18 | - run: ./mvnw -B clean install
19 |
--------------------------------------------------------------------------------
/tasks/aws/examples/ecr/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | runtime: concord-v2
3 | dependencies:
4 | - mvn://com.walmartlabs.concord.plugins:aws-tasks:2.3.1
5 |
6 | flows:
7 | default:
8 | - task: awsEcr
9 | in:
10 | action: describe-images
11 | region: us-east-1
12 | repositoryName: foo
13 | maxResults: 1
14 | out: result
15 | - log: "Image Details: ${resource.prettyPrintJson(result.imageDetails)}"
16 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/azure-ansible/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 | ORG_NAME="$2"
5 | PROJECT_NAME="$3"
6 |
7 | rm -rf target && mkdir target
8 | cp concord.yml example.tf playbook.yml target/
9 |
10 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
11 |
12 | read -p "Username: " CURL_USER
13 | curl -u ${CURL_USER} -F archive=@target/payload.zip -F org=${ORG_NAME} -F project=${PROJECT_NAME} http://${SERVER_ADDR}/api/v1/process
14 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/minimal/example.tf:
--------------------------------------------------------------------------------
1 | variable "aws_access_key" {}
2 | variable "aws_secret_key" {}
3 |
4 | provider "aws" {
5 | access_key = "${var.aws_access_key}"
6 | secret_key = "${var.aws_secret_key}"
7 | region = "us-east-1"
8 | }
9 |
10 | resource "aws_instance" "example" {
11 | ami = "ami-2757f631"
12 | instance_type = "t2.micro"
13 | vpc_security_group_ids = [
14 | "sg-b92859c2"]
15 | subnet_id = "subnet-f04d4d86"
16 | }
17 |
--------------------------------------------------------------------------------
/tasks/jenkins/src/test/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tasks/puppet/src/test/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/tasks/argocd/src/test/resources/example-flow/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SERVER_ADDR="$1"
4 |
5 | rm -rf target && mkdir target
6 | cp concord.yml target/
7 |
8 | cd target && zip -r payload.zip ./* > /dev/null && cd ..
9 |
10 | #read -p "Username: " CURL_USER
11 | #curl -u ${CURL_USER} -F archive=@target/payload.zip http://${SERVER_ADDR}/api/v1/process
12 |
13 | curl -u myuser:q1 -F org=Default -F project=brig -F archive=@target/payload.zip http://${SERVER_ADDR}/api/v1/process
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/wiremock/repo/__files/create_ref.json:
--------------------------------------------------------------------------------
1 | {
2 | "ref": "refs/heads/featureA",
3 | "node_id": "MDM6UmVmcmVmcy9oZWFkcy9mZWF0dXJlQQ==",
4 | "url": "https://api.github.com/repos/octocat/mock-repo/git/refs/heads/featureA",
5 | "object": {
6 | "type": "commit",
7 | "sha": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c",
8 | "url": "https://api.github.com/repos/octocat/mock-repo/git/commits/aa218f56b14c9653891f9e74264a383fa43fefbd"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/azure-minimal/example.tf:
--------------------------------------------------------------------------------
1 | variable "client_id" {}
2 | variable "client_secret" {}
3 | variable "subscription_id" {}
4 | variable "tenant_id" {}
5 |
6 | provider "azurerm" {
7 | client_id = "${var.client_id}"
8 | client_secret = "${var.client_secret}"
9 | subscription_id = "${var.subscription_id}"
10 | tenant_id = "${var.tenant_id}"
11 | }
12 |
13 | resource "azurerm_resource_group" "example" {
14 | name = "example-azure"
15 | location = "southcentralus"
16 | }
17 |
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/wiremock/repo/__files/list_tags.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "v0.1",
4 | "commit": {
5 | "sha": "c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc",
6 | "url": "https://api.github.com/repos/octocat/mock-repo/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc"
7 | },
8 | "zipball_url": "https://github.com/octocat/mock-repo/zipball/v0.1",
9 | "tarball_url": "https://github.com/octocat/mock-repo/tarball/v0.1",
10 | "node_id": "MDQ6VXNlcjE="
11 | }
12 | ]
13 |
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tasks/msteams/src/test/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tasks/packer/src/test/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tasks/terraform/src/test/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/runtime/opentelemetry/src/test/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tasks/puppet/src/test/resources/simpleQueryResult.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "certname": "host01"
4 | },
5 | {
6 | "certname": "host02"
7 | },
8 | {
9 | "certname": "host03"
10 | },
11 | {
12 | "certname": "host04"
13 | },
14 | {
15 | "certname": "host05"
16 | },
17 | {
18 | "certname": "host06"
19 | },
20 | {
21 | "certname": "host07"
22 | },
23 | {
24 | "certname": "host08"
25 | },
26 | {
27 | "certname": "host09"
28 | },
29 | {
30 | "certname": "host10"
31 | }
32 | ]
33 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/output/example.tf:
--------------------------------------------------------------------------------
1 | variable "aws_access_key" {}
2 | variable "aws_secret_key" {}
3 |
4 | provider "aws" {
5 | access_key = "${var.aws_access_key}"
6 | secret_key = "${var.aws_secret_key}"
7 | region = "us-east-1"
8 | }
9 |
10 | resource "aws_instance" "example" {
11 | ami = "ami-2757f631"
12 | instance_type = "t2.micro"
13 | vpc_security_group_ids = [
14 | "sg-b92859c2"]
15 | subnet_id = "subnet-f04d4d86"
16 | }
17 |
18 | output "public_instance_ip" {
19 | value = "${aws_instance.example.public_ip}"
20 | }
21 |
--------------------------------------------------------------------------------
/tasks/jira/src/test/resources/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/tasks/argocd/src/test/resources/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017-present, Walmart Inc.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License."
14 |
--------------------------------------------------------------------------------
/tasks/terraform/src/test/terraform/terraform.tfstate:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "terraform_version": "0.11.12",
4 | "serial": 2,
5 | "lineage": "ed17080c-d22c-0c55-d029-a589bcf9b365",
6 | "modules": [
7 | {
8 | "path": [
9 | "root"
10 | ],
11 | "outputs": {
12 | "image_id": {
13 | "sensitive": false,
14 | "type": "string",
15 | "value": "ami-07b4f3c02c7f83d59"
16 | }
17 | },
18 | "depends_on": []
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/gcp-minimal/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | dependencies:
3 | - mvn://com.walmartlabs.concord.plugins:terraform-task:1.22.0
4 |
5 | flows:
6 | default:
7 | - task: terraform
8 | in:
9 | action: plan
10 | extraVars:
11 | # myGcpCreds contains the service account's credentials - refer to README.md for more details.
12 | credentials: "${crypto.exportAsFile('myOrg', 'myGcpCreds', 'myPassword')}"
13 | projectName: "concord-test"
14 |
15 | - task: terraform
16 | in:
17 | action: apply
18 | plan: "${result.planPath}"
19 |
--------------------------------------------------------------------------------
/tasks/terraform/src/test/resources/com/walmartlabs/concord/plugins/terraform/runtimeV1/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | runtime: "concord-v1"
3 | dependencies:
4 | - "mvn://com.walmartlabs.concord.plugins:terraform-task:%%version%%"
5 |
6 | flows:
7 | default:
8 | # regular run
9 | - task: terraform
10 | in:
11 | action: plan
12 |
13 | # custom $PWD
14 | - task: terraform
15 | in:
16 | action: plan
17 | pwd: mydir
18 |
19 | # custom $PWD + [DIR]
20 | - task: terraform
21 | in:
22 | action: plan
23 | pwd: mydir
24 | dir: nested
25 |
--------------------------------------------------------------------------------
/tasks/terraform/src/test/resources/com/walmartlabs/concord/plugins/terraform/runtimeV2/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | runtime: "concord-v2"
3 | dependencies:
4 | - "mvn://com.walmartlabs.concord.plugins:terraform-task:%%version%%"
5 |
6 | flows:
7 | default:
8 | # regular run
9 | - task: terraform
10 | in:
11 | action: plan
12 |
13 | # custom $PWD
14 | - task: terraform
15 | in:
16 | action: plan
17 | pwd: mydir
18 |
19 | # custom $PWD + [DIR]
20 | - task: terraform
21 | in:
22 | action: plan
23 | pwd: mydir
24 | dir: nested
25 |
--------------------------------------------------------------------------------
/tasks/zoom/examples/send_message/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | dependencies:
3 | - "mvn://com.walmartlabs.concord.plugins:zoom-task:1.18.0"
4 |
5 | flows:
6 | default:
7 | - task: zoom
8 | in:
9 | action: sendMessage
10 | channelId: "myZoomChannelId"
11 | headText: "Hello to concord world"
12 | bodyText: "Hello everyone"
13 | ignoreErrors: true
14 |
15 | - log: "Result status is ${result.ok}"
16 | - if: "${!result.ok}"
17 | then:
18 | - throw: "Error while sending a message: ${result.error}"
19 | else:
20 | - log: "Data: ${result.data}"
21 |
--------------------------------------------------------------------------------
/tasks/s3/src/test/resources/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/tasks/akeyless/src/test/resources/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/tasks/hashivault/src/test/resources/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | %d{HH:mm:ss.SSS} [%thread] [%-5level] %logger{36} - %msg%n
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/tasks/jsonpath/examples/todos/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | runtime: concord-v2
3 | dependencies:
4 | - "mvn://com.walmartlabs.concord.plugins:jsonpath-task:1.32.0"
5 |
6 | flows:
7 | default:
8 | # inline
9 | - log: "Inline result: ${jsonPath.readJson(http.asString('https://jsonplaceholder.typicode.com/todos'), '$.[:10].title')}"
10 |
11 | # using the task syntax
12 | - task: jsonPath
13 | in:
14 | action: "readJson"
15 | src: "${http.asString('https://jsonplaceholder.typicode.com/todos')}"
16 | path: "$.[:10].title"
17 | out: result
18 |
19 | - log: "Task syntax result: ${result}"
20 |
--------------------------------------------------------------------------------
/tasks/argocd/src/test/resources/com/walmartlabs/concord/plugins/argocd/it/runtimeV2/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | runtime: "concord-v2"
3 | dependencies:
4 | - "mvn://com.walmartlabs.concord.plugins:argocd-task:%%version%%"
5 |
6 | flows:
7 | default:
8 | - log: "Hello world"
9 | - task: argocd
10 | in:
11 | action: get
12 | baseUrl: "${argoBaseUrl}"
13 | app: "test"
14 | auth:
15 | ldap:
16 | username: user
17 | password: password
18 | out: result
19 | - log: "${resource.prettyPrintJson(result)}"
20 | - log: "got app status: ${result.app.status.health.status}"
21 |
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/wiremock/repo/__files/list_branches.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "main",
4 | "commit": {
5 | "sha": "c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc",
6 | "url": "https://api.github.com/repos/octocat/mock-repo/commits/c5b97d5ae6c19d5c5df71a34c7fbeeda2479ccbc"
7 | },
8 | "protected": true,
9 | "protection": {
10 | "required_status_checks": {
11 | "enforcement_level": "non_admins",
12 | "contexts": [
13 | "ci-test",
14 | "linter"
15 | ]
16 | }
17 | },
18 | "protection_url": "https://api.github.com/repos/octocat/mock-repo/branches/main/protection"
19 | }
20 | ]
21 |
--------------------------------------------------------------------------------
/tasks/msteams/examples/minimal/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | dependencies:
3 | - "mvn://com.walmartlabs.concord.plugins:msteams-task:1.32.0"
4 |
5 | flows:
6 | default:
7 | - task: msteams
8 | in:
9 | action: sendMessage
10 | teamId: "6d97d054-8882-48f8-be19-052934402f06"
11 | webhookId: "ec83079e7d2b480886b1138966c25d9c"
12 | title: "My Message title"
13 | text: "My Message text"
14 | ignoreErrors: true
15 | - log: "Result status: ${result.ok}"
16 | - if: "${!result.ok}"
17 | then:
18 | - throw: "Error occured while sending a message: ${result.error}"
19 | else:
20 | - log: "Data: ${result.data}"
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/wiremock/pullRequest/__files/get_files.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "sha": "bbcd538c8e72b8c175046e27cc8f907076331401",
4 | "filename": "file1.txt",
5 | "status": "added",
6 | "additions": 103,
7 | "deletions": 21,
8 | "changes": 124,
9 | "blob_url": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
10 | "raw_url": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
11 | "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e",
12 | "patch": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test"
13 | }
14 | ]
15 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/azure-minimal/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | dependencies:
3 | - mvn://com.walmartlabs.concord.plugins:terraform-task:1.12.0
4 |
5 | flows:
6 | default:
7 | - task: terraform
8 | in:
9 | action: plan
10 | extraVars:
11 | subscription_id: "azure subsciption id" # replace with the real values
12 | tenant_id: "azure tenant id" # or use Concord Secrets, `decryptString` etc
13 | client_id: "azure client id"
14 | client_secret: "azure client secret"
15 |
16 | - task: terraform
17 | in:
18 | action: apply
19 | plan: "${result.planPath}"
20 | # when using a previously created plan file, no need to pass `extraVars` again
21 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/gcp-minimal/example.tf:
--------------------------------------------------------------------------------
1 | variable "credentials" {}
2 | variable "projectName" {}
3 |
4 | provider "google" {
5 | credentials = "${var.credentials}"
6 | project = "${var.projectName}"
7 | region = "us-central1"
8 | zone = "us-central1-a"
9 | }
10 |
11 | resource "google_compute_network" "vpc_network" {
12 | name = "my-vpc-network"
13 | }
14 |
15 | resource "google_compute_instance" "vm_instance" {
16 | name = "my-vm-instance"
17 |
18 | machine_type = "f1-micro"
19 | zone = "us-central1-a"
20 |
21 | boot_disk {
22 | initialize_params {
23 | image = "debian-cloud/debian-9"
24 | }
25 | }
26 |
27 | network_interface {
28 | subnetwork = "${google_compute_network.vpc_network.name}"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/runtime/codecoverage/README.md:
--------------------------------------------------------------------------------
1 | # codecoverage
2 |
3 | A plugin for Concord runtime-v2 that adds code coverage capabilities.
4 |
5 | ## Usage
6 |
7 | To use the plugin, add the following dependency to your Concord process:
8 |
9 | ```yaml
10 | configuration:
11 | dependencies:
12 | - mvn://com.walmartlabs.concord.plugins:codecoverage:
13 | ```
14 |
15 | ## Generating HTML report with LCOV
16 |
17 | The plugin produces a file in [the LCOV format](https://github.com/linux-test-project/lcov).
18 |
19 | 1. Download coverage info: `/api/v1/process/${INSTANCE_ID}/attachment/coverage.info`
20 | 2. Download and unzip process flows: `/api/v1/process/${INSTANCE_ID}/attachment/flows.zip`
21 | 3. Generate HTML with: `genhtml "coverage.info" --output-directory "html"`
22 |
--------------------------------------------------------------------------------
/tasks/terraform/examples/output/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | dependencies:
3 | - mvn://com.walmartlabs.concord.plugins:terraform-task:1.12.0
4 |
5 | flows:
6 | default:
7 | - task: terraform
8 | in:
9 | action: apply
10 | saveOutput: true # run `terraform output` after apply and save the output
11 | extraVars:
12 | aws_access_key: "AWS access key" # replace with the real values
13 | aws_secret_key: "AWS secret key" # or use Concord Secrets, `decryptString` etc
14 |
15 | # `terraform output` can be executed as a separate action as well
16 | # - task: terraform
17 | # in:
18 | # action: output
19 |
20 | - log: "Output: ${result.data}"
21 | - log: "Public IP: ${result.data.public_instance_ip.value}"
22 |
--------------------------------------------------------------------------------
/tasks/packer/src/test/packer/packer-test.json:
--------------------------------------------------------------------------------
1 | {
2 | "variables": {
3 | "aws_access_key": "",
4 | "aws_secret_key": ""
5 | },
6 | "builders": [
7 | {
8 | "type": "amazon-ebs",
9 | "access_key": "{{user `aws_access_key`}}",
10 | "secret_key": "{{user `aws_secret_key`}}",
11 | "region": "us-east-1",
12 | "source_ami_filter": {
13 | "filters": {
14 | "virtualization-type": "hvm",
15 | "name": "ubuntu/images/*ubuntu-xenial-16.04-amd64-server-*",
16 | "root-device-type": "ebs"
17 | },
18 | "owners": [
19 | "099720109477"
20 | ],
21 | "most_recent": true
22 | },
23 | "instance_type": "t2.micro",
24 | "ssh_username": "ubuntu",
25 | "ami_name": "packer-example {{timestamp}}"
26 | }
27 | ]
28 | }
--------------------------------------------------------------------------------
/tasks/hashivault/testCLI.yml:
--------------------------------------------------------------------------------
1 | # testCLI.sh script will replace version with current pom.xml version
2 | configuration:
3 | dependencies:
4 | - mvn://com.walmartlabs.concord.plugins:hashivault-task:LOCAL_VERSION
5 | arguments:
6 | hashivaultParams:
7 | baseUrl: "${vaultBaseUrl}"
8 | debug: true
9 | runtime: concord-v2
10 |
11 | flows:
12 | default:
13 | - log: "Executing process with plugin: hashivault-task:LOCAL_VERSION"
14 | - task: hashivault
15 | in:
16 | baseUrl: "${vaultBaseUrl}"
17 | path: "${vaultPath}"
18 | namespace: "${vaultNs}"
19 | apiToken: "${vaultToken}"
20 | out: result
21 | error:
22 | - log: "Vault error: ${lastError.cause}"
23 | - log: ${resource.prettyPrintJson(result)}
24 | - log: "ok: ${result.ok}"
25 | - log: "data: ${resource.prettyPrintJson(result.data)}"
26 |
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/wiremock/repo/__files/create_tag.json:
--------------------------------------------------------------------------------
1 | {
2 | "node_id": "MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw==",
3 | "tag": "v0.0.1",
4 | "sha": "940bd336248efae0f9ee5bc7b2d5c985887b16ac",
5 | "url": "https://api.github.com/repos/octocat/mock-repo/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac",
6 | "message": "initial version",
7 | "tagger": {
8 | "name": "Monalisa Octocat",
9 | "email": "octocat@github.com",
10 | "date": "2014-11-07T22:01:45Z"
11 | },
12 | "object": {
13 | "type": "commit",
14 | "sha": "c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c",
15 | "url": "https://api.github.com/repos/octocat/mock-repo/git/commits/c3d0be41ecbe669545ee3e94d31ed9a4bc91ee3c"
16 | },
17 | "verification": {
18 | "verified": false,
19 | "reason": "unsigned",
20 | "signature": null,
21 | "payload": null
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/wiremock/repo/__files/create_hook.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "Repository",
3 | "id": 12345678,
4 | "name": "web",
5 | "active": true,
6 | "events": [
7 | "push",
8 | "pull_request"
9 | ],
10 | "config": {
11 | "content_type": "json",
12 | "insecure_ssl": "0",
13 | "url": "https://example.com/webhook"
14 | },
15 | "updated_at": "2019-06-03T00:57:16Z",
16 | "created_at": "2019-06-03T00:57:16Z",
17 | "url": "https://api.github.com/repos/octocat/mock-repo/hooks/12345678",
18 | "test_url": "https://api.github.com/repos/octocat/mock-repo/hooks/12345678/test",
19 | "ping_url": "https://api.github.com/repos/octocat/mock-repo/hooks/12345678/pings",
20 | "deliveries_url": "https://api.github.com/repos/octocat/mock-repo/hooks/12345678/deliveries",
21 | "last_response": {
22 | "code": null,
23 | "status": "unused",
24 | "message": null
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/wiremock/repo/mappings/get_error.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "4bcaaca9-73fa-443d-a8ef-ebbe5b4e63fb",
3 | "name": "github_task_test_repo_get_error",
4 | "request": {
5 | "url": "/api/v3/repos/octocat/error-repo",
6 | "method": "GET",
7 | "headers": {
8 | "Accept": {
9 | "equalTo": "application/vnd.github.v3.full+json"
10 | }
11 | }
12 | },
13 | "response": {
14 | "status": 999,
15 | "body": "very unexpected error",
16 | "headers": {
17 | "Date": "Thu, 03 Oct 2019 21:18:41 GMT",
18 | "Content-Type": "application/json; charset=utf-8",
19 | "Server": "GitHub.com",
20 | "Status": "999 fake error",
21 | "X-RateLimit-Limit": "5000",
22 | "X-RateLimit-Remaining": "4907",
23 | "X-RateLimit-Reset": "1570140015"
24 | }
25 | },
26 | "uuid": "97713e4c-d41c-41df-92b5-85263f798b17",
27 | "persistent": true,
28 | "insertionIndex": 4
29 | }
30 |
--------------------------------------------------------------------------------
/tasks/s3/src/main/java/com/walmartlabs/concord/plugins/s3/Result.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.s3;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2019 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import java.io.Serializable;
24 |
25 | public interface Result extends Serializable {
26 | }
27 |
--------------------------------------------------------------------------------
/tasks/git/src/test/resources/wiremock/repo/__files/contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "file",
3 | "encoding": "base64",
4 | "size": 17,
5 | "name": "README.md",
6 | "path": "README.md",
7 | "content": "IyBtb2NrLXJlcG8=\n",
8 | "sha": "3d21ec53a331a6f037a91c368710b99387d012c1",
9 | "url": "https://api.github.com/repos/octokit/mock-repo/contents/README.md",
10 | "git_url": "https://api.github.com/repos/octokit/mock-repo/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1",
11 | "html_url": "https://github.com/octokit/mock-repo/blob/master/README.md",
12 | "download_url": "https://raw.githubusercontent.com/octokit/mock-repo/master/README.md",
13 | "_links": {
14 | "git": "https://api.github.com/repos/octokit/mock-repo/git/blobs/3d21ec53a331a6f037a91c368710b99387d012c1",
15 | "self": "https://api.github.com/repos/octokit/mock-repo/contents/README.md",
16 | "html": "https://github.com/octokit/mock-repo/blob/master/README.md"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/tasks/msteams/examples/msteamsV2/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | dependencies:
3 | - "mvn://com.walmartlabs.concord.plugins:msteams-task:1.32.0"
4 |
5 | flows:
6 | default:
7 | - task: msteamsV2
8 | in:
9 | action: createConversation
10 | activity:
11 | type: message
12 | text: "My First Message"
13 | channelId: "myChannelId"
14 | ignoreErrors: true
15 |
16 | - log: "Result status: ${result.ok}"
17 | - if: "${!result.ok}"
18 | then:
19 | - throw: "Error occurred while sending a message: ${result.error}"
20 | else:
21 | - log: "Data: ${result.data}"
22 | - log: "Conversation Id: ${result.conversationId}"
23 |
24 | - task: msteamsV2
25 | in:
26 | action: replyToConversation
27 | conversationId: ${result.conversationId}
28 | activity:
29 | type: message
30 | text: "This replies to a previously posted conversation"
--------------------------------------------------------------------------------
/tasks/argocd/src/main/java/com/walmartlabs/concord/plugins/argocd/model/EventStatus.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.argocd.model;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2023 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | public enum EventStatus {
24 | START,
25 | COMPLETE,
26 | FAIL
27 | }
--------------------------------------------------------------------------------
/tasks/terraform/src/main/java/com/walmartlabs/concord/plugins/terraform/Action.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.terraform;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2020 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | public enum Action {
24 | APPLY,
25 | PLAN,
26 | OUTPUT,
27 | DESTROY;
28 | }
29 |
--------------------------------------------------------------------------------
/tasks/ldap/src/main/java/com/walmartlabs/concord/plugins/ldap/LdapSearchParams.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.ldap;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2020 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | public interface LdapSearchParams extends LdapConnectionCfg {
24 |
25 | String searchBase();
26 | }
27 |
--------------------------------------------------------------------------------
/tasks/s3/examples/put_get/concord.yml:
--------------------------------------------------------------------------------
1 | configuration:
2 | dependencies:
3 | - "mvn://com.walmartlabs.concord.plugins:s3-task:1.32.0"
4 |
5 | flows:
6 | # store an object
7 | - task: s3
8 | in:
9 | action: "putObject"
10 | endpoint: "http://s3.example.com" # optional
11 | region: "some-region"
12 | pathStyleAccess: true # optional, some S3 API implementations require it
13 | auth:
14 | basic:
15 | accessKey: "..."
16 | secretKey: "..."
17 | bucketName: "myBucket"
18 | objectKey: "myObject"
19 | src: "local.file"
20 |
21 | # retrieve an object
22 | - task: s3
23 | in:
24 | action: "getObject"
25 | region: "some-region"
26 | pathStyleAccess: true # optional, some S3 API implementations require it
27 | auth:
28 | basic:
29 | accessKey: "..."
30 | secretKey: "..."
31 | bucketName: "myBucket"
32 | objectKey: "myObject"
33 |
34 | - log: "Stored as ${result.path}"
35 |
--------------------------------------------------------------------------------
/tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/JiraSecretService.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.jira;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2020 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | public interface JiraSecretService {
24 |
25 | JiraCredentials exportCredentials(String orgName, String secretName, String password) throws Exception;
26 | }
27 |
--------------------------------------------------------------------------------
/tasks/puppet/src/main/java/com/walmartlabs/concord/plugins/puppet/model/SecretExporter.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.puppet.model;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2020 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import java.nio.file.Path;
24 |
25 | public interface SecretExporter {
26 |
27 | Path export(String o, String n, String p) throws Exception;
28 | }
29 |
--------------------------------------------------------------------------------
/tasks/argocd/src/main/java/com/walmartlabs/concord/plugins/argocd/TokenAuthHandler.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.argocd;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2022 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | public class TokenAuthHandler {
24 |
25 | public static String auth(TaskParams.TokenAuth auth) {
26 | return auth.token();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/tasks/hashivault/src/main/java/com/walmartlabs/concord/plugins/hashivault/HashiVaultTaskException.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.hashivault;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2021 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | public class HashiVaultTaskException extends RuntimeException {
24 | public HashiVaultTaskException(String msg) {
25 | super(msg);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/tasks/packer/src/main/java/com/walmartlabs/concord/plugins/packer/commands/Version.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.packer.commands;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2020 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import ca.vanzyl.concord.plugins.tool.ToolCommandSupport;
24 |
25 | import javax.inject.Named;
26 |
27 | @Named("packer/version")
28 | public class Version
29 | extends ToolCommandSupport {
30 | }
31 |
--------------------------------------------------------------------------------
/tasks/git/src/main/java/com/walmartlabs/concord/plugins/git/GitClient.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.git;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2020 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import com.walmartlabs.concord.sdk.Secret;
24 |
25 | import java.nio.file.Path;
26 |
27 | public interface GitClient {
28 |
29 | void cloneRepo(String uri, String branchName, Secret secret, Path dst) throws Exception;
30 | }
31 |
--------------------------------------------------------------------------------
/tasks/puppet/src/main/java/com/walmartlabs/concord/plugins/puppet/model/exception/ConfigException.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.puppet.model.exception;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2019 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | public class ConfigException extends RuntimeException {
24 |
25 | public ConfigException(String msg) {
26 | super("Error setting up PuppetConfiguration: " + msg);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | # Licensed to the Apache Software Foundation (ASF) under one
2 | # or more contributor license agreements. See the NOTICE file
3 | # distributed with this work for additional information
4 | # regarding copyright ownership. The ASF licenses this file
5 | # to you under the Apache License, Version 2.0 (the
6 | # "License"); you may not use this file except in compliance
7 | # with the License. You may obtain a copy of the License at
8 | #
9 | # https://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing,
12 | # software distributed under the License is distributed on an
13 | # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14 | # KIND, either express or implied. See the License for the
15 | # specific language governing permissions and limitations
16 | # under the License.
17 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip
18 | wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar
19 |
--------------------------------------------------------------------------------
/tasks/jira/src/test/java/com/walmartlabs/concord/plugins/jira/NativeJiraHttpClientTest.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.jira;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2024 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | class NativeJiraHttpClientTest extends AbstractWiremockTest {
24 |
25 | @Override
26 | JiraHttpClient getClient(JiraClientCfg cfg) {
27 | return new NativeJiraHttpClient(cfg);
28 | }
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/tasks/akeyless/src/main/java/com/walmartlabs/concord/plugins/akeyless/model/SecretCache.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.akeyless.model;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2022 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import java.util.function.Supplier;
24 |
25 | public interface SecretCache {
26 | T get(String org, String name, Supplier lookup);
27 | void put(String org, String name, T value);
28 | }
29 |
--------------------------------------------------------------------------------
/tasks/ldap/src/main/java/com/walmartlabs/concord/plugins/ldap/LdapConnectionCfg.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.ldap;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2020 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import java.util.Map;
24 |
25 | public interface LdapConnectionCfg {
26 |
27 | String ldapAdServer();
28 |
29 | String bindUserDn();
30 |
31 | String bindPassword();
32 |
33 | Map dnsSrvRr();
34 | }
35 |
--------------------------------------------------------------------------------
/tasks/s3/src/main/java/com/walmartlabs/concord/plugins/s3/Constants.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.s3;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2019 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | public final class Constants {
24 |
25 | public static final String ACTION_KEY = "action";
26 | public static final String AUTH_KEY = "auth";
27 | public static final String RESULT_KEY = "result";
28 |
29 | private Constants() {
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/runtime/opentelemetry/README.md:
--------------------------------------------------------------------------------
1 | # opentelemetry
2 |
3 | A plugin for Concord runtime-v2 that adds tracing capabilities using OpenTelemetry.
4 | Process traces are collected after the process finishes and are sent to a configured collector.
5 |
6 | ## Usage
7 |
8 | To use the plugin, add the following dependency to your Concord process:
9 |
10 | ```yaml
11 | configuration:
12 | dependencies:
13 | - mvn://com.walmartlabs.concord.plugins:opentelemetry:
14 | ```
15 |
16 | The plugin is configured using `defaultTaskVariables`. For example, using
17 | [project-level configuration](https://concord.walmartlabs.com/docs/getting-started/projects.html#configuration):
18 |
19 | ```yaml
20 |
21 | ```json
22 | {
23 | "defaultTaskVariables": {
24 | "opentelemetry": {
25 | "enabled": true,
26 | "endpoint": "http://localhost:4318/v1/traces"
27 | }
28 | }
29 | }
30 | ```
31 |
32 | The `endpoint` is the address of the OpenTelemetry collector that will receive the traces.
33 |
34 | Once the plugin is configured, the traces will be sent to the collector after any process finishes (or fails).
35 |
--------------------------------------------------------------------------------
/tasks/puppet/src/main/java/com/walmartlabs/concord/plugins/puppet/model/exception/MissingParameterException.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.puppet.model.exception;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2019 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 |
24 | public class MissingParameterException extends RuntimeException {
25 |
26 | public MissingParameterException(String missingParamName) {
27 | super("Cannot find value for " + missingParamName);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/tasks/git/src/main/java/com/walmartlabs/concord/plugins/git/GitSecretService.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.git;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2020 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import java.nio.file.Path;
24 |
25 | public interface GitSecretService {
26 |
27 | Path exportPrivateKeyAsFile(String orgName, String secretName, String pwd) throws Exception;
28 |
29 | Path exportFile(String orgName, String secretName, String pwd) throws Exception;
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/tasks/git/src/main/java/com/walmartlabs/concord/plugins/git/TokenSecret.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.git;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2020 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import com.walmartlabs.concord.sdk.Secret;
24 |
25 | public class TokenSecret implements Secret {
26 |
27 | private final String token;
28 |
29 | public TokenSecret(String token) {
30 | this.token = token;
31 | }
32 |
33 | public String getToken() {
34 | return token;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/tasks/hashivault/src/test/resources/ca.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIC/jCCAeYCCQCv9U0hsjboWjANBgkqhkiG9w0BAQsFADBAMQswCQYDVQQGEwJV
3 | UzELMAkGA1UECAwCQVIxEDAOBgNVBAoMB1dhbG1hcnQxEjAQBgNVBAMMCWxvY2Fs
4 | aG9zdDAgFw0yMjAxMDUyMDAyMzVaGA8yMjk1MTAyMDIwMDIzNVowQDELMAkGA1UE
5 | BhMCVVMxCzAJBgNVBAgMAkFSMRAwDgYDVQQKDAdXYWxtYXJ0MRIwEAYDVQQDDAls
6 | b2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2gLwyfjnk
7 | BxfYZQ8Q9xwIM1yQGfKZLpWqjG4R7kHx508e7ba4zRGUVYc36R5Ya2BP9Si262BT
8 | LnWCULzKHDoCIyyIBr9dZCDA+mIrkMbl4xSWM2nrucQd1+14TBjOIzsD9IZyIr5x
9 | b7yR/pJ6e2iavzBQGkWxKok7gYKHVug5nOA74XIwse9lm+tglQKVSOBhuTiFagP2
10 | um42ZO3ipJ2stWI1SSybWJb3u0DEeznh1+/2ndhXGV5TWXnvIpdna1NwgbC3EfLJ
11 | 1LP29p4cpni6sK9Hy5a4s2JVGVvPlbfb87aUd5NhGW0H10Y0tiIHb2aAQxgRgA6G
12 | WOkz6ga6JrGzAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAJIu65uDlhnXzmvBnKIc
13 | 5QAHvuyr71aFGUh/UQDjgCvDjWr+v/Hwoi5UZSSLVg6D9sZzImAZA8qXX4ID+xyX
14 | sUm1f52ZNYxN6FlqxaylDWJ8wtagWcFTcSe1epa6Hp01c7VcKKq1a3IJx0nl8voJ
15 | 5L1mEIZ/Rywp9rFHqPeWWAEZPN5oYfs7viSQt9GCiVVufA9oaVKUFteECeBpB8Fm
16 | ScrjSWNQaQcsbB/q/eQbXBCRHo9qn2uF/amoPYqmOmuQF3F0y8WeDoBQwNEySXPv
17 | Okl+2kBU0mSV05PrZ5Lo25gEJW74T1bpL+HzzmbFlbpEDXrdf8eZxd8WQp0nWzwv
18 | +bc=
19 | -----END CERTIFICATE-----
20 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: build
2 |
3 | on:
4 | push:
5 | branches: [ 'master' ]
6 | pull_request:
7 | branches: [ 'master' ]
8 |
9 | concurrency:
10 | group: ${{ github.ref }}-build
11 | cancel-in-progress: true
12 |
13 | jobs:
14 | build:
15 | strategy:
16 | matrix:
17 | jdk_version: ['17']
18 | fail-fast: false
19 |
20 | runs-on: ubuntu-latest
21 |
22 | steps:
23 | - name: Clear old Docker resources
24 | run: |
25 | docker rm -f $(docker ps -aq) || true
26 | docker system prune -af || true
27 | docker image prune -af || true
28 | docker volume prune -f || true
29 |
30 | - uses: actions/checkout@v3
31 |
32 | - name: Set up JDK
33 | uses: actions/setup-java@v3
34 | with:
35 | java-version: '${{ matrix.jdk_version }}'
36 | distribution: 'temurin'
37 |
38 | - name: Remove old Concord artifacts
39 | run: |
40 | rm -rf ~/.m2/repository/com/walmartlabs/concord
41 | rm -rf ~/actions-runner/.m2/repository/com/walmartlabs/concord
42 |
43 | - name: Build and test with Maven
44 | run: ./mvnw -B clean install
45 |
--------------------------------------------------------------------------------
/tasks/git/src/main/java/com/walmartlabs/concord/plugins/git/GitHubTaskAction.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.git;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2025 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import com.walmartlabs.concord.plugins.git.model.GitHubApiInfo;
24 |
25 | import java.util.Map;
26 | import java.util.UUID;
27 |
28 | public abstract class GitHubTaskAction {
29 |
30 | public abstract Map execute(UUID txId, GitHubApiInfo apiInfo, T input) throws Exception;
31 | }
32 |
--------------------------------------------------------------------------------
/tasks/terraform/src/test/terraform/minimal_azure/main.tf:
--------------------------------------------------------------------------------
1 | variable "client_id" {}
2 | variable "client_secret" {}
3 | variable "subscription_id" {}
4 | variable "tenant_id" {}
5 | variable "name" {}
6 | variable "time" {}
7 |
8 | terraform {
9 | required_providers {
10 | azurerm = {
11 | source = "hashicorp/azurerm"
12 | version = "3.17.0"
13 | }
14 | }
15 | }
16 |
17 | provider "azurerm" {
18 | client_id = var.client_id
19 | client_secret = var.client_secret
20 | subscription_id = var.subscription_id
21 | tenant_id = var.tenant_id
22 |
23 | features {}
24 | }
25 |
26 | resource "azurerm_resource_group" "mygroup" {
27 | name = "concord-tf-test-resources"
28 | location = "southcentralus"
29 |
30 | lifecycle {
31 | ignore_changes = [ tags ]
32 | }
33 | }
34 |
35 |
36 | output "resource_group_info" {
37 | value = {
38 | name = azurerm_resource_group.mygroup.name,
39 | id = azurerm_resource_group.mygroup.id,
40 | location = azurerm_resource_group.mygroup.location
41 | }
42 | }
43 |
44 | output "name_from_varfile0" {
45 | value = var.name
46 | }
47 |
48 | output "time_from_varfile1" {
49 | value = var.time
50 | }
51 |
--------------------------------------------------------------------------------
/tasks/jira/src/main/java/com/walmartlabs/concord/plugins/jira/Constants.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.jira;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2024 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import java.util.UUID;
24 |
25 | public class Constants {
26 |
27 | private Constants() {
28 | throw new IllegalStateException("instantiation is not allowed");
29 | }
30 |
31 | static final String BOUNDARY = UUID.randomUUID().toString();
32 | public static final String PARAMS_KEY = "jiraParams";
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/tasks/puppet/src/main/java/com/walmartlabs/concord/plugins/puppet/model/token/TokenResult.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.puppet.model.token;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2019 Walmart Inc.
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import com.fasterxml.jackson.annotation.JsonProperty;
24 |
25 | public class TokenResult {
26 | private String token;
27 |
28 | public TokenResult(@JsonProperty("token") String token) {
29 | this.token = token;
30 | }
31 |
32 | public String getToken() {
33 | return token;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/tasks/argocd/src/main/java/com/walmartlabs/concord/plugins/argocd/model/HttpExecutor.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.argocd.model;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2025 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import com.walmartlabs.concord.plugins.argocd.openapi.ApiException;
24 |
25 | import java.io.IOException;
26 | import java.io.InputStream;
27 | import java.net.http.HttpRequest;
28 |
29 | public interface HttpExecutor {
30 | InputStream execute(HttpRequest request) throws ApiException, IOException, InterruptedException;
31 | }
32 |
--------------------------------------------------------------------------------
/tasks/git/src/main/java/com/walmartlabs/concord/plugins/git/client/PageHandler.java:
--------------------------------------------------------------------------------
1 | package com.walmartlabs.concord.plugins.git.client;
2 |
3 | /*-
4 | * *****
5 | * Concord
6 | * -----
7 | * Copyright (C) 2017 - 2025 Walmart Inc., Concord Authors
8 | * -----
9 | * Licensed under the Apache License, Version 2.0 (the "License");
10 | * you may not use this file except in compliance with the License.
11 | * You may obtain a copy of the License at
12 | *
13 | * http://www.apache.org/licenses/LICENSE-2.0
14 | *
15 | * Unless required by applicable law or agreed to in writing, software
16 | * distributed under the License is distributed on an "AS IS" BASIS,
17 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 | * See the License for the specific language governing permissions and
19 | * limitations under the License.
20 | * =====
21 | */
22 |
23 | import java.util.List;
24 | import java.util.Map;
25 |
26 | @FunctionalInterface
27 | public interface PageHandler {
28 |
29 | /**
30 | * @return {@code true} to continue fetching subsequent pages,
31 | * {@code false} to stop iteration early.
32 | */
33 | boolean onPage(List