getporter/porter

Merge bundle interfaces

Opened this issue · 0 comments

When a dependency is defined there are two interfaces involved:

  • base interface, defined by how the dependency is used and wired up to the parent bundle.
  • declared interface, defined by the bundle interface field on the dependency.

Porter needs to merge the two before evaluating the bundle interface. The base interface is very sparse and mostly involves determining if the bundle should have a particular output, param, or cred defined. The defined interface can be more specific and include json schema and interface ids. When we combine the two, the declared interface should be merged "on top of" the base interface.

ℹ️ Read PEP003 - Advanced Dependencies for context about how dependencies should work, design details, and notes about desired behavior.