@crvouga/personal 0.1.2 → 0.1.4
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 +25 -3
- package/cli.mjs +12174 -1883
- package/commands.json +224 -28
- package/package.json +3 -3
- package/probe.mjs +86 -11
- package/releasing.md +12 -2
- package/schema.json +19 -3
package/releasing.md
CHANGED
|
@@ -81,7 +81,7 @@ publish-time web 2FA and trusted-publisher setup. npm update notices/progress ar
|
|
|
81
81
|
disabled too; keep npm versions owned by the shared mise lock, not a global
|
|
82
82
|
`npm install -g`. After cancellation or expiry, rerun the command and use its new
|
|
83
83
|
URL, not an earlier session's URL. Treat approval links as private; never paste
|
|
84
|
-
them into reports or shared logs. Registry verification retries version and latest-tag propagation with
|
|
84
|
+
them into reports or shared logs. Registry verification retries version and latest-tag propagation with 310 seconds of bounded propagation waits without republishing. Transient read failures are retried within that same bound. The browser approval is not proof of publication;
|
|
85
85
|
wait for registry-integrity and trusted-publisher verification to finish.
|
|
86
86
|
|
|
87
87
|
## Vault username/password login
|
|
@@ -130,7 +130,8 @@ with anonymous registry configuration and running it on real Node. The required
|
|
|
130
130
|
4. Builds, allowlist-checks, packs and consumer-tests the exact tarball.
|
|
131
131
|
5. Publishes using npm's **GitHub OIDC trusted publishing**, without npm secrets.
|
|
132
132
|
6. Confirms the content hash, SHA-512 integrity and latest tag, with bounded
|
|
133
|
-
read-only retries for registry propagation.
|
|
133
|
+
read-only retries for registry propagation. Registry reads bypass stale CDN
|
|
134
|
+
cache entries and verification waits for matching content and integrity. Unconfirmed outcomes fail rather
|
|
134
135
|
than blindly republish.
|
|
135
136
|
|
|
136
137
|
Publishing is serialized with non-cancelling concurrency. Dispatch **CI** on main
|
|
@@ -164,3 +165,12 @@ npx --yes @crvouga/personal@latest fleet doctor --all --json
|
|
|
164
165
|
Do not claim release or green CI based on local checks. Deployment of the CI
|
|
165
166
|
workflow requires these source changes to land on main, and remote fleet coverage
|
|
166
167
|
requires actual locally configured SSH aliases and checkout paths.
|
|
168
|
+
|
|
169
|
+
## Fleet-sync release gate
|
|
170
|
+
|
|
171
|
+
The Ubuntu fleet-sync flow is not yet a complete machine-convergence release.
|
|
172
|
+
Read `../fleet/docs/ubuntu-sync.md` before publication. The package build embeds
|
|
173
|
+
an automatically approvable source SHA only for a clean checkout; dirty builds
|
|
174
|
+
retain provenance metadata but require an explicit reviewed revision. The anonymous
|
|
175
|
+
consumer smoke covers both `fleet-sync` and `fleet converge` previews without a
|
|
176
|
+
checkout. Passing those checks is not Ubuntu/service/provider acceptance.
|
package/schema.json
CHANGED
|
@@ -5,8 +5,12 @@
|
|
|
5
5
|
"additionalProperties": false,
|
|
6
6
|
"required": ["version", "nodes"],
|
|
7
7
|
"properties": {
|
|
8
|
-
"$schema": {
|
|
9
|
-
|
|
8
|
+
"$schema": {
|
|
9
|
+
"type": "string"
|
|
10
|
+
},
|
|
11
|
+
"version": {
|
|
12
|
+
"const": 1
|
|
13
|
+
},
|
|
10
14
|
"nodes": {
|
|
11
15
|
"type": "array",
|
|
12
16
|
"minItems": 1,
|
|
@@ -16,7 +20,10 @@
|
|
|
16
20
|
"additionalProperties": false,
|
|
17
21
|
"required": ["id", "ssh", "workspace"],
|
|
18
22
|
"properties": {
|
|
19
|
-
"id": {
|
|
23
|
+
"id": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"pattern": "^[a-z][a-z0-9-]{0,62}$"
|
|
26
|
+
},
|
|
20
27
|
"ssh": {
|
|
21
28
|
"type": "string",
|
|
22
29
|
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,252}$"
|
|
@@ -48,6 +55,15 @@
|
|
|
48
55
|
"workstation"
|
|
49
56
|
]
|
|
50
57
|
}
|
|
58
|
+
},
|
|
59
|
+
"tailscaleId": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"pattern": "^[a-zA-Z0-9:_-]{1,128}$",
|
|
62
|
+
"description": "Explicitly enrolled stable Tailscale device ID; replacements require reenrollment."
|
|
63
|
+
},
|
|
64
|
+
"bootstrapViaSsh": {
|
|
65
|
+
"type": "boolean",
|
|
66
|
+
"description": "Explicit permission to bootstrap an enrolled node over its trusted SSH route while Tailscale is unavailable; does not accept host keys or replace device identities."
|
|
51
67
|
}
|
|
52
68
|
}
|
|
53
69
|
}
|