OutWit.Identity.Installer.Cli 0.1.0

dotnet tool install --global OutWit.Identity.Installer.Cli --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local OutWit.Identity.Installer.Cli --version 0.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=OutWit.Identity.Installer.Cli&version=0.1.0
                    
nuke :add-package OutWit.Identity.Installer.Cli --version 0.1.0
                    

witidentity-installer

Headless CLI companion to the WitIdentity Avalonia wizard. Takes an encrypted .witproj produced by the desktop installer and turns it into a ready-to-deploy deployment archive — without any UI dependency.

The tool ships as a global .NET tool so CI pipelines can run it without installing the desktop wizard.

Install

dotnet tool install -g OutWit.Identity.Installer.Cli

Usage

# Preferred for CI — password from env var.
export WITIDENTITY_PROJECT_PASSWORD=hunter2
witidentity-installer build tenant.witproj -o ./out/tenant.zip

# Local dev — password as literal argument (leaks into process list).
witidentity-installer build tenant.witproj -o tenant.zip --password hunter2

# Pipe password from a secret manager.
op read op://vault/witproj/password | witidentity-installer build tenant.witproj -o tenant.zip --password-stdin

Commands

Command What it does
build <project.witproj> -o <output.zip> Decrypt, validate, produce deployment archive
validate <project.witproj> Decrypt + run cross-step validator, no archive write
version Print version
help Print usage

Password sources

In priority order:

  1. --password <value> — argument; leaks into ps, local dev only
  2. --password-stdin — read one line from stdin; good for piping from secret managers
  3. $WITIDENTITY_PROJECT_PASSWORD — env var; recommended for CI

If none are set, the tool exits with USAGE_ERROR.

Exit codes

Code Meaning
0 Success
1 Usage error (missing args, unknown flag)
2 Configuration validation failed
3 I/O error (file not found, can't write)
4 Wrong password or corrupted .witproj
5 Other unexpected error

CI scripts can branch on these codes — e.g. exit 4 means rotate the password secret, exit 2 means the project file fell behind a wizard schema change.

Example GitHub Actions step

- name: Build deployment archive
  env:
    WITIDENTITY_PROJECT_PASSWORD: ${{ secrets.WITPROJ_PASSWORD }}
  run: |
    dotnet tool install -g OutWit.Identity.Installer.Cli
    witidentity-installer build deploy/tenant.witproj -o ./out/tenant.zip

- name: Upload archive
  uses: actions/upload-artifact@v4
  with:
    name: deployment-archive
    path: ./out/tenant.zip
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.1.0 101 5/15/2026
0.1.0-alpha.0.202 53 5/15/2026
0.1.0-alpha.0.197 48 5/15/2026