@runveric/cli 0.1.1 → 0.2.0
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 +55 -13
- package/dist/runveric.mjs +1518 -359
- package/dist/runveric.mjs.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
production runner image — without pushing anything or signing in.**
|
|
5
5
|
|
|
6
6
|
```sh
|
|
7
|
-
npx @runveric/cli@0.
|
|
7
|
+
npx @runveric/cli@0.2.0 init --id yourteam/restart-web-tier
|
|
8
8
|
```
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
## What this is
|
|
13
13
|
|
|
14
|
-
[Runveric](https://github.com/
|
|
14
|
+
[Runveric](https://github.com/runveric/runveric) is a governed cloud-operations control
|
|
15
15
|
plane: it runs operational scripts against your cloud with approvals, least-privilege
|
|
16
16
|
short-lived credentials, an allowlisted network, and a full audit trail.
|
|
17
17
|
|
|
@@ -39,7 +39,7 @@ script outside the platform. Nothing in the product offered that. This does.
|
|
|
39
39
|
## Install
|
|
40
40
|
|
|
41
41
|
```sh
|
|
42
|
-
npx @runveric/cli@0.
|
|
42
|
+
npx @runveric/cli@0.2.0 <command> # no install
|
|
43
43
|
npm install -g @runveric/cli # or install the `runveric` bin
|
|
44
44
|
```
|
|
45
45
|
|
|
@@ -62,7 +62,7 @@ Pin the version your Runveric deployment shows you on its Author page rather tha
|
|
|
62
62
|
Scaffold a PowerShell action, look at what you got, validate it, and run it locally:
|
|
63
63
|
|
|
64
64
|
```sh
|
|
65
|
-
$ npx @runveric/cli@0.
|
|
65
|
+
$ npx @runveric/cli@0.2.0 init restart-web-tier \
|
|
66
66
|
--id acme/restart-web-tier \
|
|
67
67
|
--interpreter powershell \
|
|
68
68
|
--yes
|
|
@@ -79,7 +79,7 @@ $ runveric check
|
|
|
79
79
|
|
|
80
80
|
✓ No problems found.
|
|
81
81
|
|
|
82
|
-
$ export
|
|
82
|
+
$ export RUNVERIC_RUNNER_IMAGE=<the image your Runveric runs> # the Author page shows it
|
|
83
83
|
$ runveric test --phase run --param resourceGroup=rg-prod --dry-run
|
|
84
84
|
```
|
|
85
85
|
|
|
@@ -127,18 +127,18 @@ They are answered at import.
|
|
|
127
127
|
|
|
128
128
|
### `test`
|
|
129
129
|
|
|
130
|
-
Runs one phase in the **published runner image**, with the same `/
|
|
131
|
-
`
|
|
130
|
+
Runs one phase in the **published runner image**, with the same `/runveric/*` layout, the same
|
|
131
|
+
`RUNVERIC_*` environment, and the same `result.json` validator the control plane uses.
|
|
132
132
|
|
|
133
133
|
```sh
|
|
134
|
-
export
|
|
134
|
+
export RUNVERIC_RUNNER_IMAGE=<the image your Runveric runs> # the Author page shows it
|
|
135
135
|
runveric test --phase validate
|
|
136
136
|
runveric test --phase run --dry-run
|
|
137
137
|
runveric test --phase run --param resourceGroup=rg-prod
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
Needs Docker. Uses your own `az login` credential (written to a file at
|
|
141
|
-
`/
|
|
141
|
+
`/runveric/creds/azure-token`, never an environment variable — the same way production does it).
|
|
142
142
|
|
|
143
143
|
Two things are deliberately different from production, and printed on every run so you never
|
|
144
144
|
have to guess:
|
|
@@ -151,8 +151,8 @@ have to guess:
|
|
|
151
151
|
### `publish`
|
|
152
152
|
|
|
153
153
|
```sh
|
|
154
|
-
export
|
|
155
|
-
export
|
|
154
|
+
export RUNVERIC_URL=https://your-runveric.example.com
|
|
155
|
+
export RUNVERIC_TOKEN=…
|
|
156
156
|
runveric publish
|
|
157
157
|
```
|
|
158
158
|
|
|
@@ -164,6 +164,32 @@ Publishing does not adopt. Nobody can run it until somebody chooses to.
|
|
|
164
164
|
|
|
165
165
|
---
|
|
166
166
|
|
|
167
|
+
## Publishing first-party catalog artifacts (`runveric catalog`)
|
|
168
|
+
|
|
169
|
+
Not part of authoring, and not something an author needs. The product's own catalog is pinned
|
|
170
|
+
from immutable artifacts published by its action and catalog repositories, and their workflows
|
|
171
|
+
publish with these two commands:
|
|
172
|
+
|
|
173
|
+
```sh
|
|
174
|
+
# one action's manifest, verbatim — stdout: <key>=<repository>@<digest>
|
|
175
|
+
npx @runveric/cli@0.2.0 catalog publish-action --manifest catalog.yaml \
|
|
176
|
+
--to ghcr.io/<org>/action-azure-vm-stop
|
|
177
|
+
|
|
178
|
+
# a release naming each action artifact by digest — stdout: <repository>@<digest>
|
|
179
|
+
npx @runveric/cli@0.2.0 catalog publish-release --from release.yaml --to ghcr.io/<org>/catalog
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
An action's package must be named after its key (`azure.vm.stop` → `action-azure-vm-stop`); the
|
|
183
|
+
CLI refuses any other name before pushing, and the server refuses it again when a release is
|
|
184
|
+
planned or pinned. Neither command validates a manifest — the server does, every time. Publishing
|
|
185
|
+
makes an artifact available; only a pin makes it live.
|
|
186
|
+
|
|
187
|
+
Credentials: `GHCR_TOKEN` (a token with `write:packages`), or in a workflow `GITHUB_TOKEN` with
|
|
188
|
+
`packages: write`. Provenance comes from `--repository`/`--commit`, else GitHub Actions'
|
|
189
|
+
environment, else git.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
167
193
|
## Supply chain
|
|
168
194
|
|
|
169
195
|
Every release is published from CI on a tag, with [npm
|
|
@@ -175,10 +201,26 @@ installed came from this repository:
|
|
|
175
201
|
npm audit signatures
|
|
176
202
|
```
|
|
177
203
|
|
|
204
|
+
## Upgrading from 0.1.1
|
|
205
|
+
|
|
206
|
+
0.1.2 renamed the three environment variables the CLI reads:
|
|
207
|
+
|
|
208
|
+
| 0.1.1 | 0.1.2 |
|
|
209
|
+
|---|---|
|
|
210
|
+
| `OPERA_TOKEN` | `RUNVERIC_TOKEN` |
|
|
211
|
+
| `OPERA_URL` | `RUNVERIC_URL` |
|
|
212
|
+
| `OPERA_RUNNER_IMAGE` | `RUNVERIC_RUNNER_IMAGE` |
|
|
213
|
+
|
|
214
|
+
The old names are not read. If one is still exported in your shell or CI and the new one is not,
|
|
215
|
+
the CLI stops and names both, so the fix is renaming one line.
|
|
216
|
+
|
|
217
|
+
0.1.2 also writes packages the current Runveric accepts: 0.1.1's `init` produced an `action.yaml`
|
|
218
|
+
whose `apiVersion` and minimum-version key Runveric now refuses at import.
|
|
219
|
+
|
|
178
220
|
## Links
|
|
179
221
|
|
|
180
|
-
- **Issues:** https://github.com/
|
|
181
|
-
- **Source:** https://github.com/
|
|
222
|
+
- **Issues:** https://github.com/runveric/runveric/issues
|
|
223
|
+
- **Source:** https://github.com/runveric/runveric/tree/develop/packages/action-cli
|
|
182
224
|
|
|
183
225
|
## License
|
|
184
226
|
|