refactor: make workspace descriptors schema v3 only
This commit is contained in:
@@ -12,9 +12,9 @@ import {
|
||||
resolveDiagnosticUrl,
|
||||
validateWorkspaceDescriptor,
|
||||
type RestDiagnosticRequest,
|
||||
type WorkspaceV2,
|
||||
type WorkspaceDescriptor,
|
||||
} from "./schema.js";
|
||||
import type { DeprecatedV2Descriptor } from "./deprecated-v2-descriptor.js";
|
||||
import type { WorkspaceErrorCode } from "./types.js";
|
||||
import type { SemanticRuntimeConfig } from "./runtime-renderer.js";
|
||||
|
||||
@@ -543,7 +543,7 @@ export function createProductionWorkspaceDiagnoser(
|
||||
options: { writeProbe: boolean },
|
||||
): Promise<WorkspaceDiagnostics> => {
|
||||
const descriptor = validateWorkspaceDescriptor(workspace);
|
||||
if (descriptor.workspace.schema_version !== 3) {
|
||||
if (Number(descriptor.workspace.schema_version) !== 3) {
|
||||
return await legacyDiagnoser(descriptor, bindings, options);
|
||||
}
|
||||
return await diagnoseSchemaV3Workspace(
|
||||
@@ -618,11 +618,11 @@ function diagnosticError(code: WorkspaceErrorCode, field?: string): Diagnostic {
|
||||
}
|
||||
|
||||
function bindingName(
|
||||
workspace: WorkspaceDescriptor,
|
||||
workspace: WorkspaceDescriptor | DeprecatedV2Descriptor,
|
||||
role: "DWH" | "VECTOR" | "VECTOR_WRITER" | "EMBEDDING",
|
||||
suffix: string,
|
||||
): string {
|
||||
const entry = buildInstallationContract(workspace).variables.find((variable) => (
|
||||
const entry = buildInstallationContract(workspace as WorkspaceDescriptor).variables.find((variable) => (
|
||||
variable.role === role && variable.suffix === suffix
|
||||
));
|
||||
if (!entry) throw new Error(`workspace contract is missing ${role}_${suffix}`);
|
||||
@@ -798,7 +798,7 @@ async function diagnoseSchemaV3Workspace(
|
||||
}
|
||||
|
||||
function diagnosticsForMissingBindings(
|
||||
workspace: WorkspaceV2,
|
||||
workspace: DeprecatedV2Descriptor,
|
||||
bindings: RuntimeBindings,
|
||||
): Diagnostic[] {
|
||||
const missing = new Set([
|
||||
@@ -815,7 +815,7 @@ function diagnosticsForMissingBindings(
|
||||
}
|
||||
|
||||
function connectorRequest(
|
||||
workspace: WorkspaceV2,
|
||||
workspace: DeprecatedV2Descriptor,
|
||||
role: ConnectorRole,
|
||||
bindings: RuntimeBindings,
|
||||
timeoutMs: number,
|
||||
@@ -889,7 +889,7 @@ function connectorRequest(
|
||||
}
|
||||
|
||||
function tunnelProbeRequest(
|
||||
workspace: WorkspaceV2,
|
||||
workspace: DeprecatedV2Descriptor,
|
||||
role: ConnectorRole,
|
||||
bindings: RuntimeBindings,
|
||||
timeoutMs: number,
|
||||
@@ -934,10 +934,10 @@ export function createWorkspaceDiagnoser(
|
||||
options: { writeProbe: boolean },
|
||||
): Promise<WorkspaceDiagnostics> {
|
||||
const descriptor = validateWorkspaceDescriptor(workspace);
|
||||
if (descriptor.workspace.schema_version !== 2) {
|
||||
if (Number(descriptor.workspace.schema_version) !== 2) {
|
||||
return { activatable: false, diagnostics: [diagnosticError("workspace_not_activatable")] };
|
||||
}
|
||||
const canonical = descriptor as WorkspaceV2;
|
||||
const canonical = descriptor as unknown as DeprecatedV2Descriptor;
|
||||
const diagnostics = diagnosticsForMissingBindings(canonical, bindings);
|
||||
if (diagnostics.length > 0) return { activatable: false, diagnostics };
|
||||
|
||||
|
||||
Reference in New Issue
Block a user