You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(app): dynamic authentication provider support
This change adds support for loading authentication providers or modules
from dynamic plugins. An environment variable
ENABLE_AUTH_PROVIDER_MODULE_OVERRIDE controls whether or not the backend
installs the default authentication provider module. When this override
is enabled dynamic plugins can be used to supply custom authentication
providers. This change also adds a "components" configuration for
frontend dynamic plugins, which can be used to supply overrides for the
AppComponents option. This is required for dynamic plugins to be able to
provide a custom SignInPage component, for example:
```
dynamicPlugins:
frontend:
my-plugin-package:
components:
- name: SignInPage
module: PluginRoot
importName: SignInPage
```
Where the named export SignInPage will be mapped to
`components.SignInPage` when the frontend is initialized. Finally, to
ensure authentication providers can be managed by the user a new
`providerSettings` configuration field is available for frontend dynamic
plugins, which can be used to inform the user settings page of the new
provider, for example:
```yaml
dynamicPlugins:
frontend:
my-plugin-package:
providerSettings:
- title: Github Two
description: Sign in with GitHub Org Two
provider: github-two
```
Each `providerSettings` item will be turned into a new row under the
"Authentication Providers" tab in the user settings. The `provider`
field is used to look up the API ref for the external auth provider by
expanding the simple provider name to the auth ID convention
`core.auth.<provider name>`.
Signed-off-by: Stan Lewis <[email protected]>
0 commit comments