{"id":362,"date":"2014-07-27T00:00:00","date_gmt":"2014-07-27T00:00:00","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2014\/07\/27\/build-forge-concepts-and-terminology\/"},"modified":"2017-12-24T14:54:32","modified_gmt":"2017-12-24T14:54:32","slug":"build-forge-concepts-and-terminology","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/build-forge-concepts-and-terminology\/","title":{"rendered":"Build Forge Concepts and Terminology"},"content":{"rendered":"<div class=\"body conbody\">\n<div><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3663 aligncenter\" src=\"http:\/\/www.scmgalaxy.com\/tutorials\/wp-content\/uploads\/2014\/07\/build-forge-concepts.png\" alt=\"build-forge-concepts-and-terminology\/\" width=\"600\" height=\"400\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2014\/07\/build-forge-concepts.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2014\/07\/build-forge-concepts-300x200.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/div>\n<div class=\"abstract\"><span class=\"shortdesc\"><strong>Reference<\/strong> &#8211; <a href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/index.jsp?topic=%2Fcom.ibm.rational.buildforge.doc%2Ftopics%2Fjobs_run_bom__top.html\" target=\"_blank\" rel=\"noopener\">http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/index.jsp?topic=%2Fcom.ibm.rational.buildforge.doc%2Ftopics%2Fjobs_run_bom__top.html<\/a><\/span><\/div>\n<div class=\"abstract\"><\/div>\n<div class=\"abstract\"><span class=\"shortdesc\">Build Forge uses a simple set of objects to construct descriptions of process automation. <\/span><\/div>\n<p class=\"p\">This section gives you an overview of key concepts and objects and how they are related. Links to more detailed explanations are included for convenience.<\/p>\n<div class=\"section\">\n<h2 class=\"title sectiontitle\">Users and roles<\/h2>\n<p class=\"p\">To access Build Forge, users need to have a user object set up for them. In production systems, this is done by configuring Build Forge to access an identity management system, LDAP.<\/p>\n<p class=\"p\">Build Forge uses an authorization system to control user access to all objects. <em class=\"ph i\"><a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/admin_access.html\" target=\"_blank\" rel=\"noopener\">Access group<\/a><\/em> objects contain lists of <em class=\"ph i\">permissions<\/em>. A <em class=\"ph i\"><a class=\"xref\" title=\"You can create users and assign properties to them by using Administration &gt; Users. You can also connect your system to an LDAP\/Active Directory database to get user information. You manage user security permissions by assigning users to groups, so you must create some users to test security features.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/admin_users.html\" target=\"_blank\" rel=\"noopener\">user<\/a><\/em> belongs to one or more access groups.<\/p>\n<p class=\"p\">You can create your own access groups or modify the ones provided. The access groups defined in the system are:<\/p>\n<ul class=\"ul\">\n<li class=\"li\">Build Engineer &#8211; defines processes (creates projects and steps)<\/li>\n<li class=\"li\">System Manager &#8211; administers servers and other system-wide features<\/li>\n<li class=\"li\">Security &#8211; administers users, access, and security<\/li>\n<li class=\"li\">Developer &#8211; helps develop processes, runs jobs, views results<\/li>\n<li class=\"li\">Operator &#8211; copies projects, runs jobs, views results<\/li>\n<li class=\"li\">Guest &#8211; copies projects, runs jobs, views results<\/li>\n<\/ul>\n<\/div>\n<div class=\"section\">\n<h2 class=\"title sectiontitle\">Servers<\/h2>\n<p class=\"p\">A <a class=\"xref\" title=\"A server resource in the console represents a host where you can run projects or steps.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_about.html\" target=\"_blank\" rel=\"noopener\"><em class=\"ph i\">server<\/em><\/a> object defines a place where projects and steps can run. Projects and steps can use the same server or select one independently.<\/p>\n<p class=\"p\">Server objects represent hosts where work is performed. The host must be running a Build Forge agent to receive the work from the system and return results.<\/p>\n<p class=\"p\">Other objects are related to servers and need to be set up before defining projects and steps:<\/p>\n<ul class=\"ul\">\n<li class=\"li\">Server Authentications: a <em class=\"ph i\"><a class=\"xref\" title=\"Use server authentications to associate login credentials to a server.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_auth_about.html\" target=\"_blank\" rel=\"noopener\">server authentication<\/a><\/em> stores login information for the server to use to access the host specified by the server. A server authentication must be created before creating the server that uses it. In the server definition, choose the server authentication from the list of all server authentications defined in the system.<\/li>\n<li class=\"li\">Collectors: a <em class=\"ph i\"><a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_collectors__top.html\" target=\"_blank\" rel=\"noopener\">collector<\/a><\/em> object gathers specified properties of a server. The data is stored in a <em class=\"ph i\"><a class=\"xref\" title=\"You can use collectors, manifests, and selectors together to choose a server resource at run time for a project or step.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_manifest__top.html\" target=\"_blank\" rel=\"noopener\">manifest<\/a><\/em>. Servers have a default set of properties assigned. These built-in properties include information about the host architecture, network connections, and resources (CPU, memory, load). You can add other properties by defining collector objects. A collector must be created before adding it to the server. In the server definition, choose the collector from the list of all collectors defined in the system.<\/li>\n<li class=\"li\">Selectors: a <em class=\"ph i\"><a class=\"xref\" title=\"Selectors choose a server resource on which to run a project or step.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_selectors_about.html\" target=\"_blank\" rel=\"noopener\">selector<\/a><\/em> object defines how a server is selected for use by a project or step. A selector must be created before adding it to the project that uses it. In the project definition, choose the selector from the list of all selectors defined in the system.<\/li>\n<li class=\"li\">Environments: an <em class=\"ph i\"><a class=\"xref\" title=\"An environment is a named set of variables.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_about.html\" target=\"_blank\" rel=\"noopener\">environment<\/a><\/em> object is a set of variables that can be used by a step. During a job, the variables are set on the server host before the step is run. Environments can be associated with server objects, project objects, and step objects. When the same variable is set to different values in different environments, an <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_var_application_to_steps_inheritance.html\" target=\"_blank\" rel=\"noopener\">inheritance<\/a> scheme determines which value is used. An environment must be created before adding it to a server, project, or step. In those object definitions, choose the environment from the list of all environments defined in the system.<\/li>\n<\/ul>\n<\/div>\n<div class=\"section\">\n<h2 class=\"title sectiontitle\">Environments<\/h2>\n<p class=\"p\">An <em class=\"ph i\">environment<\/em> is a set of variables. Environments can be specified for server, project, and step objects. When a step runs, environments set at each of those objects are combined to provide variables for the step to use. See <a class=\"xref\" title=\"An environment is a named set of variables.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_about.html\" target=\"_blank\" rel=\"noopener\">About environments<\/a>.<\/p>\n<p class=\"p\">Variables can be changed as a step runs. See <a class=\"xref\" title=\"Variables can be changed during execution with step, project, or permanent scope.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_task_changing_variable_values_during_execution_t.html\" target=\"_blank\" rel=\"noopener\">Changing variable values during step execution<\/a>.) The scope of the change can be local to the step, local to the project, or permanent (the variable is changed in the stored environment.<\/p>\n<p class=\"p\">Predefined <a class=\"xref\" title=\"System-defined variables are available to use in variables.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_system_vars_reference.html\" target=\"_blank\" rel=\"noopener\">system variables<\/a> are available as well as variables you define.<\/p>\n<\/div>\n<div class=\"section\">\n<h2 class=\"title sectiontitle\">Projects<\/h2>\n<p class=\"p\">A <a class=\"xref\" title=\"Projects are executable sets of steps, with their own environment group and server properties.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/projects_about.html\" target=\"_blank\" rel=\"noopener\"><em class=\"ph i\">project<\/em><\/a> defines work to be done in a process. When a project is started, it runs as a job.<\/p>\n<p class=\"p\">The work to be done is contained in the list of steps.<\/p>\n<p class=\"p\">Other objects are related to projects:<\/p>\n<ul class=\"ul\">\n<li class=\"li\">Selectors: a <a class=\"xref\" title=\"Selectors choose a server resource on which to run a project or step.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_selectors_about.html\" target=\"_blank\" rel=\"noopener\"><em class=\"ph i\">selector<\/em><\/a> determines where the project will be started. If a selector is not specified for the project, then it cannot run independently and is called a <a class=\"xref\" title=\"The Libraries panel contains libraries, which are projects that do not have a selector specified.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/projects_libraries_about.html\" target=\"_blank\" rel=\"noopener\">library.<\/a> The selector must already be defined to assign it to a job.<\/li>\n<li class=\"li\">Environments: an <em class=\"ph i\"><a class=\"xref\" title=\"An environment is a named set of variables.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_about.html\" target=\"_blank\" rel=\"noopener\">environment<\/a><\/em> object is a set of variables that can be used by a step. During a job, the variables are set on the server host before the step is run. Environments can be associated with server objects, project objects, and step objects. An <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_var_application_to_steps_inheritance.html\" target=\"_blank\" rel=\"noopener\">inheritance<\/a> scheme determines which values are used if the same variable is set to different values. An environment must be created before creating the server, project, or step that uses it. In those object definitions, choose the environment from the list of all environments defined in the system.<\/li>\n<li class=\"li\">Notification templates: a <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/projects_notifi_about.html\" target=\"_blank\" rel=\"noopener\"><em class=\"ph i\">notification template<\/em><\/a> defines how to send out notifications about job activity (job start, job pass, job fail, others). A notification object defines who to notify through access groups. You specify the location of your SMTP server in a system setting.<\/li>\n<li class=\"li\">Classes: a <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/projects_classes_about.html\" target=\"_blank\" rel=\"noopener\"><em class=\"ph i\">class<\/em><\/a> object is used to group projects for maintenance purposes. Typically classes are used to purge or archive completed jobs periodically. All jobs that have run using the project are affected by the class.<\/li>\n<li class=\"li\">Adaptors: an <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/adaptor_def_adaptor.html\" target=\"_blank\" rel=\"noopener\"><em class=\"ph i\">adaptor<\/em><\/a> defines an integration with an external system, typically a source code management system. Several <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/adaptor_template_descriptions.html\" target=\"_blank\" rel=\"noopener\">sample templates<\/a> are provided as a starting point. You need to configure them further to manage the connection and perform specified actions in the system.<\/li>\n<li class=\"li\">Adaptor links: an <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/adaptor_def_adaptor_link.html\" target=\"_blank\" rel=\"noopener\"><em class=\"ph i\">adaptor link<\/em><\/a> defines the relationship between an adaptor and the project that uses it.<\/li>\n<\/ul>\n<\/div>\n<div class=\"section\">\n<h2 class=\"title sectiontitle\">Steps<\/h2>\n<p class=\"p\">A <em class=\"ph i\">step<\/em> defines the smallest unit of work to be done. (See <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/steps_about.html\" target=\"_blank\" rel=\"noopener\">About steps<\/a>.) Its key component is its Command property, which includes a command to be run on the selected server.<\/p>\n<p class=\"p\">The Command property can also be used to run <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/dotcmd__top_using.html\" target=\"_blank\" rel=\"noopener\">dot commands<\/a>. Dot commands are commands that run on the process engine and provide additional functionality.<\/p>\n<p class=\"p\">Other objects are related to projects:<\/p>\n<ul class=\"ul\">\n<li class=\"li\">Selectors: a step can have its own <a class=\"xref\" title=\"Selectors choose a server resource on which to run a project or step.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/servers_selectors_about.html\" target=\"_blank\" rel=\"noopener\">selector<\/a>. If not specified it uses the selector of its project.<\/li>\n<li class=\"li\">Environments: a step can have its own <a class=\"xref\" title=\"An environment is a named set of variables.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/env_about.html\" target=\"_blank\" rel=\"noopener\">environment<\/a>. The environments provided by the server, the project, and the step are combined. By default they are applied in that order, so that any variables defined by the step&#8217;s environment take precedence over definitions of the same variable. Precedence can be controlled in system settings.<\/li>\n<li class=\"li\">Log Filters: a step can be assigned a log filter in its Result property. A <a class=\"xref\" title=\"Use log filters to specify the success criteria for a step. A filter stores one or more regular expressions.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/projects_logfilter_about.html\" target=\"_blank\" rel=\"noopener\"><em class=\"ph i\">log filter<\/em><\/a> object is used to specify conditions that indicate if the step passes or fails. When running a Perl engine, you use regular expressions to scan the log for a particular pattern. When running a Java engine, you also use regular expressions to scan the log for a particular pattern. Normally the exit status of the command is used, but log filters provide an alternate means. A log filter must be created before specifying it in a step. In the Result property for the step, you choose the log filter from the list of all log filters defined in the system.<\/li>\n<li class=\"li\">Notification templates: a <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/projects_notifi_about.html\" target=\"_blank\" rel=\"noopener\"><em class=\"ph i\">notification template<\/em><\/a> defines how to send out notifications about step activity (step start, step pass, step fail, others). A notification object defines who to notify through access groups. You specify the location of your SMTP server in a system setting.<\/li>\n<li class=\"li\">Build Catalyst: a step can run rafmake, the key utility in <a class=\"xref\" title=\"Build Catalyst accelerates make-based C and C++ software builds. It interprets and analyzes your existing make files and runs an accelerated build. The accelerated build can use techniques such as parallel builds and distributed builds to reduce overall build time.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/buildcat_about.html\" target=\"_blank\" rel=\"noopener\">Build Catalyst<\/a>. Build Catalyst provides the means to accelerate make-based builds. Build Catalyst must be installed on the same host where the make builds are run, in addition to a Build Forge agent.<\/li>\n<\/ul>\n<\/div>\n<div class=\"section\">\n<h2 class=\"title sectiontitle\">Jobs<\/h2>\n<p class=\"p\">A <a class=\"xref\" title=\"A job is a project that is executing or has finished executing.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/jobs_about__top.html\" target=\"_blank\" rel=\"noopener\">job<\/a> is a running project. When the job is <a class=\"xref\" title=\"There are several ways to start a job.\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/jobs_run_starting.html\" target=\"_blank\" rel=\"noopener\">started<\/a>, the process engine queues it and then runs it. You can check its status in the Jobs panel. When it completes, the following information is available:<\/p>\n<ul class=\"ul\">\n<li class=\"li\">Results: you can review the <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/jobs_run_results_viewing.html\" target=\"_blank\" rel=\"noopener\">results<\/a> of all steps by opening the job. You can also open a running job to monitor its progress.<\/li>\n<li class=\"li\">Step log: the step log records extensive information about how a step was run, including information about the manifest and environment settings as well as execution results. Click the step results link in the Results page to view the log.<\/li>\n<li class=\"li\">Bill of Materials: the <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/jobs_run_bom__top.html\" target=\"_blank\" rel=\"noopener\">Bill of Materials<\/a> (BOM) contains information about job steps and step manifests. You can use the <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/dotcmd_bom.html\" target=\"_blank\" rel=\"noopener\">.bom<\/a> dot command to format additional information for the BOM and write data to it. You can use the <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/dotcmd_scan.html\" target=\"_blank\" rel=\"noopener\">.scan<\/a> dot command to add baselines and checkpoints to the BOM.<\/li>\n<\/ul>\n<p class=\"p\">You can cancel and restart jobs. You can add projects to the <a class=\"xref\" href=\"http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/topic\/com.ibm.rational.buildforge.doc\/topics\/jobs_schedule__top.html\" target=\"_blank\" rel=\"noopener\">Schedule<\/a> to have them run at scheduled times.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Reference &#8211; http:\/\/pic.dhe.ibm.com\/infocenter\/bldforge\/v8r0\/index.jsp?topic=%2Fcom.ibm.rational.buildforge.doc%2Ftopics%2Fjobs_run_bom__top.html Build Forge uses a simple set of objects to construct descriptions of process automation. This section gives you an overview of key concepts and objects and how&#8230; <\/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":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/362\/revisions"}],"predecessor-version":[{"id":3666,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/362\/revisions\/3666"}],"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}]}}