Introduction
Comment surcharger la couche de configuration réalisée depuis l’interface de configuration
Comment migrer les projets Starter kit existants, ayant démarré sur de précédentes versions
...
Starting from version
Status | ||
---|---|---|
|
Portal project configuration
The .wediaportalrc
file still holds the configuration chains in the same way they did before.
Code Block | ||
---|---|---|
| ||
{
"": {
"appConfigs": {
"portal": "starter-kit@project-dev",
"portal@picker": "starter-kit@project-dev@$starter-kit-picker",
// ...
"_postProcessors": [
["", /* ... */]
]
}
}
} |
Server configuration
The WXM_CONFIG_RESOLVER
plugin is the server plugin hosting the different configurations and end-points required to manage configuration server-side. Find below a quick start-guide on how to configure it for a project.
default_holding_plugin: Refers to a plugin that will store all configurations. The default value is PACKAGED_CONFIGS
. Its strongly recommended to duplicate / rename / deploy this plugin to another name so that next releases will not overwrite existing configurations.
config_settings: A JSON configuration of the different configuration chains that exist. Default delivered value is:
Code Block |
---|
{
"mappings": {
"portal": "starter-kit@project-dev@project",
"portal@picker": "starter-kit@project-dev@project@$starter-kit-picker@:userAgent",
"portal@picker@office": "starter-kit@project-dev@project@$starter-kit-picker@office@:userAgent",
"portal@picker@office@outlook": "starter-kit@project-dev@project@$starter-kit-picker@office@outlook@:userAgent",
"wediaConfig": "__wedia_config",
"portal@$mobile_device": "starter-kit@project-dev@project@$starter-kit-mobile",
"portal@picker$mobile_device": "starter-kit@project-dev@project@$starter-kit-picker@$starter-kit-mobile",
"portal@picker@office@$mobile_device": "starter-kit@project-dev@project@$starter-kit-picker@office@$starter-kit-mobile",
"portal@picker@office@outlook@$mobile_device": "starter-kit@project-dev@project@$starter-kit-picker@office@outlook@$starter-kit-mobile"
},
"postProcessors": {
"surferRole": "fr.wedia.confres.core.model.processor.SurferRolePostProcessor",
"userAgent": {
"processor": "fr.wedia.confres.core.model.processor.UserAgentPostProcessor",
"config": [
{
"pattern": ".*Mobi.*",
"name": "$starter-kit-mobile"
}
]
}
},
"baseLocations": {
"starter-kit": "PACKAGED_BASES",
"emptyObj": "PACKAGED_BASES",
"__wedia_config": "PACKAGED_BASES"
}
} |
It is important to understand how the mappings
section interfere on the portal configuration.
Each key within the mappings
object refers to a configuration name. When a portal application loads, it is configured to load a specific configuration. Such configuration corresponds to a key inside the mappings
object. For instance, the portal front end application will by default load portal
configuration, whereas the office picker will load portal@picker@office
.
Each value associated to a mappings
key refers to the configuration chain to resolve in order to retrieve the actual configuration associated. For instance, the portal
key refers to value starter-kit@project-dev@project
whereas portal@picker@office
key refers to value starter-kit@project-dev@project@$starter-kit-picker@office
(we’ll come back to :userAgen
t later)
Note |
---|
Note that portal application plugin and server config are not equal This difference is important as it will make sure you will not overwrite a configuration done server side by delivering the project. The Additionally, the name of the last part must be |
To resolve a configuration, the system will obtain the value of the key, and the pass through an inheritance chain (same as portal build time resolution). For instance, the portal key gives starter-kit@project-dev@project
will define to
start with the layer
starter-kit
extend it with layer
starter-kit@project-dev
extend it with layer
starter-kit@project-dev@project
As previously, if a $ is encountered at the start of a part, the layer name will be reseted. For instance, the portal@picker@office
key gives starter-kit@project-dev@project@$starter-kit-picker@office
For this value, the configuration will be defined to:
start with the layer
starter-kit
extend it with layer
starter-kit@project-dev
extend it with layer
starter-kit@project-dev@project
extend it with
starter-kit-picker
extend it with
starter-kit-picker@office
Configuring portal sections not covered by the UI
You must use layers prior to the @project
containing layers to define “developer defined” configuration. By default, we have named this layer starter-kit@project-dev
but you are free to rename it if you want, as long as
You change the chaining value on both
.wediaportalrc
file andWXM_CONFIG_RESOLVER
plugin configurationYou keep a trailing
@project
named layer for configuration done by the UI.
Configuration in the starter-kit@project-dev
is done with the same rule than before. Except that
You cannot use js files to dynamically patch a config section
You can force the deletion of a section by adding a file with
.delete
extension. Example, you want to delete the configuration point$.dam.cursors.allAssets
, in thestarter-kit@project-dev
directory, create filedam/cursors/all-assets.delete
How to provide additional configuration on sections defined in the UI
You can provide additional configuration to UI defined config by pre-defining a value. The UI will then extend an existing configuration.
For instance, imaging a filter has been created through the UI by defining in dam/named-filters/some-filter/
multiple JSON files (don't worry about what files are in ; you just need to remember that someFilter was defined.
If you want to add i18n
that is unfortunately not configurable in
Status | ||
---|---|---|
|
Create on your local computer in starter-kit@project-dev
:
dam/named-filters/some-filter/i18n.json
and give it a json value "my.custom.i18n.key.to.use"
(don’t forget the double quotes: you must write a valid JSON).
It might feel strange to override a value before definition, but this is perfectly valid as the UI will actually extend existing values of the config. If the UI decides to remove someFilter
, by deleting it, it will also delete the inherited part of it.
How to migrate an existing starter-kit project to enable UI
When serving or building