Tool, State, and Resource

The architecture documentation explains how in general DevStream works. If you haven’t read it yet, make sure you do that before continuing with this document.

1 Tool

  • One of the major part of the Config is a list of tools, defined in here.
  • Each Tool has its Name, Plugin, and Options, as defined here.
  • Each Tool can have its dependencies, which are specified by the dependsOn keyword.

The dependency dependsOn is an array of strings, with each element being a dependency. Each dependency is named in the format of “NAME.PLUGIN”. See here for example.

2 State

  • The State is actually a map of states, as defined here.
  • Each state in the map is a struct containing Name, Plugin, Options, and Resource, as defined here.

3 Resource

  • We call what the plugin created a Resource, and the Read() interface of that plugin returns a description of that resource, which is in turn stored as part of the state.

Config-State-Resource workflow:

config state resource workflow