Windows Native Operations¶
Recommended Windows production path. Installer: scripts/windows/service. Service name: IQVIntegrationAPI.
The current installer is source-based: it expects go.mod (so Get-RepoRoot works), Go, and Git on the build/install host. The GitHub Release *-windows-native-amd64.zip is that source snapshot plus these scripts. It is not a prebuilt .exe package. First install can run from the extracted zip after you copy .env.example to .env. update.ps1 still expects a git worktree; clone the matching tag or extract a newer zip and re-run install.ps1 (runtime config\.env is preserved by default).
Full install narrative: Windows Service Installation.
Runtime layout¶
text
C:\IQVizyon\IQVIntegrationAPI\
bin\iqv-integration-api.exe
config\.env
logs\installer-update.log
backups\
deployment\deployment.json
Canonical config path: C:\IQVizyon\IQVIntegrationAPI\config\.env. Do not use config.env in the runtime root.
Service status¶
powershell
powershell.exe -ExecutionPolicy Bypass -File .\scripts\windows\service\status.ps1
Get-Service IQVIntegrationAPI
sc.exe query IQVIntegrationAPI
Open Services (services.msc) and locate IQV Integration API.
status.ps1 reports service state, delayed auto-start, LocalService, PID, version, commit, port, MongoDB, /health/live, /health/ready, firewall, and a redacted recent installer log. Exit 0 only when the reported state is healthy.
Start / stop / restart¶
```powershell Start-Service IQVIntegrationAPI Stop-Service IQVIntegrationAPI Restart-Service IQVIntegrationAPI
sc.exe start IQVIntegrationAPI sc.exe stop IQVIntegrationAPI
.\bin\iqv-integration-api.exe service start .\bin\iqv-integration-api.exe service stop .\bin\iqv-integration-api.exe service restart .\bin\iqv-integration-api.exe service status ```
Prefer the project scripts for install/update/uninstall. Binary service commands manage SCM only.
Delayed automatic startup¶
Install registers Start=Automatic and DelayedAutoStart=true (Automatic (Delayed Start)). After a host reboot the service starts without a manual Start-Service.
MongoDB dependency¶
Default: SCM dependency on the Windows service named MongoDB. The installer does not install MongoDB. Disable only with the documented no-dependency flag when MongoDB is not a local Windows service.
Recovery policy¶
Restart after 5s, then 10s, then 30s. Reset period 86400 seconds.
Firewall¶
Installer creates inbound TCP allow for the configured HTTP port on Domain,Private only (never Public). Display name: IQV Integration API - TCP <port>.
powershell
Get-NetFirewallRule -DisplayName "IQV Integration API - TCP *"
Logs¶
Application slog goes to process stdout. The SCM host does not redirect that stdout to logs\. The Event Log source IQVIntegrationAPI is registered; the application does not write slog lines there.
Installer/update file log:
text
C:\IQVizyon\IQVIntegrationAPI\logs\installer-update.log
See Logging.
Backup and metadata¶
Backups: C:\IQVizyon\IQVIntegrationAPI\backups\<timestamp>\
Metadata: C:\IQVizyon\IQVIntegrationAPI\deployment\deployment.json (no secrets).
Health¶
powershell
Invoke-RestMethod http://127.0.0.1:<HTTP_PORT>/health/live
Invoke-RestMethod http://127.0.0.1:<HTTP_PORT>/health/ready
Repair / update / uninstall¶
| Action | Command |
|---|---|
| ServiceRepair / idempotent re-install | install.ps1 while the service already exists (config preserved) |
| Update | update.ps1 (NO-OP when same commit; -ForceRedeploy to redeploy) |
| Uninstall | uninstall.ps1 (runtime preserved by default) |
See Update and Rollback and Uninstall.