deploying-entities-as-code

Deploy Fianu controls, policies, gates, and indexes from YAML packages or Terraform HCL.

1|Updated Jun 11, 2026
One-click install
npx skills add https://github.com/fianulabs/fianu-skills --skill deploying-entities-as-code-fianulabs
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: deploying-entities-as-code
Source: https://github.com/fianulabs/fianu-skills/tree/main/skills/deploying-entities-as-code
Command: npx skills add https://github.com/fianulabs/fianu-skills --skill deploying-entities-as-code-fianulabs

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams managing Fianu compliance entities need a repeatable, version-controlled way to author and deploy controls, policies, exceptions, gates, and indexes from source repositories instead of making ad-hoc API calls, while avoiding duplicate deployments and approval-ticket churn. ## Core Features & Use Cases - Dual deployment paths: Deploy entities via the fianu console deploy CLI with on-disk YAML packages or via the Terraform provider resources (fianu_control, fianu_policy, fianu_gate, fianu_index), both targeting the same POST /entities/artifacts/deploy endpoint. - Idempotency guidance: Explains the SHA256 content-hash gate so unchanged inputs return action: "skipped", and clarifies which edits trigger new versions versus no-ops. - Format selection and edge cases: Provides a decision flow for choosing YAML versus Terraform, plus handling for path renames, cross-format drift, and pending approval tickets. - Use Case: A platform engineer adds a new control package to an envs/dev/controls/ directory, runs fianu console test and fianu console plan, then deploys with fianu console deploy, producing a draft entity and an approval ticket without touching unchanged entities. ## Quick Start Ask the agent to deploy the controls in your ./envs/dev/controls directory to Fianu using the console CLI and explain which entities were created, updated, or skipped.

Frequently Asked Questions about deploying-entities-as-code

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy Fianu controls and policies from a Git repository?▼

Author entities as YAML packages and run fianu console test, fianu console plan, then fianu console deploy against the directory. Alternatively, declare them in Terraform HCL using fianu_control or fianu_policy resources and run terraform apply. Both paths POST to the same /entities/artifacts/deploy endpoint.

Should I use YAML CLI or Terraform to deploy Fianu entities?▼

Use the YAML CLI path for fresh entities-as-code repos with controls, policies, indexes, or gates, since it matches the official-controls layout. Choose Terraform when you need plan-time validation, drift detection, or manage adjacent infrastructure like Cognito or Kubernetes in the same apply pipeline.

Does redeploying an unchanged Fianu entity create a duplicate?▼

No. The server computes a SHA256 hash over the normalized entity representation, and an unchanged input returns action: "skipped" with zero diff on the client. Comment changes, key reordering, and whitespace edits hash identically and do not trigger new versions.

Can I deploy Fianu environments, targets, or collections as code?▼

Not yet through stable paths. Environments, targets, and collections are planned for the Terraform provider in v0.1.x as fianu_environment, fianu_target, and fianu_collection, but neither the CLI nor the provider currently supports them.

What happens if I deploy an entity while its approval ticket is still open?▼

The deploy succeeds and creates a new draft, but it also opens a second approval ticket, causing ticket churn. Wait for the first ticket to close or coordinate approvals through the managing-ticket-approvals workflow before redeploying.

Why does renaming a Fianu entity path cause a replacement in Terraform?▼

Both formats treat the entity path as immutable. Terraform marks a rename as forces replacement, while the CLI creates a new draft without touching the old entity. To rename, deploy at the new path and separately archive the old entity.