warpmetal 0.2.1 → 0.2.3

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 CHANGED
@@ -65,6 +65,9 @@ alternate state directory.
65
65
  permissions where the platform supports POSIX modes.
66
66
  - The CLI passes an SSH private-key path directly to `ssh-keygen`; it never
67
67
  reads the private key.
68
+ - WarpMetal applies key-only OpenSSH configuration on initial provisioning and
69
+ every OS reload. Password and keyboard-interactive login are disabled; never
70
+ request, store, or expect a VPS login password.
68
71
  - The CLI accepts an externally produced x402 `PAYMENT-SIGNATURE` from a file.
69
72
  Wallet key management and signing remain outside this package.
70
73
  - Destructive or state-changing commands require explicit confirmations and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "warpmetal",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Agent-safe CLI and skill for purchasing and managing WarpMetal VPS servers",
5
5
  "type": "module",
6
6
  "bin": {
@@ -26,6 +26,11 @@ Never read, print, summarize, upload, or commit the WarpMetal state file. Never
26
26
  read an SSH private-key file. Pass its path only to a command designed to use
27
27
  it. Never request or handle a wallet seed phrase or private key.
28
28
 
29
+ WarpMetal provisions and reloads servers with key-only OpenSSH access. Password
30
+ and keyboard-interactive login are disabled, including for root. Never request,
31
+ store, invent, or expect a VPS login password; use the submitted public key and
32
+ its matching private-key path.
33
+
29
34
  ## Discover before acting
30
35
 
31
36
  Run:
@@ -88,6 +93,11 @@ Poll a prepared or paid order with:
88
93
  warpmetal order status --task <taskId> --wait --json
89
94
  ```
90
95
 
96
+ After initial provisioning and every OS reload, WarpMetal reapplies the same
97
+ key-only policy: `PasswordAuthentication no`,
98
+ `KbdInteractiveAuthentication no`, `PermitRootLogin prohibit-password`, and
99
+ `AuthenticationMethods publickey`.
100
+
91
101
  For routine management, prove possession of the installed SSH key without
92
102
  reading it:
93
103
 
@@ -110,7 +120,11 @@ warpmetal server power \
110
120
 
111
121
  Do not fall back to raw API calls for reload, deletion, networking, renewal,
112
122
  or another unsupported mutation. Explain that the installed CLI version does
113
- not yet expose that guarded operation.
123
+ not yet expose that guarded operation. The public reload contract requires
124
+ both `confirm: "ERASE"` and `powerOffFirst: true`; the latter authorizes the
125
+ same lifecycle operation to shut down the server and wait for provider power
126
+ off before erasing it. This contract knowledge is not permission to bypass the
127
+ CLI restriction.
114
128
 
115
129
  ## Use Agent Runtime
116
130
 
@@ -75,6 +75,11 @@ warpmetal operation get \
75
75
  --json
76
76
  ```
77
77
 
78
+ This CLI version does not expose reload. The public reload API requires both
79
+ `confirm: "ERASE"` and `powerOffFirst: true`, with shutdown, powered-off
80
+ verification, and reload handled by one lifecycle operation. Do not call that
81
+ endpoint with raw HTTP; wait for a guarded CLI command.
82
+
78
83
  Use `--token-file` only for recovery when local state is unavailable. Prefer
79
84
  `WARPMETAL_OWNER_TOKEN` or `WARPMETAL_ACCESS_TOKEN` for a single command over a
80
85
  shell argument, because command-line arguments can be recorded in history and
@@ -25,6 +25,10 @@
25
25
  - Never read or transmit an SSH private key. Pass only its filesystem path to
26
26
  `warpmetal server login`, `warpmetal runtime install`,
27
27
  `warpmetal sandbox connect`, or `ssh-keygen`.
28
+ - WarpMetal disables VPS password and keyboard-interactive SSH login after
29
+ initial provisioning and every OS reload. Never request, store, invent, or
30
+ expect a VPS login password; use the submitted public key and matching
31
+ private-key path.
28
32
  - Never place the owner SSH key, owner token, management access token, runtime
29
33
  bootstrap, supervisor node token, or state file inside a sandbox.
30
34
  - Give each agent a distinct sandbox-specific SSH key and grant. Never reuse
@@ -47,6 +51,12 @@ Obtain explicit user approval immediately before:
47
51
  - revoking a sandbox access grant; and
48
52
  - any destructive reload, sandbox deletion, or replacement-key operation.
49
53
 
54
+ A reload requires both `confirm: "ERASE"` and `powerOffFirst: true`. Treat
55
+ `powerOffFirst` as explicit authorization for WarpMetal to shut down the
56
+ server, wait until it is powered off, and then erase and reinstall it inside
57
+ one lifecycle operation. Do not reconstruct this flow with raw HTTP while the
58
+ installed CLI lacks a guarded reload command.
59
+
50
60
  An order preparation is unpaid but consumes a limited prepared-order slot.
51
61
  Confirm the plan, hostname, OS, and public key before preparing it.
52
62