ftl2-state-add-remove-api

Status: IN

`ftl.state.add()` persists resource metadata to the state file and `ftl.state.remove()` cleans it up, enabling idempotent re-runs and cross-run resource tracking.

Source: entries/2026/05/11/examples-09-hetzner-example_hetzner_web_stack.md

Example

# From ftl2-servercraft/scripts/neoforge.py — persist after provisioning
ftl.state.add(config.name, {
    "provider": "linode",
    "id": result["instance"]["id"],
    "ipv4": result["instance"]["ipv4"],
    "label": config.name,
    "type": config.linode_type,
    "region": config.linode_region,
})

# From neoforge.py destroy() — clean up after teardown
ftl.state.remove(config.name)

JSON