[PR #17295] fix: add app quota check to import API #28667

Closed
opened 2026-02-21 20:43:53 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/17295

State: closed
Merged: Yes


Summary

This PR adds the missing app quota check to the app import API endpoint. Currently, users can bypass their subscription plan's app limit by importing apps instead of creating them directly. This creates an inconsistency with the direct app creation endpoint which does enforce these limits.

The fix adds the @cloud_edition_billing_resource_check("apps") decorator to the AppImportApi.post method, ensuring that the same quota limits are enforced across all app creation methods.

Fix https://github.com/langgenius/dify/issues/17294

Screenshots

None.

Checklist

Important

Please review the checklist below before submitting your pull request.

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods

Changes Made

  1. Added cloud_edition_billing_resource_check to the imports in app_import.py
  2. Added the @cloud_edition_billing_resource_check("apps") decorator to the AppImportApi.post method
  3. Ensured consistent behavior with the direct app creation endpoint

Testing

The changes have been tested to ensure:

  • The quota check works correctly for all subscription plans
  • The error message is consistent with other quota-limited endpoints
  • The import operation fails appropriately when the quota is exceeded
**Original Pull Request:** https://github.com/langgenius/dify/pull/17295 **State:** closed **Merged:** Yes --- # Summary This PR adds the missing app quota check to the app import API endpoint. Currently, users can bypass their subscription plan's app limit by importing apps instead of creating them directly. This creates an inconsistency with the direct app creation endpoint which does enforce these limits. The fix adds the `@cloud_edition_billing_resource_check("apps")` decorator to the `AppImportApi.post` method, ensuring that the same quota limits are enforced across all app creation methods. Fix https://github.com/langgenius/dify/issues/17294 # Screenshots None. # Checklist > [!IMPORTANT] > Please review the checklist below before submitting your pull request. - [x] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods ## Changes Made 1. Added `cloud_edition_billing_resource_check` to the imports in `app_import.py` 2. Added the `@cloud_edition_billing_resource_check("apps")` decorator to the `AppImportApi.post` method 3. Ensured consistent behavior with the direct app creation endpoint ## Testing The changes have been tested to ensure: - The quota check works correctly for all subscription plans - The error message is consistent with other quota-limited endpoints - The import operation fails appropriately when the quota is exceeded
yindo added the pull-request label 2026-02-21 20:43:53 -05:00
yindo closed this issue 2026-02-21 20:43:53 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#28667