@unotest/viewer 0.28.0 → 0.29.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/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.29.0] - 2026-09-02
4
+
5
+ ### Minor Changes
6
+
7
+ - 64108b8: The Variables panel of a viewer on a box now lists what the box injects
8
+ into every run of the environment — the target URL, the operator's
9
+ variables and the names of the environment's secrets — as read-only rows
10
+ with a `box` badge. It used to read `unotest/.env*`, which never travel
11
+ in a bundle, and show an empty panel next to a full run history; a
12
+ secret's value is still never sent, only its name. The box passes the
13
+ names through `UNOTEST_BOX_VARIABLE_NAMES` / `UNOTEST_BOX_SECRET_NAMES`
14
+ (constants in `@unotest/protocol`); writes to such a key are refused
15
+ with 409 and point at `boxd.config.mjs` / `boxd.mjs secret set`.
16
+
17
+ ### Patch Changes
18
+
19
+ - ab296ff: New `env push`, `env set` and `env rm` commands send an environment's
20
+ values to a box — the target, the variables and the secrets a suite runs
21
+ with there — from the same files a local run reads (`unotest/.env`,
22
+ `.env.<env>`, `.secrets`, `.secrets.<env>`), or from files named with
23
+ `--env-file` / `--secrets-file`. `.env*` become the box environment's
24
+ variables, `.secrets*` its secrets and `APP_BASE_URL` its target;
25
+ `UNOTEST_*` and empty values stay home and are listed as skipped. A push
26
+ replaces the box's layers and reports what it removed; `env set` reads
27
+ one value from stdin, never from the command line. Values never print.
28
+ The commands use the project token of `bundle push`, minted on the box
29
+ with the new `--values` scope — a token without it is refused, so a CI
30
+ token that pushes suites cannot rewrite an environment's credentials.
31
+ `@unotest/protocol` carries the wire (`box-values.ts`) and `TARGET_ENV_VAR`.
32
+ The viewer's messages about box-held variables now point at these
33
+ commands instead of the box's shell.
34
+ - Updated dependencies [ab296ff]
35
+ - Updated dependencies [64108b8]
36
+ - Updated dependencies [64108b8]
37
+ - Updated dependencies [64108b8]
38
+ - @unotest/protocol@0.29.0
39
+ - @unotest/core@0.29.0
40
+ - @unotest/dsl@0.29.0
41
+
3
42
  ## [0.28.0] - 2026-09-01
4
43
 
5
44
  ### Patch Changes
@@ -1,5 +1,11 @@
1
1
  import { IRunnerAdapter, IDslLanguageService, IProcessLauncher } from '@unotest/protocol';
2
2
 
3
+ interface BoxInjectedNames {
4
+ /** Non-secret: the viewer has their values in its own environment. */
5
+ readonly variables: readonly string[];
6
+ /** Secret: names only, a value never reaches the browser. */
7
+ readonly secrets: readonly string[];
8
+ }
3
9
  interface ViewerQueueConfig {
4
10
  /** With queueing off, the viewer starts every run immediately — and
5
11
  * so does every terminal. Nothing serialises them. */
@@ -73,6 +79,10 @@ declare function startViewerServer(opts: StartViewerOptions): Promise<ViewerHand
73
79
  * the installed `@unotest/*` runner packages (by name — DIP boundary
74
80
  * intact). `UNOTEST_RUNNER_PKG` (legacy single-runner var) and
75
81
  * `UNOTEST_TARGET` just pick which detected target is active at boot. */
82
+ /** The box's injected-variable names, when a box supervisor set them.
83
+ * Both lists come together or not at all; an environment with no secrets
84
+ * still has a target URL, so "set" means the variables list is present. */
85
+ declare function boxInjectedFrom(env: NodeJS.ProcessEnv): BoxInjectedNames | undefined;
76
86
  /** Everything the standalone launcher reads from its environment, in one
77
87
  * pure place so the plumbing is testable without starting a server.
78
88
  *
@@ -83,4 +93,4 @@ declare function startViewerServer(opts: StartViewerOptions): Promise<ViewerHand
83
93
  declare function viewerCliOptions(env: NodeJS.ProcessEnv, cwd: string): Omit<StartViewerOptions, "runners">;
84
94
  declare function runViewerCli(): Promise<void>;
85
95
 
86
- export { type RunnerEntry, type StartViewerOptions, type ViewerHandle, runViewerCli, startViewerServer, viewerCliOptions };
96
+ export { type RunnerEntry, type StartViewerOptions, type ViewerHandle, boxInjectedFrom, runViewerCli, startViewerServer, viewerCliOptions };