@legioncodeinc/hive 0.3.1 → 0.5.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/README.md +1 -1
- package/dist/daemon/dashboard/app.js +11 -11
- package/dist/daemon/gate.d.ts +10 -6
- package/dist/daemon/gate.js +20 -8
- package/dist/daemon/gate.js.map +1 -1
- package/dist/daemon/installer/config.d.ts +2 -0
- package/dist/daemon/installer/config.js +5 -3
- package/dist/daemon/installer/config.js.map +1 -1
- package/dist/daemon/installer/funnel-telemetry.d.ts +17 -2
- package/dist/daemon/installer/funnel-telemetry.js +34 -3
- package/dist/daemon/installer/funnel-telemetry.js.map +1 -1
- package/dist/daemon/installer/routes.js +6 -2
- package/dist/daemon/installer/routes.js.map +1 -1
- package/dist/daemon/installer/security.d.ts +9 -2
- package/dist/daemon/installer/security.js +8 -0
- package/dist/daemon/installer/security.js.map +1 -1
- package/dist/daemon/installer/token.d.ts +8 -7
- package/dist/daemon/installer/token.js +40 -18
- package/dist/daemon/installer/token.js.map +1 -1
- package/dist/daemon/registry.d.ts +6 -0
- package/dist/daemon/registry.js +15 -17
- package/dist/daemon/registry.js.map +1 -1
- package/dist/daemon/server.d.ts +14 -0
- package/dist/daemon/server.js +19 -0
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/setup-tenancy.d.ts +18 -0
- package/dist/daemon/setup-tenancy.js +37 -0
- package/dist/daemon/setup-tenancy.js.map +1 -0
- package/dist/dashboard/web/active-tenancy-display.d.ts +34 -0
- package/dist/dashboard/web/active-tenancy-display.js +84 -0
- package/dist/dashboard/web/active-tenancy-display.js.map +1 -0
- package/dist/dashboard/web/app.js +6 -2
- package/dist/dashboard/web/app.js.map +1 -1
- package/dist/dashboard/web/onboarding/contracts.d.ts +1 -1
- package/dist/dashboard/web/onboarding/contracts.js +9 -1
- package/dist/dashboard/web/onboarding/contracts.js.map +1 -1
- package/dist/dashboard/web/onboarding/login-step.d.ts +3 -4
- package/dist/dashboard/web/onboarding/login-step.js +12 -18
- package/dist/dashboard/web/onboarding/login-step.js.map +1 -1
- package/dist/dashboard/web/onboarding/onboarding-screen.d.ts +8 -4
- package/dist/dashboard/web/onboarding/onboarding-screen.js +90 -13
- package/dist/dashboard/web/onboarding/onboarding-screen.js.map +1 -1
- package/dist/dashboard/web/onboarding/tenancy-client.d.ts +19 -0
- package/dist/dashboard/web/onboarding/tenancy-client.js +84 -0
- package/dist/dashboard/web/onboarding/tenancy-client.js.map +1 -0
- package/dist/dashboard/web/onboarding/tenancy-contracts.d.ts +119 -0
- package/dist/dashboard/web/onboarding/tenancy-contracts.js +79 -0
- package/dist/dashboard/web/onboarding/tenancy-contracts.js.map +1 -0
- package/dist/dashboard/web/onboarding/tenancy-step.d.ts +32 -0
- package/dist/dashboard/web/onboarding/tenancy-step.js +223 -0
- package/dist/dashboard/web/onboarding/tenancy-step.js.map +1 -0
- package/dist/dashboard/web/pages/hive-graph.js +138 -43
- package/dist/dashboard/web/pages/hive-graph.js.map +1 -1
- package/dist/dashboard/web/wire.d.ts +111 -14
- package/dist/dashboard/web/wire.js +105 -0
- package/dist/dashboard/web/wire.js.map +1 -1
- package/dist/install/registry.d.ts +2 -2
- package/dist/install/registry.js +14 -7
- package/dist/install/registry.js.map +1 -1
- package/dist/lock.d.ts +5 -2
- package/dist/lock.js +36 -1
- package/dist/lock.js.map +1 -1
- package/dist/service/index.d.ts +5 -0
- package/dist/service/index.js +9 -1
- package/dist/service/index.js.map +1 -1
- package/dist/service/templates.d.ts +22 -3
- package/dist/service/templates.js +47 -10
- package/dist/service/templates.js.map +1 -1
- package/dist/shared/apiary-root.d.ts +28 -0
- package/dist/shared/apiary-root.js +71 -0
- package/dist/shared/apiary-root.js.map +1 -0
- package/dist/shared/constants.d.ts +0 -1
- package/dist/shared/constants.js +3 -5
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/legacy-paths.d.ts +22 -0
- package/dist/shared/legacy-paths.js +48 -0
- package/dist/shared/legacy-paths.js.map +1 -0
- package/dist/shared/registry-paths.d.ts +19 -0
- package/dist/shared/registry-paths.js +52 -0
- package/dist/shared/registry-paths.js.map +1 -0
- package/dist/shared/state-migration.d.ts +13 -0
- package/dist/shared/state-migration.js +92 -0
- package/dist/shared/state-migration.js.map +1 -0
- package/dist/telemetry/emit.d.ts +27 -14
- package/dist/telemetry/emit.js +20 -4
- package/dist/telemetry/emit.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/daemon/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/daemon/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/server.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { type ProxyFetch } from "./proxy.js";
|
|
|
6
6
|
import { type TelemetryFetch } from "./telemetry-proxy.js";
|
|
7
7
|
import { type InstallerServiceOptions } from "./installer/index.js";
|
|
8
8
|
import type { SetupAuthFetchImpl } from "./setup-auth.js";
|
|
9
|
+
import type { SetupTenancyFetchImpl } from "./setup-tenancy.js";
|
|
9
10
|
export interface CreateHiveOptions {
|
|
10
11
|
readonly host?: string;
|
|
11
12
|
readonly port?: number;
|
|
@@ -17,6 +18,8 @@ export interface CreateHiveOptions {
|
|
|
17
18
|
readonly proxyFetch?: ProxyFetch;
|
|
18
19
|
/** The fetch used by the portal gate's auth check (`/setup/state`, defaults to the global `fetch`). */
|
|
19
20
|
readonly setupAuthFetch?: SetupAuthFetchImpl;
|
|
21
|
+
/** The fetch used by the portal gate's tenancy check (`/setup/tenancy`, defaults to the global `fetch`). */
|
|
22
|
+
readonly setupTenancyFetch?: SetupTenancyFetchImpl;
|
|
20
23
|
/** Override doctor's SSE events URL the telemetry relay connects to (defaults to the fixed loopback constant). */
|
|
21
24
|
readonly doctorEventsUrl?: string;
|
|
22
25
|
/** The fetch used by the telemetry relay to reach doctor's SSE stream (defaults to the global `fetch`). */
|
|
@@ -30,6 +33,17 @@ export interface CreateHiveOptions {
|
|
|
30
33
|
export interface StartHiveOptions extends CreateHiveOptions {
|
|
31
34
|
readonly lockPaths?: Partial<LockPaths>;
|
|
32
35
|
readonly serveFn?: ServeFunction;
|
|
36
|
+
/**
|
|
37
|
+
* PRD-010b boot-migration seam. Defaults to the real {@link migrateHiveState}; tests MUST
|
|
38
|
+
* inject a no-op (or the suite-wide isolated home applies) so no test touches the real home.
|
|
39
|
+
*/
|
|
40
|
+
readonly migrateState?: () => void;
|
|
41
|
+
/**
|
|
42
|
+
* rc-AC-2/mg-AC-7 registry-upsert seam, invoked AFTER the lock is acquired and the pid file is
|
|
43
|
+
* written (same boot, pinned ordering). Defaults to the real {@link registerHiveWithDoctor};
|
|
44
|
+
* tests inject a no-op or a recorder.
|
|
45
|
+
*/
|
|
46
|
+
readonly registerWithDoctor?: () => void;
|
|
33
47
|
}
|
|
34
48
|
export interface HiveInstance {
|
|
35
49
|
readonly app: Hono;
|
package/dist/daemon/server.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { serve } from "@hono/node-server";
|
|
2
2
|
import { Hono } from "hono";
|
|
3
3
|
import { acquireSingleInstanceLock, releaseSingleInstanceLock } from "../lock.js";
|
|
4
|
+
import { registerHiveWithDoctor } from "../install/registry.js";
|
|
5
|
+
import { migrateHiveState } from "../shared/state-migration.js";
|
|
4
6
|
import { DOCTOR_STATUS_URL, HIVE_HOST, HIVE_PORT, HIVE_VERSION } from "../shared/constants.js";
|
|
5
7
|
import { mountDashboardAssets, mountDashboardShellFallback, renderShell } from "./dashboard/host.js";
|
|
6
8
|
import { fetchFleetStatus } from "./fleet-status.js";
|
|
@@ -36,6 +38,7 @@ export function createHive(options = {}) {
|
|
|
36
38
|
fleetStatusFetch,
|
|
37
39
|
doctorStatusUrl,
|
|
38
40
|
setupAuthFetch: options.setupAuthFetch,
|
|
41
|
+
setupTenancyFetch: options.setupTenancyFetch,
|
|
39
42
|
registryPath: options.registryPath
|
|
40
43
|
}));
|
|
41
44
|
// The bundled SPA's static assets — specific, fixed paths registered before the shell catch-all
|
|
@@ -98,8 +101,24 @@ export function createHive(options = {}) {
|
|
|
98
101
|
}
|
|
99
102
|
export function startHive(options = {}) {
|
|
100
103
|
const serveFn = options.serveFn ?? serve;
|
|
104
|
+
const migrateState = options.migrateState ?? (() => {
|
|
105
|
+
migrateHiveState();
|
|
106
|
+
});
|
|
107
|
+
const registerWithDoctor = options.registerWithDoctor ?? (() => {
|
|
108
|
+
registerHiveWithDoctor();
|
|
109
|
+
});
|
|
110
|
+
migrateState();
|
|
101
111
|
const hive = createHive(options);
|
|
102
112
|
const lockPaths = acquireSingleInstanceLock(options.lockPaths);
|
|
113
|
+
// rc-AC-2/mg-AC-7 ordering: the lock is held and the new pid file is written; NOW upsert the
|
|
114
|
+
// registry entry naming that pid path, in the same boot. Best-effort: boot never fails when the
|
|
115
|
+
// registry file is mid-move.
|
|
116
|
+
try {
|
|
117
|
+
registerWithDoctor();
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// Fail-soft by design.
|
|
121
|
+
}
|
|
103
122
|
let server;
|
|
104
123
|
try {
|
|
105
124
|
server = serveFn({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,YAAY,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAkB,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAmB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAuB,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAgC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-011c gate tenancy input: fail-closed read of honeycomb `GET /setup/tenancy` `selected` bit.
|
|
3
|
+
* Mirrors `setup-auth.ts` construction exactly (tg-AC-5).
|
|
4
|
+
*/
|
|
5
|
+
export type SetupTenancyFetchInit = {
|
|
6
|
+
readonly redirect?: "error" | "follow" | "manual";
|
|
7
|
+
readonly signal?: AbortSignal;
|
|
8
|
+
};
|
|
9
|
+
export type SetupTenancyFetchImpl = (input: string, init?: SetupTenancyFetchInit) => Promise<Response>;
|
|
10
|
+
export interface FetchTenancySelectedOptions {
|
|
11
|
+
readonly registryPath?: string;
|
|
12
|
+
readonly signal?: AbortSignal;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resolve whether tenancy is confirmed for the gate's third precedence step (tg-AC-1..4).
|
|
16
|
+
* Returns `false` on ANY failure so a transient fault lands on `/onboarding`, never the dashboard.
|
|
17
|
+
*/
|
|
18
|
+
export declare function fetchTenancySelected(fetchImpl?: SetupTenancyFetchImpl, options?: FetchTenancySelectedOptions): Promise<boolean>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-011c gate tenancy input: fail-closed read of honeycomb `GET /setup/tenancy` `selected` bit.
|
|
3
|
+
* Mirrors `setup-auth.ts` construction exactly (tg-AC-5).
|
|
4
|
+
*/
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { isLoopbackBaseUrl } from "../shared/daemon-routing.js";
|
|
7
|
+
import { resolveDaemonBases } from "./registry.js";
|
|
8
|
+
const SetupTenancySelectedSchema = z.object({
|
|
9
|
+
selected: z.boolean().catch(false),
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* Resolve whether tenancy is confirmed for the gate's third precedence step (tg-AC-1..4).
|
|
13
|
+
* Returns `false` on ANY failure so a transient fault lands on `/onboarding`, never the dashboard.
|
|
14
|
+
*/
|
|
15
|
+
export async function fetchTenancySelected(fetchImpl = fetch, options = {}) {
|
|
16
|
+
const base = resolveDaemonBases({ registryPath: options.registryPath }).honeycomb;
|
|
17
|
+
if (!isLoopbackBaseUrl(base))
|
|
18
|
+
return false;
|
|
19
|
+
try {
|
|
20
|
+
const response = await fetchImpl(`${base}/setup/tenancy`, { redirect: "error", signal: options.signal });
|
|
21
|
+
if (!response.ok)
|
|
22
|
+
return false;
|
|
23
|
+
let parsedJson;
|
|
24
|
+
try {
|
|
25
|
+
parsedJson = await response.json();
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
const parsed = SetupTenancySelectedSchema.safeParse(parsedJson);
|
|
31
|
+
return parsed.success ? parsed.data.selected : false;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=setup-tenancy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-tenancy.js","sourceRoot":"","sources":["../../src/daemon/setup-tenancy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;CAClC,CAAC,CAAC;AAaH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,YAAmC,KAAK,EACxC,UAAuC,EAAE;IAEzC,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC;IAClF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAE3C,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,IAAI,gBAAgB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QAE/B,IAAI,UAAmB,CAAC;QACxB,IAAI,CAAC;YACJ,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD-011b: active tenancy readout helpers and shell chrome component.
|
|
3
|
+
* Maps daemon truth to honest labels; never fabricates `local · default`.
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
import type { SetupTenancyResultWire, WireClient } from "./wire.js";
|
|
7
|
+
export type ActiveTenancyLabel = {
|
|
8
|
+
readonly kind: "ok";
|
|
9
|
+
readonly org: string;
|
|
10
|
+
readonly workspace: string;
|
|
11
|
+
/** How the tenancy was confirmed (honeycomb `confirmedBy`); absent on older daemons. */
|
|
12
|
+
readonly confirmedBy?: "selection" | "grandfathered";
|
|
13
|
+
} | {
|
|
14
|
+
readonly kind: "unavailable";
|
|
15
|
+
} | {
|
|
16
|
+
readonly kind: "not-linked";
|
|
17
|
+
} | {
|
|
18
|
+
readonly kind: "not-selected";
|
|
19
|
+
};
|
|
20
|
+
/** Derive the shell readout label from a tenancy read (tv-AC-2/3). */
|
|
21
|
+
export declare function deriveActiveTenancyLabel(read: SetupTenancyResultWire): ActiveTenancyLabel;
|
|
22
|
+
export declare function formatActiveTenancyLabel(label: ActiveTenancyLabel): string;
|
|
23
|
+
export interface ActiveTenancyDisplayProps {
|
|
24
|
+
readonly wire: WireClient;
|
|
25
|
+
/** Incremented by the shell on honeycomb down→up recovery (tv-AC-4). */
|
|
26
|
+
readonly refreshKey?: number;
|
|
27
|
+
}
|
|
28
|
+
/** Persistent org · workspace readout for the shell chrome bar (tv-AC-1..5). */
|
|
29
|
+
export declare function ActiveTenancyDisplay({ wire, refreshKey }: ActiveTenancyDisplayProps): React.JSX.Element;
|
|
30
|
+
/** Tenancy line for the nectar projects panel (tv-AC-6..8). */
|
|
31
|
+
export declare function formatNectarPanelTenancy(projectsTenancy: {
|
|
32
|
+
org?: string;
|
|
33
|
+
workspace?: string;
|
|
34
|
+
} | undefined, fleetTenancy: ActiveTenancyLabel): string | null;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* PRD-011b: active tenancy readout helpers and shell chrome component.
|
|
4
|
+
* Maps daemon truth to honest labels; never fabricates `local · default`.
|
|
5
|
+
*/
|
|
6
|
+
import React from "react";
|
|
7
|
+
import { UNREACHABLE_SETUP_TENANCY } from "./wire.js";
|
|
8
|
+
import { useScopeSwitcher } from "./scope-context.js";
|
|
9
|
+
/** Derive the shell readout label from a tenancy read (tv-AC-2/3). */
|
|
10
|
+
export function deriveActiveTenancyLabel(read) {
|
|
11
|
+
if (read.unreachable)
|
|
12
|
+
return { kind: "unavailable" };
|
|
13
|
+
if (!read.authenticated)
|
|
14
|
+
return { kind: "not-linked" };
|
|
15
|
+
if (!read.selected)
|
|
16
|
+
return { kind: "not-selected" };
|
|
17
|
+
const org = read.org?.name !== "" && read.org?.name !== undefined ? read.org.name : read.org?.id ?? "";
|
|
18
|
+
const workspace = read.workspace?.name !== "" && read.workspace?.name !== undefined ? read.workspace.name : read.workspace?.id ?? "";
|
|
19
|
+
if (org === "" || workspace === "")
|
|
20
|
+
return { kind: "unavailable" };
|
|
21
|
+
return read.confirmedBy !== undefined ? { kind: "ok", org, workspace, confirmedBy: read.confirmedBy } : { kind: "ok", org, workspace };
|
|
22
|
+
}
|
|
23
|
+
export function formatActiveTenancyLabel(label) {
|
|
24
|
+
switch (label.kind) {
|
|
25
|
+
case "ok":
|
|
26
|
+
// A grandfathered confirmation (carried forward from a pre-selection credential) is
|
|
27
|
+
// hinted subtly so the operator knows this tenancy was never explicitly picked.
|
|
28
|
+
return label.confirmedBy === "grandfathered" ? `${label.org} · ${label.workspace} (grandfathered)` : `${label.org} · ${label.workspace}`;
|
|
29
|
+
case "unavailable":
|
|
30
|
+
return "tenancy unavailable";
|
|
31
|
+
case "not-linked":
|
|
32
|
+
return "not linked";
|
|
33
|
+
case "not-selected":
|
|
34
|
+
return "tenancy not selected";
|
|
35
|
+
default: {
|
|
36
|
+
const _exhaustive = label;
|
|
37
|
+
return _exhaustive;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/** Persistent org · workspace readout for the shell chrome bar (tv-AC-1..5). */
|
|
42
|
+
export function ActiveTenancyDisplay({ wire, refreshKey = 0 }) {
|
|
43
|
+
const { switchFeedback } = useScopeSwitcher();
|
|
44
|
+
const [tenancy, setTenancy] = React.useState(UNREACHABLE_SETUP_TENANCY);
|
|
45
|
+
const hydrate = React.useCallback(async () => {
|
|
46
|
+
setTenancy(await wire.setupTenancy());
|
|
47
|
+
}, [wire]);
|
|
48
|
+
React.useEffect(() => {
|
|
49
|
+
void hydrate();
|
|
50
|
+
}, [hydrate, refreshKey]);
|
|
51
|
+
// tv-AC-5: re-hydrate after a persisted org/workspace switch acknowledges.
|
|
52
|
+
React.useEffect(() => {
|
|
53
|
+
if (switchFeedback?.kind === "persisted" && switchFeedback.pending !== true) {
|
|
54
|
+
void hydrate();
|
|
55
|
+
}
|
|
56
|
+
}, [switchFeedback, hydrate]);
|
|
57
|
+
const label = deriveActiveTenancyLabel(tenancy);
|
|
58
|
+
const text = formatActiveTenancyLabel(label);
|
|
59
|
+
return (_jsx("span", { "data-testid": "active-tenancy-display", "data-tenancy-state": label.kind, style: {
|
|
60
|
+
fontFamily: "var(--font-mono)",
|
|
61
|
+
fontSize: "var(--text-xs)",
|
|
62
|
+
color: label.kind === "ok" ? "var(--text-secondary)" : "var(--text-tertiary)",
|
|
63
|
+
whiteSpace: "nowrap",
|
|
64
|
+
overflow: "hidden",
|
|
65
|
+
textOverflow: "ellipsis",
|
|
66
|
+
}, children: text }));
|
|
67
|
+
}
|
|
68
|
+
/** Tenancy line for the nectar projects panel (tv-AC-6..8). */
|
|
69
|
+
export function formatNectarPanelTenancy(projectsTenancy, fleetTenancy) {
|
|
70
|
+
if (projectsTenancy?.org !== undefined && projectsTenancy.org !== "" && projectsTenancy.workspace !== undefined && projectsTenancy.workspace !== "") {
|
|
71
|
+
return `${projectsTenancy.org} · ${projectsTenancy.workspace}`;
|
|
72
|
+
}
|
|
73
|
+
if (fleetTenancy.kind === "ok") {
|
|
74
|
+
return `${fleetTenancy.org} · ${fleetTenancy.workspace} (fleet credential)`;
|
|
75
|
+
}
|
|
76
|
+
if (fleetTenancy.kind === "unavailable")
|
|
77
|
+
return "tenancy unknown";
|
|
78
|
+
if (fleetTenancy.kind === "not-linked")
|
|
79
|
+
return "not linked";
|
|
80
|
+
if (fleetTenancy.kind === "not-selected")
|
|
81
|
+
return "tenancy not selected";
|
|
82
|
+
return "tenancy unknown";
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=active-tenancy-display.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-tenancy-display.js","sourceRoot":"","sources":["../../../src/dashboard/web/active-tenancy-display.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
29
29
|
* XSS-safe, no token/secret in the shell/route/registry/pill — D-9).
|
|
30
30
|
*/
|
|
31
31
|
import React from "react";
|
|
32
|
+
import { ActiveTenancyDisplay } from "./active-tenancy-display.js";
|
|
32
33
|
import { Button } from "./primitives.js";
|
|
33
34
|
import { ConnectivityBanner } from "./panels.js";
|
|
34
35
|
import { HEALTH_ROUTE, HealthRail } from "./health-rail.js";
|
|
@@ -90,6 +91,7 @@ export function Shell({ client, assetBase = "assets" } = {}) {
|
|
|
90
91
|
const [healthReasons, setHealthReasons] = React.useState(null);
|
|
91
92
|
const [settings, setSettings] = React.useState(EMPTY_SETTINGS);
|
|
92
93
|
const [pollinating, setPollinating] = React.useState(false);
|
|
94
|
+
const [tenancyRefreshKey, setTenancyRefreshKey] = React.useState(0);
|
|
93
95
|
// Collapsed: a manual toggle OR an auto-collapse under the narrow breakpoint (037a AC-6). We track
|
|
94
96
|
// both an explicit user choice and the viewport, preferring the user's choice once they toggle.
|
|
95
97
|
const [collapsed, setCollapsed] = React.useState(false);
|
|
@@ -121,8 +123,10 @@ export function Shell({ client, assetBase = "assets" } = {}) {
|
|
|
121
123
|
const nextNectarUp = !nectarStatus.unreachable;
|
|
122
124
|
setDaemonUpByOwner({ honeycomb: nextHoneycombUp, nectar: nextNectarUp });
|
|
123
125
|
setHealthReasons(honeycombProbe.reasons);
|
|
124
|
-
if (nextHoneycombUp && prevDaemonUpRef.current === false)
|
|
126
|
+
if (nextHoneycombUp && prevDaemonUpRef.current === false) {
|
|
125
127
|
void hydrateIdentity();
|
|
128
|
+
setTenancyRefreshKey((k) => k + 1);
|
|
129
|
+
}
|
|
126
130
|
prevDaemonUpRef.current = nextHoneycombUp;
|
|
127
131
|
}, HEALTH_POLL_MS);
|
|
128
132
|
// 037a AC-6: auto-collapse under the narrow breakpoint. Tracks the viewport via matchMedia; the
|
|
@@ -182,7 +186,7 @@ export function Shell({ client, assetBase = "assets" } = {}) {
|
|
|
182
186
|
gap: 12,
|
|
183
187
|
padding: "16px 28px",
|
|
184
188
|
borderBottom: "1px solid var(--border-subtle)",
|
|
185
|
-
}, children: [_jsx("span", { style: { flex: 1 } }), _jsx(Button, { variant: "pollinate", onClick: () => void pollinate(), disabled: pollinating, children: pollinating ? "pollinating…" : "Pollinate now" })] }), pageDaemonUp ? (_jsx(Outlet, { route: route, pageProps: pageProps, navigate: navigate })) : (_jsx("div", { style: { flex: 1, minWidth: 0, padding: "28px 28px 48px" }, children: _jsx("div", { style: { maxWidth: PAGE_MAX_WIDTH, margin: "0 auto" }, children: _jsx(ConnectivityBanner, { url: daemonUrl, onRetry: () => {
|
|
189
|
+
}, children: [_jsx(ActiveTenancyDisplay, { wire: wire, refreshKey: tenancyRefreshKey }), _jsx("span", { style: { flex: 1 } }), _jsx(Button, { variant: "pollinate", onClick: () => void pollinate(), disabled: pollinating, children: pollinating ? "pollinating…" : "Pollinate now" })] }), pageDaemonUp ? (_jsx(Outlet, { route: route, pageProps: pageProps, navigate: navigate })) : (_jsx("div", { style: { flex: 1, minWidth: 0, padding: "28px 28px 48px" }, children: _jsx("div", { style: { maxWidth: PAGE_MAX_WIDTH, margin: "0 auto" }, children: _jsx(ConnectivityBanner, { url: daemonUrl, onRetry: () => {
|
|
186
190
|
void (async () => {
|
|
187
191
|
if (routeOwner === "nectar") {
|
|
188
192
|
const status = await wire.hiveGraphStatus();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/dashboard/web/app.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/dashboard/web/app.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAmB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAkB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAmB,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAA8D,MAAM,WAAW,CAAC;AACzH,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAElE,0DAA0D;AAC1D,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,MAAM,iBAAiB,GAAgC,MAAM,CAAC,MAAM,CAAC;IACpE,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;CACZ,CAAC,CAAC;AACH,qGAAqG;AACrG,MAAM,iBAAiB,GAAG,GAAY,CAAC;AAUvC;;;;;;;;;GASG;AACH,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAA0E;IACrH,MAAM,KAAK,GAAe,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC1D,4FAA4F;IAC5F,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE,QAAQ,CAAC,KAAK,GAAG,eAAe,KAAK,CAAC,KAAK,EAAE,CAAC;IACpF,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElB,sGAAsG;IACtG,oGAAoG;IACpG,qGAAqG;IACrG,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,SAAS,KAAK,cAAc,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,KAAK,GAAG,IAAI,gBAAgB,IAAI,CAAC,QAAQ,CAAC;IAE1E,OAAO,CACN,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAC9D,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,YACxD,YAAY,CAAC,CAAC,CAAC,KAAC,eAAe,IAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,GAAI,CAAC,CAAC,CAAC,KAAC,aAAa,OAAK,SAAS,GAAI,GAC3I,GACD,CACN,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,KAAiB,EAAE;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAa,GAAG,EAAE,CAAC,MAAM,IAAI,gBAAgB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IAE3C,0BAA0B;IAC1B,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAA8B,iBAAiB,CAAC,CAAC;IAC7G,kGAAkG;IAClG,mGAAmG;IACnG,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAA2B,IAAI,CAAC,CAAC;IACzF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAe,cAAc,CAAC,CAAC;IAC7E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpE,mGAAmG;IACnG,gGAAgG;IAChG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,CAAC;IAC9C,MAAM,SAAS,GACd,UAAU,KAAK,QAAQ;QACtB,CAAC,CAAC,oBAAoB,CAAC,MAAM;QAC7B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACvB,CAAC,CAAC,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;YAC9C,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC;IAEpC,mGAAmG;IACnG,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAmB,EAAE;QACnE,WAAW,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,sCAAsC;IACtC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,KAAK,eAAe,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,mGAAmG;IACnG,8FAA8F;IAC9F,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE3D,iGAAiG;IACjG,+FAA+F;IAC/F,mGAAmG;IACnG,OAAO,CAAC,KAAK,IAAI,EAAE;QAClB,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAClG,MAAM,eAAe,GAAG,cAAc,CAAC,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC;QAC/C,kBAAkB,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QACzE,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,eAAe,IAAI,eAAe,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC1D,KAAK,eAAe,EAAE,CAAC;YACvB,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC;QACD,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC;IAC3C,CAAC,EAAE,cAAc,CAAC,CAAC;IAEnB,gGAAgG;IAChG,iGAAiG;IACjG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;YAAE,OAAO;QACrF,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,eAAe,iBAAiB,KAAK,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,CAAC,OAAgB,EAAQ,EAAE;YACxC,IAAI,OAAO;gBAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,QAAQ,GAAG,CAAC,CAAsB,EAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACpE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,6GAA6G;IAC7G,2GAA2G;IAC3G,iFAAiF;IACjF,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAAuC,IAAI,CAAC,CAAC;IACxF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,OAAO,GAAG,EAAE;YACX,IAAI,sBAAsB,CAAC,OAAO,KAAK,IAAI;gBAAE,YAAY,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3F,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,qGAAqG;IACrG,iGAAiG;IACjG,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,IAAmB,EAAE;QAC7D,IAAI,oBAAoB,CAAC,OAAO;YAAE,OAAO,CAAC,8DAA8D;QACxG,oBAAoB,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,yFAAyF;YACzF,sBAAsB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChD,cAAc,CAAC,KAAK,CAAC,CAAC;gBACtB,oBAAoB,CAAC,OAAO,GAAG,KAAK,CAAC;YACtC,CAAC,EAAE,IAAI,CAAC,CAAC;QACV,CAAC;aAAM,CAAC;YACP,gFAAgF;YAChF,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,oBAAoB,CAAC,OAAO,GAAG,KAAK,CAAC;QACtC,CAAC;IACF,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,IAAI,OAAO,MAAM,QAAQ,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;IAEzG,gGAAgG;IAChG,+CAA+C;IAC/C,MAAM,SAAS,GAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;IAErG,OAAO,CAKN,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,YACzB,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAElF,KAAC,OAAO,IACP,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAC/C,EAEF,eAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,aAG7E,KAAC,UAAU,IAAC,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAI,EAG1D,eACC,KAAK,EAAE;gCACN,OAAO,EAAE,MAAM;gCACf,UAAU,EAAE,QAAQ;gCACpB,GAAG,EAAE,EAAE;gCACP,OAAO,EAAE,WAAW;gCACpB,YAAY,EAAE,gCAAgC;6BAC9C,aAED,KAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,GAAI,EACnE,eAAM,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAI,EAC5B,KAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,SAAS,EAAE,EAAE,QAAQ,EAAE,WAAW,YAChF,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,GACvC,IACJ,EAIL,YAAY,CAAC,CAAC,CAAC,CACf,KAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAClE,CAAC,CAAC,CAAC,CACH,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAC9D,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,YACzD,KAAC,kBAAkB,IAClB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,GAAG,EAAE;wCACb,KAAK,CAAC,KAAK,IAAmB,EAAE;4CAC/B,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gDAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gDAC5C,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;gDAC/B,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;4CACzD,CAAC;iDAAM,CAAC;gDACP,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gDACnC,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gDAC3D,IAAI,EAAE;oDAAE,KAAK,eAAe,EAAE,CAAC;4CAChC,CAAC;wCACF,CAAC,CAAC,EAAE,CAAC;oCACN,CAAC,GACA,GACG,GACD,CACN,IACI,IACD,GACU,CAChB,CAAC;AACH,CAAC"}
|
|
@@ -184,5 +184,5 @@ export declare function parseHealthResponse(body: unknown): HealthResponse;
|
|
|
184
184
|
/** Re-exported so onboarding modules read the daemon health vocabulary from one place. */
|
|
185
185
|
export type { FleetHealth, FleetStatusResponse };
|
|
186
186
|
/** The exact UI-fired event names (product install + health events are daemon-side, never sent here). */
|
|
187
|
-
export declare const ONBOARDING_UI_EVENTS: readonly ["onboarding_started", "mode_selected", "login_shown", "dashboard_reached"];
|
|
187
|
+
export declare const ONBOARDING_UI_EVENTS: readonly ["onboarding_started", "mode_selected", "login_shown", "tenancy_shown", "tenancy_selected", "workspace_created", "dashboard_reached"];
|
|
188
188
|
export type OnboardingUiEvent = (typeof ONBOARDING_UI_EVENTS)[number];
|
|
@@ -157,5 +157,13 @@ function isFleetStatusShaped(value) {
|
|
|
157
157
|
// POST /api/onboarding/event, the UI funnel chokepoint (fire-and-forget, never awaited by callers)
|
|
158
158
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
159
159
|
/** The exact UI-fired event names (product install + health events are daemon-side, never sent here). */
|
|
160
|
-
export const ONBOARDING_UI_EVENTS = [
|
|
160
|
+
export const ONBOARDING_UI_EVENTS = [
|
|
161
|
+
"onboarding_started",
|
|
162
|
+
"mode_selected",
|
|
163
|
+
"login_shown",
|
|
164
|
+
"tenancy_shown",
|
|
165
|
+
"tenancy_selected",
|
|
166
|
+
"workspace_created",
|
|
167
|
+
"dashboard_reached",
|
|
168
|
+
];
|
|
161
169
|
//# sourceMappingURL=contracts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/dashboard/web/onboarding/contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,iGAAiG;AACjG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAGtF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AAG9E,MAAM,UAAU,oBAAoB,CAAC,KAAa;IACjD,OAAQ,mBAAyC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,eAAe,EAAE,WAAW,EAAE,qBAAqB,EAAE,gBAAgB,CAAU,CAAC;AAGvH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;CAC7B,CAAC,CAAC;AAGH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,kBAAkB,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAGH,oFAAoF;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;AAErG,+FAA+F;AAC/F,6FAA6F;AAC7F,gGAAgG;AAChG,iGAAiG;AACjG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,CAAC;SACT,MAAM,CAAC;QACP,SAAS,EAAE,sBAAsB,CAAC,QAAQ,EAAE;QAC5C,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;QACzC,IAAI,EAAE,sBAAsB,CAAC,QAAQ,EAAE;QACvC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;KACzC,CAAC;SACD,KAAK,CAAC,EAAE,CAAC;CACX,CAAC,CAAC;AAGH,yGAAyG;AACzG,MAAM,CAAC,MAAM,eAAe,GAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAE/E,kGAAkG;AAClG,MAAM,UAAU,YAAY,CAAC,SAAyB,EAAE,OAA0B;IACjF,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,yBAAyB,CAAC;AACjE,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,qBAAqB,CAAC,SAAyB;IAC9D,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;AAC3F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAyB;IAC1D,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAyB;IAC5D,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/C,OAAO,KAAK,KAAK,qBAAqB,IAAI,KAAK,KAAK,gBAAgB,CAAC;IACtE,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC/B,SAAyB,EACzB,kBAAwD;IAExD,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/C,OAAO,KAAK,KAAK,qBAAqB,IAAI,KAAK,KAAK,gBAAgB,CAAC;IACtE,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;CAChF,CAAC,CAAC;AAGH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC;CACrD,CAAC,CAAC;AAKH,2GAA2G;AAC3G,MAAM,UAAU,qBAAqB,CAAC,KAAsC;IAC3E,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC7B,OAAO,mIAAmI,CAAC;IAC5I,CAAC;IACD,OAAO,2JAA2J,CAAC;AACpK,CAAC;AAED,gFAAgF;AAChF,oDAAoD;AACpD,gFAAgF;AAEhF,0GAA0G;AAC1G,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,qBAAqB,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AAG7H,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,qBAAqB,CAA4C,CAAC;AAE1I,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAYH,0FAA0F;AAC1F,MAAM,CAAC,MAAM,kBAAkB,GAAmB,MAAM,CAAC,MAAM,CAAC;IAC/D,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,EAAE,UAAU,EAAE,aAAsB,EAAE,OAAO,EAAE,EAAW,EAAE;CACpE,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,kBAAkB,CAAC;IACzE,MAAM,MAAM,GAAG,IAA6C,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACvE,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;IAC9F,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,UAAU,GAAI,KAAkC,CAAC,UAAU,CAAC;IAClE,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,KAAK,aAAa,CAAC;AACnE,CAAC;AAKD,gFAAgF;AAChF,mGAAmG;AACnG,gFAAgF;AAEhF,yGAAyG;AACzG,MAAM,CAAC,MAAM,oBAAoB,GAAG,
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../../src/dashboard/web/onboarding/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
* Unlike `/login`'s `GuidedSetup` (which waits for an explicit "First time setup" click), the
|
|
9
9
|
* onboarding flow has already walked the operator through installs and a health check, so this
|
|
10
10
|
* step begins the device flow automatically on mount: one fewer click at the end of a long guided
|
|
11
|
-
* sequence. Once `/setup/state.authenticated` flips true
|
|
12
|
-
*
|
|
13
|
-
* revalidates and serves the authoritative dashboard, the same discipline `LoginScreen` follows.
|
|
11
|
+
* sequence. Once `/setup/state.authenticated` flips true the parent advances to the PRD-011 tenancy
|
|
12
|
+
* step; the terminal `dashboard_reached` handoff runs only after tenancy selection (ts-AC-1/9).
|
|
14
13
|
*/
|
|
15
14
|
import React from "react";
|
|
16
15
|
import { type WireClient } from "../wire.js";
|
|
@@ -21,7 +20,7 @@ export interface LoginStepProps {
|
|
|
21
20
|
readonly onboardingClient: OnboardingClient;
|
|
22
21
|
/** The proxied setup wire client (defaults to the live one; a test injects a mock). */
|
|
23
22
|
readonly wire?: WireClient;
|
|
24
|
-
/** Test seam: called
|
|
23
|
+
/** Test seam: called when login authenticates (parent advances to the tenancy step). */
|
|
25
24
|
readonly onAuthenticated?: () => void;
|
|
26
25
|
/** Overrides {@link LOGIN_STEP_POLL_MS} (a test injects a short window). */
|
|
27
26
|
readonly pollMs?: number;
|
|
@@ -9,9 +9,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
9
9
|
* Unlike `/login`'s `GuidedSetup` (which waits for an explicit "First time setup" click), the
|
|
10
10
|
* onboarding flow has already walked the operator through installs and a health check, so this
|
|
11
11
|
* step begins the device flow automatically on mount: one fewer click at the end of a long guided
|
|
12
|
-
* sequence. Once `/setup/state.authenticated` flips true
|
|
13
|
-
*
|
|
14
|
-
* revalidates and serves the authoritative dashboard, the same discipline `LoginScreen` follows.
|
|
12
|
+
* sequence. Once `/setup/state.authenticated` flips true the parent advances to the PRD-011 tenancy
|
|
13
|
+
* step; the terminal `dashboard_reached` handoff runs only after tenancy selection (ts-AC-1/9).
|
|
15
14
|
*/
|
|
16
15
|
import React from "react";
|
|
17
16
|
import { createWireClient, FRESH_SETUP_STATE } from "../wire.js";
|
|
@@ -31,7 +30,7 @@ export function LoginStep({ onboardingClient, wire: wireOverride, onAuthenticate
|
|
|
31
30
|
const [error, setError] = React.useState(false);
|
|
32
31
|
const beginRef = React.useRef(false);
|
|
33
32
|
const grantShownEventRef = React.useRef(false);
|
|
34
|
-
const
|
|
33
|
+
const authenticatedHandledRef = React.useRef(false);
|
|
35
34
|
// Auto-begin the device flow on mount (see module doc for why onboarding skips the button
|
|
36
35
|
// `GuidedSetup` shows on the standalone `/login` route).
|
|
37
36
|
React.useEffect(() => {
|
|
@@ -71,22 +70,17 @@ export function LoginStep({ onboardingClient, wire: wireOverride, onAuthenticate
|
|
|
71
70
|
clearInterval(id);
|
|
72
71
|
};
|
|
73
72
|
}, [wire, state.authenticated, pollMs]);
|
|
74
|
-
//
|
|
73
|
+
// ts-AC-1: authenticated advances to the tenancy step; terminal handoff lives in TenancyStep.
|
|
75
74
|
React.useEffect(() => {
|
|
76
|
-
if (!state.authenticated ||
|
|
75
|
+
if (!state.authenticated || authenticatedHandledRef.current)
|
|
77
76
|
return;
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
if (typeof window !== "undefined")
|
|
87
|
-
window.location.assign("/");
|
|
88
|
-
})();
|
|
89
|
-
}, [state.authenticated, onboardingClient, onAuthenticated]);
|
|
77
|
+
authenticatedHandledRef.current = true;
|
|
78
|
+
if (onAuthenticated !== undefined) {
|
|
79
|
+
onAuthenticated();
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// Real usage: parent OnboardingScreen owns the phase transition; this branch is unreachable.
|
|
83
|
+
}, [state.authenticated, onAuthenticated]);
|
|
90
84
|
if (state.authenticated)
|
|
91
85
|
return _jsx(_Fragment, {});
|
|
92
86
|
return (_jsxs("div", { "data-testid": "onboarding-login-step", style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-step.js","sourceRoot":"","sources":["../../../../src/dashboard/web/onboarding/login-step.tsx"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"login-step.js","sourceRoot":"","sources":["../../../../src/dashboard/web/onboarding/login-step.tsx"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
* └ Advanced → picker → installing(exactly the chosen subset) (ob-AC-7)
|
|
13
13
|
* installing(queue, index) ── each card completes+dwells → advance → next index, else → health
|
|
14
14
|
* health ── polls until ready → login
|
|
15
|
-
* login ── device-code display
|
|
15
|
+
* login ── device-code display → tenancy when authenticated (PRD-011a)
|
|
16
|
+
* tenancy ── org + workspace selection → hard navigation to `/` on `selected: true` (ts-AC-9)
|
|
16
17
|
*
|
|
17
18
|
* Resume honesty (ob-AC-16): the Standard/Advanced choice is persisted client-side
|
|
18
19
|
* (onboarding-selection-store), so a resumed install uses `buildResumeQueue`, which excludes a
|
|
@@ -22,13 +23,16 @@
|
|
|
22
23
|
*/
|
|
23
24
|
import React from "react";
|
|
24
25
|
import { type OnboardingClient } from "./onboarding-client.js";
|
|
25
|
-
import type {
|
|
26
|
+
import type { TenancyClient } from "./tenancy-client.js";
|
|
27
|
+
import { type WireClient } from "../wire.js";
|
|
26
28
|
export interface OnboardingScreenProps {
|
|
27
29
|
readonly assetBase?: string;
|
|
28
30
|
/** Test seam: inject a fake onboarding client, bypassing the real token + fetch wiring entirely. */
|
|
29
31
|
readonly client?: OnboardingClient;
|
|
30
32
|
/** Test seam: inject a fake proxied setup wire client for the login step. */
|
|
31
33
|
readonly wire?: WireClient;
|
|
34
|
+
/** Test seam: inject a fake tenancy client for the tenancy step (never touches the network). */
|
|
35
|
+
readonly tenancyClient?: TenancyClient;
|
|
32
36
|
/** Test seam: override the brief install dwell (ob-AC-11, revised). */
|
|
33
37
|
readonly minDwellMs?: number;
|
|
34
38
|
/** Test seam: override the health-check poll interval. */
|
|
@@ -37,7 +41,7 @@ export interface OnboardingScreenProps {
|
|
|
37
41
|
readonly loginPollMs?: number;
|
|
38
42
|
/** Test seam: called instead of the real hard navigation from the short-circuit summary. */
|
|
39
43
|
readonly onShortCircuitNavigate?: () => void;
|
|
40
|
-
/** Test seam: called instead of the real hard navigation once
|
|
44
|
+
/** Test seam: called instead of the real hard navigation once tenancy selection completes. */
|
|
41
45
|
readonly onAuthenticated?: () => void;
|
|
42
46
|
}
|
|
43
|
-
export declare function OnboardingScreen({ assetBase, client: clientOverride, wire, minDwellMs, healthPollMs, loginPollMs, onShortCircuitNavigate, onAuthenticated, }: OnboardingScreenProps): React.JSX.Element;
|
|
47
|
+
export declare function OnboardingScreen({ assetBase, client: clientOverride, wire, tenancyClient, minDwellMs, healthPollMs, loginPollMs, onShortCircuitNavigate, onAuthenticated, }: OnboardingScreenProps): React.JSX.Element;
|