Skip to content

Commit e719b78

Browse files
committed
docs: publish pilot workspace release collateral
1 parent 77b7b5a commit e719b78

19 files changed

+1308
-49
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,23 @@ All notable changes to Viaduct should be documented in this file.
44

55
This changelog tracks published releases and the major implementation milestones that shaped the current repository state.
66

7+
## [1.6.0] - Unreleased
8+
9+
### Workspace-First Operator Flow
10+
- added a first-class pilot workspace model that persists source connections, discovery snapshots, dependency graph output, target assumptions, readiness results, saved plans, approvals, notes, and exported reports
11+
- added tenant-scoped API routes for listing, creating, updating, and exporting pilot workspace state without introducing a parallel product surface
12+
- added persisted background jobs for workspace discovery, graph generation, simulation, and plan generation so the operator workflow can survive page refreshes and produce reproducible state
13+
14+
### Dashboard And Auth Bootstrap
15+
- reworked the dashboard so the first operator experience is create workspace, discover, inspect, simulate, save plan, and export report
16+
- added runtime dashboard authentication bootstrap using service-account or tenant keys instead of relying on build-time-only configuration
17+
- strengthened loading, empty, retry, and request-correlation-aware error handling across the workspace flow
18+
19+
### Lab, Contract, And Release Surface
20+
- added a deterministic `examples/lab` end-to-end smoke flow for workspace creation through report export
21+
- updated the published OpenAPI contract, quickstart flow, lab assets, configuration guidance, and operator docs to match the new workspace APIs and runtime auth flow
22+
- added v1.6.0 release-note draft material and release-facing screenshot assets for the workspace-first operator application
23+
724
## [1.5.0] - 2026-04-08
825

926
### Early Product Hardening

QUICKSTART.md

Lines changed: 61 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
This is the fastest way to evaluate Viaduct from source without a live hypervisor.
44

5+
The default first-run path is now the workspace-first operator flow:
6+
7+
1. bootstrap the local lab tenant and service account
8+
2. sign into the dashboard with a runtime key
9+
3. create a pilot workspace
10+
4. discover, inspect, simulate, save a plan, and export a report
11+
512
## 1. Build The CLI
613

714
```bash
@@ -14,30 +21,49 @@ make build
1421

1522
```bash
1623
mkdir -p ~/.viaduct
17-
cp configs/config.example.yaml ~/.viaduct/config.yaml
24+
cp examples/lab/config.yaml ~/.viaduct/config.yaml
1825
```
1926

20-
The sample config already points the KVM source at the local lab fixtures.
27+
The lab config points the KVM source at the local fixture set. For any non-demo environment, configure `state_store_dsn` and use PostgreSQL for persistence.
2128

22-
## 3. Run Local Discovery
29+
## 3. Start The API With An Admin Bootstrap Key
2330

2431
```bash
25-
./bin/viaduct discover --type kvm --source examples/lab/kvm --save
32+
export VIADUCT_ADMIN_KEY=lab-admin
33+
./bin/viaduct serve-api --port 8080
2634
```
2735

28-
## 4. Validate A Migration Spec
36+
On Windows PowerShell:
37+
38+
```powershell
39+
$env:VIADUCT_ADMIN_KEY = "lab-admin"
40+
.\bin\viaduct.exe serve-api --port 8080
41+
```
42+
43+
## 4. Create The Lab Tenant
2944

3045
```bash
31-
./bin/viaduct plan --spec examples/lab/migration-window.yaml
46+
curl -X POST \
47+
-H "X-Admin-Key: lab-admin" \
48+
-H "Content-Type: application/json" \
49+
--data @examples/lab/tenant-create.json \
50+
http://localhost:8080/api/v1/admin/tenants
3251
```
3352

34-
## 5. Start The API
53+
This seeds the deterministic tenant key `lab-tenant-key`.
54+
55+
## 5. Create The Lab Service Account
3556

3657
```bash
37-
./bin/viaduct serve-api --port 8080
38-
curl http://localhost:8080/api/v1/about
58+
curl -X POST \
59+
-H "X-API-Key: lab-tenant-key" \
60+
-H "Content-Type: application/json" \
61+
--data @examples/lab/service-account-create.json \
62+
http://localhost:8080/api/v1/service-accounts
3963
```
4064

65+
This seeds the deterministic service-account key `lab-operator-key`.
66+
4167
## 6. Start The Dashboard
4268

4369
```bash
@@ -46,7 +72,11 @@ npm ci
4672
npm run dev
4773
```
4874

49-
The dashboard expects the API at `/api` and can use `VITE_VIADUCT_API_KEY` from [web/.env.example](web/.env.example) when tenant-scoped access is enabled.
75+
The dashboard expects the API at `/api` and opens on the pilot workspace route. The first screen is a runtime auth bootstrap flow.
76+
77+
Authenticate with:
78+
- `Service account`: `lab-operator-key`
79+
- `Tenant key`: `lab-tenant-key`
5080

5181
For normal dashboard and pilot use, prefer `VITE_VIADUCT_SERVICE_ACCOUNT_KEY`. Keep `VITE_VIADUCT_API_KEY` for tenant bootstrap or break-glass admin access.
5282

@@ -62,7 +92,28 @@ Use the tenant key only when you are bootstrapping the tenant or intentionally u
6292
curl -H "X-API-Key: <tenant-key>" http://localhost:8080/api/v1/tenants/current
6393
```
6494

