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.

The Module Registry is a centralized, searchable catalogue of every infrastructure module in a Control Plane (CP), giving teams a single source of truth for discovering and managing reusable building blocks across environments and projects.

A new control plane's registry is empty. Modules arrive when you import a project type, which loads the official set for your cloud, and when your organisation publishes its own.

In Facets, a module is defined by a unique combination of intent, flavor, and version.

Build your module on this page opens the Praxis module-building experience. See the Praxis documentation for how that experience works.


Using the registry


The registry table

Modules are listed with their source, status, stage, supported clouds, version, and last-modified time.

Source and stage answer different questions. Source tells you where a module came from: a System module, shipped by Facets, or a Custom module your organisation authored. Stage tells you where it sits in its lifecycle, preview or published. A module can be Custom and published, Custom and preview, or System.

Each module offers three actions. View Details opens its full metadata, Publish Module promotes a preview module to published, and Delete Module removes it from the control plane.

Deleting a module is permanent. Check its usage map first, deleting a module that projects or environments still reference will break them.


Module state

Using prompt

Publish service/k8s/0.2 so it can be used in production.

or

Using command

# What a project type already has, and which modules expose providers
raptor module discover --project-type AWS

# PREVIEW to PUBLISHED
raptor publish iac-module service/k8s/0.2

A module stays at PREVIEW until it is published, and only a test project can use PREVIEW-stage modules. raptor publish iac-module takes either TYPE/FLAVOR/VERSION or the module id.

New to the CLI? Install it first.

Module state is shown in the registry table, and a module is published from its detail page.

Custom modules exist in one of two states:

  • Preview: Modules in active development or validation. Use them in test projects to experiment and verify behavior. This is the default state when a module is first registered locally via the CLI.
  • Published: Modules reviewed and considered production-ready. These are available across all projects in the Control Plane and visible to all users.

Permissions and organizational policy govern promotion from preview to published.

Two behaviours matter before you rely on preview modules:

  • A preview module takes precedence over its published sibling. Wherever preview modules are permitted, Facets resolves the preview version first. That lets you exercise a branch build without disturbing anyone else. Everywhere preview is not permitted, Facets returns only the published version.
  • A module built from a feature branch cannot be published from the UI. Publishing is also disabled for a module that is already published and has no newer preview.

Modules repo

This page is also where you connect the git repository your custom modules publish from: choose Connect repo, or Manage if one is attached. See Modules Repo for the connect routes, provenance enforcement, and CI.


Output types

Output Types opens the registry's view of the @facets/* and @custom/* type schemas that modules declare and consume. These schemas define the shape of the values one module hands to another, and module inputs and outputs reference them by name.


Permissions

Viewing the registry requires MODULE_READ, publishing and building modules MODULE_WRITE, deleting MODULE_DELETE, and managing the modules repo MODULE_REPO_MANAGE. Without MODULE_READ, the page shows an Access Forbidden message asking you to contact your admin. Without MODULE_REPO_MANAGE, the modules repo controls are disabled. Modules Repo covers modules repo permissions in full.