Private
Public Access
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>
59 lines
1.8 KiB
Markdown
59 lines
1.8 KiB
Markdown
# @warkanum/origin-client (JS/TS)
|
|
|
|
```
|
|
npm install @warkanum/origin-client
|
|
```
|
|
|
|
Node >=18, ESM only.
|
|
|
|
## Usage
|
|
|
|
```ts
|
|
import { OriginClient } from "@warkanum/origin-client";
|
|
|
|
const client = new OriginClient({
|
|
serviceKey: "...",
|
|
type: "myservice",
|
|
version: "1.2.3",
|
|
name: "myservice-nova",
|
|
});
|
|
|
|
client.start(); // immediate check-in, then every 24h until stop()
|
|
```
|
|
|
|
Call `client.checkinOnce()` directly instead of `start()` to send a single
|
|
check-in and observe the result/error.
|
|
|
|
## Config
|
|
|
|
| Field | Required | Default |
|
|
|---|---|---|
|
|
| `serviceKey` | yes | — |
|
|
| `type`, `version`, `name` | yes | — |
|
|
| `url` | no | `DEFAULT_URL` (`https://origin.warky.dev/api/public/service-checkin`) |
|
|
| `appType` | no | `"javascript"` |
|
|
| `hostname` | no | OS hostname |
|
|
| `containerId` | no | best-effort Docker/cgroup detection |
|
|
| `orchestrator` | no | best-effort Kubernetes/Docker detection |
|
|
| `installId` | no | OS machine ID, else a generated UUID persisted to `installIdPath` |
|
|
| `intervalHours` | no | `DEFAULT_INTERVAL_HOURS` (24) |
|
|
| `logger` | no | discards warnings |
|
|
|
|
`site`, `environment`, `databaseType`, `databaseName`, `port`, `baseUrl`,
|
|
`internalUrl`, `description` are optional metadata with no default.
|
|
|
|
`hostname()`, `outboundIp()`, `containerId()`, `orchestrator()`, and
|
|
`resolveMachineId()` are exported standalone for callers that want the
|
|
detection logic without the HTTP client.
|
|
|
|
## Manual smoke test
|
|
|
|
```bash
|
|
npm run example # single check-in, local mock server
|
|
node examples/testclient.mjs --watch # loops via start() until Ctrl-C
|
|
```
|
|
|
|
Set `ORIGIN_SERVICE_KEY` (and optionally `ORIGIN_URL`, `ORIGIN_TYPE`,
|
|
`ORIGIN_VERSION`, `ORIGIN_NAME`, `ORIGIN_SITE`, `ORIGIN_ENVIRONMENT`,
|
|
`ORIGIN_INTERVAL_HOURS`) to check in against a real endpoint instead.
|