Targets
A Target is a machine where deployments execute. Each target runs the Tarsus agent, which registers and sends heartbeats directly to Mandible. Mandible assigns a Thorax orchestration instance, and commands are executed against the target through that Thorax instance.
What is a Target?
Section titled “What is a Target?”Targets represent the actual infrastructure where your code runs:
- Physical servers
- Virtual machines
- Cloud instances
- Containers (with persistent Tarsus installation)
Target Properties
Section titled “Target Properties”| Property | Description |
|---|---|
| Name | Display name (e.g., “web-prod-01”). Not enforced unique — no uniqueness constraint exists. |
| Mode | Connection mode (Listen or Poll) |
| Hostname | Network address |
| Port | Tarsus listening port (default: 9342) |
| Status | Online, Stale, or Offline |
| Tags | Key-value labels for grouping |
Connection Modes
Section titled “Connection Modes”Targets connect to Mantis in one of two modes:
Listen Mode
Section titled “Listen Mode”Tarsus runs a gRPC server; Thorax initiates connections.
Best for:
- Stable, routable IP addresses
- Controlled network environments
- Low-latency requirements
- When inbound firewall rules are allowed
Characteristics:
- Thorax pushes commands to Tarsus
- Lower latency (immediate execution)
- Requires inbound network access to target
Poll Mode
Section titled “Poll Mode”Tarsus initiates all connections to Thorax (outbound only).
Best for:
- Machines behind NAT or restrictive firewalls
- Cloud instances with dynamic IPs
- Networks with outbound-only rules
- Complex network topologies
Characteristics:
- Tarsus pulls commands from Thorax periodically
- Configurable poll interval (default: 30 seconds)
- Higher latency (commands wait for next poll)
- Only requires outbound gRPC (TLS) access to Mandible and Thorax
Target Status
Section titled “Target Status”Targets have three health states:
| Status | Badge | Description |
|---|---|---|
| Online | Teal | Active connection, healthy (green in the high-contrast theme) |
| Stale | Orange | No recent heartbeat, may be recovering (yellow in high-contrast) |
| Offline | Crimson | No active connection (red in high-contrast) |
Status renders as a coloured text badge, not an icon/glyph.
Status Transitions
Section titled “Status Transitions”Last Seen - Shows when the target last communicated (e.g., “2 hours ago”).
Target Registration
Section titled “Target Registration”When a Tarsus agent starts, it registers with Mandible:
Automatic Registration
Section titled “Automatic Registration”- Tarsus connects to Mandible with its certificate
- Mandible checks if the certificate thumbprint is known
- If new, the registration enters “Pending” state
- Administrator approves the registration
- Target becomes active
Token-Based Registration
Section titled “Token-Based Registration”For zero-touch provisioning:
- Administrator generates a registration token in Lens
- Token is provided to Tarsus configuration
- Tarsus registers using the token
- Registration is approved only if the token has auto-approve enabled (it defaults to OFF — a secure default; otherwise the registration stays pending for manual approval)
- Token use count is incremented (tokens are unlimited-use by default; set max_uses to limit reuse)
Managing Targets
Section titled “Managing Targets”Viewing Targets
Section titled “Viewing Targets”- Open the Infrastructure group in the top navigation, then the Targets pill
- View the target list with status indicators
- Filter by status (the API accepts
page/per_page/search/tenant_idplus a status filter;searchandstatusboth run in SQL and span every page, and there is no tag or environment filter) - Search by name or hostname
Creating a Target
Section titled “Creating a Target”Targets are typically auto-created when a Tarsus agent registers. To create manually:
- Click New Target
- Enter name and hostname
- Select connection mode
- Configure port (default: 9342)
- Save
Editing a Target
Section titled “Editing a Target”- Click on a target in the list
- Modify properties as needed
- Save changes
Deleting a Target
Section titled “Deleting a Target”- Click on a target in the list
- Click Delete
- Confirm deletion
Target Tags
Section titled “Target Tags”Tags are key-value pairs for organizing and selecting targets:
| Tag Key | Tag Value | Purpose |
|---|---|---|
environment | production | Environment grouping |
role | web | Server role |
region | us-east-1 | Geographic location |
tier | frontend | Application tier |
Managing Tags
Section titled “Managing Tags”- Open target detail page
- Navigate to Tags section
- Add, edit, or remove tags
- Save
Using Tags for Deployment
Section titled “Using Tags for Deployment”Tags enable flexible target selection:
- Deploy to all targets with
role=web - Deploy to
region=us-east-1ANDenvironment=production - (Tag selection is include-only — by id or by tag with ANY/ALL matching. There is no tag exclusion, so you cannot exclude
maintenance=truetargets by tag; deselect them manually.)
Target Environments
Section titled “Target Environments”Targets can be assigned to one or more environments:
Priority Within Environments
Section titled “Priority Within Environments”Targets have a priority within each environment, which orders them in a promotion or rollback:
| Target | Priority | Order |
|---|---|---|
| prod-web-1 | 100 | First |
| prod-web-2 | 75 | Second |
| prod-web-3 | 50 | Third |
| prod-db-1 | 10 | Last |
Higher priority values run first. Priority ranges from -100 to 100 and defaults to 50. An ordinary deployment runs the targets its request names, in the order named.
Health Monitoring
Section titled “Health Monitoring”Dashboard View
Section titled “Dashboard View”The dashboard shows target health at a glance:
- Total Targets - All registered targets
- Online - Healthy, active targets
- Stale - Targets needing attention
- Offline - Unavailable targets
- Recent Activity - a deployment-event timeline (not target last-seen timestamps)
Troubleshooting Offline Targets
Section titled “Troubleshooting Offline Targets”If a target shows offline:
- Check the agent - Is Tarsus running on the machine?
- Check networking - Can the target reach Thorax (poll) or be reached (listen)?
- Check certificates - Are TLS certificates valid and not expired?
- Check firewall - Are required ports open?
- Review logs - Check Tarsus logs for errors
Best Practices
Section titled “Best Practices”Naming Conventions
Section titled “Naming Conventions”Use consistent, descriptive names:
{role}-{environment}-{number}web-prod-01db-staging-01worker-dev-01Tag Strategy
Section titled “Tag Strategy”Create a tagging taxonomy:
| Category | Example Tags |
|---|---|
| Environment | env:dev, env:staging, env:prod |
| Role | role:web, role:api, role:worker |
| Region | region:us-east, region:eu-west |
| Team | team:platform, team:payments |
Registration Security
Section titled “Registration Security”- Review pending registrations promptly
- Use registration tokens for automated provisioning
- Rotate tokens after use
- Monitor for unexpected registration attempts
Next Steps
Section titled “Next Steps”- Managing Targets - Detailed target operations
- Listen vs Poll Mode - Connection mode details
- Health Status - Understanding target health
- Tagging - Tag strategies
