Where an integration runs
Weik.io 2026.2An integration lists its requirements, each agent has capabilities an administrator gives it, and a deployment runs on every agent that matches.
Placement in Weik.io is a filter. A deployment runs on every agent whose capabilities match the integration’s requirements and the deployment’s environment, and whose allowed projects include the integration’s project. All of them, not one of them: two matching agents give an integration two running copies.
Capabilities#
An administrator gives each agent its capabilities when enrolling it, as key and value pairs: os, region, site, datacenter, environment or any other key your organisation uses to say where work may run. The agent never claims a capability for itself. environment says which environments’ deployments, secrets and events the agent may have, and the separate project list says whose.
$ weikio get agentsNAME ID HOST RUNS STATUS CAPABILITIES PROJECTS VERSION BEHIND LAST SYNC RUNTIMES
agent-fi-01 01k5x765rwwyedaqwwb82pdvd1 linux-compose integrations online os=linux region=fi env=devtest,production finance, hr 2026.2.1 - 4s ago 4 running
agent-fi-02 01k5x9m2qv7r3t8wz4hc6yj0fd linux-compose integrations online os=linux region=fi env=production finance 2026.2.1 - 12s ago 1 running



The environments and the projects are written into the credential the site uses for its link to the hub, so a site can never reach more than an administrator allowed it. Sites and agents has the enrolment and the commands that change them.
Requirements#
An integration states what it needs as a map, in integration.yaml or under spec of its document:
name: erp-invoice-export
version: 1.0.0
requirements: { os: linux, region: fi }A deployment of this integration to production runs on every agent that has os=linux, region=fi and environment=production and may run project finance. With the agents above, that is both agents. An integration with no requirements runs on every agent that serves its environment and project.
A numeric capability matches when the agent’s value is at least the requirement’s, so memoryGb: 8 on an integration matches an agent with memoryGb=16.
Check where it runs#
$ weikio describe agent agent-fi-02Agent: agent-fi-02
ID: 01k5x9m2qv7r3t8wz4hc6yj0fd
Host: linux-compose
Status: online
Environments: devtest, production
Capabilities: os=linux region=fi env=devtest,production
Projects: finance, sandbox
Last sync: 12s ago
Version: 2026.2.1
Reaches the hub via: public
Hub addresses: tls://hub.example:7422
DEPLOYMENT DESIRED ACTUAL DIFF STOP DEADLINE
devtest/finance/erp-invoice-export 1.1.0 started 1.1.0 running (pid 4121) in sync 70s (shutdownTimeout 45, extraShutdownTimeout 15 (Camel's defaults))
production/finance/erp-invoice-export 1.1.0 started 1.0.0 running (pid 3980) version behind: restarting 70s (shutdownTimeout 45, extraShutdownTimeout 15 (Camel's defaults))
production/finance/nightly-payroll stopped stopped in sync -
devtest/sandbox/hello 0.1.0 started absent bundle not yet fetched -The table shows, per deployment, what the agent should run, what it reports and the difference. weikio status finance/erp-invoice-export shows the same from the integration’s side, one row per environment and agent, and explains a deployment that is waiting for an agent.
weikio deploy checks placement before it writes anything. When no agent serves the environment, the deploy fails at once with the command that fixes it.
Two copies, or one#
Two matching agents run two copies, which is how an integration serving traffic stays up when one agent’s host goes down. A transfer, a schedule, a change tracking and an event source still do their work once, because they run one copy at a time by default.
When capabilities change#
A change of an agent’s capabilities or projects takes effect in placement at once. Deployments that no longer match stop and leave the agent at its next sync, and new matches start there. A change of its environments or projects gives the agent a new credential, which it fetches by itself, so nobody has to visit the site.
$ weikio agent set-capabilities agent-fi-02 os=linux region=fi environment=productionTarget: https://hub.example
1 deployment leaves the agent at its next sync: devtest/finance/erp-invoice-export.
Continue? [y/N] y
agent agent-fi-02 updated (capabilities os=linux region=fi env=production, revision 4201)Integrations of two suppliers, or two customers, that must not see each other’s data run on agents with different allowed projects, because code in one integration runs as the agent’s user and could read its neighbours’ files. Keeping integrations apart explains the rule.