Skip to content

Commit 7d5bbe5

Browse files
author
GitHub Actions
committed
Add frontend plugn wiring section
1 parent 1f2cdeb commit 7d5bbe5

File tree

3 files changed

+62
-0
lines changed

3 files changed

+62
-0
lines changed

assemblies/dynamic-plugins/assembly-front-end-plugin-wiring.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ include::../modules/dynamic-plugins/proc-adding-application-providers.adoc[level
3636
// Customizing and extending entity tabs
3737
include::../modules/dynamic-plugins/proc-customizing-and-extending-entity-tabs.adoc[leveloffset=+1]
3838

39+
// SignIn page
40+
include::../modules/dynamic-plugins/con-using-custom-signinpage-component.adoc[leveloffset=+1]
41+
42+
// custom scaffolder extension
43+
include::../modules/dynamic-plugins/con-providing-custom-scaffolder-field-extensions.adoc[leveloffset=+1]
44+
3945
// Provide additional Utility APIs
4046
include::../modules/dynamic-plugins/proc-provide-additional-utility-apis.adoc[leveloffset=+1]
4147

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
[id="con-providing-custom-scaffolder-field-extensions"]
2+
3+
= Providing custom Scaffolder field extensions
4+
5+
The Scaffolder component in {product} ({product-very-short}) enables users to create software components using templates through a guided wizard. You can extend the functionality of the Scaffolder by providing custom form fields as dynamic plugins using the `scaffolderFieldExtensions` configuration.
6+
7+
Custom field extensions allow you to add specialized form fields that capture domain-specific data during the scaffolding process, such as environment selectors, input validations, or repository checks.
8+
9+
When you configure custom scaffolder field extensions:
10+
11+
* The dynamic plugin exposes the field extension component using `createScaffolderFieldExtension`.
12+
* Each field extension requires a unique `importName` for registration.
13+
* Multiple field extensions can be registered by listing each in the configuration.
14+
15+
[source,yaml]
16+
----
17+
dynamicPlugins:
18+
frontend:
19+
my-plugin: # <1>
20+
scaffolderFieldExtensions:
21+
- importName: MyNewFieldExtension # <2>
22+
----
23+
<1> Specify the plugin package name.
24+
<2> The `importName` references the exported scaffolder field extension component from your plugin.
25+
26+
[NOTE]
27+
====
28+
The `module` field is optional and specifies which set of assets to access within the plugin. By default, the system uses the `PluginRoot` module, consistent with the `scalprum.exposedModules` key in your plugin's `package.json`.
29+
====
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
[id="con-using-custom-signinpage-component"]
2+
= Using a custom SignInPage component
3+
4+
In {product} ({product-very-short}), the `SignInPage` component manages the application's authentication flow. The `SignInPage` connects one or more authentication providers to the sign-in process. By default, {product-short} uses a static `SignInPage` that supports all built-in authentication providers.
5+
6+
When you configure a custom `SignInPage`:
7+
8+
* The system loads the specified `importName` component from your dynamic plugin.
9+
* The component returns a configured `SignInPage` that connects the desired authentication provider factories.
10+
* Only one `signInPage` can be specified for the application at a time.
11+
12+
[source,yaml]
13+
----
14+
dynamicPlugins:
15+
frontend:
16+
my-plugin: # <1>
17+
signInPage:
18+
importName: CustomSignInPage
19+
----
20+
<1> Specify the plugin package name.
21+
22+
[NOTE]
23+
====
24+
The `package_name` under `dynamicPlugins.frontend` must match the `scalprum.name` value in your plugin's `package.json` to ensure the dynamic plugin loads correctly during runtime.
25+
26+
The `module` field is optional and allows specifying which set of assets should be accessed within the dynamic plugin. By default, the system uses the `PluginRoot` module.
27+
====

0 commit comments

Comments
 (0)