Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Plugin loader and multi-user capabilities #2023

Merged
merged 110 commits into from
Mar 19, 2020
Merged

Conversation

benbrown
Copy link
Contributor

@benbrown benbrown commented Feb 19, 2020

Description

This pull request includes the plugin loader system, as well as changes to the routes and APIs to allow for multiple users to use a single instance of Composer simultaneously.

This PR includes several interrelated bits:

  • A new plugin loader that evaluates and ingests plugin packages
  • Adjustments to the server to enable it to use a drop-in replacement for the file system storage
  • adjustments to client and server to enable multi-user capabilities
  • ability to plugin to storage, auth and publishing via the plugin
  • Several prototype plugin that demonstrate capabilities

See this readme for more information.

Task Item

Closes #1928 - this is the top level tracking ticket for plugins
Closes #1918 - still need to do error handling
Closes #1917

#1916 - need to re-address overwrite prevention
#1945 - need to finish publish UI and endpoints

Still To Do

Type of change

Please delete options that are not relevant.

  • New feature (non-breaking change which adds functionality)

Checklist

  • I have added tests that prove my fix is effective or that my feature works
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have functionally tested my change

@benbrown benbrown changed the title Plugin loader and multi-user capabilities feat: Plugin loader and multi-user capabilities Feb 19, 2020
@cwhitten cwhitten merged commit cbb5b4a into master Mar 19, 2020
@cwhitten cwhitten deleted the benbrown/plugins branch March 19, 2020 15:46
lei9444 added a commit to lei9444/BotFramework-Composer-1 that referenced this pull request Jun 15, 2021
* first commit of working prototype for mongoDB storage

* change mechanism for creating zip file for syncing to runtime
now builds all the files loaded into project (from arbitrary source) rahter than zipping a folder on disk

* clean up console output

* plugin loader looks for plugins, finds them

* dynamically load in the storage provider via plugin loader
use custom storage if one is specified

* remove some debug traces

* clean up some minor code formatting things

* disable linter rule to allow for requiring in plugin modules

* slight refactor of plugin loader to encapsulate functionality
add sample web route plugin
first tiny stab at publish -- TIME TO BRANCH

* functioning auth implementattion using passportjs

* sample github auth

* first round of changes for multi-user support
Related to microsoft#1918 and microsoft#1917

* add in the bot project id into the route

* fix new bot

* fix save as

* rationalize all the URLS used in context of a project

* plumb user identity down through storage

* disable plugins

* add readme

* plugin readme

* plugin readme

* plugin readme

* plugin readme

* import publisher controller from other branch

* update to readme

* import prototype of publishing page

* updates

* delete environment and connector

* add error checking for missing project by id

* Better error handling for attempts to write to a missing or moved project
Should fix last remaining item in microsoft#1918

* add publish method with  localpublish plugin

* keep bot dir clean

* basic publish of localpublish plugin

* remove hostBot

* add gitignore file

* change unzip template into copy template folder

* Fix build script

* Fix default projectMap not exists

* change luis operation to match local plugin

* polish default setting

* use projectId

* clean up

* remove lib dir

* use projectId

* use limit 'currentBotProjects' cache

* remove unused

* Update copy

* return error response when publish failed

* update name initialization process

* fix some test,hide publish tab and change deploy script

* fix UT integrity check

* fix bf-cli version error

* update the version

* remove @microsoft/bf-cli-command@1.0.0

* try to fix todo e2e test

* fix lint

* fix lint

* remove some unused test and skip some failed unit tests

* feat: Prevent old content from overwriting newer changes (microsoft#2156)

* updates to write operations to prevent overwrite
not 100% working on LU files yet

* debounce lu

* remove comment

* remove some console logs

* address feedback from chris

* remove commented code

* change hint word deploy to publish

* fix lint

* fix some test syntax

* update the ui for notification page

* fix luis publish path not found

* fix some e2e tests

* fix onboarding when using projectId

* fix notification page bug

* Back out simple overwrite protection, will replace with less error prone mechanism

* add plugins volumn in docker

* fix docker up

* fix unit test

* fix the filesetting path

* change docker to map multi ports. in order to support multi runtime

* add projectId when create and delete dialog

* fix botstatus

* fix botstatus

* remove console log

* fix settings files path

* update the moke data

Co-authored-by: Wenyi Luo <wenyluo@microsoft.com>
Co-authored-by: Dong Lei <donglei@microsoft.com>
Co-authored-by: zhixzhan <zhixzhan@microsoft.com>
Co-authored-by: liweitian <liweitian93@outlook.com>
Co-authored-by: leilzh <leilzh@microsoft.com>
Co-authored-by: Chris Whitten <christopher.whitten@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Approved to merge approved, waiting to be merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update the server to generate and store a unique bot ID for every bot project that is opened
7 participants