I am trying to migrate my header.jsp script-based modification into Customizer apps. In this specific case I just want to replace the logo. My working header.jsp customization looks like this
As far as I understand the JS-based customizations to the header using extension "com.ibm.customizer.ui" as in this example are outdated. I will have to use extensions of type "com.hcl.connections.custom.style" for v8 . So I constructed the following app:
I have tried both variants "connections" & "customizer". Also using the provided example at https://github.com/HCL-TECH-SOFTWARE/connections-ui-docs/tree/master/custom-config-extensions but this also does not work. On the other hand this app code works:
{
"name": "Simple Customizer Sample",
"title": "My First Customizer App",
"description": "Perform a modification to the Connections Homepage",
"services": [
"Customizer"
],
"extensions": [
{
"name": "Hello World Extension",
"type": "com.ibm.customizer.ui",
"payload": {
"include-files": [
"helloWorld/helloWorld.user.js"
]
},
"path": "homepage"
}
]
}
I can open "/appregistry/api/v3/services/Connections/extensions?type=com.hcl.connections.custom.style" and it prints the code of my app. But I do not know what this technically means - can you comment ? Regarding caching: Since the helloWorld app works fine - could there still be a caching issue for the logo-/top-navigation app ? Regarding proxy config: To avoid any issue I am forwarding all traffic from nginx to kubernetes master as described in the documentation (so not redirecting specific URLs). Can you add some details on what you think could be wrongly configured on my nginx ?
And could you be so kind to quickly check if my app code works in one of your test-environments (if you have one...) ?
Thanks for checking & confirming that this works for you. In the meantime I also started discussing the topic with HCL support and they also confirmed that it works for them. So obviously something is wrong with my environment. I still do not understand why "HelloWorld"-extension works but not the others. The issue is still being investigated...
Extensions of type com.ibm.customizer.ui (of which the Hello World example is one) are associated with the 'Customizer' service type and Connections page requests defined in nginx routes are sent to mwproxy service and it makes the request to appregistry to get the relevant extensions on behalf of the user, so you don't see those in the browser.
Extensions of type com.hcl.connections.custom.style are associated with the services type Connections and are processed by the v8 UI react components when loaded in the browser; they each request their relevant extensions directly from appregistry. If you look at the browser network trace you will see several when pages load including this one mentioned in the thread above: /appregistry/api/v3/services/Connections/extensions?type=com.hcl.connections.custom.style
To avoid making the requests from the v8 react components in environments that do not have appregistry service available, we made them conditional on an existing configuration switch to let us know if it is. If you are not seeing the browser making any requests to /appregistry/api/v3/services/Connections/extensions at all, then please check that in LotusConnectionsConfig.xml that the service entry for "extensionRegistry" is enabled (true). mwproxy service has no such dependency on that service config since if mwproxy is enabled, there is no reason to think appregistry won't also be there.
David (Senior Technical Architect, HCL Software Digital Solutions)
Thank you very much for this clarification ! It works when enabling extensionRegistry !!
I was wondering why your colleaguers did not notice and why this mandatory configuration is in the section for "MS Teams integration". I am not using Teams but still I need to configure it to use the Customizer. Very confusing...