Skip to content

Egress Positionstack

Responsibility

Geocoding capability provider for Positionstack. Workflows call it via service_call steps and the capability registry — no orchestrator code changes required.

Capabilities:

  • egress.positionstack.forward — address → coordinates
  • egress.positionstack.reverse — coordinates → address
  • positionstack.connection — workflow connection type (access_key)

Architecture

This is a capability provider (see Deploy integration contract):

  • Registers with capability-registry at startup
  • Orchestrator discovers endpoints dynamically
  • No EGRESS_*_URL env var on orchestrator

Connection Model

name: positionstack
type: positionstack
access_key: "$secret:positionstack-access-key"

Reference file: flows/connections/positionstack.yaml.

The access key can also be set on the egress pod via POSITIONSTACK_ACCESS_KEY (Kubernetes secret meshflows-positionstack).

Example Workflow

  • Workflow: flows/workflows/positionstack_geocode_demo.yaml
  • HTTP trigger: POST /v1/api/examples/positionstack-geocode
  • Payload (JSON or XML):
{"query": "1600 Pennsylvania Ave NW, Washington DC", "limit": 1}
<geocode>
  <query>1600 Pennsylvania Ave NW, Washington DC</query>
  <limit>1</limit>
</geocode>

Deploy

  • Image: meshflows/egress-positionstack
  • Deployment: egress-positionstack
  • Optional secret (CI or manual): meshflows-positionstack with key access_key
  • Example: engine/deploy/k8s/egress-positionstack-secret.example.yaml

Health

  • GET /healthz
  • GET /readyz
  • GET /internal/capabilities