Introduction
What are Targets?
Targets are reusable connection definitions - credentials, hostnames, integration references, and access scopes stored in a single place and shared across projects, pipelines, and actions. Define a target once, then reference it from any pipeline that needs to deploy to or query the same resource.
Buddy supports the following target types, grouped by purpose:
File transfer
Cloud servers
- DigitalOcean - DigitalOcean droplets.
- UpCloud - UpCloud servers.
- Vultr - Vultr instances.
- Amazon EC2 - EC2 instances resolved via an AWS integration.
Databases
- MSSQL - Microsoft SQL Server.
- MongoDB - MongoDB clusters and standalone servers.
- MySQL - MySQL databases.
- PostgreSQL - PostgreSQL databases.
Kubernetes
- Kubernetes cluster - generic K8s cluster via kubeconfig.
- Google Kubernetes Engine (GKE) - GKE clusters resolved via a Google integration.
- Amazon EKS - EKS clusters resolved via an AWS integration.
- Azure AKS - AKS clusters resolved via an Azure integration.
- DigitalOcean DOKS - DOKS clusters resolved via a DigitalOcean integration.
Git
- Git - remote Git repositories for push actions.
Server Agent
- Server Agent - self-hosted Buddy agents running on Linux x64, Linux ARM64, macOS ARM64, or Windows x64.
Selecting targets
There are two ways of selecting a target:
- Specific targets - select targets manually, without applying additional filters.
- Filters - select based on specific filters like
tags(e.g. all servers tagged asproduction), ID (using their full names or simple wildcards like*,*stage*,*stage) or scope.
You can access multiple targets within a single action. The number of consecutive transfers depends on the number of runners available in your current plan.
Image loading...
Managing action and pipeline targets with YAML
Action and pipeline targets can be defined in YAML files, allowing for easy and automated management. Here is an example of a YAML file with three targets set-up within a single action, one of which is inline.
yaml- action: "Execute ls" type: "SSH_COMMAND" commands: - "ls -al" targets: - target: myTarget1 type: "SSH" host: "domain.com" auth: username: "$login_ssh" password: "secure!dJyAQBqXzJHQvPMglTZT5Q==.6SmXCn3OHzNur6SHUwdjDA==" - "myTarget2" - "myTarget3" retry_count: 1 run_as_script: true
Configuring targets in YAML files
Define targets directly in your YAML to automate their use in pipelines:
- Transfer via FTP/SFTP - send files to FTP, FTPS, or SFTP servers.
- Downloading files from servers - download files from FTP/SFTP servers to the local filesystem.
- Executing commands over SSH - run scripts and commands on remote SSH servers.
- Push via Git - push code to remote Git repositories from your pipeline.
- MSSQL CLI - run queries on Microsoft SQL Server.
- MongoDB CLI - run mongosh scripts.
- MySQL CLI - run queries on MySQL databases.
- PostgreSQL CLI - run psql scripts on PostgreSQL.
- Kubernetes apply - apply manifests to Kubernetes clusters.
Browsing remote files
FTP and SFTP targets include a Browser tab that lets you navigate the remote filesystem directly from the target view. You can use it to verify the connection and find the correct path to set in the target or action configuration.
Image loading...
The Browser tab is available when the target scope is set to Workspace, Project, Pipeline, or Environment. It is not shown for Action-scoped targets.
Targets in REST API
The REST API allows you to add and manage targets across all supported types - file transfer, cloud servers, databases, Kubernetes, Git, and Server Agent.
You can find out more regarding targets in REST API in the following articles:
Using targets in actions:
Managing targets:
Last modified on May 19, 2026