You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,22 @@ This changelog tracks published releases and the major implementation milestones
6
6
7
7
## [Unreleased]
8
8
9
+
## [1.7.0] - 2026-04-11
10
+
11
+
### Workspace Reliability And Operator Hardening
12
+
- added stricter validation for pilot workspace create, update, job, and report-export requests so invalid operator input fails early with field-level API errors
13
+
- added read-only workspace access for viewer principals while keeping workspace mutation and job execution operator-scoped
14
+
- added workspace deletion, restart recovery for queued or running workspace jobs, configurable workspace job timeouts, and richer exported report handoff detail
15
+
16
+
### Dashboard And Operator Experience
17
+
- switched runtime dashboard auth to session-scoped storage by default with an explicit remember option for trusted browsers
18
+
- added workspace creation toggles, persisted job history, retry actions, and clearer correlation-aware job states in the workspace-first flow
19
+
20
+
### Release Engineering, Docs, And Contract
21
+
- hardened the Windows release-gate helpers so race, coverage, and CLI smoke validation remain reproducible on Application Control-constrained operator workstations
22
+
- documented `VIADUCT_ALLOWED_ORIGINS` and `VIADUCT_WORKSPACE_JOB_TIMEOUT`
23
+
- updated the pilot workspace guide, quickstarts, installation guides, and OpenAPI contract to match the hardened workspace and auth behavior
The API accepts browser requests from the default local dashboard origins (`http://localhost:5173`, `http://127.0.0.1:5173`, `http://localhost:4173`, `http://127.0.0.1:4173`). If you serve the dashboard from a different origin, set `VIADUCT_ALLOWED_ORIGINS` before starting the API.
49
+
48
50
## 4. Seed The Lab Tenant And Service Account
49
51
50
52
```bash
@@ -81,6 +83,8 @@ Authenticate with:
81
83
- preferred: `lab-operator-key`
82
84
- bootstrap only: `lab-tenant-key`
83
85
86
+
The dashboard stores the runtime key in session storage by default. Use the remember option only when you intentionally want the browser to keep a local copy across restarts.
Copy file name to clipboardExpand all lines: docs/getting-started/installation.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ npm run build
31
31
Generate a self-contained local bundle:
32
32
33
33
```bash
34
-
make package-release
34
+
make package-release-matrix
35
35
```
36
36
37
37
This creates:
@@ -92,3 +92,8 @@ viaduct --help
92
92
```
93
93
94
94
If you installed only the CLI and not the dashboard assets, the API and migration/lifecycle backends still work; only the packaged static web assets are absent.
95
+
96
+
For browser access in packaged environments:
97
+
- set `VIADUCT_ALLOWED_ORIGINS` if the dashboard is served from a non-default origin
98
+
- prefer service-account keys for normal operator access
99
+
- use `VIADUCT_WORKSPACE_JOB_TIMEOUT` if workspace jobs need a different server-side timeout budget
The API accepts browser requests from the default local dashboard origins (`http://localhost:5173`, `http://127.0.0.1:5173`, `http://localhost:4173`, `http://127.0.0.1:4173`). For any other dashboard origin, set `VIADUCT_ALLOWED_ORIGINS` before starting the API.
43
+
42
44
In another terminal, create the lab tenant and operator service account:
43
45
44
46
```bash
@@ -69,6 +71,8 @@ Authenticate through the runtime bootstrap screen:
The runtime key is kept in session storage by default. Use the remember option only when you intentionally want the browser to keep a local copy across restarts.
75
+
72
76
For packaged or persistent environments, prefer `VITE_VIADUCT_SERVICE_ACCOUNT_KEY` over `VITE_VIADUCT_API_KEY` so operator activity is attributable to a named service account instead of the tenant-wide admin credential.
Copy file name to clipboardExpand all lines: docs/operations/pilot-workspace-flow.md
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -84,12 +84,16 @@ Authenticate in one of two ways:
84
84
- Preferred: choose `Service account` and paste `lab-operator-key`
85
85
- Bootstrap only: choose `Tenant key` and paste `lab-tenant-key`
86
86
87
+
The dashboard stores the runtime key in session storage by default. Use the optional remember toggle only on a trusted browser that should keep the key across restarts.
88
+
87
89
You can still pre-seed development credentials with:
88
90
-`VITE_VIADUCT_SERVICE_ACCOUNT_KEY`
89
91
-`VITE_VIADUCT_API_KEY`
90
92
91
93
The runtime bootstrap flow is the canonical operator path because it works for packaged environments and does not require a rebuild to rotate credentials.
92
94
95
+
The API accepts browser requests from the default local dashboard origins. If you serve the dashboard from another host or port, set `VIADUCT_ALLOWED_ORIGINS` before starting the API.
96
+
93
97
## 5. Run The Workspace-First Operator Flow
94
98
95
99
Inside the dashboard:
@@ -103,6 +107,8 @@ Inside the dashboard:
103
107
104
108
The workspace keeps the discovery baseline, readiness result, saved plan, notes, approvals, and report history attached to the same object.
105
109
110
+
Read-only operators can inspect workspace state and export reports with viewer access, but only operator-level principals can mutate workspace state or start jobs.
111
+
106
112
## API Equivalents
107
113
108
114
If you want to exercise the same flow through the REST API, the seeded request body below matches the default dashboard intake:
@@ -158,6 +164,10 @@ The workspace flow is correlation-aware:
158
164
159
165
If a step fails, capture the request ID and workspace/job identifier together. That is the intended operator handoff bundle for troubleshooting.
160
166
167
+
Queued or running workspace jobs are recovered when the API starts again, and each job is subject to the server-side timeout configured by `VIADUCT_WORKSPACE_JOB_TIMEOUT`.
168
+
169
+
If you want to discard a completed evaluation workspace, delete it through the dashboard or `DELETE /api/v1/workspaces/{workspaceID}`. That removes the workspace record and its job history, but it does not purge persisted snapshots or migration records outside the workspace document.
170
+
161
171
## Smoke Coverage
162
172
163
173
The deterministic end-to-end lab smoke now lives in:
Copy file name to clipboardExpand all lines: docs/reference/configuration.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,14 +55,16 @@ Fields:
55
55
- `VIADUCT_PASSWORD`: overrides config file password for CLI connector auth
56
56
- `VIADUCT_ADMIN_KEY`: admin API key used by the REST server for tenant administration
57
57
- `VIADUCT_PLUGIN_ADDR`: plugin listener address used by community connector plugins
58
+
- `VIADUCT_ALLOWED_ORIGINS`: comma-separated browser origins allowed to call the API from another origin; defaults to the local Vite origins on ports `5173` and `4173`
59
+
- `VIADUCT_WORKSPACE_JOB_TIMEOUT`: per-job server-side timeout for pilot workspace discovery, graph, simulation, and plan generation; defaults to `2m`
58
60
59
61
## Dashboard Environment Variables
60
62
- `VITE_VIADUCT_API_KEY`: tenant API key injected into dashboard requests
61
63
- `VITE_VIADUCT_SERVICE_ACCOUNT_KEY`: scoped service-account key injected into dashboard requests; when set, the dashboard prefers this header over `VITE_VIADUCT_API_KEY`
62
64
63
65
The dashboard reads this through Vite. See [`../../web/.env.example`](../../web/.env.example).
64
66
65
-
The dashboard now also supports runtime authentication bootstrap. When neither variable is set, the app starts on a bootstrap screen and accepts either a service-account key or tenant key at runtime. The selected credential is stored locally by the browser and reused for subsequent requests until the operator signs out or rotates the key.
67
+
The dashboard now also supports runtime authentication bootstrap. When neither variable is set, the app starts on a bootstrap screen and accepts either a service-account key or tenant key at runtime. The selected credential is stored in browser session storage by default and is cleared when the browser session ends. Operators can explicitly choose to remember the key in local storage on trusted workstations.
66
68
67
69
For early-product and pilot use, prefer `VITE_VIADUCT_SERVICE_ACCOUNT_KEY` for normal dashboard access. Reserve `VITE_VIADUCT_API_KEY` for tenant bootstrap, short-lived admin work, or break-glass access.
0 commit comments