Hi,
We trying to implement full CI/CD workflow for our current Verint 11.x development, that includes:
- Storing factory default widgets code and factory default themes code in a git source controls
- Automatically package and deploy widget and theme releases into a stage and prod environments
What we achieved for now:
Widgets source control is implemented through "Verint Development Mode" and "Factory Default Widget Provider", all widgets source control now could be stored in our git repository
Widget packaging from git and deployment is implemented through "FactoryDefaultWidgetFileManifestUpdater" example https://github.com/Telligent/Widget-Source-Management-Sample
Theme source control is implemented through "Verint Development Mode" + creation of Social theme copy, all theme files now could be stored in our git repository
Theme packaging from git and deployment is NOT implemented because
- plan A: was to deploy factory default theme in same way as factory default widgets is deployed trough Widget-Source-Management-Sample, but we have no proper example of packaging factory default theme files into DLL and no proper example of manipulating theme files through in-process API
- plan B: was to automate theme import/export UI through headless Chrome automation, but it seems too risky and unreliable for us
- plan C: was to copy-paste changes from themefiles/d and themefiles/fd directory from git repository directly into on-prem Verint instance filestorage, and this also seems risky for us because it was never officially approved to be safe way by Verint team, also there undocumented behavior when non-devmode Verint instance could store some of theme files in themefiles/f, and this /f directory is not properly documented, and just copying /fd and /d directories is not always working, so we currently dropped this plan
The question:
While we were digging for a possible solution we discovered that theme, in same way as widgets, have it's own in-process API for manipulating theme files, e.g.:
- ThemeFiles In-Process API Service
- ThemeFooterContentFragments In-Process API Service
- ThemeFooters In-Process API Service
- ThemeHeaderContentFragments In-Process API Service
- ThemeHeaders In-Process API Service
- ThemePageContentFragments In-Process API Service
- ThemePages In-Process API Service
- ThemeProperties In-Process API Service
We want to implement something similar to the Widget-Source-Management-Sample, to package factory default theme files into DLL embedded resource and then add them to Verint instance during plugin installation, but we didn't find any code examples for these APIs.
Do you have code examples for these API or maybe you have something similar to Widget-Source-Management-Sample that could be applied for themes?
Or if there more proper solution for this - could you tell us about it?
minor text fixes
[edited by: Eugene Shulga at 4:23 PM (GMT 0) on Wed, Mar 10 2021]