Skip to content

MajorDomo build interface (NATS)

The Build interface provides a federation of ComputePods the ability to communicate build requirements between different components.

How to build

natsSubjects:
  howToBuild:
   subject: build.howTo.<artefactType>
   message: howToBuild

A "how to build" message is a collection of Artefact Types. The "goal" artefact type represents the type of artefact that the system needs to learn how to build. The "have" property is a list of artefact types which the system either has, or knows how to obtain.

The RuleManager component of one or more Chefs is expected to respond with a "can build from" message, registering the fact that this particular Chef knows how to build this type of artefact type.

jsonSchemaDefs:
  howToBuild:
    type: object
    properties:
      goal:
        type: string
      have:
        type: array
        items:
          type: string

Can build from

natsSubjects:
  canBuildFrom:
    subject: build.from.<artefactType>
    message: canBuildFrom

A "can build from" message is a collection of Artefact Types. The "canBuild" artefact type represents the type of artefact that this Chef knows how to build. The "from" property is a list of artefact types which are required in the build. The "auxiliaries" property is a list of artefact types which will be produced in addition to the main built type.

jsonSchemaDefs:
  canBuildFrom:
    type: object
    properties:
      canBuild:
        type: string
      from:
        type: array
        items:
          type: string
      auxiliaries:
        type: array
        items:
          type: string