Skip to main content

worker

Orb worker backend - allow running custom Backend implementations

Usage

usage: orb-worker [-h] [-V] [-s HOST] [-p PORT] [-t DIODE_TARGET] [-c DIODE_CLIENT_ID] [-k DIODE_CLIENT_SECRET] [-a DIODE_APP_NAME_PREFIX] [-d]
               [-o DRY_RUN_OUTPUT_DIR] [--otel-endpoint OTEL_ENDPOINT] [--otel-export-period OTEL_EXPORT_PERIOD]

Orb Worker Backend

options:
  -h, --help            show this help message and exit
  -V, --version         Display Orb Worker and Diode SDK versions
  -s HOST, --host HOST  Server host
  -p PORT, --port PORT  Server port
  -t DIODE_TARGET, --diode-target DIODE_TARGET
                        Diode target. Environment variable can be used by wrapping it in ${} (e.g. ${TARGET})
  -c DIODE_CLIENT_ID, --diode-client-id DIODE_CLIENT_ID
                        Diode Client ID. Environment variable can be used by wrapping it in ${} (e.g. ${MY_CLIENT_ID})
  -k DIODE_CLIENT_SECRET, --diode-client-secret DIODE_CLIENT_SECRET
                        Diode Client Secret. Environment variable can be used by wrapping it in ${} (e.g. ${MY_CLIENT_SECRET})
  -a DIODE_APP_NAME_PREFIX, --diode-app-name-prefix DIODE_APP_NAME_PREFIX
                        Diode producer_app_name prefix
  -d, --dry-run         Run in dry-run mode, do not ingest data
  -o DRY_RUN_OUTPUT_DIR, --dry-run-output-dir DRY_RUN_OUTPUT_DIR
                        Output dir for dry-run mode. Environment variable can be used by wrapping it in ${} (e.g. ${OUTPUT_DIR})
  --otel-endpoint OTEL_ENDPOINT
                        OpenTelemetry exporter endpoint
  --otel-export-period OTEL_EXPORT_PERIOD
                        Period in seconds between OpenTelemetry exports (default: 60)

Policy RFC

policies:
  worker_policy:
    config:
      package: my_custom_package
      schedule: "* * * * *" #Cron expression
      custom_config: custom value
    scope:
      any_key: any_value

Run worker

worker can be run by installing it with pip

git clone https://github.com/netboxlabs/orb-agent.git
cd orb-agent/orb-discovery/
pip install --no-cache-dir ./worker/
orb-worker -t 'grpc://192.168.0.10:8080/diode' -c '${DIODE_CLIENT_ID}' -k '${DIODE_CLIENT_SECRET}'

Docker Image

worker is built from source into the netboxlabs/orb-agent image (from orb-discovery/worker in this repo); there is no standalone worker image. Run it via the agent image, which launches the backend on demand, or use orb-test-lab for local testing.

Routes (v1)

Get runtime and capabilities information

GET /api/v1/status (gets worker runtime data)
Parameters

None

Responses
http code content-type response
200 application/json; charset=utf-8 {"version": "0.1.0","up_time_seconds": 3678 }
Example cURL
 curl -X GET -H "Content-Type: application/json" http://localhost:8071/api/v1/status
GET /api/v1/capabilities (gets worker capabilities)
Parameters

None

Responses
http code content-type response
200 application/json; charset=utf-8 {"loaded_modules":["custom_nbl","generic_worker"]}
Example cURL
 curl -X GET -H "Content-Type: application/json" http://localhost:8071/api/v1/capabilities

Policies Management

POST /api/v1/policies (Creates a new policy)
Parameters
name type data type description
None required YAML object yaml format specified in Policy RFC
Responses
http code content-type response
201 application/json; charset=UTF-8 {"detail":"policy 'policy_name' was started"}
400 application/json; charset=UTF-8 { "detail": "invalid Content-Type. Only 'application/x-yaml' is supported" }
400 application/json; charset=UTF-8 Any other policy error
403 application/json; charset=UTF-8 { "detail": "config field is required" }
409 application/json; charset=UTF-8 { "detail": "policy 'policy_name' already exists" }
Example cURL
 curl -X POST -H "Content-Type: application/x-yaml" --data-binary @policy.yaml http://localhost:8071/api/v1/policies
DELETE /api/v1/policies/{policy_name} (delete a existing policy)
Parameters
name type data type description
policy_name required string The unique policy name
Responses
http code content-type response
200 application/json; charset=UTF-8 { "detail": "policy 'policy_name' was deleted" }
400 application/json; charset=UTF-8 Any other policy deletion error
404 application/json; charset=UTF-8 { "detail": "policy 'policy_name' not found" }
Example cURL
 curl -X DELETE http://localhost:8071/api/v1/policies/policy_name

Metadata

Release files for netboxlabs-orb-worker 1.16.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for netboxlabs-orb-worker 1.16.1
File Size Uploaded
netboxlabs_orb_worker-1.16.1.tar.gz 30.4 kB Details

Release files / netboxlabs_orb_worker-1.16.1.tar.gz

Download URL netboxlabs_orb_worker-1.16.1.tar.gz
Size 30.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1f7d60bc59e77a0099271991c9e7037a936f083ca77475129f5f7129c836d896
BLAKE2b-256 checksum
How to use checksums
7bfc1fedf1ba16fe543a8da5b6f9b4409cd63119d3ee160444575c0ecdf72342
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.16.1 This release

1 release file

1.16.0

1 release file

1.15.0

1 release file

1.14.0

1 release file

1.13.0

1 release file

1.12.0

1 release file

1.11.1

1 release file

1.11.0

1 release file

1.10.0

1 release file

1.9.0

1 release file

1.8.0

1 release file

1.7.0

1 release file

1.6.0

1 release file

1.5.0

1 release file

1.4.2

1 release file

1.4.1

1 release file

1.4.0

1 release file

1.3.0

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page