You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

datasource_oauth.py 1.3KB

5 months ago
5 months ago
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from flask_login import current_user # type: ignore
  2. from flask_restful import Resource # type: ignore
  3. from werkzeug.exceptions import Forbidden
  4. from controllers.console import api
  5. from controllers.console.wraps import (
  6. account_initialization_required,
  7. setup_required,
  8. )
  9. from core.plugin.impl.datasource import PluginDatasourceManager
  10. from libs.login import login_required
  11. class DatasourcePluginOauthApi(Resource):
  12. @setup_required
  13. @login_required
  14. @account_initialization_required
  15. def get(self, datasource_type, datasource_name):
  16. # Check user role first
  17. if not current_user.is_editor:
  18. raise Forbidden()
  19. # get all builtin providers
  20. manager = PluginDatasourceManager()
  21. providers = manager.get_provider_oauth_url()
  22. return providers
  23. # Import Rag Pipeline
  24. api.add_resource(
  25. DatasourcePluginOauthApi,
  26. "/datasource/<string:datasoruce_type>/<string:datasource_name>/oauth",
  27. )
  28. api.add_resource(
  29. RagPipelineImportConfirmApi,
  30. "/rag/pipelines/imports/<string:import_id>/confirm",
  31. )
  32. api.add_resource(
  33. RagPipelineImportCheckDependenciesApi,
  34. "/rag/pipelines/imports/<string:pipeline_id>/check-dependencies",
  35. )
  36. api.add_resource(
  37. RagPipelineExportApi,
  38. "/rag/pipelines/<string:pipeline_id>/exports",
  39. )