Changes to the Pipi System Engine (sys) data model

Mike's Notes

The next job is to write the 6 configuration files for each Nestspace.

Big thanks to Ben Nadel for the sample code he shared on his CFML blog, which explained a few ways to do this.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

11/10/2026

Changes to the Pipi System Engine (sys) data model

By: Mike Peters
On a Sandy Beach: 12/04/2026

Mike invented and architected Pipi and founded Ajabbi.

This week, changes to how Pipi is organised in the data centre continue.

This job is to write the 6 base configuration files for each Nestspace. Because the recent code tests were successful, most of the time will be spent documenting. This should only need to be done once; the 6 files are done sequentially, starting from the root.

Pipi Nest

The fundamental organising principle is to use a uniquely named "Nestspace" directory to host Pipi.

Every nestspace has these properties;

  • One Pipi major version
  • One Pipi edition
  • One account type
  • Can host
    • One or more accounts
    • AND
    • One or more Pipi instances.

Account

Every customer or user has an account, which is opened when they sign up.

A customer account has these properties;

  • One account type.
  • Contains one or more deployments.

Pipi Instance

Each Pipi instance has these properties;
  • One account name (e.g., "loki-01").
  • Shares a codebase (e.g., "loki").

Deployment

A deployment has these properties;

  • One deployment tenancy type.
  • One language.
  • Contains one or more deployment objects.
  • Can contain other deployments to create global settings for an account (Enterprise or DevOps).

Revised Configuration Hierarchy

Child files inherit properties from parent files and can also override them.

  • Nestspace > Account > Deployment > Deployment Object > Publication > Website > Workspace.
  • Pipi Nest > Codebase > Pipi Instance.

Configuration files

Pipi uses a hierarchy of CFML configuration files to set system properties.

<nestspace>/
  • nest_probe.cfm
  • pipi/
    • Application.cfc [1]
    • pipi_nest.cfm
    • <name>/
      • Application.cfc [2]
      • pipi_account.cfm
      • pip/
        • Application.cfc [3]
        • pipi_system.cfm

Configuration notes

The 3 different Application.cfc files are common across all Pipi Nests and don't ever change.

Application.cfc [1] defines Nestspace variables

  • OS
  • Java environment
  • Platform-appropriate absolute physical path
  • Nest datasources

Application.cfc [2] defines Name variables

  • Account name
  • Deployments
  • Pipi Instances

Application.cfc [3] defines System variables

  • Version
  • Edition
  • State

The .cfm files contain local configuration variables that Pipi can edit directly.

  • nest_probe.cfm
  • pipi_nest.cfm
  • pipi_account.cfm
  • pipi_system.cfm

    Example

    This is the list of 7 configuration files for the Nestspace 9ca/

    • 9ca/pipi_nest_probe.cfm
    • 9ca/pipi/Application.cfc
    • 9ca/pipi/pipi_nest.cfm
    • 9ca/pipi/loki/Application.cfc
    • 9ca/pipi/loki/pipi_account.cfm
    • 9ca/pipi/loki/pip/Application.cfc
    • 9ca/pipi/loki/pip/pipi_system.cfm

    No comments:

    Post a Comment