OpenTofu

OpenTofu 1.13 Helps Module Authors Resolve More Values at Plan Time

OpenTofu 1.13 gives module authors a smarter way to handle unknown values at plan time. New `convert` and `assume` functions let you provide type and value hints directly to the planner, so more expressions resolve…

3 min readInfoQ
OpenTofu 1.13 Helps Module Authors Resolve More Values at Plan Time

OpenTofu 1.13 is a quiet but meaningful step forward for anyone who has ever felt stuck waiting for a plan to finish resolving. The addition of `convert` and `assume` functions gives module authors a new kind of leverage: the ability to tell the planner what type a value should be, or what value it will likely have, so that more expressions resolve at plan time rather than stalling until apply. This is not a flashy feature, but it addresses a genuine friction point in infrastructure-as-code workflows. For teams that manage complex module hierarchies, the difference between a plan that resolves cleanly and one that halts on an unknown value can mean the difference between a confident deploy and a manual investigation.

What makes this update worth attention is the honesty baked into its design. OpenTofu does not pretend to know everything at plan time. Instead, it lets module authors provide hints, and if a value later violates a guarantee, the error surfaces during apply, not silently. That is a practical tradeoff. It acknowledges that some values truly cannot be known until runtime, but it also gives authors a structured way to reduce the number of unknowns. This aligns well with the broader trend we see in developer tooling, where pragmatism wins over purity. For example, the recent MCP C# SDK 2.0 Simplifies HTTP and Unlocks Multi-Round Requests similarly focuses on reducing friction in protocol interactions, rather than chasing theoretical elegance. Both projects understand that developers need tools that handle real-world uncertainty, not just ideal scenarios.

For module authors, the practical takeaway is clear: you now have a way to reduce the number of plan-time unknowns without rewriting your entire module. If you have a value that is almost always a string, or a lookup that nearly always resolves to a known set, you can encode that assumption explicitly. The planner will thank you, and your team will see faster, more predictable plan outputs. This is especially relevant for teams exploring how to integrate AI-assisted workflows into their data pipelines, as discussed in Explore Practical AI Certifications for Teams and Production Systems This November. When AI models generate configuration or module parameters, providing type and value hints at the module level can help those generated outputs integrate more smoothly into existing infrastructure.

The open question worth watching is how this feature will be adopted in practice. The `assume` function, in particular, introduces a trust boundary: if an author assumes a value that later proves false, the error during apply is clear, but the plan itself may have been misleading. Module authors will need to decide where hints are safe and where they introduce risk. That is not a flaw in the design, it is a sign that the feature respects the complexity of real infrastructure. The next few releases will show whether the community leans toward conservative hints or aggressive assumptions. Either way, OpenTofu 1.13 gives them the tool to make that choice explicit.

From InfoQ

OpenTofu 1.13 adds convert and assume... functions that let module authors give the planner type and value hints for unknown values, so more expressions resolve during tofu plan. If a value unknown during planning later violates a guarantee, OpenTofu reports an error during apply.

Read the original at InfoQ

OpenTofu 1.13 Helps Module Authors Resolve More Values at