Hey Jon,
Thank you for looking into this in such detail. Much appreciated :)
The folders types we have are all Collaboration.
The overall goal I am trying to achieve is automated build and deployment for our LabKey configuration. The configuration itself was done manually via the UI thus far and we need to change this as managing changes between DEV, TEST, UAT and LIVE environments gets very difficult when you're copy pasting queries and manually doing folder config.
Automated build means that I will have the folders, queries, assays (xar files?), html wiki pages inside source control (git) and I will craft a maven script to build a zip file.
Automated deploy means - I will do either a shell script, a java tool, a web service call or any combination to get that zip file deployed into LabKey.
I am experimenting on how to do all this and I am looking at two avenues. The folder import/export mechanism and the custom module mechanism.
Please note that we already have a custom module that we build and deploy automatically.
Here are my pain points with each avenue:
Folder import/export:
- cannot automatically import a folder (the issue I am asking about in this thread)
- cannot export a folder with identical query names in different schemas (asked in a separate thread -> issue was fixed in 15.1 we are using 14.3 )
- cannot export a folder with linked schemas if a query depends on said schema (under investigation in another thread ->
https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=11366)
- cannot rename queries by re uploading a folder (discussed and confirmed in another thread ->
https://www.labkey.org/announcements/home/Developer/Forum/thread.view?rowId=11386)
Custom module:
- cannot specify a folder structure inside one module - a module is added to a folder via it's folder type - we have many folders and doing a module for each would be unwieldy
- I do not know how to specify linked schemas in a module as this seems to be a specific type of config for a folder
Our configuration that we are trying to automate looks like this:
- a bunch of folders with queries in them
- lots of linked schemas as in most queries depend on linked schemas
- a number of query web parts
- a number of wiki web parts - HTML + Javascript
- a folder with assays in it (all our linked schemas refer these assays by the way)
Regarding assays. I was looking at the assay custom module that could potentially replace our assay folder and also get added in all the other folders that need them thereby replacing all the linked schemas with a folder type reference (the export of which works as I have tested). There is one major problem with that approach. The folder with assays we have in place is populated with a lot of data, especially live data that I do not know how to migrate ... or even if a migration is necessary. So as a tangent question -> can I replace my assay folder with an assay custom module and transfer the data over?
The ideal goal is to be able to do with lab key elements as we do with code source control -> build -> deploy. However depending on the technical limitations we may need to live with some manual steps.
Once again thank you for looking into this.