# Terraform 1 10

> Apply Terraform 1.10 language, CLI, state, testing, migration, and behaviour changes. Load for Terraform work targeting 1.10 or later when the model's knowledge may predate the 2024-11-27 release.

- Skill: `cedws/terraform-1-10` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add cedws/terraform-1-10`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cedws/terraform-1-10/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: cedws (https://skillmd.com/u/cedws)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cedws/terraform-1-10

---


# Terraform 1.10

This overview applies when the project's target Terraform version is at least 1.10.

## Ephemeral data

- Ephemeral resources are read during each evaluation phase and are never persisted to plan or state. They produce ephemeral values.
- Input variables and outputs can declare `ephemeral = true`. Ephemeral values are permitted only in contexts that do not require persistence.
- `ephemeralasnull(value)` preserves ordinary values while replacing ephemeral portions with non-ephemeral null values of compatible types.
- Sensitive and ephemeral describe different properties: sensitive values are redacted from normal display, while ephemeral values are omitted from persisted artefacts.

## State and backend migration

- The S3 backend supports native state locking. During migration it can acquire both S3-native and DynamoDB locks when both mechanisms are configured.
- Deprecated top-level S3 assume-role attributes are removed; configuration must use the `assume_role` block.
- The `-state` option on `plan`, `apply`, and `refresh` is deprecated. The local backend's `path` attribute configures an alternate state path.

## Expressions and addresses

- `element` accepts negative indices, counting backwards from the end of a collection.
- Resource types that collide with reserved words in a `moved` address require an explicit `resource.` prefix.
- Mark propagation through conditional and `for` expressions is stricter, so values can correctly become sensitive where earlier releases lost the mark.

