Skip to content

integrio-intropy/blueprints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

intropy-blueprints

Scaffolder templates and skeletons for the Intropy integration platform.

Status: experimental. Runs side by side with the docs repo's templates/ directory, which still holds all production templates. This folder currently contains a single hello-world template implemented for both engines, used to validate the dual-engine setup before any real templates migrate over.

Two engines, parallel trees

  • Nunjucks — used by Backstage scaffolder via the intropy:workspace:template action. Lives under skeletons/nunjucks/. The Backstage template (hello-world/template.yaml) fetches its skeleton from ../skeletons/nunjucks/hello-world at render time.
  • Go text/template + Sprig — skeleton sources only, consumed by the Intropy CLI (separate codebase). Lives under skeletons/go/. The CLI manifest (hello-world/intropy.yaml) declares the template metadata, parameters, and (optionally) derived values; the skeleton dir holds pure content. No renderer ships here.

Layout

hello-world/
  template.yaml             Backstage scaffolder template
  intropy.yaml              Intropy CLI template manifest
skeletons/
  nunjucks/hello-world/     Nunjucks skeleton (rendered by Backstage)
  go/hello-world/           Go + Sprig skeleton (rendered by the CLI)
scripts/
  render-nunjucks.py        Local Nunjucks renderer for skeleton testing
  sample-values/            Sample input JSON files

Render the Nunjucks hello-world locally

python scripts/render-nunjucks.py \
    --skeleton skeletons/nunjucks/hello-world \
    --values   scripts/sample-values/hello-world.json \
    --output   /tmp/hello-out

Produces /tmp/hello-out/robin.txt containing Hello, Robin!.

Filename token conventions

  • Nunjucks skeletons use ${{values.x}} in filenames (substituted by Backstage's intropy:workspace:template action).
  • Go skeletons use __Token__ placeholders. The CLI looks up .Values.token (camelCase) and applies casing based on the token's own casing: __Name__ → title (Robin), __name__ → verbatim/lower (robin), __NAME__ → upper (ROBIN). For anything beyond casing (e.g. nospace, replace), derive the string once under spec.values in intropy.yaml and reference the derived value as a plain token.

The two engines therefore render to slightly different output filenames (robin.txt vs Robin.txt for the same input). That's by design — each engine follows its own conventions.

What's next

  • Port the next real template (probably one block) once the dual-engine setup is proven.
  • CLAUDE.md documents the conventions used by the existing templates/ tree; those will apply when real templates land here.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors