feat: block new Appsmith AI datasource creation and show deprecation banner#42015
feat: block new Appsmith AI datasource creation and show deprecation banner#42015salevine wants to merge 1 commit into
Conversation
…banner Appsmith AI (appsmithai-plugin) is being deprecated in 2.3 to stop Appsmith-paid managed AI spend; users migrate to the BYOK OpenAI / Anthropic / Google AI datasources. Server: - New DEPRECATED_DATASOURCE_PLUGIN error (400, AE-DTS-4031). - DatasourceServiceCEImpl.create() rejects brand-new datasources whose plugin package is in getDeprecatedPluginPackageNames() (protected seam so EE can add appsmith-agent-plugin). Storage-saves for existing datasources (id present) are unaffected. - create()'s old body moved to createWithoutDeprecationCheck(); the fork service uses it so forking apps with existing Appsmith AI datasources keeps working. Import (createWithoutPermissions) is untouched and therefore exempt by construction — deliberate product decision so existing apps keep importing until the T+60 credential shutoff. Client: - Appsmith AI removed from the AI Integrations create-new list; other AI plugins remain. - New AppsmithAIDeprecationCallout (warning, kill date September 30, 2026, migration guidance incl. file-context loss, docs link) shown on the datasource editor (view + edit) and Appsmith AI query editor. Tests: 3 new DatasourceServiceTest cases (create rejected, bypass method succeeds, existing-datasource storage-save allowed); jest tests for the callout and the create-list filter. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AN5jb73MFwozkWuB4jvs6W
WalkthroughAppsmith AI is marked as deprecated across the client and server. The client adds migration callouts and removes it from new AI datasource options, while the server blocks new datasource creation and preserves bypass paths for existing or internal flows. ChangesAppsmith AI deprecation
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Editor
participant DatasourceServiceCEImpl
participant PluginRepository
participant DatasourceStorage
Editor->>DatasourceServiceCEImpl: create Appsmith AI datasource
DatasourceServiceCEImpl->>PluginRepository: resolve plugin package
PluginRepository-->>DatasourceServiceCEImpl: Appsmith AI package
DatasourceServiceCEImpl-->>Editor: DEPRECATED_DATASOURCE_PLUGIN
Editor->>DatasourceServiceCEImpl: createWithoutDeprecationCheck for existing flow
DatasourceServiceCEImpl->>DatasourceStorage: persist datasource
DatasourceStorage-->>Editor: datasource result
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 3❌ Failed checks (3 warnings)
✅ Passed checks (2 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
app/client/src/components/editorComponents/AppsmithAIDeprecationCallout.test.tsx (1)
36-42: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winTest the migration link interaction.
The test verifies only the label, so a no-op handler or incorrect
DocsLinkvalue would pass. MockopenDocorwindow.open, click “Learn how to migrate,” and assert thatDocsLink.APPSMITH_AI_DEPRECATIONis used.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@app/client/src/components/editorComponents/AppsmithAIDeprecationCallout.test.tsx` around lines 36 - 42, Extend the “renders the migration docs link” test around renderCallout to mock the documentation-opening behavior, click the “Learn how to migrate” link, and assert that it invokes openDoc or window.open with DocsLink.APPSMITH_AI_DEPRECATION. Keep the existing label assertion and verify the interaction uses the expected destination.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@app/client/src/constants/DocumentationLinks.ts`:
- Around line 26-28: Update the APPSMITH_AI_DEPRECATION documentation link to
the published Appsmith AI BYOK migration guide, ensuring the deprecation
banner’s “Learn how to migrate” destination provides migration guidance rather
than the general Appsmith AI reference page.
---
Nitpick comments:
In
`@app/client/src/components/editorComponents/AppsmithAIDeprecationCallout.test.tsx`:
- Around line 36-42: Extend the “renders the migration docs link” test around
renderCallout to mock the documentation-opening behavior, click the “Learn how
to migrate” link, and assert that it invokes openDoc or window.open with
DocsLink.APPSMITH_AI_DEPRECATION. Keep the existing label assertion and verify
the interaction uses the expected destination.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 4d772641-0639-4b39-afc5-5790edf5f517
📒 Files selected for processing (14)
app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/UQIEditorForm.tsxapp/client/src/ce/constants/messages.tsapp/client/src/components/editorComponents/AppsmithAIDeprecationCallout.test.tsxapp/client/src/components/editorComponents/AppsmithAIDeprecationCallout.tsxapp/client/src/constants/DocumentationLinks.tsapp/client/src/pages/Editor/DataSourceEditor/index.tsxapp/client/src/pages/Editor/IntegrationEditor/AIPlugins.tsxapp/client/src/pages/Editor/IntegrationEditor/__tests__/aiPlugins.test.tsxapp/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCE.javaapp/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.javaapp/server/appsmith-server/src/main/java/com/appsmith/server/datasources/fork/DatasourceForkableServiceCEImpl.javaapp/server/appsmith-server/src/main/java/com/appsmith/server/exceptions/AppsmithError.javaapp/server/appsmith-server/src/main/java/com/appsmith/server/exceptions/AppsmithErrorCode.javaapp/server/appsmith-server/src/test/java/com/appsmith/server/services/DatasourceServiceTest.java
| // TODO: replace with the dedicated Appsmith AI → BYOK migration guide once published | ||
| APPSMITH_AI_DEPRECATION: | ||
| "https://docs.appsmith.com/connect-data/reference/appsmith-ai", |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Point the migration link at migration guidance.
The configured destination currently opens the Appsmith AI reference page, which documents connecting and querying Appsmith AI rather than the BYOK migration path promised by “Learn how to migrate.” Users will be sent to the wrong documentation from the deprecation banner. Replace it with the published migration guide, or avoid labeling this link as migration guidance until that guide exists. (docs.appsmith.com)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@app/client/src/constants/DocumentationLinks.ts` around lines 26 - 28, Update
the APPSMITH_AI_DEPRECATION documentation link to the published Appsmith AI BYOK
migration guide, ensuring the deprecation banner’s “Learn how to migrate”
destination provides migration guidance rather than the general Appsmith AI
reference page.
Source: MCP tools
Description
TL;DR: First shipping step of the Appsmith AI deprecation (release 2.3): users can no longer create new Appsmith AI (
appsmithai-plugin) datasources — the tile is hidden in the create-new flow and the API rejects creation with a clear 400 — while existing Appsmith AI datasources and queries keep working and now show a deprecation banner with the shutdown date (September 30, 2026) and BYOK migration guidance.Appsmith pays for LLM tokens behind the managed Appsmith AI plugin (proxied through Cloud Services with Appsmith-owned credentials). Per the deprecation plan, 2.3 blocks new adoption and tells existing users to migrate to the OpenAI / Anthropic / Google AI datasources with their own API keys. Managed credentials are revoked ~60 days after GA as the hard stop.
Server
DEPRECATED_DATASOURCE_PLUGINerror (400,AE-DTS-4031) with an actionable message naming the BYOK alternatives.DatasourceServiceCEImpl.create()rejects brand-new datasources whose plugin package is ingetDeprecatedPluginPackageNames()— aprotectedmethod (CE =appsmithai-plugin) so the EE repo can extend the blocklist withappsmith-agent-pluginwithout CE changes.create()body moved to a newcreateWithoutDeprecationCheck(); the fork service now uses it.Client
AIPlugins.tsx); OpenAI / Anthropic / Google AI remain.AppsmithAIDeprecationCallout(ADSCallout, warning, non-dismissible, "Learn how to migrate" docs link) mounted on the datasource editor (view + edit) and on the Appsmith AI query editor. Copy explicitly calls out that uploaded files (file context) will not be available after the shutdown date.Explicit decisions (per product direction)
createWithoutPermissions, which never routed throughcreate(); fork usescreateWithoutDeprecationCheck.)Follow-ups tracked
getDeprecatedPluginPackageNames()to addappsmith-agent-plugin; EE banners for Agent/RAG surfaces.DocsLink.APPSMITH_AI_DEPRECATION(currently the generic Appsmith AI reference page, TODO in code).DEPRECATED_DATASOURCE_PLUGINrejections to measure migration ahead of the kill date.Tests
DatasourceServiceTest): create withappsmithai-pluginrejected;createWithoutDeprecationChecksucceeds (fork path); existing-datasource storage-save allowed. All 3 green locally with CI-equivalent env.yarn check-typesand ESLint clean.Fixes #9316
Automation
/ok-to-test tags="@tag.All"
🔍 Cypress test results
Caution
🔴 🔴 🔴 Some tests have failed.
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/29612082891
Commit: 3ff203e
Cypress dashboard.
Tags: @tag.All
Spec:
The following are new failures, please fix them before merging the PR:
- cypress/e2e/Regression/ClientSide/AdminSettings/Email_settings_Spec.ts
List of identified flaky tests.Fri, 17 Jul 2026 21:52:43 UTC
Communication
Should the DevRel and Marketing teams inform users about this change?
🤖 Generated with Claude Code
https://claude.ai/code/session_01AN5jb73MFwozkWuB4jvs6W
Summary by CodeRabbit
New Features
Bug Fixes
Tests