{"id":362,"date":"2026-10-13T21:21:07","date_gmt":"2026-10-13T21:21:07","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2014\/07\/27\/build-forge-concepts-and-terminology\/"},"modified":"2026-10-13T21:21:07","modified_gmt":"2026-10-13T21:21:07","slug":"build-forge-concepts-and-terminology","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/build-forge-concepts-and-terminology\/","title":{"rendered":"IBM Rational Build Forge Concepts and Terminology: Objects, Workflow, and Job Execution"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">IBM Rational Build Forge models process automation through a small set of related objects. This reference is for DevOps engineers and build\/release administrators who need a clear mental model of how access control, execution hosts, variable inheritance, project design, and job results fit together.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Originally published on 2014-07-27; fully revised and updated.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Primary source reference:<\/strong> <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/index.jsp?topic=%2Fcom.ibm.rational.buildforge.doc%2Ftopics%2Fjobs_run_bom__top.html\">IBM Build Forge v8.0 Infocenter<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2014\/07\/build-forge-concepts.png\" alt=\"Build Forge concepts and terminology\"\/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">How Build Forge models automation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At a high level, Build Forge defines <strong>who<\/strong> can act (users and groups), <strong>where<\/strong> work runs (servers selected at runtime), <strong>what<\/strong> runs (projects and steps), and <strong>what happened<\/strong> (job results, logs, and BOM data).<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Users and access groups<\/strong>: security and permissions.<\/li><li><strong>Servers and agents<\/strong>: execution hosts that receive work and return results.<\/li><li><strong>Collectors, manifests, selectors<\/strong>: runtime server characterization and selection.<\/li><li><strong>Environments<\/strong>: variable sets applied across server, project, and step scopes.<\/li><li><strong>Projects and steps<\/strong>: executable workflow and smallest unit of work.<\/li><li><strong>Jobs<\/strong>: running or completed project executions.<\/li><\/ul>\n\n\n\n<pre class=\"mermaid\">\nflowchart TD\n    A[User starts job] --> B[Project enters queue]\n    B --> C[Selector chooses server]\n    C --> D[Build Forge agent receives step]\n    D --> E[Apply server project and step environments]\n    E --> F[Run step command]\n    F --> G{Step passed}\n    G -- yes --> H[Run next step]\n    G -- no --> I[Mark failure and trigger notifications]\n    H --> J[Job completes]\n    I --> J\n    J --> K[Results step log and BOM available]\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Users, access groups, and roles<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Users need user objects to access Build Forge. In production setups, user identity is typically integrated through LDAP, and authorization is handled by assigning users to one or more <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/admin_access.html\">access groups<\/a> with permission sets.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Access group<\/th><th>Typical responsibility<\/th><\/tr><\/thead><tbody><tr><td>Build Engineer<\/td><td>Defines processes, creates projects and steps<\/td><\/tr><tr><td>System Manager<\/td><td>Administers servers and system-wide features<\/td><\/tr><tr><td>Security<\/td><td>Administers users, access, and security settings<\/td><\/tr><tr><td>Developer<\/td><td>Contributes to process development, runs jobs, views results<\/td><\/tr><tr><td>Operator<\/td><td>Copies projects, runs jobs, views results<\/td><\/tr><tr><td>Guest<\/td><td>Copies projects, runs jobs, views results<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">See also: <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/admin_users.html\">users<\/a> and access administration in the IBM docs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Servers, selectors, and runtime placement<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_about.html\">server object<\/a> represents a host where projects or steps can run. The host must run a Build Forge agent. Runtime placement is controlled through selectors, with collectors feeding host properties into manifests.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Object<\/th><th>Purpose<\/th><th>Setup dependency<\/th><\/tr><\/thead><tbody><tr><td>Server authentication<\/td><td>Stores credentials used to access the target host<\/td><td>Create before the server that uses it<\/td><\/tr><tr><td>Collector<\/td><td>Gathers server properties for runtime decisions<\/td><td>Create before assigning to a server<\/td><\/tr><tr><td>Manifest<\/td><td>Stores collected server property data<\/td><td>Populated through collectors<\/td><\/tr><tr><td>Selector<\/td><td>Chooses which server runs a project or step<\/td><td>Create before assigning to projects\/steps<\/td><\/tr><tr><td>Environment<\/td><td>Provides variables available during step execution<\/td><td>Create before assigning to server\/project\/step<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Related docs: <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_auth_about.html\">server authentication<\/a>, <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_collectors__top.html\">collectors<\/a>, <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_manifest__top.html\">manifests<\/a>, and <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_selectors_about.html\">selectors<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Environment variables and inheritance<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_about.html\">environment<\/a> is a named set of variables. Environments can be attached at server, project, and step levels; values are combined when a step runs.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Scope level<\/th><th>Applied to step runtime<\/th><th>Default precedence behavior<\/th><\/tr><\/thead><tbody><tr><td>Server environment<\/td><td>Yes<\/td><td>Applied first<\/td><\/tr><tr><td>Project environment<\/td><td>Yes<\/td><td>Overrides same variable from server<\/td><\/tr><tr><td>Step environment<\/td><td>Yes<\/td><td>Overrides same variable from project and server<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Build Forge also supports changing variable values during execution with different scopes (step-local, project-local, or permanent), and provides predefined <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_system_vars_reference.html\">system variables<\/a>. Inheritance details: <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_var_application_to_steps_inheritance.html\">environment variable inheritance<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Projects, steps, and supporting objects<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/projects_about.html\">project<\/a> is an executable set of steps. Starting a project creates a job. If a project has no selector, it cannot run independently and is treated as a <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/projects_libraries_about.html\">library<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Projects and steps can also reference notification templates, classes (for maintenance actions such as purge\/archive), adaptors, and adaptor links.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step commands and dot commands<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A step is the smallest executable unit and is centered on its command content. The command can run host commands and process-engine dot commands such as <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/dotcmd_bom.html\">.bom<\/a> and <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/dotcmd_scan.html\">.scan<\/a>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css language-bash\"># <span class=\"hljs-selector-tag\">Illustrative<\/span> <span class=\"hljs-selector-tag\">step<\/span> <span class=\"hljs-selector-tag\">command<\/span> <span class=\"hljs-selector-tag\">content<\/span>\n<span class=\"hljs-selector-tag\">make<\/span> <span class=\"hljs-selector-tag\">all<\/span>\n<span class=\"hljs-selector-class\">.bom<\/span>\n<span class=\"hljs-selector-class\">.scan<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Step-level behavior can be further controlled with selectors, environments, log filters, and notification templates. For pass\/fail logic based on log patterns, see <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/projects_logfilter_about.html\">log filters<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Jobs, results, and audit data<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/jobs_about__top.html\">job<\/a> is a running or completed project instance. After start, the process engine queues and executes it, and status is visible in the Jobs panel.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Results<\/strong>: per-step execution status and runtime visibility.<\/li><li><strong>Step log<\/strong>: execution details, including manifest and environment context.<\/li><li><strong>Bill of Materials (BOM)<\/strong>: traceability data for steps\/manifests and additional data written through dot commands.<\/li><li><strong>Control operations<\/strong>: jobs can be canceled\/restarted; projects can run on <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/jobs_schedule__top.html\">schedules<\/a>.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">See: <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/jobs_run_bom__top.html\">BOM overview<\/a> and <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/jobs_run_starting.html\">job start methods<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Best practices<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Define selectors and environments early so project behavior is predictable across hosts.<\/li><li>Keep environment ownership clear: server defaults, project conventions, and step-specific overrides only when needed.<\/li><li>Use log filters carefully; document regex intent to avoid ambiguous pass\/fail outcomes.<\/li><li>Treat BOM and step logs as first-class traceability artifacts for audits and incident review.<\/li><li>Periodically review access group assignments to keep least-privilege controls aligned with team roles.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This guide explains the core object model in IBM Rational Build Forge\u2014users, servers, environments, projects, steps, and jobs\u2014and how those objects work together at runtime. It also maps key relationships so you can design, run, and troubleshoot automation more confidently.<\/p>\n","protected":false},"author":1,"featured_media":3663,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[32],"tags":[91,1635,448,1630,1632,1631,1628,1633,1634,1629],"class_list":["post-362","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-buildforge","tag-build","tag-build-and-forge-concepts-and-terminology","tag-build-forge","tag-build-forge-concepts","tag-build-forge-objects","tag-build-forge-terminologies","tag-concepts","tag-ibm-build-forge-concepts","tag-ibm-build-forge-terminologies","tag-terminology"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=362"}],"version-history":[{"count":5,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/362\/revisions"}],"predecessor-version":[{"id":79236,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/362\/revisions\/79236"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/3663"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}