runcloud 0.1.126 → 0.1.129

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
@@ -279,9 +279,11 @@ runcloud sandbox create --no-secrets # state explicitly t
279
279
  `--secret-group`, `--secret`, and `--env` are repeatable and **order matters** —
280
280
  a later one wins a name collision, and `--env` is applied last.
281
281
 
282
- `runcloud sandbox secrets <id>` re-attaches on a running sandbox. It *replaces*
283
- the whole set rather than merging, which is how a credential gets revoked:
284
- passing no flags at all takes them all back.
282
+ `runcloud sandbox secrets set <id>` re-attaches on a running sandbox. It
283
+ *replaces* the whole set rather than merging. Use
284
+ `runcloud sandbox secrets revoke <id>` to take everything back; the bare
285
+ `runcloud sandbox secrets <id>` form only shows the last recorded delivery
286
+ inventory, not proof of the live guest state.
285
287
 
286
288
  A value can never be passed as a command argument — it would land in your shell
287
289
  history, in `ps` output, and in CI logs. Use a hidden prompt, a file, or stdin.
@@ -298,8 +300,8 @@ runcloud image refresh python:3.12-slim # re-pin the tag to its current u
298
300
  runcloud sandbox create --image python:3.12-slim
299
301
  ```
300
302
 
301
- Built in: `runcloud/agent-base` (the default), `runcloud/desktop`, and
302
- `runcloud/box` (the default with `--expose`).
303
+ Built in: `runcloud/agent-base` (the default, including with `--expose`),
304
+ `runcloud/desktop`, and `newly/postgres`.
303
305
 
304
306
  ## Demos
305
307
 
@@ -314,7 +314,7 @@ export function registerSandbox(program) {
314
314
  withOutput(sandbox
315
315
  .command('create')
316
316
  .description('Spawn a microVM sandbox')
317
- .option('--image <ref>', 'base image (default runcloud/agent-base, or runcloud/box with --expose)')
317
+ .option('--image <ref>', 'base image (default runcloud/agent-base)')
318
318
  .option('--region <region>', 'placement region')
319
319
  .option('--name <name>', 'human-readable name; with --expose, the hostname prefix <name>-box.run.cloud')
320
320
  .option('--org <id>', 'billing and ownership organization')
@@ -339,7 +339,7 @@ export function registerSandbox(program) {
339
339
  throw new Error('--persistent and --expose keep the sandbox running; drop the non-zero --idle-pause');
340
340
  }
341
341
  const body = {
342
- image: opts.image ?? (exposed ? 'runcloud/box' : 'runcloud/agent-base'),
342
+ image: opts.image ?? 'runcloud/agent-base',
343
343
  };
344
344
  if (opts.name)
345
345
  body.name = opts.name;
@@ -810,7 +810,7 @@ export function registerSandbox(program) {
810
810
  .argument('<name>', 'hostname prefix: <name>-box.run.cloud')
811
811
  .option('--sandbox <id>', 'attach an existing sandbox created with --idle-pause 0')
812
812
  .option('--port <port>', 'guest port to publish', parsePort, 3000)
813
- .option('--image <ref>', 'base image for a new sandbox (runcloud/box or runcloud/box-agent)', 'runcloud/box')
813
+ .option('--image <ref>', 'base image for a new sandbox', 'runcloud/agent-base')
814
814
  .option('--region <region>', 'placement region for a new sandbox')
815
815
  .option('--org <id>', 'billing and ownership organization for a new sandbox')
816
816
  .option('--cpu <cores>', 'vCPU allocation for a new box', parseCpuCores, DEFAULT_BOX_CPU_CORES)
@@ -35,6 +35,12 @@ function hostname(record) {
35
35
  const port = record.exposedPort ?? record.box?.port;
36
36
  return host && port ? `${host}:${port}` : host;
37
37
  }
38
+ function tags(record) {
39
+ const entries = Object.entries(record.tags ?? {}).sort(([left], [right]) => left.localeCompare(right));
40
+ return entries.length > 0
41
+ ? entries.map(([key, value]) => `${key}=${value}`).join('\n')
42
+ : undefined;
43
+ }
38
44
  function title(record, verb) {
39
45
  if (verb === 'details')
40
46
  return 'Sandbox';
@@ -62,6 +68,7 @@ export function renderSandbox(record, verb = 'details') {
62
68
  { label: 'Idle pause', value: formatSeconds(record.idle_pause_seconds) },
63
69
  { label: 'Timeout', value: formatSeconds(record.timeout_seconds) },
64
70
  { label: 'Hostname', value: hostname(record) },
71
+ { label: 'Tags', value: tags(record) },
65
72
  { label: 'Image digest', value: shortDigest(record.image_digest) },
66
73
  { label: 'Created', value: formatAge(record.created_at) },
67
74
  { label: 'Last active', value: verb === 'details' ? formatAge(record.last_active_at) : undefined },
package/dist/config.js CHANGED
@@ -12,7 +12,10 @@ export function sanitizeAccount(value) {
12
12
  }
13
13
  export function isRunCloud() {
14
14
  const names = [process.argv[1], process.execPath].map((path) => basename(path ?? ''));
15
- return names.some((name) => name === 'runcloud' || name === 'run-cloud' || name === 'run-cloud.js');
15
+ return names.some((name) => name === 'runcloud'
16
+ || name === 'run-cloud'
17
+ || name === 'run-cloud.js'
18
+ || name === 'run-cloud.ts');
16
19
  }
17
20
  function credentialsHome() {
18
21
  if (isRunCloud())
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const CLI_VERSION = '0.1.126';
1
+ export const CLI_VERSION = '0.1.129';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runcloud",
3
- "version": "0.1.126",
3
+ "version": "0.1.129",
4
4
  "description": "Create and control run.cloud remote mobile simulators and cloud sandboxes",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
Binary file
Binary file