diff --git a/.github/workflows/ci-scripts-test.yml b/.github/workflows/ci-scripts-test.yml index d9ae330aa2a0..ebe73af00c30 100644 --- a/.github/workflows/ci-scripts-test.yml +++ b/.github/workflows/ci-scripts-test.yml @@ -8,6 +8,7 @@ on: - ".github/workflows/ci-scripts-test.yml" - "pyproject.toml" - "src/bundles/*/pyproject.toml" + - "src/bundles/*/src/*/**/capabilities.v1.json" - "src/bundles/lfx-bundles/src/lfx_bundles/*/__init__.py" - "src/backend/base/langflow/api/build.py" - "src/backend/base/langflow/api/v1/a2a.py" diff --git a/BUNDLE_API.md b/BUNDLE_API.md index 624e050e764e..6c2c0266569e 100644 --- a/BUNDLE_API.md +++ b/BUNDLE_API.md @@ -615,3 +615,17 @@ the deserialize half is covered by messages and winner selection are unchanged, and two physically distinct manifests for one canonical name still error. No public symbol's name or signature changed. +- **`ResolvedCredential.identity` (additive, optional).** + `lfx.integrations.models.ResolvedCredential` gained + `identity: Literal["user_delegated", "bot", "service"] | None = None`, + mirroring `lfx.integrations.capabilities.IntegrationIdentity`. The + database-backed resolver populates it from the connection row's + `executing_identity`; the headless environment resolver leaves it `None` + because the `LF_CONNECTION__*` wire format has no place to declare one. + Providers whose user and bot tokens share scope names — Slack's `chat:write` + is both a User Token Scope and a Bot Token Scope — cannot distinguish the two + identities from `granted_scopes`, so a bundle capability that must run as a + bot compares this field and fails closed with `connection-not-authorized` + before its first request. The field defaults to `None`, no existing field + changed name, type, or meaning, and every existing construction site keeps + working, so `BUNDLE_API_VERSION` remains `1`. diff --git a/docs/docs/Components/bundles-slack.mdx b/docs/docs/Components/bundles-slack.mdx new file mode 100644 index 000000000000..c77459217b57 --- /dev/null +++ b/docs/docs/Components/bundles-slack.mdx @@ -0,0 +1,115 @@ +--- +title: Slack +slug: /bundles-slack +--- + +import Icon from "@site/src/components/icon"; +import { GraduatedBundleInstall } from '@site/docs/_partial-bundle-graduated-install.mdx'; + +