fix(api): generate configuration adoption imports from canonical type owners
This commit is contained in:
@@ -182,7 +182,7 @@ pub fn configuration_typescript() -> String {
|
|||||||
ConfigurationReconciliation::decl(&config),
|
ConfigurationReconciliation::decl(&config),
|
||||||
];
|
];
|
||||||
format!(
|
format!(
|
||||||
"// Generated by `cargo run -p server-api --features typescript --example generate_configuration_adoption_types`.\n// Do not edit manually.\n\nimport type {{ ConfigCommitRequest, WorkspaceConfigTreeResponse, ScopedPermission, SubjectPermissions }} from \"./legacy-server-api.ts\";\nimport type {{ PermissionAssignment, PermissionCatalog }} from \"./feature-permissions.generated.ts\";\n\n{}\n",
|
"// Generated by `cargo run -p server-api --features typescript --example generate_configuration_adoption_types`.\n// Do not edit manually.\n\nimport type {{ ConfigCommitRequest, WorkspaceConfigTreeResponse }} from \"./legacy-server-api.ts\";\nimport type {{ ScopedPermission, SubjectPermissions }} from \"./memory-api.ts\";\nimport type {{ PermissionAssignment, PermissionCatalog }} from \"./feature-permissions.generated.ts\";\n\n{}\n",
|
||||||
declarations
|
declarations
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|declaration| format!("export {declaration}"))
|
.map(|declaration| format!("export {declaration}"))
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
// Generated by `cargo run -p server-api --features typescript --example generate_configuration_adoption_types`.
|
// Generated by `cargo run -p server-api --features typescript --example generate_configuration_adoption_types`.
|
||||||
// Do not edit manually.
|
// Do not edit manually.
|
||||||
|
|
||||||
import type { ConfigCommitRequest, WorkspaceConfigTreeResponse, ScopedPermission, SubjectPermissions } from "./legacy-server-api.ts";
|
import type { ConfigCommitRequest, WorkspaceConfigTreeResponse } from "./legacy-server-api.ts";
|
||||||
|
import type { ScopedPermission, SubjectPermissions } from "./memory-api.ts";
|
||||||
import type { PermissionAssignment, PermissionCatalog } from "./feature-permissions.generated.ts";
|
import type { PermissionAssignment, PermissionCatalog } from "./feature-permissions.generated.ts";
|
||||||
|
|
||||||
export type ConfigurationAdoptionRequest = { operation_id: string, expected_head: string | null, expected_catalog_digest: string, expected_legacy_export: string | null, source: ConfigCommitRequest, };
|
export type ConfigurationAdoptionRequest = { operation_id: string, expected_head: string | null, expected_catalog_digest: string, expected_legacy_export: string | null, source: ConfigCommitRequest, };
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import {
|
|||||||
previewConfigTree,
|
previewConfigTree,
|
||||||
reconcileConfigTree,
|
reconcileConfigTree,
|
||||||
} from "./api.ts";
|
} from "./api.ts";
|
||||||
import type { ConfigurationAdoptionRequest } from "#lib/generated/configuration-adoption.generated.ts";
|
import type { ConfigurationAdoptionReceipt, ConfigurationAdoptionRequest, ConfigurationReconciliation } from "#lib/generated/configuration-adoption.generated.ts";
|
||||||
import type { WorkspaceConfigTreeResponse } from "./types.ts";
|
import type { WorkspaceConfigTreeResponse } from "./types.ts";
|
||||||
|
|
||||||
const state: WorkspaceConfigTreeResponse = {
|
const state: WorkspaceConfigTreeResponse = {
|
||||||
@@ -36,7 +36,7 @@ const request: ConfigurationAdoptionRequest = {
|
|||||||
expected_legacy_export: source.expected_legacy_export,
|
expected_legacy_export: source.expected_legacy_export,
|
||||||
source: { base_digest: state.snapshot.digest, changes: [], entrypoints: ["main.dcdl"] },
|
source: { base_digest: state.snapshot.digest, changes: [], entrypoints: ["main.dcdl"] },
|
||||||
};
|
};
|
||||||
const receipt = {
|
const receipt: ConfigurationAdoptionReceipt = {
|
||||||
workspace_id: "w/one", operation_id: request.operation_id, history_head: "head:adopted",
|
workspace_id: "w/one", operation_id: request.operation_id, history_head: "head:adopted",
|
||||||
state, source_stored: true, policy_committed: true, runtime_application: "next_current_policy_check",
|
state, source_stored: true, policy_committed: true, runtime_application: "next_current_policy_check",
|
||||||
};
|
};
|
||||||
@@ -117,7 +117,7 @@ Deno.test("not_observed and pending_transfer remain distinct unknown evidence, n
|
|||||||
{ status: "not_observed" },
|
{ status: "not_observed" },
|
||||||
{ status: "pending_transfer", transfer_identity: "transfer:one", export_digest: "sha256:legacy" },
|
{ status: "pending_transfer", transfer_identity: "transfer:one", export_digest: "sha256:legacy" },
|
||||||
{ status: "adopted", receipt },
|
{ status: "adopted", receipt },
|
||||||
]) assertEquals(parseConfigurationReconciliation(evidence), evidence);
|
] satisfies ConfigurationReconciliation[]) assertEquals(parseConfigurationReconciliation(evidence), evidence);
|
||||||
for (const invalid of [
|
for (const invalid of [
|
||||||
{ status: "failed" }, { status: "not_observed", receipt },
|
{ status: "failed" }, { status: "not_observed", receipt },
|
||||||
{ status: "pending_transfer", transfer_identity: "transfer:one" },
|
{ status: "pending_transfer", transfer_identity: "transfer:one" },
|
||||||
|
|||||||
Reference in New Issue
Block a user