Some checks are pending
CI / Integration (mcr.microsoft.com/mssql/server:2019-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2022-latest) (push) Blocked by required conditions
CI / Build og unit tests (push) Waiting to run
CI / MSI-installer (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2017-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2025-latest) (push) Blocked by required conditions
installer/SQLInsight.wxs (WiX 3 syntax) builds on Linux with wixl (installer/build-msi.sh) and in Forgejo CI on every v* tag. Agent and Web are installed self-contained as Windows services under virtual service accounts (or a gMSA), with a settings page in the wizard or MSI properties for silent installs; the values go to sqlinsight.ini, read after appsettings.json. The data folder is locked to SYSTEM, Administrators and the agent account, the event log source is registered, the web port is opened in the firewall, and the automatic update task is an optional feature. Upgrades happen in place, keep edited settings and the chosen features; uninstall keeps the settings. msi-tables.py writes what wixl lacks (component and feature conditions, Permanent/NeverOverwrite, vital services, REG_EXPAND_SZ) and verify-msi.py checks the result (sequencing, deferred actions, ASCII only). test-msi-wine.sh runs install, upgrade and uninstall under Wine. Installations made with the MSI get new versions as MSI packages run by the update task, so Windows Installer stays in charge of the files. The example instance is removed from the shipped appsettings.json, and the CLI writes UTF-8 to the console. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E3EExwndy8Z22EK2Qpt6BK
42 lines
3.5 KiB
XML
42 lines
3.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- First page of an interactive install: where the repository is, what to monitor first, and which accounts to use.
|
|
Everything can also be given on the command line (see SQLInsight.wxs); the fields then show those values. ASCII only. -->
|
|
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
|
|
<Fragment>
|
|
<UI Id="SQLInsightUI">
|
|
<UIRef Id="WixUI_Minimal" />
|
|
<Dialog Id="SettingsDlg" Width="370" Height="270" Title="[ProductName] Setup">
|
|
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="WixUI_Bmp_Banner" />
|
|
<Control Id="Title" Type="Text" X="15" Y="6" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Settings" />
|
|
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="Where SQLInsight stores its data, and what to monitor first." />
|
|
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
|
|
|
|
<Control Id="RepositoryLabel" Type="Text" X="20" Y="52" Width="330" Height="10" NoPrefix="yes" Text="Repository database (connection string, SQL Server 2016 or later):" />
|
|
<Control Id="Repository" Type="Edit" X="20" Y="64" Width="330" Height="18" Property="REPOSITORY_CONNECTION" Text="{400}" />
|
|
<Control Id="RepositoryHint" Type="Text" X="20" Y="84" Width="330" Height="18" NoPrefix="yes" Text="Example: Server=sqlmon01;Database=SQLInsight;Integrated Security=true;Encrypt=true. Leave empty to set it later in sqlinsight.ini." />
|
|
|
|
<Control Id="ServerLabel" Type="Text" X="20" Y="108" Width="330" Height="10" NoPrefix="yes" Text="First SQL Server to monitor (optional, more can be added later):" />
|
|
<Control Id="Server" Type="Edit" X="20" Y="120" Width="330" Height="18" Property="MONITOR_SERVER" Text="{200}" />
|
|
|
|
<Control Id="AgentLabel" Type="Text" X="20" Y="146" Width="160" Height="10" NoPrefix="yes" Text="Agent service account:" />
|
|
<Control Id="Agent" Type="Edit" X="20" Y="158" Width="160" Height="18" Property="AGENT_ACCOUNT" Text="{200}" />
|
|
<Control Id="WebLabel" Type="Text" X="190" Y="146" Width="110" Height="10" NoPrefix="yes" Text="Web service account:" />
|
|
<Control Id="Web" Type="Edit" X="190" Y="158" Width="110" Height="18" Property="WEB_ACCOUNT" Text="{200}" />
|
|
<Control Id="PortLabel" Type="Text" X="310" Y="146" Width="40" Height="10" NoPrefix="yes" Text="Port:" />
|
|
<Control Id="Port" Type="Edit" X="310" Y="158" Width="40" Height="18" Property="WEB_PORT" Text="{5}" />
|
|
<Control Id="AccountHint" Type="Text" X="20" Y="180" Width="330" Height="30" NoPrefix="yes" Text="NT SERVICE\... accounts reach other servers as this computer (DOMAIN\SERVER$$). For a group managed service account, enter DOMAIN\name$$. Give the account the rights from db\permissions\grant-least-privilege.sql." />
|
|
|
|
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
|
|
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
|
|
<Publish Event="EndDialog" Value="Return" />
|
|
</Control>
|
|
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
|
|
<Publish Event="SpawnDialog" Value="CancelDlg" />
|
|
</Control>
|
|
</Dialog>
|
|
<InstallUISequence>
|
|
<Show Dialog="SettingsDlg" Sequence="1297" Condition="NOT Installed" />
|
|
</InstallUISequence>
|
|
</UI>
|
|
</Fragment>
|
|
</Wix>
|