Skip to main content
Version: 0.2 (next)

Products

A Product is the unit Infrared builds, deploys and manages change for. It owns one or more repos in your org: a single app has one, and an app with separate services, a chart and docs has several. Agents work on a Product's repos, Infrared deploys what they merge, and you see the result in one place.

Products is the first item on the rail, and the page Infrared opens on. At the top is the week across every Product. Below it is a card per Product, and under the cards are any incidents still open. You can read where things stand, and what needs you, without opening anything.

The Products page: the week in review band at the top, then a card per Product The Products page: the week in review band at the top, then a card per Product

This week​

The band at the top of Products is the org's week in review: the last seven days across every Product, set against the seven before. It is kept short so the Product cards show without scrolling. Every figure comes from what Infrared recorded (agent runs, merges, approvals, deployments, SLOs and incidents), so nothing is estimated. A figure Infrared has no record of shows "—".

Part of a real weekly video from darkshift's own org, with sound: the opening, the week at a glance, the busiest day and how delivery flowed. The scenes for each Product and the people who did the work are left out here.

  • The story. The week's headline and its first paragraph. Once the weekly video is made, the story is written with it, and the band says Written with the video; until then it is put together from the records (From the records). Read the week opens the rest. At its foot are the people behind the week, each with what they did: asked for, approved, shipped, pushed, and releases cut.
  • What stands out. Beside the story, the week's findings, most serious first, four at a time: open incidents, an SLO spending its error budget, rollbacks and failed deployments, approvals that have waited more than a day, Changes that stopped to ask a person, lead time doubling, agent cost rising sharply, and the good news too (deployments that reached production, incidents resolved, merges up). Each is marked Needs someone, Worth a look, Went well or Worth knowing, and links to where to look. Hover one for the figures behind it.
  • The chart. A line per Product over the week, in six-hour steps, counting its requests, merges, decisions and deployments. Hover for each Product's count, or pick a Product in the legend to bring its line forward.
  • The weekly video. Beside the chart, a short video of a presenter telling the week. It is made each Monday morning while summary videos are on, and shows its length and what it cost. Make it, or Make again, makes this week's now; each one costs about a dollar and counts toward the summary videos' monthly cap. An info mark says why a video opened on a title card in place of the presenter, or why the last try failed.
  • The strip. Under the chart, this week against last: Merged (pull requests merged), To production (deployments that reached production), Lead time (median from merge to Healthy in production), Failure rate (the share of finished deployments that failed or were rolled back), Agent hours and People. Then DORA · 30 days across every Product (deploys, lead time, failure rate and time to restore, each with how many Products sit at each rating) and production Uptime. Hover a figure for what it measures.

People are named as Infrared's records name them, never by an email address. The band reads GET /v1/orgs/{org}/week-in-review.

Product cards​

Each Product has a card, the Product with the newest change first. Filter products narrows them by name, description or repo.

A card tells you, at a glance:

  • What is moving now, top right: Deploying <version> while a deployment is on its way, or how many Changes are running. Click it to follow along.
  • Where it runs. Production first, with the version it runs, how long it has run it and its health, then each other environment with its version. A version still rolling out says so, and a pre-production version newer than production reads ahead of production.
  • What needs you. Open incidents, a deployment that waits for your approval or failed, Changes that wait for your approval, and a Change that stopped and needs you. Each one links straight to where you act. A Product with no change for a week or more says Quiet and for how long.
  • Latest. What shipped lately, one row per deployment (titled by the Change it shipped, or else its newest commit) or per merged Change not deployed yet, with where it reached. Other Changes a deployment carried are listed under its row. The newest summary video sits beside the list, so you can watch what changed in a couple of minutes.
  • SLOs. Production's objectives, the worst first, each with its state. See SLOs, incidents and DORA.
  • The foot. The product owner, the repos, and when it was last deployed.

Under the cards, Open incidents lists every incident not yet resolved, across all Products. Resolved ones are on each Product's page.

An org may have a limit on how many Products it holds. When it does, the page shows how many of the limit it uses, and Create product is off once the org reaches it.

Create a Product​

Choose Create product on Products and fill in:

  • Name: a lowercase DNS label, unique within the org.
  • Display name: defaults to the name.
  • Description: what the Product is and who it is for.
  • Logo (optional): Suggest ten logos designs ten from the name and description, and Upload image takes your own file. The one you pick is committed to the repo once the Product exists. See The product logo.
  • Repos on: only shown in an org with repos on both Gitea and GitHub. Pick the forge the Product's repos live on; it can't change later.
  • Repos: for each repo, pick an Existing repo or make a New repo. Add repo adds another. Repos another Product uses, and the org's gitops repo, are listed but can't be picked. A new repo takes an organization, a name and Private, and can start from a template (Start from), from a zip of files (up to 25 MB), or both.

