@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.
- package/README.md +58 -0
- 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.
|
|
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.
|
|
34
|
-
"url": "https://github.com/colony-2/jobdb/releases/download/v0.0.
|
|
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": "
|
|
41
|
+
"digest": "43178d1f82f5299ad164de578176aa7d9306301f13afe8c4412295b2f9548bcd"
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
"darwin-x64": {
|
|
45
|
-
"name": "jobdb_0.0.
|
|
46
|
-
"url": "https://github.com/colony-2/jobdb/releases/download/v0.0.
|
|
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": "
|
|
53
|
+
"digest": "6d5216c7ba112156e54b89d4400724c0e0a3b2450c0dc3831d864b9705b09698"
|
|
54
54
|
}
|
|
55
55
|
},
|
|
56
56
|
"linux-arm64": {
|
|
57
|
-
"name": "jobdb_0.0.
|
|
58
|
-
"url": "https://github.com/colony-2/jobdb/releases/download/v0.0.
|
|
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": "
|
|
65
|
+
"digest": "714730342812ee5cffae460eec04ec50ada26f3fa61451fdade02f643430202c"
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
68
|
"linux-x64": {
|
|
69
|
-
"name": "jobdb_0.0.
|
|
70
|
-
"url": "https://github.com/colony-2/jobdb/releases/download/v0.0.
|
|
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": "
|
|
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
|
}
|