Skip to content

feat: block new Appsmith AI datasource creation and show deprecation banner#42015

Open
salevine wants to merge 1 commit into
releasefrom
feat/9316/disable-appsmith-ai
Open

feat: block new Appsmith AI datasource creation and show deprecation banner#42015
salevine wants to merge 1 commit into
releasefrom
feat/9316/disable-appsmith-ai

Conversation

@salevine

@salevine salevine commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

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

  • New DEPRECATED_DATASOURCE_PLUGIN error (400, AE-DTS-4031) with an actionable message naming the BYOK alternatives.
  • DatasourceServiceCEImpl.create() rejects brand-new datasources whose plugin package is in getDeprecatedPluginPackageNames() — a protected method (CE = appsmithai-plugin) so the EE repo can extend the blocklist with appsmith-agent-plugin without CE changes.
  • The previous create() body moved to a new createWithoutDeprecationCheck(); the fork service now uses it.
  • Storage-saves for existing datasources (id present) bypass the guard — existing Appsmith AI datasources remain fully editable/executable until shutdown.

Client

  • Appsmith AI filtered out of the "AI Integrations" create-new list (AIPlugins.tsx); OpenAI / Anthropic / Google AI remain.
  • New AppsmithAIDeprecationCallout (ADS Callout, 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)

  • Import and fork intentionally bypass the guard. Importing or forking apps that already contain an Appsmith AI datasource must keep working; the T+60 credential revoke is the hard stop for non-migrated usage. (Import uses createWithoutPermissions, which never routed through create(); fork uses createWithoutDeprecationCheck.)
  • No feature flag. The deprecation is unconditional and restrictive-only; rollback is a clean revert (no data migration).
  • Appsmith AI query creation against existing/default datasources is not blocked in this step — that belongs to the later soft-disable phase of the deprecation plan.

Follow-ups tracked

  • EE companion PR: override getDeprecatedPluginPackageNames() to add appsmith-agent-plugin; EE banners for Agent/RAG surfaces.
  • Docs: publish the BYOK migration guide and repoint DocsLink.APPSMITH_AI_DEPRECATION (currently the generic Appsmith AI reference page, TODO in code).
  • Optional analytics on DEPRECATED_DATASOURCE_PLUGIN rejections to measure migration ahead of the kill date.

Tests

  • Server (DatasourceServiceTest): create with appsmithai-plugin rejected; createWithoutDeprecationCheck succeeds (fork path); existing-datasource storage-save allowed. All 3 green locally with CI-equivalent env.
  • Client (jest): callout renders message/kill date/link; create-list filter hides Appsmith AI but keeps other AI plugins. yarn check-types and 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:

  1. 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?

  • Yes

🤖 Generated with Claude Code

https://claude.ai/code/session_01AN5jb73MFwozkWuB4jvs6W

Summary by CodeRabbit

  • New Features

    • Added a deprecation warning for Appsmith AI in datasource and plugin editors, including a migration documentation link.
    • New Appsmith AI datasources can no longer be created; existing datasources remain available.
    • Deprecated Appsmith AI is removed from new AI integration options.
    • Users can continue supported workflows for existing deprecated datasources.
  • Bug Fixes

    • Added clear guidance to use OpenAI, Anthropic, or Google AI integrations with personal API keys.
  • Tests

    • Added coverage for warnings, plugin visibility, and deprecated datasource creation behavior.

…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
@salevine
salevine requested a review from a team as a code owner July 17, 2026 20:40
@salevine salevine added the ok-to-test Required label for CI label Jul 17, 2026
@github-actions github-actions Bot added Bug Something isn't working Button Widget Issues related to the button widget Critical This issue needs immediate attention. Drop everything else Generate Page Issures related to page generation Needs Triaging Needs attention from maintainers to triage Release Blocker This issue must be resolved before the release Table Widget Widgets & Accelerators Pod Issues related to widgets & Accelerators Widgets Product This label groups issues related to widgets Enhancement New feature or request and removed Bug Something isn't working labels Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Appsmith 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.

Changes

Appsmith AI deprecation

