provider-ephemeral-resources — скилл для Claude Code
Помогает писать в провайдере Terraform эфемерные ресурсы на Plugin Framework: секреты живут в памяти и не попадают в state или plan.
npx skills add hashicorp/agent-skills --skill provider-ephemeral-resources -a claude-codeЧто делает provider-ephemeral-resources
Скилл про эфемерные ресурсы Terraform (1.10+): это значения, которые не записываются ни в state, ни в plan. Нужны для токенов, сгенерированных паролей, короткоживущих сертификатов и расшифрованных данных — всего, что передаётся в конфигурацию, но на диск попадать не должно.
Внутри разобран весь цикл: обязательный метод Open получает или создаёт значение, необязательный Renew продлевает работу, когда время до RenewAt истекло, а Close отзывает лизы и удаляет временные учётки. Данные между вызовами ходят через resp.Private — там передают идентификатор лиза, по которому потом продлевают или отзывают. Отдельный раздел про регистрацию через provider.ProviderWithEphemeralResources и EphemeralResources().
Скилл помогает выбрать между эфемерным ресурсом и data source: чувствительное значение, которое нужно только на этапе apply, идёт в эфемерный ресурс, а read-only при нечувствительных данных остаётся источником данных. Ещё один случай — учётка с коротким сроком жизни, её закрывает Renew. Учтите: Renew не выдаёт новое значение, только продлевает прежнее, поэтому если API подменяет сам токен, придётся строить Open на более долгом значении. Примеры кода на Go приведены целиком, с tfsdk-тегами и схемой.
Какие задачи решает
- добавить в провайдер эфемерный ресурс и не уронить сборку
- отдать токен в блок провайдера или write-only атрибут, не записав его в state
- продлить истекающую учётку, пока Terraform ещё работает
- отозвать лиз при закрытии и не оставить висящих креденшелов
- решить, когда хватит data source, а когда нужен эфемерный ресурс
Примеры запросов агенту
- Добавь эфемерный ресурс для выдачи токена по роли, с методами Open, Renew и Close
- Зарегистрируй новый эфемерный ресурс через EphemeralResources в провайдере
- Подскажи, как передать lease_id из Open в Renew через resp.Private
Как установить provider-ephemeral-resources
1Через Skills CLI (Vercel)
npx skills add hashicorp/agent-skills --skill provider-ephemeral-resources -a claude-code2Вручную: положить файлы
~/.claude/skills/provider-ephemeral-resources/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/provider-ephemeral-resources/
1Через Skills CLI (Vercel)
npx skills add hashicorp/agent-skills --skill provider-ephemeral-resources -a codex2Вручную: положить файлы
.agents/skills/provider-ephemeral-resources/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add hashicorp/agent-skills --skill provider-ephemeral-resources -a cursor2Вручную: положить файлы
.cursor/skills/provider-ephemeral-resources/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install hashicorp/agent-skills provider-ephemeral-resources2Вручную: положить файлы
.github/skills/provider-ephemeral-resources/SKILL.md1Через Skills CLI (Vercel)
npx skills add hashicorp/agent-skills --skill provider-ephemeral-resources -a gemini-cli2Командой платформы
gemini skills install https://github.com/hashicorp/agent-skills --path plugins/terraform/skills/provider-ephemeral-resourcesВручную: положить файлы
.devin/skills/provider-ephemeral-resources/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add hashicorp/agent-skills --skill provider-ephemeral-resources -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о provider-ephemeral-resources
Как установить provider-ephemeral-resources в Claude Code?
Выполните npx skills add hashicorp/agent-skills --skill provider-ephemeral-resources -a claude-code. Скилл появится по пути ~/.claude/skills/provider-ephemeral-resources/SKILL.md.
Что делает provider-ephemeral-resources?
Помогает реализовать в провайдере Terraform эфемерные ресурсы на Plugin Framework: описывает схему, регистрацию, цикл Open/Renew/Close и передачу значений через resp.Private.
Чем эфемерный ресурс отличается от data source?
Data source остаётся для read-only запросов без чувствительных данных. Эфемерный ресурс берут, когда значение секретное и нужно только на apply, — тогда оно не попадает в state и plan.