Skip to content

Conventions

rule_folder The Conventions screen is where you manage your project’s reusable rules and values. A convention started life as a naming rule — “hubs are prefixed HUB_” — but conventions now do more: they can define standard data items, columns that ADL automatically adds to and maintains on every data object with a matching classification (think audit IDs, record sources, load timestamps, and surrogate keys).

Conventions screen

Each convention has:

  • Group: an organizing category, such as Naming, Ensemble Model, Data Solution Columns, or Control Framework Columns. The grid groups rows by this.
  • Key: the lookup name, e.g. AuditTrailIdColumn. Templates reference conventions by key.
  • Value: the value itself. This can be a literal (AUDIT_TRAIL_ID) or a Handlebars pattern that’s rendered when used — for example HUB_{{dataObject.name}} for hub naming, or a surrogate-key pattern that builds a name from the object and another convention.
  • Include in Design Metadata: when on, the value is exposed to your templates as conventions.YourKey.
  • Required: marks conventions that templates or standard data items depend on; required conventions can’t be deleted.
  • Notes: free-text documentation.
  • Standard data item configurations: optional links to classifications that turn the convention into a managed column (see below).

In the grid, conventions with these flags show an Output chip (included in the enriched metadata) and a Required chip.

This is the headline capability: a convention can declare “objects classified as X get a column named after my value”. In the add/edit dialog, the Standard Data Item Configurations section lets you add one entry per classification. For each one you set:

  • Applies to: a classification group and classification (e.g. Physical / Hub). A more specific match wins over a broader one, so a Physical / Link-Satellite entry beats a group-only Physical entry.
  • Placement: Front (before the regular data items) or End (after them).
  • Order: a ranking among the standard columns in that zone — a relative order, not a fixed position.
  • Data type, Length, Scale: the column definition (e.g. int, varchar 100, datetime2 scale 7).
  • Primary Key: whether the column is part of the primary key.
  • Supplied by Parent Relationship: for key columns that arrive via a relationship (like a hub key on a satellite), ADL doesn’t create the column; it finds the inherited key and keeps it in the right position.

The dialog shows a plain-language preview of the effect, e.g. “ADL adds “AUDIT_TRAIL_ID” (int) to every Physical / Hub object — leading zone, order 2.“

Standard data items are applied automatically — when a project loads and whenever conventions change:

  • Adding or editing a convention adds, renames, retypes, or repositions its columns on every matching data object, with a notification summarizing what changed.
  • Column layout follows three zones: leading standard columns, then your business columns, then trailing standard columns — and ordinals are renumbered accordingly.
  • The convention wins: if an object already has a column with the managed name, it’s adopted and brought in line with the convention’s definition.
  • Deleting a convention (or removing a classification link) prompts you to remove the now-orphaned columns from the affected objects — you can also choose to keep them as ordinary columns.

Metadata Health backs this up with rule CNV001, which flags convention-managed columns that sit at the wrong ordinal.

  • Browse and search: the grid is grouped by convention group with counts, and the filter box searches keys, values, and notes.
  • The Add button opens the convention dialog.
  • Edit a convention using the pencil icon on its row.
  • To delete, select rows and delete them; required conventions are skipped and can’t be deleted. Deletions are staged until you save.
  • Agree on standards early: it’s much easier to set up conventions at the start of a project than to rename things later.
  • Let conventions own your framework columns. Defining audit and load columns as standard data items once beats adding them to every object by hand — and they stay consistent when the standard changes.
  • Use Handlebars values for name patterns. A pattern like HUB_{{dataObject.name}} gives templates and the app a single source of truth for derived names.
  • Mark load-bearing conventions as Required so nobody deletes a value your templates or standard columns depend on.