@colony2/jobdb 0.0.15 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +58 -0
  2. package/package.json +17 -17
package/README.md CHANGED
@@ -21,6 +21,64 @@ Verify the command is available:
21
21
  jobdb --help
22
22
  ```
23
23
 
24
+ ## Container Image
25
+
26
+ Tagged releases publish a multi-platform image for Linux AMD64 and ARM64:
27
+
28
+ ```text
29
+ ghcr.io/colony-2/jobdb:<release-tag>
30
+ ```
31
+
32
+ The image has a fixed `jobdb serve` entrypoint for stateless production use. It
33
+ always stores runtime records in Postgres and artifact bytes larger than the
34
+ inline threshold in S3, Google Cloud Storage, or Azure Blob Storage. The
35
+ supported container interface cannot select SQLite, the toy runtime, local
36
+ filesystem storage, or memory storage. Those modes remain available when using
37
+ the installed `jobdb` binary outside the container.
38
+
39
+ Required configuration:
40
+
41
+ | Variable | Default | Description |
42
+ | --- | --- | --- |
43
+ | `JOBDB_POSTGRES_DSN` | none | Postgres connection string. |
44
+ | `JOBDB_BLOB_STORE_URI` | none | Remote `s3://`, `gs://`, or `azblob://` bucket/container URI. |
45
+ | `JOBDB_LEASE_TOKEN_SIGNING_KEY` | none | Base64-encoded signing key containing at least 32 random bytes. |
46
+ | `JOBDB_LEASE_TOKEN_SIGNING_KEY_FILE` | none | Mounted file containing the signing key; use instead of the direct variable. |
47
+ | `JOBDB_LISTEN` | `0.0.0.0:8080` | HTTP listen address. |
48
+ | `JOBDB_MAX_INLINE_ARTIFACT_BYTES` | `4096` | Largest artifact size retained inline in Postgres. |
49
+
50
+ All replicas in one deployment must use the same signing key. Generate one and
51
+ store it in the deployment's secret manager rather than in an image or manifest:
52
+
53
+ ```bash
54
+ openssl rand -base64 32
55
+ ```
56
+
57
+ For example, with Postgres and the S3 bucket already available:
58
+
59
+ ```bash
60
+ docker run --rm \
61
+ --read-only \
62
+ --tmpfs /tmp:rw,noexec,nosuid,size=64m \
63
+ --publish 8080:8080 \
64
+ --env JOBDB_POSTGRES_DSN \
65
+ --env JOBDB_BLOB_STORE_URI='s3://jobdb-artifacts?region=us-east-1' \
66
+ --env JOBDB_LEASE_TOKEN_SIGNING_KEY \
67
+ ghcr.io/colony-2/jobdb:<release-tag>
68
+ ```
69
+
70
+ The image runs as UID/GID `65532:65532`, declares no volume, and supports a
71
+ read-only root filesystem. It exposes `GET /healthz` and includes an automatic
72
+ container health check. Operators can also check any JobDB server directly:
73
+
74
+ ```bash
75
+ jobdb healthcheck http://jobdb.example:8080
76
+ ```
77
+
78
+ Use an exact release tag or image digest in production. Provider credentials
79
+ are resolved by the cloud SDKs; prefer workload identity, instance/task roles,
80
+ or mounted secrets over credentials embedded in the blob URI.
81
+
24
82
  ## Quick Start
25
83
 
26
84
  Run the default SQLite-backed server:
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@colony2/jobdb",
3
3
  "type": "module",
4
- "version": "0.0.15",
4
+ "version": "0.0.16",
5
5
  "description": "jobdb job system",
6
6
  "scripts": {
7
7
  "postinstall": "node install.js",
@@ -30,54 +30,57 @@
30
30
  },
31
31
  "archives": {
32
32
  "darwin-arm64": {
33
- "name": "jobdb_0.0.15_Darwin_arm64.tar.gz",
34
- "url": "https://github.com/colony-2/jobdb/releases/download/v0.0.15/jobdb_0.0.15_Darwin_arm64.tar.gz",
33
+ "name": "jobdb_0.0.16_Darwin_arm64.tar.gz",
34
+ "url": "https://github.com/colony-2/jobdb/releases/download/v0.0.16/jobdb_0.0.16_Darwin_arm64.tar.gz",
35
35
  "bins": [
36
36
  "jobdb"
37
37
  ],
38
38
  "format": "tar.gz",
39
39
  "checksum": {
40
40
  "algorithm": "sha256",
41
- "digest": "0f0420d2fdb547eab63621ce157abf0ba1200f2bf1dd419a5a5b470104adaa02"
41
+ "digest": "43178d1f82f5299ad164de578176aa7d9306301f13afe8c4412295b2f9548bcd"
42
42
  }
43
43
  },
44
44
  "darwin-x64": {
45
- "name": "jobdb_0.0.15_Darwin_x86_64.tar.gz",
46
- "url": "https://github.com/colony-2/jobdb/releases/download/v0.0.15/jobdb_0.0.15_Darwin_x86_64.tar.gz",
45
+ "name": "jobdb_0.0.16_Darwin_x86_64.tar.gz",
46
+ "url": "https://github.com/colony-2/jobdb/releases/download/v0.0.16/jobdb_0.0.16_Darwin_x86_64.tar.gz",
47
47
  "bins": [
48
48
  "jobdb"
49
49
  ],
50
50
  "format": "tar.gz",
51
51
  "checksum": {
52
52
  "algorithm": "sha256",
53
- "digest": "7b8a9230981fc10ab2a5bbefe1bd63baae9319e6af6bcf0fe57371cec638cd78"
53
+ "digest": "6d5216c7ba112156e54b89d4400724c0e0a3b2450c0dc3831d864b9705b09698"
54
54
  }
55
55
  },
56
56
  "linux-arm64": {
57
- "name": "jobdb_0.0.15_Linux_arm64.tar.gz",
58
- "url": "https://github.com/colony-2/jobdb/releases/download/v0.0.15/jobdb_0.0.15_Linux_arm64.tar.gz",
57
+ "name": "jobdb_0.0.16_Linux_arm64.tar.gz",
58
+ "url": "https://github.com/colony-2/jobdb/releases/download/v0.0.16/jobdb_0.0.16_Linux_arm64.tar.gz",
59
59
  "bins": [
60
60
  "jobdb"
61
61
  ],
62
62
  "format": "tar.gz",
63
63
  "checksum": {
64
64
  "algorithm": "sha256",
65
- "digest": "e5280084021d133145cbbf44c012ebd746014c10195fcfc123028d6416cac84b"
65
+ "digest": "714730342812ee5cffae460eec04ec50ada26f3fa61451fdade02f643430202c"
66
66
  }
67
67
  },
68
68
  "linux-x64": {
69
- "name": "jobdb_0.0.15_Linux_x86_64.tar.gz",
70
- "url": "https://github.com/colony-2/jobdb/releases/download/v0.0.15/jobdb_0.0.15_Linux_x86_64.tar.gz",
69
+ "name": "jobdb_0.0.16_Linux_x86_64.tar.gz",
70
+ "url": "https://github.com/colony-2/jobdb/releases/download/v0.0.16/jobdb_0.0.16_Linux_x86_64.tar.gz",
71
71
  "bins": [
72
72
  "jobdb"
73
73
  ],
74
74
  "format": "tar.gz",
75
75
  "checksum": {
76
76
  "algorithm": "sha256",
77
- "digest": "5f4f4d4511fe72753735856d9a7fb4d61fd0ed6ea73dd07d3b0f4445767661cf"
77
+ "digest": "2f3734d769be8e6201f0ce293864cdcc1316cf55683d1ac18152069633d2376a"
78
78
  }
79
79
  }
80
80
  },
81
+ "engines": {
82
+ "node": "\u003e=14.0.0"
83
+ },
81
84
  "keywords": [
82
85
  "sandbox",
83
86
  "docker",
@@ -85,8 +88,5 @@
85
88
  "agent",
86
89
  "cli",
87
90
  "security"
88
- ],
89
- "engines": {
90
- "node": "\u003e=14.0.0"
91
- }
91
+ ]
92
92
  }