Skip to content
Mike Reams
← Blog

Post ·

Every Rule Needs a Source: Building a CSDM Modeler from Public Material Only

What I learned building a free CSDM canvas where every class, relationship and hint links back to ServiceNow's public documentation.

The Blueprint Modeler editor: a palette of CSDM classes grouped by layer, a shared database platform laid out top to bottom on the canvas, and a Hints panel listing three conformance hints with their white paper sources.The Blueprint Modeler editor: a palette of CSDM classes grouped by layer, a shared database platform laid out top to bottom on the canvas, and a Hints panel listing three conformance hints with their white paper sources.

Most CSDM conversations start the same way: someone draws a box for an application, a box for a server, and a line between them. The line is the problem. The Common Service Data Model exists to put an Application Service between those two boxes, and the rule that says so lives on page 38 of a long white paper most people never open.

I wanted a place to sketch that knows the model, so I built one: Blueprint Modeler, a free canvas that offers only the relationships CSDM uses and flags common gaps as you draw. Building it taught me more about writing rules down than about drawing boxes.

1. The source link is a feature, not a footnote

Every class, relationship type and hint in the app carries a link to the public page it came from, and the build fails if one doesn't. That started as a guardrail against making things up. It turned into the most useful part of the product: when a hint says a Business Application has no capability, the reader can check the white paper in one click instead of arguing with the tool.

If a rule can't point at its source, it's an opinion. Opinions are fine, but label them.

2. Separate what the source says from what you inferred

The white paper establishes that a Business Application relates to a Business Capability. It doesn't always say which relationship type to use. Rather than quietly picking one, the app marks each type as reported (the public material names it) or conventional (a standard CMDB type commonly used for that pair). The class guide shows the difference.

That one field made review faster. Instead of re-checking everything, I only had to decide on the conventional ones.

3. Advise, don't block

A sketch is allowed to be wrong. The canvas refuses pairs CSDM never relates, because those are always mistakes, but everything softer is a hint: it explains, highlights the elements involved and cites its source, and you can ignore it. An imported model that breaks the rules still loads, with warnings. Tools that block every imperfection teach people to stop using the tool.

4. No server is a privacy architecture

The app is a static site. Models live in the browser, import and export are files on your device, and auto-layout runs in a background worker. There is no account to create and nothing to breach. That removed a whole category of questions before anyone could ask them, and it made the privacy page short enough to read.

5. Test the promises you make

The About and Privacy pages make claims, so the test suite checks them: no requests to other origins outside the production analytics beacon, an accessibility scan of every page in both themes, and no sideways scrolling at five screen widths. A regression test also exists for a bug where every node vanished while you dragged one. It surfaced in my first real session with the tool, which is the best kind of test.

Try it

Open model.mikereams.com, start from one of the five examples, and see which hints it raises. Switch the lens to ArchiMate to see the same model in that notation. The code is on GitHub under the MIT license, and suggestions are welcome there.

Blueprint Modeler is not affiliated with or endorsed by ServiceNow or The Open Group. ServiceNow and CSDM are trademarks of ServiceNow, Inc.; ArchiMate® is a registered trademark of The Open Group.