Skip to main content

v2.77.0

Binaries and the merged-pull-request list are on the GitHub releases page.

Environments have a front door​

An environment in intent.yaml can now say where it runs:

environments:
stage:
url: https://stage.example.com
prod:
description: Where customers are.
url: https://app.example.com
links:
- { title: API, url: https://api.example.com }
promotion:
dependsOn: [{ environment: stage }]

url is the address a person opens to reach the product in that environment; links are further doors after it. Both must be absolute http(s) URLs, and orun plan refuses a relative one (environments.url.invalid).

The catalog carries them: every environment named under environments: is now an Environment entity in the snapshot, whether or not a component deploys to it yet, with the url as its primary link (links[0], role: primary, also spec.url), the declared links after it, and its depth in the promotion chain as spec.order. A catalog.entities entry for the same environment still applies and fills what the block left empty; its links follow the declared ones. Orunbase shows the doors on the workspace Overview, beside the product's description. orun catalog describe environment:prod prints them, with the role beside the primary link.

A repo self-describes without a repo: block​

The Repo entity used to exist only when intent.yaml carried a top-level repo: block. It is now emitted whenever metadata.description is set, and when the block (or the metadata) declares no docs.overview, a README.md at the repo root is the overview by convention: read at the pinned commit, under the same size cap, as a content-addressed blob in the catalog closure. A declared repo.docs.overview still wins.

Repositories with a description or a root README will see their catalog digest change once on the next push, as the snapshot gains the entity and the doc.

links[].role is new on the entity envelope. primary marks the one link that is an entity's front door; every other link carries no role.