ac3c0f149cf7
CI / js (push) Successful in 18s
CI / go (push) Successful in 36s
CI / rust (push) Successful in 2m3s
Each package gets a small example program that exercises the real client: with no ORIGIN_SERVICE_KEY set it runs against a local mock check-in server, otherwise it checks in against ORIGIN_URL/Origin's public endpoint. Wired into CI (mock mode) as a regression check, and documented per README. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
origin_client
Client SDKs that register a running service with Origin's public check-in endpoint and re-ping it on an interval. One package per language, same wire contract, same behavior.
Packages
| Language | Path | Module/package |
|---|---|---|
| Go | go/ |
git.warky.dev/wdevs/origin_client/go |
| JavaScript/TypeScript | js/ |
@warkanum/origin-client |
| Rust | rust/ |
origin-client |
What it does
- Resolves a machine unique ID: real OS ID first (
/etc/machine-idon Linux,IOPlatformUUIDon macOS,MachineGuidon Windows), falling back to a generated UUID persisted to disk. - Detects hostname, outbound IP, container ID (Docker/cgroup), and orchestrator (Kubernetes/Docker) best-effort.
- POSTs a check-in payload to Origin immediately, then again every
interval_hours(default 24), until stopped. Network/server failures are logged and swallowed — check-in never crashes or blocks the host app.
Wire contract
POST {base_url} (default https://origin.warky.dev/api/public/service-checkin)
with header X-Origin-Service-Key: <your key>.
Required: type, version, name, unique_install_id.
Optional: site, environment, database_type, database_name,
app_type, hostname, port, base_url, internal_url, container_id,
orchestrator, description.
Response: success, service_instance_id, unique_install_id, status,
pinged_at.
Full contract: see origin/doc/service-checkin.md in the Origin repo.
Status
Structured for independent versioning/publishing per package. Not yet published to any registry.
Languages
Rust
38.4%
Go
32.2%
TypeScript
25.5%
JavaScript
3.9%