Overview
Witboost entities, such as domains, systems, components, users, groups, templates, and many others, are all part of the Witboost Catalog: a centralized registry that manages ownership and metadata for all entities within Witboost.
The RBAC section outlines all the permissions that can be granted to users and groups to interact with the Witboost Catalog. For instance, users with the builder.software-catalog.view
permission can access the Software Catalog page, which lists all entities in the Catalog.
How entities are registered in the Catalog
Each entity is defined by a YAML document supplied to the Witboost Catalog by an entity provider. For example, a YAML definition for a system entity will look like this:
kind: System # each entity has a `kind` field that defines its type
metadata:
name: finance.cashflow.2
description: This represents all the operating cashflows generating incoming or outgoing liquidity
spec:
type: dataproduct
lifecycle: experimental
owner: group:witboost
domain: domain:finance
mesh:
name: CashFlow
version: 2.0.0
fullyQualifiedName: Liquidity Cash Flows
maturity: Strategic
Witboost supports different entity providers, with the most common being the URL Provider.
It periodically fetches an entity's YAML definition from a specified URL – typically a catalog-info.yaml
file stored in a Git repository – and directs the Catalog to register or update the entity in the internal registry.
Entities such as templates, domains, systems, components, and Practice Shaper types are ingested into the Catalog via the URL Provider.
In contrast, users and groups are registered and updated by the configured Authentication Provider.
URL Provider
To register a new entity in the Catalog using the URL Provider, users must create the entity's YAML definition file in a Git repository and provide its URL to the Catalog import tool.
This process is required for registering templates, domains, and Practice Shaper types, typically handled by Platform Team members. However, Creation Templates offer visual wizards that enable non-technical users to create systems and components effortlessly. These wizards automate the creation of Git repositories, generate the necessary YAML definitions, and upload them to the Catalog.
Skeleton YAML Definitions
Starting with Witboost 2.3, the recommended approach for defining systems and components is to use template-based YAML files (skeletons) powered by the Nunjucks templating syntax. These templates, along with their parameters, are stored in the entity's repository.
When the URL Provider processes an entity definition, it first renders the template using the Nunjucks engine, generating a complete YAML file before registering it in the Catalog. This method enhances flexibility and simplifies integrations with the Editor Wizard and Reverse Provisioning.
More on Skeleton Entities in the next section.