95+
## 7. Run The Workspace-First Flow
96+
97+
In the dashboard:
98+
99+
1. Create the first pilot workspace from the prefilled lab defaults.
100+
2. Run discovery.
101+
3. Inspect the discovered workloads and dependency graph.
102+
4. Run simulation.
103+
5. Save the plan.
104+
6. Export the pilot report.
105+
106+
The seeded API equivalent for workspace creation lives in [examples/lab/pilot-workspace-create.json](examples/lab/pilot-workspace-create.json).
107+
108+
## 8. Optional CLI Corroboration
109+
110+
```bash
111+
./bin/viaduct discover --type kvm --source examples/lab/kvm --save
112+
./bin/viaduct plan --spec examples/lab/migration-window.yaml
113+
```
114+
65115
## Next Steps
116+
- Review [docs/operations/pilot-workspace-flow.md](docs/operations/pilot-workspace-flow.md) for the full workspace-first operator guide.
66117
- Review [docs/operations/migration-operations.md](docs/operations/migration-operations.md) for execution and rollback workflows.
67118
- Review [docs/operations/backup-portability.md](docs/operations/backup-portability.md) for Veeam portability guidance.
68119
- Review [docs/operations/multi-tenancy.md](docs/operations/multi-tenancy.md) before enabling shared-tenant operation.

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,14 @@ Broadcom's VMware licensing changes forced many teams into urgent platform decis
1212
## Project Status
1313
Viaduct is ready for broad evaluation, design-partner pilots, and community contribution. The repository includes multi-platform discovery, dependency graphing, declarative migration orchestration, warm-migration primitives, lifecycle remediation, backup portability, multi-tenancy with service accounts and quota controls, plugin hosting, a web dashboard, a standalone public site, reproducible release packaging, and a shared release gate for CI and local verification.
1414

15-
The current early-product wedge is VMware-exit mixed-estate discovery and migration readiness assessment with approval-ready pilot planning. Discovery, planning, operator visibility, and packaged evaluation are the strongest current surfaces. Live execution paths should still be validated in a lab or pilot environment before they are treated as routine production automation.
15+
The current early-product wedge is VMware-exit mixed-estate discovery and migration readiness assessment with approval-ready pilot planning. Discovery, planning, operator visibility, and packaged evaluation are the strongest current surfaces. The default dashboard path is now a first-class pilot workspace that keeps source connections, snapshots, graph output, readiness results, saved plans, approvals, notes, and report exports in one operator-owned record. Live execution paths should still be validated in a lab or pilot environment before they are treated as routine production automation.
1616