Layer / File(s) Summary
Deprecation messaging and callout
app/client/src/ce/constants/messages.ts, app/client/src/constants/DocumentationLinks.ts, app/client/src/components/editorComponents/AppsmithAIDeprecationCallout.tsx, app/client/src/components/editorComponents/AppsmithAIDeprecationCallout.test.tsx
Adds the shutdown date, migration messages, documentation link, warning callout, and component tests.
Deprecated plugin UI handling
app/client/src/pages/Editor/IntegrationEditor/AIPlugins.tsx, app/client/src/pages/Editor/IntegrationEditor/__tests__/aiPlugins.test.tsx, app/client/src/pages/Editor/DataSourceEditor/index.tsx, app/client/src/PluginActionEditor/.../UQIEditorForm.tsx
Excludes Appsmith AI from new AI datasource options and displays the deprecation callout in relevant editors.
Datasource deprecation guard
app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCE.java, .../DatasourceServiceCEImpl.java
Adds guarded datasource creation, deprecated plugin validation, and createWithoutDeprecationCheck for bypassing the guard.
Existing datasource compatibility and validation
app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/fork/DatasourceForkableServiceCEImpl.java, .../exceptions/*, app/server/appsmith-server/src/test/java/com/appsmith/server/services/DatasourceServiceTest.java
Routes suffixed datasource creation through the bypass path, defines the deprecation error, and tests blocked, bypassed, and existing-ID creation cases.

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
Loading

Poem

Appsmith AI dims its light,
A warning guides the migration flight.
New paths pause, old paths stay,
With docs to chart the brighter way.
September marks the closing date.

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (3 warnings)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR does not address #9316; it implements Appsmith AI deprecation instead of fixing the generated CRUD page Delete button. Update the changeset to fix the CRUD page Delete button bug in #9316, or split the deprecation work into a separate PR.
Out of Scope Changes check ⚠️ Warning Most changes implement Appsmith AI deprecation messaging and guards, which are unrelated to the linked CRUD-page delete-button bug. Remove the deprecation work from this PR and keep only changes needed for #9316, or move it to a separate issue.
Docstring Coverage ⚠️ Warning Docstring coverage is 12.50% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: blocking new Appsmith AI datasource creation and adding a deprecation banner.
Description check ✅ Passed The description includes the required sections: description, issue reference, automation, Cypress results, and communication.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/9316/disable-appsmith-ai

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added Bug Something isn't working and removed Bug Something isn't working labels Jul 17, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
app/client/src/components/editorComponents/AppsmithAIDeprecationCallout.test.tsx (1)

36-42: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Test the migration link interaction.

The test verifies only the label, so a no-op handler or incorrect DocsLink value would pass. Mock openDoc or window.open, click “Learn how to migrate,” and assert that DocsLink.APPSMITH_AI_DEPRECATION is 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

📥 Commits

Reviewing files that changed from the base of the PR and between 098e536 and 3ff203e.

📒 Files selected for processing (14)
  • app/client/src/PluginActionEditor/components/PluginActionForm/components/UQIEditor/UQIEditorForm.tsx
  • app/client/src/ce/constants/messages.ts
  • app/client/src/components/editorComponents/AppsmithAIDeprecationCallout.test.tsx
  • app/client/src/components/editorComponents/AppsmithAIDeprecationCallout.tsx
  • app/client/src/constants/DocumentationLinks.ts
  • app/client/src/pages/Editor/DataSourceEditor/index.tsx
  • app/client/src/pages/Editor/IntegrationEditor/AIPlugins.tsx
  • app/client/src/pages/Editor/IntegrationEditor/__tests__/aiPlugins.test.tsx
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCE.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/base/DatasourceServiceCEImpl.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/datasources/fork/DatasourceForkableServiceCEImpl.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/exceptions/AppsmithError.java
  • app/server/appsmith-server/src/main/java/com/appsmith/server/exceptions/AppsmithErrorCode.java
  • app/server/appsmith-server/src/test/java/com/appsmith/server/services/DatasourceServiceTest.java

Comment on lines +26 to +28
// TODO: replace with the dedicated Appsmith AI → BYOK migration guide once published
APPSMITH_AI_DEPRECATION:
"https://docs.appsmith.com/connect-data/reference/appsmith-ai",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Button Widget Issues related to the button widget Critical This issue needs immediate attention. Drop everything else Enhancement New feature or request Generate Page Issures related to page generation Needs Triaging Needs attention from maintainers to triage ok-to-test Required label for CI Release Blocker This issue must be resolved before the release Table Widget Widgets & Accelerators Pod Issues related to widgets & Accelerators Widgets Product This label groups issues related to widgets

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: The delete button is broken in generated crud pages

1 participant