Question
· Dec 15, 2022

Installation Manifest

I am trying to make application deployable using Installation Manifest.

I use IRISHealth_Community-2022.2.0.368.0-win_x64.exe to run manifest during installation

I run it from windows command line using the following command:

IRISHealth_Community-2022.2.0.368.0-win_x64.exe INSTALLERMANIFEST="C:\FixxerInstall\src\Installer.xml" INSTALLERMANIFESTLOGFILE="Log.txt" INSTALLERMANIFESTLOGLEVEL=3 INSTALLERMANIFESTPARAMS="FlaggerCSPDir=C:\FixxerInstall\src\csp\flagger,ClassImportDir=C:\FixxerInstall\src\import\"

It works but a little bit strange.

I try to create csp application using manifest. 

My XData:

XData MyInstall [ XMLNamespace = INSTALLER ]
{
<Manifest>
     <CopyDir  
    Src="${FlaggerCSPDir}"
    Target="${CSPDIR}flagger"
     IgnoreErrors="1"/>
        <Namespace 
         Name="flagger" 
         Create="yes" Code="flagger" 
         Ensemble="1" 
         Data="flagger">
            <Configuration>
                <Database 
                 Name="flagger" 
                 Dir="${MGRDIR}flagger" 
                  Create="yes"/>
            </Configuration>
            <Import File="${ClassImportDir}"/>
            <CSPApplication 
              CSPZENEnabled="1"
              LoginClass="/csp/flagger/Flagger.LoginAuth.cls" 
              CustomErrorPage="/csp/flagger/error.csp" 
              ChangePasswordPage="/csp/flagger/Flagger.ChangePassword.cls"
              AutoCompile="1"
              Url="/csp/flagger" 
              IsNamespaceDefault="1" 
              InboundWebServicesEnabled="1" 
              Recurse="1" 
              AuthenticationMethods="64" 
              DefaultTimeout="900" 
              Directory="${CSPDIR}flagger" 
              UseSessionCookie="2" 
              CookiePath="/csp/flagger/" 
              ServeFiles="1" 
              ServeFilesTimeout="3600" 
         />
        </Namespace>
   </Manifest>
}

As you can see inside CSPApplication tag I specified 

LoginClass="/csp/flagger/Flagger.LoginAuth.cls" 
CustomErrorPage="/csp/flagger/error.csp" 
ChangePasswordPage="/csp/flagger/Flagger.ChangePassword.cls" 

AutoCompile="1"

But after installation some properties do not apply and some properties have different values.

In Allowed authentication methods I specified AuthenticationMethods="64" (this is unathenticated, but in managment portal Password and Kerberos are selected)

Looks like the properties are set to default, and my specification is skipped

Created web application page in Managment portal after the installation:

 

** UPDATED **

 

I found some compilation errors in class import phase. I added IgnoreErrors="1" attribute to <Import> tag. Also I set AuthenticationMethods="32" (password)

<Import File="${ClassImportDir}" IgnoreErrors="1"/>

 I suppose that my log file contains following lines. When it creates namespace it creates webapplication by default with default configurations