1717
## Supported Capabilities
1818
- Discovery engine: Collects normalized inventory from VMware, Proxmox, Hyper-V, KVM, Nutanix, and Veeam-related backup systems into a universal schema.
1919
- Dependency mapping: Builds graph views across workloads, networks, storage, and backup relationships to support safer migration planning.
2020
- Migration orchestration: Supports declarative planning, preflight validation, cold and warm migration flows, execution windows, approval gates, checkpoints, resume support, and rollback.
2121
- Lifecycle analysis: Evaluates cost, policy, and drift, then turns those signals into remediation guidance and simulation output.
22+
- Pilot workspace workflow: Ties together assessment state, source connections, discovery baselines, readiness simulation, saved plans, operator notes, approvals, and exported reports.
2223
- Multi-tenancy and extensibility: Provides tenant-scoped API access, service-account and role-based access controls, persistent state backends, and a gRPC-based plugin host for community connectors.
2324
- Operator surfaces: Exposes the same core workflows through a CLI, REST API, and React dashboard.
2425
- Operability: Ships request correlation, tenant-scoped audit and reporting routes, Prometheus-style metrics, an OpenAPI reference, deployment examples, and packaged release metadata.
@@ -45,7 +46,7 @@ See [docs/architecture.md](docs/architecture.md) for the detailed architecture v
4546
## Quick Start
4647
```bash
4748
mkdir -p ~/.viaduct
48-
cp configs/config.example.yaml ~/.viaduct/config.yaml
49+
cp examples/lab/config.yaml ~/.viaduct/config.yaml
4950
make build
5051
./bin/viaduct version
5152

@@ -61,6 +62,8 @@ npm run dev
6162

6263
The local KVM lab under [examples/lab](examples/lab) gives you a first-run workflow without needing a live hypervisor. Start with [QUICKSTART.md](QUICKSTART.md) for the top-level guide or [docs/getting-started/quickstart.md](docs/getting-started/quickstart.md) for the detailed walkthrough.
6364

65+
For the workspace-first dashboard flow, bootstrap the lab tenant and service account from `examples/lab/`, then authenticate through the dashboard's runtime bootstrap screen. The full operator path is documented in [docs/operations/pilot-workspace-flow.md](docs/operations/pilot-workspace-flow.md).
66+
6467
## Build And Test
6568
```bash
6669
go mod tidy
@@ -83,6 +86,7 @@ make release-gate
8386
- Quickstart: [QUICKSTART.md](QUICKSTART.md)
8487
- Upgrade: [UPGRADE.md](UPGRADE.md)
8588
- Release process: [RELEASE.md](RELEASE.md)
89+
- Pilot workspace flow: [docs/operations/pilot-workspace-flow.md](docs/operations/pilot-workspace-flow.md)
8690
- Configuration reference: [docs/reference/configuration.md](docs/reference/configuration.md)
8791
- Migration operations: [docs/operations/migration-operations.md](docs/operations/migration-operations.md)
8892
- Auth, role, and auditability model: [docs/operations/auth-role-audit-model.md](docs/operations/auth-role-audit-model.md)
@@ -104,9 +108,11 @@ make release-gate
104108
- Backend contract hardening: [docs/backend-contract-hardening.md](docs/backend-contract-hardening.md)
105109
- Auth, role, and auditability model: [docs/operations/auth-role-audit-model.md](docs/operations/auth-role-audit-model.md)
106110
- Demo runbook: [docs/operations/demo-runbook.md](docs/operations/demo-runbook.md)
111+
- Pilot workspace flow: [docs/operations/pilot-workspace-flow.md](docs/operations/pilot-workspace-flow.md)
107112
- Observability requirements: [docs/operations/observability-requirements.md](docs/operations/observability-requirements.md)
108113
- Primary reliability path: [docs/operations/primary-reliability-path.md](docs/operations/primary-reliability-path.md)
109114
- Real user validation plan: [docs/operations/real-user-validation-plan.md](docs/operations/real-user-validation-plan.md)
115+
- Release drafts: [docs/releases/README.md](docs/releases/README.md)
110116
- Public site source: [site/README.md](site/README.md)
111117
- Architecture overview: [docs/architecture.md](docs/architecture.md)
112118
- Support matrix: [docs/reference/support-matrix.md](docs/reference/support-matrix.md)