When the first repo starts from a template or a zip, Build it and open a preview has Infrared set up the build and a pre-production environment at a private address, then deploy it. See Start from a zip. A Product made from existing repos starts with no environments: add them later in its settings (Set up delivery).

The Product page​

A Product's page opens with its logo, name and description. Beside the name, a shield tells you whether people approve its Changes and deployments; hover it to see where a person decides. Under the description are:

  • a link to each environment people can open, with its address;
  • the product owner, and who presents the Product's announcements;
  • the Teams that own it or contribute to it;
  • the Slack channels it posts to;
  • a warning when human approvals are off for the Product.

On the right, Product settings opens its settings, and Open <address> opens the production site.

The page has four tabs: Environments (where it opens), Changes, Deployments and Releases.

A Product&#39;s page on its Environments tab A Product&#39;s page on its Environments tab

Environments​

A tile for each environment, in promotion order, with its address, a screenshot of the last deployment, the version it runs and how it is doing. Between two tiles, the page says how a deployment crosses: automatically, or after your approval. Click an environment's title to open its own page with Overview, Live, History and Settings. See Environments.

Under the tiles is how the Product is doing over time: its DORA metrics for the last 30 days, its SLOs with their error budgets, and its Incidents, where Open an incident records something no alert caught. See SLOs, incidents and DORA.

Changes​

Every agent run, merge, approval, build, deployment and rollback of this Product, newest first, with every filter of the org's Changes page except the Product. The tab's count is how many of its Changes are in progress. Open these entries in the org's log opens the same entries on the org's page.

Ask for a change opens a short form above the list: say What should change, add Details if you have them, and choose Start the change. Infrared opens an issue on the Product's first repo, starts a Change on it, and takes you to the Change's page to follow it. Cancel closes the form. See Run a Change.

Deployments​

Start a deployment ships the head of the default branch by hand. The tab has two views.

Versions starts with what each environment runs now: the version, how long ago it arrived, and Argo CD's health. Below is one row per deployment, newest first, with a column per environment:

  • Image or Components: what the deployment ships, each with its commit and the first twelve characters of its image digest. With isolated delivery, a deployment ships one repo's image. With umbrella delivery, it ships one chart version that pins every repo: the repos with a new build come first, with how many commits each gained, and the ones carried from the previous deployment fold under carried. A repo whose build the deployment still waits for reads building. See Deliver several repos as one chart.
  • One column per environment, in promotion order: Running (it runs this deployment now), Ran (it did, and a later deployment replaced it), Rolled back, Failed, Waiting for approval, Promoting, Pending, or — when the deployment never reached it. A deployment recorded from a tag made by hand shows — labelled Not recorded, since where it ran is unknown.
  • Guard: what the release guard found once the deployment reached its environments. Held means every check passed and the environments stayed healthy for their whole hold, or until someone pressed Go now. Passed, no hold means every check passed in environments that deploy Fast. Rolled back to a version, Rolling back, Failed in an environment (one set to keep the new version and report), or Watching an environment, each with the reason.

The Versions view after a rollback: v0.1.1 failed its check in pre-production and was rolled back to v0.1.0, which runs again and held its guard The Versions view after a rollback: v0.1.1 failed its check in pre-production and was rolled back to v0.1.0, which runs again and held its guard

The Versions view&#39;s Guard column: two deployments that each failed their guard in pre-production, one on a check and one during the hold, each with its reason The Versions view&#39;s Guard column: two deployments that each failed their guard in pre-production, one on a check and one during the hold, each with its reason

The Versions view of a Product with isolated delivery: production runs v0.2.20, and each deployment shows its image&#39;s commit and digest and whether each environment runs it or ran it The Versions view of a Product with isolated delivery: production runs v0.2.20, and each deployment shows its image&#39;s commit and digest and whether each environment runs it or ran it

History lists every deployment with its state, each environment's state, how long it took, the issues and Changes it shipped and their model cost. You can dismiss a failed deployment that reached no environment; nothing it did on the forge is undone.

The History view of a Product&#39;s deployments: each version with its state, a badge per environment, the issue and Change it shipped, and its cost

Infrared's own platform Product has no Start a deployment here: it is released by upgrading the control plane (The control plane as an environment).

Releases​

The Product's release tracks, newest first, each with every version that reached production and its changes by kind. When enough has shipped to production since the last release, Infrared nudges you to cut the next one, with the notes already drafted for you to read. See Releases.

Settings​

Product settings opens the Product's settings on a page of their own; the Product's name at the top takes you back. Everyone in the org can read them; only org admins can change them. In order:

PanelWhat it holds
DetailsDisplay name, Description and Owner, the product owner, picked from the org's people.
AnnouncementsWho presents the Product's announcement videos: the org's character, the product owner, or the Product's own character.
TeamsThe Teams that own the Product or contribute to it. Manage in Workforce opens Workforce, where Teams are kept.
Human approvalsWhether people approve the Product's Changes and its deployments to production. See Turn human approvals off.
Slack destinationsWhere Infrared posts about the Product: the org's destinations, or channels of its own. See Slack.
LogoThe logo and where it comes from. See The product logo.
EnvironmentsEach environment in promotion order, linked to its settings, and Add an environment (or Set up delivery for a Product that has none yet). See Environments.
Service level objectivesThe Product's own SLOs, beside the defaults every Product gets. See SLOs.
Status pageWhether anyone can read the status page, and which environments it shows.
DeliveryIsolated or Umbrella. See Deliver several repos as one chart.
BuildRepo deployed (the repo deployments tag), its kpack Image, and the Release in progress. For a Product with several repos, Keep an umbrella chart with its Charts repo and Chart.
ReposEach repo, with the build of the delivery repo, and the repos' activity.
Delete productDeletes the Product and everything Infrared runs for it.

Deleting a Product removes every environment with its addresses, namespace and persistent storage, which can't be recovered, along with its build and its files in the gitops repo. Its repos are not touched. Choose Delete product, then Delete <product> permanently; Keep product backs out.

Infrared's own platform Product shows Control plane in place of Environments, with what the upgrade guard checks and how long it waits before it rolls an upgrade back, and Control plane release for how its releases are built. See The control plane as an environment.

A Product kept in a gitops repo. When an Argo CD Application with self-heal syncs the Product resource itself, as an install may do for its own Infrared, Argo CD puts back any change to that file within minutes, so an edit made in Settings is reverted. Change the Product in the gitops repo instead.

A Product&#39;s settings page: Details, Logo, Environments, Repos and Delete product

Every Product has a logo, shown on its card and at the top of its page. The logo lives in the Product's repo, so the same image shows up on the forge, in your docs and in Infrared.

Found in the repo. Infrared looks in the Product's first repo (or the repo named in spec.logo.repo) and uses the first of these it finds:

  1. logo.svg, logo.png, logo.jpg, logo.jpeg, logo.webp in the repo root
  2. .github/logo.svg, .github/logo.png
  3. docs/logo.svg, docs/logo.png
  4. assets/logo.svg, assets/logo.png
  5. static/img/logo.svg, static/img/logo.png
  6. public/logo.svg, public/logo.png
  7. icon.svg, icon.png

To use another file, set spec.logo.path on the Product. Infrared checks the repo again every 30 minutes, so a new logo committed there shows up on its own.

Set in Infrared. Open Product settings → Logo, or click the logo at the top of the Product's page. Suggest ten logos has Claude design ten SVG logos from the colors and words of the Product's running site, each in its own direction (a symbol, a monogram, a wordmark, a badge and so on). It uses the org's model provider key and can take a few minutes; without a key, Infrared offers built-in designs. Choose Use this under the one you like, or Suggest ten more. Replace image (Upload image when there is none) takes your own file.

Either way, Infrared commits the image to the repo as its bot: it replaces the logo it found when the file type matches, or adds logo.<ext> to the repo root. The panel shows Syncing image to <repo>/<path> until the commit lands, usually within seconds, and then where the image comes from.

RuleWhy
SVG, PNG, JPEG or WebPFormats every browser shows
At most 512 KiBLogos are small, and big files slow every page that lists Products
No scripts in SVGAn SVG with <script>, javascript: URLs, event handlers or <foreignObject> is refused. Infrared also serves logos with a Content-Security-Policy that blocks scripts, and shows them only as images.

A Product without a logo shows its initials.

The Logo panel: the current logo, Suggest ten logos and Replace image

With the API, POST /v1/orgs/{org}/products/{name}/logo/suggestions suggests logos (org admins), and PUT /v1/orgs/{org}/products/{name}/logo uploads one: the raw image as the body, with its Content-Type.

Repo activity​

The Activity chart under Repos in the Product's settings shows what people did on a repo over the last day (the default), 7, 30 or 90 days. Pick the repo when the Product has several. Each kind of work has its own lane: Commits on the default branch, Pull requests opened, Reviews (reviews and review comments), Comments, Merged, and Issues and closes (issues opened and closed, pull requests closed without merging, and reopens). Each event is a point with the avatar of whoever did it, Infrared's agents included. Hover a point for what happened and when, or click it to open it on the forge. Below the chart is everyone who worked in the period, with their count and bots marked bot; click a person to pick out their work.

The Repos panel: the repo and its build, then the Activity chart for 7 days with a lane per kind of work, avatar points and the people who did the work

Infrared reads this from the forge and keeps it for a minute. On a busy repo over a long period, the forge's listings may be cut short; the chart says so, and a shorter period shows everything. With the API: GET /v1/orgs/{org}/products/{name}/repos/{repo}/activity?hours=24 (24, 168, 720 or 2160).