2022-12-16 17:57:19 1 CONSOLE:       - Creating CSP Application: /csp/flagger
2022-12-16 17:57:19 1 CONSOLE:           Name                 = [/csp/flagger]
2022-12-16 17:57:19 1 CONSOLE:           AutheEnabled         = [36]
2022-12-16 17:57:19 1 CONSOLE:           Enabled              = [1]
2022-12-16 17:57:19 1 CONSOLE:           Description          = [Interoperability Management Portal]
2022-12-16 17:57:19 1 CONSOLE:           Resource             = [%Ens_Portal]
2022-12-16 17:57:19 1 CONSOLE:           AutoCompile          = [0]
2022-12-16 17:57:19 1 CONSOLE:           Timeout              = [900]
2022-12-16 17:57:19 1 CONSOLE:           Path                 = [C:\InterSystems\IRISHealth\CSP\flagger]
2022-12-16 17:57:19 1 CONSOLE:           Recurse              = [1]
2022-12-16 17:57:19 1 CONSOLE:           LoginPage            = []
2022-12-16 17:57:19 1 CONSOLE:           InbndWebServicesEnabled = [1]
2022-12-16 17:57:19 1 CONSOLE:           TwoFactorEnabled     = [0]
2022-12-16 17:57:19 1 CONSOLE:           IsNameSpaceDefault   = [0]
2022-12-16 17:57:19 1 CONSOLE:           PermittedClasses     = []
2022-12-16 17:57:19 1 CONSOLE:           MatchRoles           = []
2022-12-16 17:57:19 1 CONSOLE:           Type                 = [2]
2022-12-16 17:57:19 1 CONSOLE:           CookiePath           = [/csp/flagger/]
2022-12-16 17:57:19 1 CONSOLE:           LockCSPName          = [1]
2022-12-16 17:57:19 1 CONSOLE:           NameSpace            = [FLAGGER]
2022-12-16 17:57:19 1 CONSOLE:           CSPZENEnabled        = [1]
2022-12-16 17:57:19 1 CONSOLE:           GroupById            = [%ISCMgtPortal]
2022-12-16 17:57:19 1 CONSOLE:           ServeFiles           = [2]
2022-12-16 17:57:19 1 CONSOLE:           UseCookies           = [2]
2022-12-16 17:57:19 1 CONSOLE:       - Removing legacy CSP pages and files from directory 'C:\InterSystems\IRISHealth\CSP\flagger\'

After that I found the lines that are related to my Web application specification (When i use <Import> without IgnoreErrors=1 these lines were not there). But by some reason some properties are skipped (for example LoginClass):

2022-12-19 20:43:51 3 Evaluate: ${CSPDIR}flagger -> C:\InterSystems\IRISHealth\CSP\flagger
2022-12-19 20:43:51 3 Evaluate: /csp/flagger/ -> /csp/flagger/
2022-12-19 20:43:51 3 Evaluate: 32 -> 32
2022-12-19 20:43:51 3 Evaluate: 1 -> 1
2022-12-19 20:43:51 3 Evaluate:  -> 
2022-12-19 20:43:51 3 Evaluate: 900 -> 900
2022-12-19 20:43:51 3 Evaluate:  -> 
2022-12-19 20:43:51 3 Evaluate: 2 -> 2
2022-12-19 20:43:51 3 Evaluate: 1 -> 1
2022-12-19 20:43:51 3 Evaluate: 3600 -> 3600
2022-12-19 20:43:51 3 Evaluate: /csp/flagger/error.csp -> /csp/flagger/error.csp
2022-12-19 20:43:51 3 Evaluate:  -> 
2022-12-19 20:43:51 3 Evaluate: /csp/flagger/Flagger.ChangePassword.cls -> /csp/flagger/Flagger.ChangePassword.cls
2022-12-19 20:43:51 3 Evaluate:  -> 
2022-12-19 20:43:51 3 Evaluate: 1 -> 1
2022-12-19 20:43:51 3 Evaluate: 1 -> 1
2022-12-19 20:43:51 3 Evaluate: 0 -> 0
2022-12-19 20:43:51 3 Evaluate: 1 -> 1
2022-12-19 20:43:51 3 Evaluate:  -> 
2022-12-19 20:43:51 3 Evaluate: 1 -> 1
2022-12-19 20:43:51 3 Evaluate:  -> 
2022-12-19 20:43:51 3 Evaluate:  -> 
2022-12-19 20:43:51 3 Evaluate:  -> 

The page in managment portal after installation

Product version: IRIS 2022.1
Discussion (4)1
Log in or sign up to continue

Where I have to put the Verbose property? I found it only in <Log> tag Level property value  in the documentation. But I did not specify any Log tags in my XData. If you mean pLogLevel parameter in the setup method, it is already = 3.

My setup method: 

ClassMethod setup(ByRef pVars, pLogLevel As %Integer = 3, pInstaller As %Installer.Installer, pLogger As %Installer.AbstractLogger) As %Status [ CodeMode = objectgenerator, Internal ]
{
   #; Let XGL document generate code for this method.
   Quit ##class(%Installer.Manifest).%Generate(%compiledclass,
      %code, "MyInstall")
}