canic-host 0.67.40

Host-side build, install, deployment, and fleet-template library for Canic workspaces
Documentation
const DEPLOYMENT_TRUTH_AUTHORITY_DRY_RUN_SOURCES: &[(&str, &str)] = &[
    (
        "authority/mod.rs",
        include_str!("../../../authority/mod.rs"),
    ),
    (
        "authority/plan.rs",
        include_str!("../../../authority/plan.rs"),
    ),
    (
        "authority/profile.rs",
        include_str!("../../../authority/profile.rs"),
    ),
    (
        "authority/reconciliation.rs",
        include_str!("../../../authority/reconciliation.rs"),
    ),
    (
        "authority/report.rs",
        include_str!("../../../authority/report.rs"),
    ),
    (
        "authority/shared.rs",
        include_str!("../../../authority/shared.rs"),
    ),
    ("lifecycle.rs", include_str!("../../../lifecycle/mod.rs")),
    (
        "lifecycle/authority_plan/mod.rs",
        include_str!("../../../lifecycle/authority_plan/mod.rs"),
    ),
    (
        "lifecycle/authority_plan/authority/mod.rs",
        include_str!("../../../lifecycle/authority_plan/authority/mod.rs"),
    ),
    (
        "lifecycle/authority_plan/plan/mod.rs",
        include_str!("../../../lifecycle/authority_plan/plan/mod.rs"),
    ),
    (
        "lifecycle/authority_plan/policy/mod.rs",
        include_str!("../../../lifecycle/authority_plan/policy/mod.rs"),
    ),
    (
        "lifecycle/authority_plan/validation/mod.rs",
        include_str!("../../../lifecycle/authority_plan/validation/mod.rs"),
    ),
    (
        "lifecycle/external_lifecycle/mod.rs",
        include_str!("../../../lifecycle/external_lifecycle/mod.rs"),
    ),
    (
        "lifecycle/external_lifecycle/check/mod.rs",
        include_str!("../../../lifecycle/external_lifecycle/check/mod.rs"),
    ),
    (
        "lifecycle/external_lifecycle/critical_fix/mod.rs",
        include_str!("../../../lifecycle/external_lifecycle/critical_fix/mod.rs"),
    ),
    (
        "lifecycle/external_lifecycle/handoff/mod.rs",
        include_str!("../../../lifecycle/external_lifecycle/handoff/mod.rs"),
    ),
    (
        "lifecycle/external_lifecycle/pending/mod.rs",
        include_str!("../../../lifecycle/external_lifecycle/pending/mod.rs"),
    ),
    (
        "lifecycle/external_lifecycle/validation/mod.rs",
        include_str!("../../../lifecycle/external_lifecycle/validation/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/completion/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/completion/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/consent/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/consent/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/proposal/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/proposal/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/receipt/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/receipt/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/validation/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/validation/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/verification/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/verification/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/verification/check/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/verification/check/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/verification/policy/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/verification/policy/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/verification/report/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/verification/report/mod.rs"),
    ),
    (
        "lifecycle/external_upgrade/verification/shared/mod.rs",
        include_str!("../../../lifecycle/external_upgrade/verification/shared/mod.rs"),
    ),
    ("receipt/mod.rs", include_str!("../../../receipt/mod.rs")),
    (
        "receipt/artifacts.rs",
        include_str!("../../../receipt/artifacts.rs"),
    ),
    (
        "receipt/authority/mod.rs",
        include_str!("../../../receipt/authority/mod.rs"),
    ),
    (
        "receipt/authority/dry_run_receipt.rs",
        include_str!("../../../receipt/authority/dry_run_receipt.rs"),
    ),
    (
        "receipt/authority/error.rs",
        include_str!("../../../receipt/authority/error.rs"),
    ),
    (
        "receipt/authority/evidence.rs",
        include_str!("../../../receipt/authority/evidence.rs"),
    ),
    (
        "receipt/authority/observations.rs",
        include_str!("../../../receipt/authority/observations.rs"),
    ),
    (
        "receipt/authority/shared.rs",
        include_str!("../../../receipt/authority/shared.rs"),
    ),
    (
        "receipt/deployment.rs",
        include_str!("../../../receipt/deployment.rs"),
    ),
    ("text/mod.rs", include_str!("../../../text/mod.rs")),
    (
        "text/authority/mod.rs",
        include_str!("../../../text/authority/mod.rs"),
    ),
    (
        "text/authority/evidence/mod.rs",
        include_str!("../../../text/authority/evidence/mod.rs"),
    ),
    (
        "text/authority/plan/mod.rs",
        include_str!("../../../text/authority/plan/mod.rs"),
    ),
    (
        "text/authority/receipt/mod.rs",
        include_str!("../../../text/authority/receipt/mod.rs"),
    ),
    (
        "text/authority/report/mod.rs",
        include_str!("../../../text/authority/report/mod.rs"),
    ),
    (
        "text/authority/shared/mod.rs",
        include_str!("../../../text/authority/shared/mod.rs"),
    ),
    (
        "text/comparison.rs",
        include_str!("../../../text/comparison.rs"),
    ),
    (
        "text/execution_preflight.rs",
        include_str!("../../../text/execution_preflight.rs"),
    ),
    (
        "text/lifecycle/mod.rs",
        include_str!("../../../text/lifecycle/mod.rs"),
    ),
    (
        "text/lifecycle/authority/mod.rs",
        include_str!("../../../text/lifecycle/authority/mod.rs"),
    ),
    (
        "text/lifecycle/completion/mod.rs",
        include_str!("../../../text/lifecycle/completion/mod.rs"),
    ),
    (
        "text/lifecycle/consent/mod.rs",
        include_str!("../../../text/lifecycle/consent/mod.rs"),
    ),
    (
        "text/lifecycle/external_lifecycle/mod.rs",
        include_str!("../../../text/lifecycle/external_lifecycle/mod.rs"),
    ),
    (
        "text/lifecycle/plan/mod.rs",
        include_str!("../../../text/lifecycle/plan/mod.rs"),
    ),
    (
        "text/lifecycle/proposal/mod.rs",
        include_str!("../../../text/lifecycle/proposal/mod.rs"),
    ),
    (
        "text/lifecycle/receipt/mod.rs",
        include_str!("../../../text/lifecycle/receipt/mod.rs"),
    ),
    (
        "text/lifecycle/shared/mod.rs",
        include_str!("../../../text/lifecycle/shared/mod.rs"),
    ),
    (
        "text/lifecycle/verification/mod.rs",
        include_str!("../../../text/lifecycle/verification/mod.rs"),
    ),
    (
        "text/promotion/mod.rs",
        include_str!("../../../text/promotion/mod.rs"),
    ),
    (
        "text/promotion/execution_receipt/mod.rs",
        include_str!("../../../text/promotion/execution_receipt/mod.rs"),
    ),
    (
        "text/promotion/identity/mod.rs",
        include_str!("../../../text/promotion/identity/mod.rs"),
    ),
    (
        "text/promotion/materialization/mod.rs",
        include_str!("../../../text/promotion/materialization/mod.rs"),
    ),
    (
        "text/promotion/plan/mod.rs",
        include_str!("../../../text/promotion/plan/mod.rs"),
    ),
    (
        "text/promotion/policy/mod.rs",
        include_str!("../../../text/promotion/policy/mod.rs"),
    ),
    (
        "text/promotion/provenance/mod.rs",
        include_str!("../../../text/promotion/provenance/mod.rs"),
    ),
    (
        "text/promotion/readiness/mod.rs",
        include_str!("../../../text/promotion/readiness/mod.rs"),
    ),
    (
        "text/promotion/shared/mod.rs",
        include_str!("../../../text/promotion/shared/mod.rs"),
    ),
    (
        "text/promotion/wasm_store/mod.rs",
        include_str!("../../../text/promotion/wasm_store/mod.rs"),
    ),
    (
        "text/root_verification/mod.rs",
        include_str!("../../../text/root_verification/mod.rs"),
    ),
    (
        "text/root_verification/receipt/mod.rs",
        include_str!("../../../text/root_verification/receipt/mod.rs"),
    ),
    (
        "text/root_verification/report/mod.rs",
        include_str!("../../../text/root_verification/report/mod.rs"),
    ),
    (
        "text/root_verification/shared/mod.rs",
        include_str!("../../../text/root_verification/shared/mod.rs"),
    ),
];

const CONTROLLER_MUTATION_PRIMITIVES: &[&str] = &[
    "update_settings",
    "install_code",
    "create_canister",
    "delete_canister",
    "stop_canister",
    "uninstall_code",
    "provisional_create_canister",
    "dfx",
];

#[test]
fn deployment_truth_authority_paths_have_no_controller_mutation_primitives() {
    for (path, source) in DEPLOYMENT_TRUTH_AUTHORITY_DRY_RUN_SOURCES {
        for forbidden in CONTROLLER_MUTATION_PRIMITIVES {
            assert!(
                !source.contains(forbidden),
                "deployment truth authority path {path} must stay dry-run; found forbidden token {forbidden}"
            );
        }
    }
}