Application
This section contains documentation on the application.
An Application is a reusable workflow consisting of one or more components. Multiple Applications can be registered in a project. An Application when paired with some configuration (via a Compound Component), generates a list of component definitions.
These generated components are linked to the parent Compound component, which acts like a 'component group'. However, these sub-components are still top-level components in the Flow, and are run individually just like any other component.
Note - the components generated from an Application are build artifacts and hence cannot be edited directly - only the Compound component or the Application that generates these components can be edited.
Applications can be defined in a Project in 2 ways -
In the applications/ folder, with a yaml definition that contains a reference to Python code. Python modules in src/ where the Application class is decorated with the @application class decorator. Every application must be registered under a unique name in a project. An Application definition must have a Pydantic model that defines the shape of configuration that it accepts to generate components.