MongoDB targets
MongoDB targets in Buddy let you store the connection to a MongoDB instance once and reuse it across every pipeline that needs to run mongosh scripts, seed data, or execute maintenance commands. The target is consumed by the MongoDB CLI action and can be referenced by name, by tag, or inline in YAML.
How to add a MongoDB target in Buddy
Navigate to the Targets tab where all globally defined connections are listed.
Image loading...
Click New target and select MongoDB from the dropdown menu.
MongoDB connection settings
Required fields:
- Name - human-readable target name; the unique ID is generated automatically and can be edited.
- Scope - defines which pipelines have access to the target.
- Host - hostname or IP of the MongoDB server (e.g.
mongo.example.com). - Port - MongoDB server port. Default:
27017. - Database - default database name.
- Username & Password - MongoDB authentication credentials.
Optional fields:
- Auth source - the authentication database. If not set, the target database is used. The most common value is
admin, which is where MongoDB stores users created withoutdb.createUseron a specific database. - Proxy - an SSH target used to tunnel traffic to a private MongoDB server (useful for replica sets behind a bastion host).
- Tags - labels used to group and match targets.
Host, Username, Password, and Database can use custom variables defined at the workspace, project, or pipeline level. This keeps secrets out of YAML and lets you switch between environments by overriding the variable set.
Testing the MongoDB connection
Before saving, use Test connection to verify the credentials and network access. The test connects from a Buddy runner to the host and port you provided, authenticates against the configured Auth source, and selects the target database. If the test fails, see Troubleshooting below.
Using the MongoDB target in YAML pipelines
Reference the target by ID in a MongoDB CLI action:
yaml- pipeline: "Seed staging database" trigger_mode: ON_EVERY_PUSH actions: - action: "Seed users collection" type: "MONGOSH_CLI" target: "mongo-staging" execute_commands: - "db.users.deleteMany({})" execute_files: - "fixtures/users.js"
You can also define the target inline if you do not want to manage it in the UI:
yaml- action: "Smoke query" type: "MONGOSH_CLI" targets: - target: "mongo-staging" type: "MONGODB" host: "mongo.example.com" port: 27017 database: "$MONGO_DB" auth_source: "admin" username: "$MONGO_USER" password: "$MONGO_PASSWORD" execute_commands: - "db.audit_log.find().sort({ created_at: -1 }).limit(10)"
See the MongoDB CLI YAML reference for the full field list.
Troubleshooting MongoDB connection errors
Most failures fall into one of the categories below.
- Authentication failed - wrong
Auth source. MongoDB looks for the user inAuth source, not in the target database. If the user was created inadmin, setAuth sourcetoadmin; for users created withdb.createUseron a specific database, use that database name. - Connection timeout / host unreachable - the cluster is not exposed to Buddy runners. Whitelist the Buddy IP addresses in MongoDB Atlas Network Access or on your firewall, or route through a proxy SSH target.
- No primary found in replica set - the host points to a secondary that is not currently primary. Use the replica set seed list or the DNS SRV record (
mongodb+srv://...) from your MongoDB provider so the driver can elect the primary. - Server selection error - the URI host does not resolve or the port is blocked. Verify with
mongoshfrom outside Buddy first. - Not authorized on db - the user authenticates but has no role on the target database. Grant
readWrite(or the minimum role your pipeline needs) viadb.grantRolesToUser.
See also
Last modified on May 19, 2026