Skip to content

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.

Targets represent the actual infrastructure where your code runs:

  • Physical servers
  • Virtual machines
  • Cloud instances
  • Containers (with persistent Tarsus installation)
PropertyDescription
NameUnique identifier (e.g., “web-prod-01”)
ModeConnection mode (Listen or Poll)
HostnameNetwork address
PortTarsus listening port (default: 9342)
StatusOnline, Stale, or Offline
TagsKey-value labels for grouping

Targets connect to Mantis in one of two modes:

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

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

Targets have three health states:

StatusBadgeDescription
OnlineGreenActive connection, healthy
StaleYellowNo recent heartbeat, may be recovering
OfflineRedNo active connection

Last Seen - Shows when the target last communicated (e.g., “2 hours ago”).

When a Tarsus agent starts, it registers with Mandible:

  1. Tarsus connects to Mandible with its certificate
  2. Mandible checks if the certificate thumbprint is known
  3. If new, the registration enters “Pending” state
  4. Administrator approves the registration
  5. Target becomes active

For zero-touch provisioning:

  1. Administrator generates a registration token in Lens
  2. Token is provided to Tarsus configuration
  3. Tarsus registers using the token
  4. Registration is automatically approved
  5. Token use count is incremented (tokens are unlimited-use by default; set max_uses to limit reuse)
  1. Navigate to Targets in the sidebar
  2. View the target list with status indicators
  3. Filter by status, tags, or environment
  4. Search by name or hostname

Targets are typically auto-created when a Tarsus agent registers. To create manually:

  1. Click New Target
  2. Enter name and hostname
  3. Select connection mode
  4. Configure port (default: 9342)
  5. Save
  1. Click on a target in the list
  2. Modify properties as needed
  3. Save changes
  1. Click on a target in the list
  2. Click Delete
  3. Confirm deletion

Tags are key-value pairs for organizing and selecting targets:

Tag KeyTag ValuePurpose
environmentproductionEnvironment grouping
rolewebServer role
regionus-east-1Geographic location
tierfrontendApplication tier
  1. Open target detail page
  2. Navigate to Tags section
  3. Add, edit, or remove tags
  4. Save

Tags enable flexible target selection:

  • Deploy to all targets with role=web
  • Deploy to region=us-east-1 AND environment=production
  • Exclude targets with maintenance=true

Targets can be assigned to one or more environments:

Targets have a priority within each environment, determining deployment order:

TargetPriorityDeployment Order
prod-web-1100First
prod-web-275Second
prod-web-350Third
prod-db-110Last

Higher priority values deploy first. Priority ranges from -100 to 100 and defaults to 50.

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 - Last seen timestamps

If a target shows offline:

  1. Check the agent - Is Tarsus running on the machine?
  2. Check networking - Can the target reach Thorax (poll) or be reached (listen)?
  3. Check certificates - Are TLS certificates valid and not expired?
  4. Check firewall - Are required ports open?
  5. Review logs - Check Tarsus logs for errors

Use consistent, descriptive names:

{role}-{environment}-{number}
web-prod-01
db-staging-01
worker-dev-01

Create a tagging taxonomy:

CategoryExample Tags
Environmentenv:dev, env:staging, env:prod
Rolerole:web, role:api, role:worker
Regionregion:us-east, region:eu-west
Teamteam:platform, team:payments
  • Review pending registrations promptly
  • Use registration tokens for automated provisioning
  • Rotate tokens after use
  • Monitor for unexpected registration attempts