RELEASE.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,18 @@ 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%`.
14+
1315
## Release Checklist
1416
1. Ensure the working tree is in the intended state and public docs are current.
1517
2. Run `make release-gate`.
1618
3. Inspect the generated bundles in `dist/`.
1719
4. Verify `release-manifest.json`, `dependency-manifest.json`, and `SHA256SUMS.txt`.
1820
5. Smoke-test the packaged binary with `viaduct version` and `viaduct --help`.
19-
6. Confirm install docs, upgrade docs, rollback docs, and deployment examples still match the artifact layout.
20-
7. Verify the plugin manifest check and OpenAPI contract check remain green.
21-
8. Tag and publish only after the verification and smoke checks are clean.
21+
6. Confirm install docs, upgrade docs, rollback docs, deployment examples, and the pilot workspace guide still match the artifact layout.
22+
7. Confirm the release notes draft, changelog entry, and screenshot assets are present and aligned with the shipped workflow.
23+
8. Verify the plugin manifest check and OpenAPI contract check remain green.
24+
9. Tag and publish only after the verification and smoke checks are clean.
2225

2326
## Bundle Contents
2427
The release bundle should include:
@@ -37,6 +40,8 @@ The standalone public site under [`site/`](site/README.md) is published through
3740
- summarize operator-visible changes
3841
- document compatibility, migration, or upgrade concerns
3942
- call out any connector-specific caveats
43+
- include the workspace-first operator flow and runtime-auth bootstrap changes when they are part of the release
44+
- include current screenshot assets when the dashboard experience changed materially
4045
- update [CHANGELOG.md](CHANGELOG.md) with notable release information
4146

4247
## Rollback

docs/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ This directory contains the detailed Viaduct documentation set. The repo-root do
88

99
## Operations
1010
- [Auth, Role, And Auditability Model](operations/auth-role-audit-model.md)
11+
- [Pilot Workspace Flow](operations/pilot-workspace-flow.md)
1112
- [Demo Runbook](operations/demo-runbook.md)
1213
- [Demo Presenter Kit](operations/demo/README.md)
1314
- [Observability Requirements](operations/observability-requirements.md)
@@ -38,4 +39,7 @@ This directory contains the detailed Viaduct documentation set. The repo-root do
3839
## Historical Roadmaps
3940
- [Roadmap Archive Index](roadmaps/README.md)
4041

42+
## Release Drafts
43+
- [Release Draft Index](releases/README.md)
44+
4145
If you are starting from the repository landing page, also see [../INSTALL.md](../INSTALL.md), [../QUICKSTART.md](../QUICKSTART.md), [../UPGRADE.md](../UPGRADE.md), and [../RELEASE.md](../RELEASE.md).

docs/getting-started/quickstart.md

Lines changed: 45 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
This quickstart uses the local KVM fixture lab so you can evaluate Viaduct end to end without a live hypervisor.
44

5+
The default dashboard path is now workspace-first and authenticated at runtime with a service-account key or tenant key.
6+
57
## Prerequisites
68
- Go 1.24+
79
- Node.js 20.19+
@@ -25,61 +27,73 @@ go build -ldflags "-X main.version=dev -X main.commit=none -X main.date=unknown"
2527

2628
```bash
2729
mkdir -p ~/.viaduct
28-
cp configs/config.example.yaml ~/.viaduct/config.yaml
30+
cp examples/lab/config.yaml ~/.viaduct/config.yaml
2931
```
3032

31-
For the local lab, the only required source is the built-in KVM fixture path:
33+
For the local lab, the config only needs the built-in KVM fixture path. For a persistent pilot environment, configure `state_store_dsn` and use PostgreSQL.
34+
35+
## 3. Start The API And Seed Auth
3236

33-
```yaml
34-
sources:
35-
kvm:
36-
address: "examples/lab/kvm"
37+
```bash
38+
export VIADUCT_ADMIN_KEY=lab-admin
39+
./bin/viaduct serve-api --port 8080
3740
```
3841

39-
## 3. Run Discovery
42+
In another terminal, create the lab tenant and operator service account:
4043

4144
```bash
42-
./bin/viaduct discover --type kvm --source examples/lab/kvm --save
45+
curl -X POST \
46+
-H "X-Admin-Key: lab-admin" \
47+
-H "Content-Type: application/json" \
48+
--data @examples/lab/tenant-create.json \
49+
http://localhost:8080/api/v1/admin/tenants
50+
51+
curl -X POST \
52+
-H "X-API-Key: lab-tenant-key" \
53+
-H "Content-Type: application/json" \
54+
--data @examples/lab/service-account-create.json \
55+
http://localhost:8080/api/v1/service-accounts
4356
```
4457

45-
This loads the sample XML fixtures, normalizes them into the universal schema, and saves a snapshot to the configured state store.
46-
47-
## 4. Inspect A Migration Spec
58+
## 4. Start The Dashboard
4859

4960
```bash
50-
./bin/viaduct plan --spec examples/lab/migration-window.yaml
61+
cd web
62+
npm ci
63+
npm run dev
5164
```
5265

