This repository was archived by the owner on Jul 9, 2025. It is now read-only.
feat: add extension management apis#3978
Merged
a-b-r-o-w-n merged 27 commits intomainfrom Sep 8, 2020
Merged
Conversation
tonyanziano
commented
Sep 2, 2020
Comment on lines
+16
to
+19
| const { fetchPlugins } = useRecoilValue(dispatcherState); | ||
| useEffect(() => { | ||
| fetchPlugins(); | ||
| }); |
Contributor
Author
There was a problem hiding this comment.
Is there a better place in the app to perform these client-side "on startup go and fetch some data" tasks?
Contributor
There was a problem hiding this comment.
I don't think so. This seems to be the right place. We could make an action like bootstrapApplication() or something that other initialization code can go.
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
| interface PublishAPI { | ||
| setConfigIsValid?: (valid: boolean) => void; | ||
| setPublishConfig?: (config: PublishConfig) => void; | ||
| useConfigBeingEdited?: (() => PublishConfig[]) | (() => void); |
Contributor
Author
There was a problem hiding this comment.
could probably give this a better name
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
| iconName: p.icon ?? 'StatusCircleQuestionMark', | ||
| labelName: p.label, | ||
| exact: true, | ||
| disabled: false, |
Contributor
Author
There was a problem hiding this comment.
could possibly add some logic to the extension config here that says:
{
"views": {
"page": {
"label": "Sample UI Plugin",
...
"enabled": <some-condition>,
}
}
}
where <some-condition> could be something like "botProjectOpen" or another special Composer state that extensions can key off of.
tonyanziano
commented
Sep 2, 2020
Composer/packages/electron-server/src/utility/oauthImplicitFlowHelper.ts
Outdated
Show resolved
Hide resolved
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 2, 2020
tonyanziano
commented
Sep 8, 2020
| bundles: this.processBundles(pluginPath, packageJson.composer?.bundles ?? []), | ||
| contributes: packageJson.composer?.contributes, | ||
| }); | ||
| this.manifest.updateExtensionConfig(name, getExtensionMetadata(pluginPath, packageJson)); |
Contributor
Author
There was a problem hiding this comment.
nice 👍 -- much cleaner
tonyanziano
commented
Sep 8, 2020
Composer/packages/extensions/plugin-loader/src/storage/extensionManifestStore.ts
Show resolved
Hide resolved
Merged
lei9444
pushed a commit
to lei9444/BotFramework-Composer-1
that referenced
this pull request
Jun 15, 2021
* Improved plugin infrastructure -- render custom UI * Aligned sample publish plugin with new publish api * client-plugin-lib improvements * Minor fixes for clarity and polish * Updated sample-ui-plugin package with docs * Removed logs * Updated sample-ui-plugin docs * Guarded against removing / disabling built-in plugins * Minor fixes * Linting * Comment update * More linting * Added licenses and removed a comment. * minor cleanup * hide plugins page in client * rename extension-manifest to just extensions * run npm commands in a safe manner * prettify extensions.json * make PluginManager a singleton * only spawn npm commands Co-authored-by: Andy Brown <asbrown002@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR modifies the current Extension / Plugin infrastructure to add support for hosting custom extension UI in Composer.
/Composer/plugins/sample-ui-plugin/includes aREADME.mdwith instructions on how to author one of these extensions with custom UI, as well as how to enable the plugin so that a user can experiment with the sample.Task Item
refs #3991
refs #3997
Screenshots
Plugin management page (these are built-in / 1P plugins, so they can't be disabled or removed for now)
Sample of a page plugin
Sample of a publish plugin