A Document is a Key/Value text-file in the JSON or YAML format that models IT infrastructure building blocks, application service definitions, and their configuration data. Documents are the core unit through which STACKL understands the user’s IT environment and does work: nearly every task will, in some way, affect documents. This can be storing, changing, or deleting models of the IT infrastructure, submitting application or service descriptions, instantiating and representing running applications, and so on. Documents belong to one of two broad categories and are strictly typed.
There are two categories of documents: items and configs. Configs represent documents that model or describe elements or concepts of the user’s IT environment and are files that by themselves are not actionable but serve as configuration. Items are documents that are tangible elements of a user’s IT environment, namely files that are actionable or represent an interactive entity, and commonly form the data that serves as input for orchestration tools. Items can be the result of processing other documents. For instance, a deployable piece of hardware (i.e., infrastructure target) described by a document is an item and can be the result of a user’s environment, zone, and location documents which together uniquely represent that hardware. In terms of how they are created, configs are always user-submitted direct models or descriptions of things to be used by STACKL and thus are stand-alone and not the result of other documents. Items, in contrast, are actionable elements that are either submitted or generated by STACKL and so can be the result of other documents.