github mattrobinsonsre/terrapod v0.29.0

3 hours ago

First release in the v0.29.x series — adds two user-visible features (private module input/output discovery and VCS-connected policy sets) and the long-awaited list-flicker fix.

Highlights

  • Module registry: inputs & outputs surfaced from the tarball — when a module version is published, Terrapod now parses its root .tf files and stores the parsed variable and output blocks (type, description, default, required/sensitive, plus a JSON-Schema-shaped type_schema) so the UI can render the module's interface without a Terraform CLI round-trip. Endpoint: GET /api/terrapod/v1/registry-modules/private/default/{name}/{provider}/{version}/interface. Off-switchable via api.config.registry.module_interface.enabled.
  • VCS-connected policy sets — policy sets can now point at a Git repo + path instead of being uploaded inline. A new periodic poller and on-demand POST /policy-sets/{id}/actions/sync pull .rego files filtered to package terrapod + deny rules, with per-set commit-SHA tracking and visible last-error reporting. New attributes (source, vcs-*, vcs-last-*) live on policy-sets; a CHECK constraint enforces source IN ('inline', 'vcs').

Bug Fixes

  • UI list flicker on SSE/poll refetch — every list page (workspace runs, workspace list, agent pool detail, all admin and registry pages) replaced the visible list with a spinner during background refetches. Removed the setLoading(true) toggle from the load functions; spinner now shows only on first mount, refetches keep the existing rows visible and reconcile cell-by-cell.
  • Status pill labels no longer wrap to two lines when the workspace list is narrow.
  • Runner: retry transient downloads in tp_curl_download so a flaky network on artifact / binary fetch no longer fails a run that would otherwise succeed on the second attempt.

Status

Beta — public surface is stable but expect movement on the new VCS policy-set attribute set as we discover edge cases against larger .rego corpora.

Full Changelog: v0.28.5...v0.29.0

Don't miss a new terrapod release

NewReleases is sending notifications on new releases.