Arcane OS Docs Development only

Reference

Arcane.firewall.rollback()

After confirmation, restores only an unexpired retained projection for the current canonical policy when it preserves every current deny. Requires firewall.manage.

  • Reference

This focused page is derived from the mechanically checked full member inventory.

Syntax

Arcane.firewall.rollback(expectation)

Parameters

{expectedPolicyGeneration, expectedStateGeneration}

Return value

Promise<FirewallOperationResult>

Description

After confirmation, restores only an unexpired retained projection for the current canonical policy when it preserves every current deny. Requires firewall.manage.

Overview

Arcane.firewall.rollback(expectation) restores one retained Arcane-owned projection only when it belongs to the same canonical policy, remains unexpired, and preserves every deny in the current projection. It requires firewall.manage, app id firewall, elevated Core authority, exclusive mutation, fresh generations, and separate confirmation. Current success is simulation-only.

Rollback never means “use any previous policy.” The host refuses a different policy generation/hash or a projection that would weaken current deny coverage. It reapplies the retained projection in the current installed/enabled mode.

Result, side effects, and events

The exact result is {status, receipt, operation}. The tracked operation type is "firewall.rollback" and returned status records lastOperation: "rollback". The native receipt's operation is "install" or "enable" because that is the concrete reapplication performed; there is intentionally no "rollback" receipt operation. Standard operation events are emitted.

Errors and recovery

Rollback-specific failures are FIREWALL_ROLLBACK_UNAVAILABLE, FIREWALL_ROLLBACK_POLICY_MISMATCH, FIREWALL_ROLLBACK_PROJECTION_EXPIRED, FIREWALL_CURRENT_POLICY_STALE, and FIREWALL_ROLLBACK_WOULD_WEAKEN_POLICY. Keep the current state on rejection. Use a separately confirmed Disable, Install, and Enable sequence when the retained projection cannot be safely reused.

Example

async function rollbackFirewallAfterConfirmation(confirmRollback) {
    const status = await Arcane.firewall.status();
    if (!status.simulation || !status.supported || status.state.recoveryRequired) {
        return null;
    }
    if (!confirmRollback(status)) {
        return null;
    }
    return Arcane.firewall.rollback({
        expectedPolicyGeneration: status.policy.generation,
        expectedStateGeneration: status.state.generation
    });
}

Reference group

Platform, installation, users, and system

Repository and reviewed source access