53-
This validates the example spec and shows the execution window, approval gate, and wave-planning shape that Viaduct will use.
66+
Open the dashboard in your browser at the Vite URL shown in the terminal. The dashboard proxies API calls to `http://localhost:8080` and opens on the pilot workspace route.
5467

55-
## 5. Start The API And Dashboard
68+
Authenticate through the runtime bootstrap screen:
69+
- preferred service-account key: `lab-operator-key`
70+
- bootstrap-only tenant key: `lab-tenant-key`
5671

57-
In one terminal:
72+
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.
5873

59-
```bash
60-
./bin/viaduct serve-api --port 8080
61-
```
74+
## 5. Run The Workspace-First Operator Flow
6275

63-
In another terminal:
76+
1. Create the first pilot workspace from the prefilled lab defaults.
77+
2. Run discovery to save workspace snapshots.
78+
3. Inspect the workload table and dependency graph.
79+
4. Run readiness simulation.
80+
5. Save the migration plan.
81+
6. Export the pilot report.
6482

65-
```bash
66-
cd web
67-
npm ci
68-
npm run dev
69-
```
83+
The seeded API request body for the same intake is available in `examples/lab/pilot-workspace-create.json`.
7084

71-
Open the dashboard in your browser at the Vite URL shown in the terminal. The dashboard will proxy API calls to `http://localhost:8080`.
85+
## 6. Optional CLI Corroboration
7286

73-
For local lab use, the default tenant may work without explicit credentials. For any real tenant-scoped dashboard usage, 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.
87+
```bash
88+
./bin/viaduct discover --type kvm --source examples/lab/kvm --save
89+
./bin/viaduct plan --spec examples/lab/migration-window.yaml
90+
```
7491

75-
## 6. Explore Operator Flows
76-
- Inventory and dependency views: confirm the lab workloads appear in the dashboard.
77-
- Lifecycle views: review cost, policy, drift, and remediation panels.
78-
- Migration planning: use the migration wizard to run preflight, create a migration, and inspect checkpoints.
79-
- Tenant reporting and trust context: call `/api/v1/tenants/current` and `/api/v1/summary` with a service-account key if you want to validate multi-tenant flows without falling back to the tenant-wide admin credential.
92+
This validates the same local fixture set through the CLI.
8093

8194
## Next Steps
8295
- Installation details: [installation.md](installation.md)
96+
- Pilot workspace guide: [../operations/pilot-workspace-flow.md](../operations/pilot-workspace-flow.md)
8397
- Configuration reference: [../reference/configuration.md](../reference/configuration.md)
8498
- Migration operations guide: [../operations/migration-operations.md](../operations/migration-operations.md)
8599
- Auth, role, and auditability model: [../operations/auth-role-audit-model.md](../operations/auth-role-audit-model.md)

docs/operations/demo/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Use the files in this directory when you actually present.
1212
- [15-minute demo card](fifteen-minute-demo-card.md)
1313
- [Demo scenario brief](demo-scenario-brief.md)
1414
- [Demo state checklist](demo-state-checklist.md)
15+
- [Screenshot assets](screenshots/README.md)
1516

1617
## Intended Use
1718

@@ -22,3 +23,5 @@ Use the files in this directory when you actually present.
2223
5. Use [fifteen-minute-demo-card.md](fifteen-minute-demo-card.md) for design-partner and operator evaluation demos.
2324

2425
These assets are intentionally narrow. They support the VMware-exit assessment-to-pilot story Viaduct is currently hardening, not a broad repo tour.
26+
27+
The current release-facing screenshots are aligned with the workspace-first operator experience introduced in v1.6.0.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Screenshot Assets
2+
3+
This directory contains release-facing screenshot assets for the workspace-first operator flow.
4+
5+
Use these images in:
6+
- release drafts
7+
- demo prep
8+
- evaluator packets
9+
- operator-facing docs when the pilot workflow changes
10+
11+
## Files
12+
13+
- [Pilot bootstrap](pilot-bootstrap.svg)
14+
- [Pilot workspace flow](pilot-workspace-flow.svg)
15+
16+
## Preview
17+
18+
![Pilot bootstrap](pilot-bootstrap.svg)
19+
20+
![Pilot workspace flow](pilot-workspace-flow.svg)

0 commit comments

Comments
 (0)