Docs

Modules

Platform-engineering guides for Facets modules: core concepts, authoring, form UI, custom actions, versioning, the registry, and CI.

Introduction

How Facets modules turn Terraform into reusable, versioned capabilities with typed inputs and outputs, so developers can self-serve infrastructure.

Module anatomy

This section explains the building blocks of a Facets module. You’ll learn how modules declare what they offer, what they require, and how they connect with others using a shared type system.

Building a Facets Module

This section explains how to turn a module concept into a working Facets module. You'll define the module interface using `facets.yaml`, connect it to Terraform logic, and use the Facets CLI to scaffold and validate your work.

Generate Modules via AI

Use the Facets Module Generation MCP server from your AI coding host to turn a module concept into a working, standards-aligned Terraform module for Facets in minutes.

Form UI (X-UI Tags)

Reference for the x-ui-* extension fields in facets.yaml that shape module config forms: conditional display, dynamic dropdowns, layout, and validation.

Defining Module Resource Actions

Define custom resource Actions for any Facets module using containerised Tekton workflows, with auto-injected credentials, RBAC scoping, and UI integration.

Modules Repo

Connect a git repository as the source of truth for your custom modules, migrate published modules into it, and provenance-check every publish.

Continuous Integration

How Facets module repos preview modules on pull requests and publish them on merge, using the generated Facets Module CI workflow or your own CI.

Versioning Strategy

How Facets modules version safely: major versions in facets.yaml for breaking changes, soft versioning for compatible updates, and per-version directories.

Module Registry

The Facets Module Registry is a searchable catalogue of system and custom modules in a control plane, with metadata, preview/published states, and usage maps.

AWS IAM in modules

Declaratively manage AWS IAM roles and policies in Facets service modules, attaching policies from managed resources and custom policies for unmanaged ones.

Reusing Terraform code

Reference external public Terraform modules from within Facets modules to reuse common logic like naming and provisioning, plus the Facets Utility Modules.

On this page

No Headings
Edit on GitHub