Skip to content

Commit 0729d80

Browse files
committed
chore(ci): finalize v1.7.0 release packaging
1 parent a77a3fb commit 0729d80

File tree

11 files changed

+562
-30
lines changed

11 files changed

+562
-30
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ coverage.out
1212
coverage
1313
.gocache/
1414
.gomodcache/
15+
.gotmp/
16+
.gocache-race/
17+
.gomodcache-race/
18+
.gotmp-race/
1519
dist/
1620
web/node_modules/
1721
web/dist/

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ RM_DIST = powershell -NoProfile -Command "if (Test-Path 'dist') { Remove-Item -R
99
RM_COVER = powershell -NoProfile -Command "$$paths = @('coverage','coverage.out','coverage.out;','coverage-fresh','coverage-fresh.out'); foreach ($$path in $$paths) { if (Test-Path $$path) { Remove-Item -Force $$path } }"
1010
BIN_TARGET = bin/viaduct.exe
1111
GO_RUN = powershell -NoProfile -ExecutionPolicy Bypass -File scripts/go_run_windows.ps1
12-
RUN_BIN = $(GO_RUN) ./cmd/viaduct
12+
RUN_BIN = $(GO_RUN) -Ldflags "-X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.date=$(DATE)" ./cmd/viaduct
1313
WEB_INSTALL = cd web && npm ci
1414
COVERPROFILE_ARG = "-coverprofile=coverage.out"
1515
COVERFUNC_ARG = "-func=coverage.out"

RELEASE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This document describes the stable packaging and release process for Viaduct.
1010
- `make plugin-check`: validate plugin manifest compatibility against the host version
1111
- `make contract-check`: verify the published OpenAPI reference still covers the stable operator routes
1212

13-
On Windows, `make release-gate` still builds `bin/viaduct.exe`, but it validates the CLI smoke commands through a LocalAppData-staged `go run ./cmd/viaduct` helper because some operator workstations enforce Application Control policies that block freshly built unsigned binaries from direct execution or from `%TEMP%`.
13+
On Windows, `make release-gate` still builds `bin/viaduct.exe`, but it validates the CLI smoke commands through a LocalAppData-staged `go run ./cmd/viaduct` helper because some operator workstations enforce Application Control policies that block freshly built unsigned binaries from direct execution or from `%TEMP%`. The Windows test helpers stage race and coverage artifacts under repo-local cache directories so the canonical gate remains reproducible on locked-down workstations.
1414

1515
## Release Checklist
1616
1. Ensure the working tree is in the intended state and public docs are current.

docs/operations/demo/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ Use the files in this directory when you actually present.
2424

2525
These assets are intentionally narrow. They support the VMware-exit assessment-to-pilot story Viaduct is currently hardening, not a broad repo tour.
2626

27-
The current release-facing screenshots are aligned with the workspace-first operator experience introduced in v1.6.0.
27+
The current release-facing screenshots are aligned with the workspace-first operator experience shipped in v1.7.0.

docs/operations/demo/screenshots/pilot-bootstrap.svg

Lines changed: 1 addition & 1 deletion
Loading

docs/releases/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ This directory contains release notes and other release-facing narrative assets
44

55
## Files
66

7+
- [v1.7.0 release notes](v1.7.0.md)
78
- [v1.6.0 release notes](v1.6.0.md)
89

910
Keep these notes aligned with:

docs/releases/v1.7.0.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Viaduct v1.7.0 Release Notes
2+
3+
Published 2026-04-11.
4+
5+
Viaduct v1.7.0 hardens the workspace-first operator flow introduced in v1.6.0. This release improves request validation, viewer permissions, persisted job recovery, dashboard credential handling, and locked-down workstation release verification without widening the product story beyond the current assessment-to-pilot wedge.
6+
7+
## Highlights
8+
9+
- Added stricter validation for pilot workspace create, update, job, and report export requests so invalid operator input fails early with field-level API errors.
10+
- Added viewer-safe read and export access while keeping workspace mutation, deletion, and background job execution operator-scoped.
11+
- Added persisted workspace deletion, queued-job recovery on API startup, configurable workspace job timeouts, and richer report handoff detail.
12+
- Switched dashboard runtime auth to session-scoped storage by default with an explicit remember option for trusted operator workstations.
13+
- Hardened the canonical Windows release-gate path so `make release-gate` stays reproducible on workstations that block freshly staged unsigned executables.
14+
15+
## Operator Workflow Improvements
16+
17+
The workspace-first operator flow is still:
18+
19+
1. Bootstrap dashboard access with a service-account key or tenant key.
20+
2. Create a pilot workspace.
21+
3. Run discovery and persist source snapshots.
22+
4. Inspect workloads and dependency graph state.
23+
5. Run readiness simulation.
24+
6. Save a dry-run migration plan.
25+
7. Export a pilot report.
26+
27+
What changed in this release is the reliability around that path:
28+
29+
- invalid workspace or job payloads now fail with field-level API guidance instead of generic errors
30+
- workspace jobs can be retried from persisted history in the dashboard
31+
- queued and in-flight jobs are recovered cleanly when the API restarts
32+
- exported reports include richer job, approval, note, and report-history context for operator handoff
33+
34+
## API And Security
35+
36+
- Added `DELETE /api/v1/workspaces/{workspaceID}` for tenant-scoped workspace cleanup.
37+
- Added `VIADUCT_ALLOWED_ORIGINS` so the API can explicitly allow non-default dashboard origins.
38+
- Added `VIADUCT_WORKSPACE_JOB_TIMEOUT` so long-running workspace jobs stay bounded.
39+
- Tightened browser-facing API responses with explicit origin allowlisting and stronger default security headers.
40+
- Added an alternate-permission middleware path so viewer-safe routes can stay readable without broadening write access.
41+
42+
## Dashboard And Auth
43+
44+
- Runtime dashboard credentials now stay in session storage by default.
45+
- Trusted operators can opt into remembered local storage explicitly.
46+
- Authentication failures now surface a clearer recovery path, including an explicit forget-saved-key action.
47+
- Workspace history now shows persisted jobs, retry actions, and correlation-aware status detail.
48+
49+
## Release Verification
50+
51+
- `make release-gate` remains the canonical verification path.
52+
- The Windows helper scripts now stage test and smoke binaries under repo-local paths so release validation remains usable on Application Control-constrained workstations.
53+
- The default `examples/lab` flow remains the reproducible demo and evaluation path for this release.
54+
55+
## Docs And Assets
56+
57+
- Updated quickstart, installation, troubleshooting, configuration, lab, and workspace-flow docs for the hardened auth and workspace behavior.
58+
- Updated the OpenAPI contract to include the workspace delete route and current request/response behavior.
59+
- Refreshed the release-facing screenshot assets and current-version website/dashboard copy.
60+
61+
Screenshot assets:
62+
- [Pilot bootstrap](../operations/demo/screenshots/pilot-bootstrap.svg)
63+
- [Pilot workspace flow](../operations/demo/screenshots/pilot-workspace-flow.svg)
64+
65+
## Compatibility Notes
66+
67+
- No breaking API removals were introduced in this release.
68+
- PostgreSQL remains the recommended non-demo backend for persistent operator state.
69+
- Viaduct remains evaluation-ready and is still best validated in a local lab or supervised pilot before higher-risk use.

scripts/go_run_windows.ps1

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
param(
2+
[string]$Ldflags = "",
3+
24
[Parameter(ValueFromRemainingArguments = $true)]
35
[string[]]$GoRunArgs
46
)
@@ -18,5 +20,12 @@ $env:TMP = $base
1820
$env:TEMP = $base
1921

2022
$goBinary = (Get-Command go -ErrorAction Stop).Source
21-
& $goBinary run @GoRunArgs
23+
$goArgs = @("run")
24+
if ($Ldflags -ne "") {
25+
$goArgs += "-ldflags"
26+
$goArgs += $Ldflags
27+
}
28+
$goArgs += $GoRunArgs
29+
30+
& $goBinary @goArgs
2231
exit $LASTEXITCODE

0 commit comments

Comments
 (0)