No description
  • Go 72.7%
  • TypeScript 25.8%
  • HTML 0.4%
  • CSS 0.4%
  • JavaScript 0.3%
  • Other 0.3%
Find a file
Diógenes Fernandes 3e61758a75
deps: sha-pin all github actions (#366)
Signed-off-by: Diogenes Fernandes <diofeher@gmail.com>
Signed-off-by: Diógenes Fernandes <diofeher@opentofu.org>
2026-03-27 18:21:49 -03:00
.github deps: sha-pin all github actions (#366) 2026-03-27 18:21:49 -03:00
backend When force-regenerating a module, handle json-incompatabilities (#356) 2026-02-24 10:51:57 +00:00
backendv2 Bump golang and package versions to latest (#363) 2026-03-20 13:40:27 +00:00
documentation Added initial documentation for some repo components/designs (#317) 2025-04-23 08:00:48 -04:00
frontend Remove sidebar elements for the removed pages (#365) 2026-03-25 06:59:05 -04:00
search refactor: improvements to feed-data script (#300) 2025-05-22 09:05:13 -03:00
.gitignore refactor: improvements to feed-data script (#300) 2025-05-22 09:05:13 -03:00
blocklist.json Adding feature to block namespaces/names if needed 2024-08-30 10:13:43 +02:00
CODEOWNERS Update CODEOWNERS (#339) 2025-06-25 12:47:16 -03:00
CONTRIBUTING.md Move to openapi 3.0 for spec (#329) 2025-05-23 13:32:35 +01:00
docker-compose.yml fix: docker compose setup (#293) 2025-02-24 11:55:07 -03:00
LICENSE Initial import 2024-08-19 16:49:16 +02:00
licenses.json Adding licenses file parameter to GHA 2024-09-02 16:43:28 +02:00
Makefile feat: add provider removal tool and GitHub workflow (#332) 2025-05-30 10:09:25 +01:00
README.md Move to openapi 3.0 for spec (#329) 2025-05-23 13:32:35 +01:00

OpenTofu Registry

This repository contains the code that powers the OpenTofu Registry and its API at api.opentofu.org.

Architecture Overview

The registry system consists of four main components that work together to scrape, process, index, and serve OpenTofu modules and providers with their documentation.

Components

Backend (Go)

The content processing engine that scrapes documentation and schemas from provider/module repositories. It extracts documentation from multiple formats (legacy website/docs/ and modern docs/ directories), validates repository licenses for redistributability, and uses a custom OpenTofu binary to extract module schemas including variables, outputs, resources, and submodules.

The backend also serves the OpenAPI specification, which is manually maintained at backend/internal/server/openapi.yml and must be updated whenever new API endpoints are added.

Frontend (React/TypeScript)

The web UI for registry.opentofu.org. Uses React/TypeScript with Vite for the build system. Lets users browse modules and providers, read documentation, and search through the registry content.

Search/pg-indexer (Go)

The indexing service that takes processed registry data and dumps it into a Neon PostgreSQL database for search functionality. It reads the latest registry information from the backend processing pipeline and structures it for efficient querying by the search API.

Search Worker (Cloudflare Worker)

Runs the entire api.opentofu.org backend (the name is misleading). Handles search requests by hitting the Postgres database, and serves everything else from R2 storage. Caches search results for 5 minutes and static files for an hour.

Development

See the documentation/ folder for detailed technical documentation on each component.

Contributing

Please see the contribution guide for details on how to work with this codebase.