All six parts of Forge

Every service has a name, and every name is checked

Hallmark gives every service, machine and website on Forge one predictable name, and refuses anything that does not fit before it is built. If you can read the name, you know what the thing is.

Validated with CUE

Why it matters

Platforms grow names the way old houses grow extension leads - one at a time, each sensible when it was added. A few years later nobody is sure what "web2-new" does or whether it can be switched off.

Hallmark stops that at the start. A name says what something is, which environment it belongs to and whose it is, and a machine checks it every time.

product repositories checked
11
named services and machines
90+
environments - production, staging, preview, development
4
test cases for the rules themselves
90+

How it works

  1. A small file for each thing

    Everything that has an address - a website, an API, a database, a machine - is described by a short file saying what it is, which environment it belongs to and which client owns it.

  2. A schema that says no

    A schema written in CUE checks each file against a closed list of types and environments and a set of numbered rules, and works out the name from it. A file that breaks a rule fails, with the rule's number.

  3. Checked in every repository

    The same check runs in the pipeline of every repository that uses Forge, so a product cannot invent its own naming scheme.

  4. Names drive the rest

    The same files decide who can reach a service and how it is cached at the edge. Generated outputs are checked for drift, so what is running cannot quietly differ from what is written down.

Live today

  • Naming files and schema checks for every product repository on the platform.
  • Generated names and app settings, protected by drift checks in CI.
  • Each service declares who can reach it, in the same file.

In progress

  • A few names still live outside Hallmark, in hand-written zones and registrar settings. We are bringing them in.

What you get

Names you can read

Each environment of your app - production, staging - gets a standard name that says what it is.

No surprises

Nothing appears on the platform without a file that says what it is and who it belongs to.

A clean exit

Because everything is named and written down, handing your system to someone else starts from a list, not an investigation.

Built on

  • CUE

    An open-source language for defining and validating configuration. Hallmark's rules are a CUE schema.

Portcullis

The front door. It routes visitors to the right place, with a CDN caching public pages so they load fast. The cluster dials out to it, so it opens no web ports to the internet.

Keystone

How our services find each other, and how browsers and services know they are really talking to us.

Graft

Every setting lives in Git. Change the file and the platform follows - so there is a record of everything.