A connection represents a dependency on an external service. It is a common feature needed in many parts of ADK, such as tools and knowledge bases.

Each connection can be thought of in terms of its 3 (4 for SSO Oauth flows) constituant parts.

The first is the connection itself. It is essentially a wrapper that is used to contain the other componenets and assign a common identifier that can be passed to tools, agents or other entities that require connections.

The second is the configuration. Each connection can have different configurations depending on environment (draft/live). The configuration outlines shared details on the connections such as its kind (basic, bearer, key_value, etc.) and its type (whether the connections are shared among the team or per member).

The third is the connections. These will be the values used to authorize against the external service. For example if in the configuration you selected is of kind basic, this would be where you pass in the username and password.

The fourth is the identity provider (IDP) connections. These are only needed for OAuth with SSO. These are used when your external service makes use of a third party OAuth identity provider such as Microsoft or Google to generate auth tokens.

You can use connection in many parts of ADK like tools and knowlage bases.