---
title: SAIF CLI command reference
description: Commands and template parameters generated from the source-backed SAIF CLI manifest.
moved_from:
  - reference/tools/saifcli.md
---

# SAIF CLI command reference

Generated from the CLI command tree and in-repository template metadata. Edit command definitions or template sources, then update the guarded CLI manifest; do not edit this page.

For installation and updates, see [Install the SAIF CLI](../../../learn/install-saif-cli.md). For operational guidance, see [CLI workflows](../../cli-workflows.md). Plugin setup lives in [Forge plugins](../../../learn/forge-plugin.md).

## Global options

| Option | Required | Description |
| --- | --- | --- |
| <code>--dry-run</code> | No | Shows what would happen if the command runs. |
| <code>--help</code>, <code>-?</code>, <code>-h</code> | No | Show help and usage information |
| <code>--no-interactive</code> | No | Runs the command without interactive prompts. |
| <code>--version</code> | No | Show version information |

The manifest records descriptions, declared arguments, option aliases, required flags, and effects. It does not encode every parser default or conditional requirement. Use the installed command's `--help` for its exact invocation syntax.

## saif agent

AI agent integration (MCP server, skills, configuration)

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif agent init</code> | Initialize agent plugin configuration for AI assistants (VS Code, Copilot CLI) |
| <code>saif agent mcp</code> | Start the MCP (Model Context Protocol) server for AI assistant integration |

## saif agent init

Initialize agent plugin configuration for AI assistants (VS Code, Copilot CLI)

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--grant-permissions</code> | No | Also generate plan-mode permission rules (issue #968). WARNING: for GitHub Copilot CLI this approves EVERY saif command, including mutating ones such as &#x27;pipeline approve&#x27; and &#x27;token generate&#x27;. Copilot CLI cannot express finer-grained trust for saif, and a --deny-tool for an individual saif command is silently ignored. VS Code&#x27;s rules are scoped to read-only commands. |
| <code>--local</code> | No | Shorthand for --scope project. Cannot be combined with an explicit --scope user. |
| <code>--plugins</code> | No | The complete set of Forge plugins to enable (space-separated, or repeat the flag). Use &#x27;none&#x27; to disable all without uninstalling. Omit to choose interactively from saved settings, or preserve saved choices when noninteractive. |
| <code>--scope</code> | No | Where to write agent configuration: &#x27;user&#x27; (machine-wide, default) or &#x27;project&#x27; (workspace-scoped, the pre-#942 behavior). GitHub Copilot CLI&#x27;s plugin/permissions targets always stay user-level regardless of this value. |
| <code>--workspace-root</code>, <code>-w</code> | No | The workspace root directory to configure. Defaults to git root or current directory. |

## saif agent mcp

Start the MCP (Model Context Protocol) server for AI assistant integration

**Effect:** Mutating

### Options

None.

## saif app

Manage and discover Entra ID application registrations

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif app search</code> | Search or list Entra ID application registrations |

## saif app search

Search or list Entra ID application registrations

**Effect:** Read-only

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--app-id</code>, <code>--appid</code> | No | Search by application (client) ID |
| <code>--audience</code> | No | Search by audience identifier URI (from JWT aud claim or api:// URI) |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--name</code> | No | Partial name filter |

## saif auth

Authentication and OAuth token management

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif auth clear</code> | Clear cached OAuth tokens |
| <code>saif auth dynatrace</code> | Manage Dynatrace platform-token authentication |
| <code>saif auth generate</code> | Generate an OAuth token for a SAIF application |
| <code>saif auth validate</code> | Decode and inspect a JWT token |

## saif auth clear

Clear cached OAuth tokens

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--force</code> | No | Skip confirmation prompt |

## saif auth dynatrace

Manage Dynatrace platform-token authentication

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif auth dynatrace login</code> | Store a Dynatrace platform token for querying telemetry |
| <code>saif auth dynatrace logout</code> | Remove the stored Dynatrace platform token |
| <code>saif auth dynatrace status</code> | Show Dynatrace token and per-environment connectivity |

## saif auth dynatrace login

Store a Dynatrace platform token for querying telemetry

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--no-browser</code> | No | Do not open the token-creation page in a browser |
| <code>--token</code> | No | The platform token to store (skips the interactive paste prompt) |

## saif auth dynatrace logout

Remove the stored Dynatrace platform token

**Effect:** Mutating

### Options

None.

## saif auth dynatrace status

Show Dynatrace token and per-environment connectivity

**Effect:** Read-only

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |

## saif auth generate

Generate an OAuth token for a SAIF application

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--auth-server</code> | No | Okta Auth Server ID, required with --identity-provider okta (API pipeline -&gt; auth_ext_okta_client (terraform) job output) |
| <code>--identity-provider</code> | No | Force the identity provider (&#x27;entra&#x27; or &#x27;okta&#x27;); defaults to Entra ID |
| <code>--name</code> | No | The display name of the SAIF application (e.g., brishe-test) |
| <code>--no-default-scopes</code> | No | Don&#x27;t auto-append the Okta &#x27;user-groups&#x27; delegation scope |
| <code>--plain</code> | No | Output raw token only (for scripts and agents) |
| <code>--scopes</code> | No | Scopes to request; required for Okta (space-separated after one --scopes, or repeat the flag) |

## saif auth validate

Decode and inspect a JWT token

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>token</code> | The JWT token to decode |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |

## saif build

Queue and monitor pipeline builds (use &#x27;saif pipeline&#x27; instead)

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--directory</code> | No | Repository directory (defaults to current directory) |

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif build approve</code> | Approve a pending build stage or checkpoint |
| <code>saif build list</code> | List available pipelines for a repository |
| <code>saif build monitor</code> | Monitor the progress of a running build |

## saif build approve

Approve a pending build stage or checkpoint

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--directory</code> | No | Repository directory (defaults to current directory) |

## saif build list

List available pipelines for a repository

**Effect:** Read-only

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--directory</code> | No | Repository directory (defaults to current directory) |

## saif build monitor

Monitor the progress of a running build

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>buildid</code> | Build ID to monitor |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--collection</code> | No | The Azure DevOps collection |
| <code>--host</code> | No | The Azure DevOps host |
| <code>--project</code> | No | The Azure DevOps project |

## saif config

Manage SAIF CLI configuration settings

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif config get</code> | Get a configuration value |
| <code>saif config list</code> | List all configuration settings |
| <code>saif config set</code> | Set a configuration value |
| <code>saif config validate</code> | Validate configuration without changes |

## saif config get

Get a configuration value

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>key</code> | Configuration key (dot-notation, e.g., output.format) |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |

## saif config list

List all configuration settings

**Effect:** Read-only

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |

## saif config set

Set a configuration value

**Effect:** Mutating

### Arguments

| Argument | Description |
| --- | --- |
| <code>key</code> | Configuration key (dot-notation, e.g., output.format) |
| <code>value</code> | Value to set |

### Options

None.

## saif config validate

Validate configuration without changes

**Effect:** Read-only

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |

## saif docs

Search and read Forge platform documentation

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif docs get</code> | Read a documentation page |
| <code>saif docs list</code> | List up to 25 documentation results (a sample, not a complete inventory) |
| <code>saif docs search</code> | Search Forge documentation |

## saif docs get

Read a documentation page

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>slug</code> | Document location path (e.g., build/data/cosmos-nosql) |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--section</code> | No | Filter to a specific heading |

## saif docs list

List up to 25 documentation results (a sample, not a complete inventory)

**Effect:** Read-only

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |

## saif docs search

Search Forge documentation

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>query</code> | Search query |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--limit</code> | No | Maximum number of results to return |

## saif doctor

Check environment health and fix issues

**Effect:** Read-only

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif doctor fix</code> | Fix environment issues (replaces saif update) |

## saif doctor fix

Fix environment issues (replaces saif update)

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--agent</code> | No | Update Forge Agent Plugins (registration and installed files) |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--self</code> | No | Update SAIF CLI itself |
| <code>--templates</code> | No | Update templates |
| <code>--tools</code> | No | Update development tools |

## saif mcp

Model Context Protocol server for AI assistant integration (use &#x27;saif agent&#x27; instead)

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif mcp init</code> | Initialize MCP server configuration for AI agents (VS Code) |
| <code>saif mcp start</code> | Start the MCP server (use &#x27;saif agent mcp&#x27; instead) |

## saif mcp init

Initialize MCP server configuration for AI agents (VS Code)

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--workspace-root</code>, <code>-w</code> | No | The workspace root directory to configure. Defaults to git root or current directory. |

## saif mcp start

Start the MCP server (use &#x27;saif agent mcp&#x27; instead)

**Effect:** Mutating

### Options

None.

## saif new

Create a new application based on a specified template

**Effect:** Mutating

### Options

None.

## saif otel

Query logs, traces, and metrics from Dynatrace

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif otel logs</code> | Query logs from Dynatrace |
| <code>saif otel metrics</code> | Query metrics (timeseries) from Dynatrace |
| <code>saif otel traces</code> | Query distributed traces (spans) from Dynatrace |

## saif otel logs

Query logs from Dynatrace

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>service</code> | Service to scope the default query to, e.g. policyportal (ignored with --query) |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--dt-env</code>, <code>--dynatrace-environment</code> | No | Dynatrace tenant to query directly, e.g. dev or prod (overrides the tenant derived from --environment) |
| <code>--env</code>, <code>--environment</code> | No | SAIF deployment environment to query, e.g. platformdev, test, uat, prod (selects the tenant and scopes traces) |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--from</code> | No | Timeframe start for the default query, e.g. now()-2h (ignored with --query) |
| <code>--level</code>, <code>--loglevel</code> | No | Only show logs at this level, e.g. error, warn, info (case-insensitive; ignored with --query) |
| <code>--limit</code> | No | Maximum records for the default query (ignored with --query; capped by the configured Dynatrace maximum) |
| <code>--query</code> | No | Raw DQL query (overrides the default for this signal) |
| <code>--source</code> | No | Log stream to return: all (default, nothing hidden), app (OpenTelemetry app logs, trace-correlated), or console (container stdout/stderr capture) (ignored with --query) |
| <code>--to</code> | No | Timeframe end for the default query, e.g. now() (ignored with --query) |
| <code>--trace-id</code> | No | Only show records for this trace id, e.g. e1f7f740cb2c79175ed238017dd80bc4 (ignored with --query) |

## saif otel metrics

Query metrics (timeseries) from Dynatrace

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>service</code> | Service to scope the default query to, e.g. policyportal (ignored with --query) |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--dt-env</code>, <code>--dynatrace-environment</code> | No | Dynatrace tenant to query directly, e.g. dev or prod (overrides the tenant derived from --environment) |
| <code>--env</code>, <code>--environment</code> | No | SAIF deployment environment to query, e.g. platformdev, test, uat, prod (selects the tenant and scopes traces) |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--from</code> | No | Timeframe start for the default query, e.g. now()-2h (ignored with --query) |
| <code>--include-probes</code> | No | Include health-probe-style routes (health/ready/live and route-less availability checks) that are excluded by default (ignored with --query) |
| <code>--limit</code> | No | Maximum records for the default query (ignored with --query; capped by the configured Dynatrace maximum) |
| <code>--query</code> | No | Raw DQL query (overrides the default for this signal) |
| <code>--to</code> | No | Timeframe end for the default query, e.g. now() (ignored with --query) |

## saif otel traces

Query distributed traces (spans) from Dynatrace

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>service</code> | Service to scope the default query to, e.g. policyportal (ignored with --query) |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--dt-env</code>, <code>--dynatrace-environment</code> | No | Dynatrace tenant to query directly, e.g. dev or prod (overrides the tenant derived from --environment) |
| <code>--env</code>, <code>--environment</code> | No | SAIF deployment environment to query, e.g. platformdev, test, uat, prod (selects the tenant and scopes traces) |
| <code>--failed</code> | No | Only show failed spans (request.is_failed == true) (ignored with --query) |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--from</code> | No | Timeframe start for the default query, e.g. now()-2h (ignored with --query) |
| <code>--include-probes</code> | No | Include health-probe-style routes (health/ready/live and route-less availability checks) that are excluded by default (ignored with --query) |
| <code>--limit</code> | No | Maximum records for the default query (ignored with --query; capped by the configured Dynatrace maximum) |
| <code>--query</code> | No | Raw DQL query (overrides the default for this signal) |
| <code>--to</code> | No | Timeframe end for the default query, e.g. now() (ignored with --query) |
| <code>--trace-id</code> | No | Only show records for this trace id, e.g. e1f7f740cb2c79175ed238017dd80bc4 (ignored with --query) |

## saif pipeline

Queue, monitor, and manage CI/CD pipeline builds

**Effect:** Read-only

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--repo</code>, <code>-r</code> | No | Repository name to target (searches across all ADO projects; alternative to --directory) |

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif pipeline approve</code> | Approve a pending build stage or checkpoint |
| <code>saif pipeline list</code> | List available pipelines for a repository |
| <code>saif pipeline logs</code> | Fetch build log output for a build (by build id or build URL) |
| <code>saif pipeline monitor</code> | Monitor the progress of a running build (by build id or build URL) |
| <code>saif pipeline open</code> | Open a build results page in the default browser (by build id or build URL) |
| <code>saif pipeline run</code> | Queue and run a pipeline build |

## saif pipeline approve

Approve a pending build stage or checkpoint

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--build-id</code> | No | Build ID to approve non-interactively (skips build selection prompt) |
| <code>--collection</code> | No | The Azure DevOps collection |
| <code>--directory</code> | No | Repository directory (defaults to current directory) |
| <code>--host</code> | No | The Azure DevOps host |
| <code>--pipeline-name</code> | No | Pipeline name to approve non-interactively (skips selection prompt) |
| <code>--project</code> | No | The Azure DevOps project |

## saif pipeline list

List available pipelines for a repository

**Effect:** Read-only

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--collection</code> | No | The Azure DevOps collection |
| <code>--directory</code> | No | Repository directory (defaults to current directory) |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--host</code> | No | The Azure DevOps host |
| <code>--project</code> | No | The Azure DevOps project |

## saif pipeline logs

Fetch build log output for a build (by build id or build URL)

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>build</code> | Build id, or a full build URL (e.g. https://dev.azure.com/.../_build/results?buildId=123) |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--all-steps</code> | No | Return every step in the build, ignoring any stage/job/step the pasted build URL points at |
| <code>--collection</code> | No | The Azure DevOps collection |
| <code>--follow</code>, <code>-f</code> | No | Continuously stream new log lines until the build completes (incompatible with --format json/jsonlines and --tail) |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--host</code> | No | The Azure DevOps host |
| <code>--job</code> | No | Filter output to all steps within the specified job (name, or a job id GUID) |
| <code>--project</code> | No | The Azure DevOps project |
| <code>--stage</code> | No | Filter output to all steps within the specified stage (name, or a stage id GUID) |
| <code>--status</code> | No | Filter steps by result status (e.g. failed, succeeded, skipped). Case-insensitive. |
| <code>--step</code> | No | Filter output to a specific step/task (name, or a step id GUID) |
| <code>--tail</code> | No | Limit output to the last N lines (applied across all matching steps) |

## saif pipeline monitor

Monitor the progress of a running build (by build id or build URL)

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>build</code> | Build id, or a full build URL (e.g. https://dev.azure.com/.../_build/results?buildId=123) |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--collection</code> | No | The Azure DevOps collection |
| <code>--format</code> | No | Output format (table, json, jsonlines) |
| <code>--host</code> | No | The Azure DevOps host |
| <code>--project</code> | No | The Azure DevOps project |

## saif pipeline open

Open a build results page in the default browser (by build id or build URL)

**Effect:** Mutating

### Arguments

| Argument | Description |
| --- | --- |
| <code>build</code> | Build id, or a full build URL (e.g. https://dev.azure.com/.../_build/results?buildId=123) |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--collection</code> | No | The Azure DevOps collection |
| <code>--host</code> | No | The Azure DevOps host |
| <code>--plain</code> | No | Print the resolved URL to stdout instead of opening the browser |
| <code>--project</code> | No | The Azure DevOps project |

## saif pipeline run

Queue and run a pipeline build

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--branch</code> | No | Branch to build (only applies with --repo; defaults to the repository&#x27;s default branch) |
| <code>--collection</code> | No | The Azure DevOps collection |
| <code>--directory</code> | No | Repository directory (defaults to current directory) |
| <code>--host</code> | No | The Azure DevOps host |
| <code>--pipeline-name</code> | No | Pipeline name to run non-interactively (skips selection prompt) |
| <code>--project</code> | No | The Azure DevOps project |

## saif publish

Apply a SAIF manifest to create Azure DevOps resources

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--directory</code> | No | The directory containing the SAIF manifest |

## saif repo

Repository operations

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif repo search</code> | Search for repositories across organizations |

## saif repo search

Search for repositories across organizations

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>query</code> | Repository name to search for |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--collection</code> | No | The Azure DevOps collection |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--host</code> | No | The Azure DevOps host |
| <code>--project</code> | No | The Azure DevOps project |
| <code>--verbose</code> | No | Show detailed repository information (pipelines, policies, reviewers) |

## saif search

Search across services and documentation

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>query</code> | Name or pattern to search for |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--verbose</code> | No | Show pipeline details for services |

## saif service

Discover services across environments and repositories

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif service describe</code> | Show a full topology view of a single service |
| <code>saif service search</code> | Search for services by name across environments and repositories |

## saif service describe

Show a full topology view of a single service

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>name</code> | The service name to describe (environment suffix optional) |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--env</code>, <code>--environment</code> | No | Limit the view to a single environment (e.g. prod, platformdev) |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--verbose</code> | No | Show additional identifiers (service key, app IDs, permission GUIDs, pipeline list) |

## saif service search

Search for services by name across environments and repositories

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>query</code> | Name or pattern to search for |

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--format</code> | No | Output format (table, json, jsonlines, plain) |
| <code>--verbose</code> | No | Show per-environment application registration details |

## saif token

Generate and manage OAuth tokens for SAIF applications (use &#x27;saif auth&#x27; instead)

**Effect:** Read-only

### Options

None.

### Subcommands

| Command | Description |
| --- | --- |
| <code>saif token clear</code> | Clear all cached OAuth tokens (use &#x27;saif auth clear&#x27; instead) |
| <code>saif token generate</code> | Generate an OAuth token for a SAIF application (use &#x27;saif auth generate&#x27; instead) |
| <code>saif token validate</code> | Decode and inspect a JWT token (use &#x27;saif auth validate&#x27; instead) |

## saif token clear

Clear all cached OAuth tokens (use &#x27;saif auth clear&#x27; instead)

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--force</code> | No | Skip confirmation prompt |

## saif token generate

Generate an OAuth token for a SAIF application (use &#x27;saif auth generate&#x27; instead)

**Effect:** Mutating

### Options

| Option | Required | Description |
| --- | --- | --- |
| <code>--name</code> | No | The display name of the Entra ID application (e.g., brishe-test) |

## saif token validate

Decode and inspect a JWT token (use &#x27;saif auth validate&#x27; instead)

**Effect:** Read-only

### Arguments

| Argument | Description |
| --- | --- |
| <code>token</code> | The JWT token to decode |

### Options

None.

## saif update

Update SAIF CLI, templates, and development tools (use &#x27;saif doctor fix&#x27; instead)

**Effect:** Mutating

### Options

None.

## Project templates

The following `saif new` commands come from repository template metadata, not locally installed templates. Required and default values describe template parameters; interactive prompting and conditional validation still apply. These commands create projects and may publish repositories and pipelines. Use `--no-publish` to scaffold without publishing. Inspect `saif new <template> --help` for shared repository options.

### saif new saif-api-exp

Create a new Experience API service (user-facing API that aggregates multiple process/system APIs)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--api_type</code> | No | <code>Experience</code> | <code>Experience</code> |  |
| <code>--application_type</code> | No | <code>api</code> | <code>api</code> |  |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--cli_runner</code> | No | <code>saif</code> | <code>dotnet</code>, <code>saif</code> |  |
| <code>--cosmosdb_api</code> | No | <code></code> | <code>nosql</code> |  |
| <code>--database_type</code> | No | <code>none</code> | <code>cosmosdb</code>, <code>none</code> |  |
| <code>--front_end_type</code> | No | <code>none</code> | <code>none</code>, <code>react</code> |  |
| <code>--has_webhook</code> | No | <code>false</code> |  |  |
| <code>--include_docs_site</code> | No | <code>false</code> |  |  |
| <code>--is_external_app</code> | No | <code>false</code> |  |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--oracle_instance</code> | No | <code></code> | <code>ENT</code>, <code>POL</code> |  |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>solution</code> | <code>solution</code> |  |

### saif new saif-api-proc

Create a new Process API service (orchestrates business workflows and system APIs)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--api_type</code> | No | <code>Process</code> | <code>Process</code> |  |
| <code>--application_type</code> | No | <code>api</code> | <code>api</code> |  |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--cli_runner</code> | No | <code>saif</code> | <code>dotnet</code>, <code>saif</code> |  |
| <code>--cosmosdb_api</code> | No | <code></code> | <code>nosql</code> |  |
| <code>--database_type</code> | No | <code>none</code> | <code>none</code> |  |
| <code>--front_end_type</code> | No | <code>none</code> | <code>none</code> |  |
| <code>--include_docs_site</code> | No | <code>false</code> |  |  |
| <code>--is_external_app</code> | No | <code>false</code> |  |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--oracle_instance</code> | No | <code></code> | <code>ENT</code>, <code>POL</code> |  |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>solution</code> | <code>solution</code> |  |

### saif new saif-api-sys

Create a new System API service (integrates with specific backend systems or data sources)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--api_type</code> | No | <code>System</code> | <code>System</code> |  |
| <code>--application_type</code> | No | <code>api</code> | <code>api</code> |  |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--cli_runner</code> | No | <code>saif</code> | <code>dotnet</code>, <code>saif</code> |  |
| <code>--cosmosdb_api</code> | No | <code></code> | <code>nosql</code> |  |
| <code>--database_type</code> | No | <code>none</code> | <code>cosmosdb</code>, <code>none</code>, <code>oracle</code> |  |
| <code>--front_end_type</code> | No | <code>none</code> | <code>none</code> |  |
| <code>--include_docs_site</code> | No | <code>false</code> |  |  |
| <code>--is_external_app</code> | No | <code>false</code> |  |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--oracle_instance</code> | No | <code></code> | <code>ENT</code>, <code>POL</code> |  |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>solution</code> | <code>solution</code> |  |

### saif new saif-business-roles

Create a new business roles repository with `saif new saif-business-roles` for managing Entra ID (corp) or Okta (external) group membership. Use this template instead of the deprecated `{Project}-okta-business-roles-*` repository naming pattern.

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--language</code> | No | <code>terraform</code> | <code>terraform</code> |  |
| <code>--name</code> | No | <code>SAIF.BusinessRoles</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--tenant</code> | Yes |  | <code>corp</code>, <code>external</code> | The tenant type (corp for Entra ID groups, external for Okta groups) |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-dynatrace-config

Create Dynatrace monitoring configuration using Terraform for application observability

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--language</code> | No | <code>terraform</code> | <code>terraform</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--type</code> | No | <code>solution</code> | <code>solution</code> |  |

### saif new saif-event-service

Create a new event-driven service with Azure Service Bus integration and TypeSpec contracts

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--cli_runner</code> | No | <code>saif</code> | <code>dotnet</code>, <code>saif</code> |  |
| <code>--include_docs_site</code> | No | <code>false</code> |  |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>solution</code> | <code>solution</code> |  |

### saif new saif-feature-api

Add a new API feature to an existing SAIF application (includes API project, tests, and infrastructure)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--api_type</code> | No | <code>Experience</code> | <code>Experience</code>, <code>None</code>, <code>Process</code>, <code>System</code> |  |
| <code>--application_type</code> | No | <code>api</code> | <code>api</code> |  |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--cosmosdb_api</code> | No | <code></code> | <code>nosql</code> |  |
| <code>--database_type</code> | No | <code>none</code> | <code>cosmosdb</code>, <code>none</code>, <code>oracle</code> |  |
| <code>--front_end_type</code> | No | <code>none</code> | <code>none</code>, <code>react</code> |  |
| <code>--is_external_app</code> | No | <code>false</code> |  |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--oracle_instance</code> | No | <code></code> | <code>ENT</code>, <code>POL</code> |  |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--project_id</code> | No | <code>ProjectId1</code> |  |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-feature-base

Create the base structure for a new SAIF application with Aspire AppHost and solution file

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--api_type</code> | No | <code>Experience</code> | <code>Experience</code>, <code>None</code>, <code>Process</code>, <code>System</code> |  |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--cosmosdb_api</code> | No | <code></code> | <code>nosql</code> |  |
| <code>--database_type</code> | No | <code>none</code> | <code>cosmosdb</code>, <code>none</code>, <code>oracle</code> |  |
| <code>--front_end_type</code> | No | <code>none</code> | <code>none</code>, <code>react</code> |  |
| <code>--has_webhook</code> | No | <code>false</code> |  |  |
| <code>--is_external_app</code> | No | <code>false</code> |  |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--oracle_instance</code> | No | <code></code> | <code>ENT</code>, <code>POL</code> |  |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--project_id</code> | No | <code>ProjectId1</code> |  |  |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>solution</code> | <code>solution</code> |  |

### saif new saif-feature-database-cosmosdb

Add Azure Cosmos DB database support to an existing SAIF application (includes infrastructure and data seeding)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--cosmosdb_api</code> | No | <code></code> | <code>nosql</code> |  |
| <code>--database_type</code> | No | <code>cosmosdb</code> | <code>cosmosdb</code> |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--oracle_instance</code> | No | <code></code> | <code>ENT</code>, <code>POL</code> |  |
| <code>--project_id</code> | No | <code>ProjectId1</code> |  |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-feature-database-oracle

Add Oracle database support to an existing SAIF application (includes infrastructure and data seeding)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--cosmosdb_api</code> | No | <code></code> | <code>nosql</code> |  |
| <code>--database_type</code> | No | <code>oracle</code> | <code>oracle</code> |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--oracle_instance</code> | No | <code></code> | <code>ENT</code>, <code>POL</code> |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-feature-dependabot

Add Dependabot dependency scanning configuration to an existing SAIF application (includes GitHub config and Azure DevOps scan pipeline)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--enable_docker</code> | No | <code>false</code> |  | Include Docker ecosystem in Dependabot configuration |
| <code>--enable_github_actions</code> | No | <code>false</code> |  | Include GitHub Actions ecosystem in Dependabot configuration |
| <code>--enable_npm</code> | No | <code>false</code> |  | Include npm ecosystem in Dependabot configuration |
| <code>--enable_nuget</code> | No | <code>true</code> |  | Include NuGet ecosystem in Dependabot configuration |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--project_id</code> | No | <code>ProjectId1</code> |  |  |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-feature-docs-site

Add MkDocs documentation site configuration with Azure DevOps pipelines to an existing SAIF application (deploys to docs.saif.com)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--container_folder_name</code> | No | <code></code> |  | The folder name for the docs site URL path (docs.saif.com/{folder}/). Must be unique across all SAIF projects — deploying will overwrite any existing content at that path. Defaults to the project ID. |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--project_id</code> | No | <code>ProjectId1</code> |  |  |
| <code>--site_name</code> | No | <code></code> |  | The display name for the documentation site |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-feature-event-subscription

Add Azure Service Bus event subscription with Azure Functions to an existing SAIF application

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--cli_runner</code> | No | <code>saif</code> | <code>dotnet</code>, <code>saif</code> |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--project_id</code> | No | <code>ProjectId1</code> |  |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-feature-front-end-react

Add a React single-page application frontend to an existing SAIF application (Vite + TypeScript)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--application_type</code> | No | <code>web</code> | <code>web</code> |  |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--has_api</code> | No | <code>true</code> |  | Whether this frontend connects to an API backend. When false, auth-related files are excluded for standalone frontends. |
| <code>--is_external_app</code> | No | <code>false</code> |  |  |
| <code>--language</code> | No | <code>TypeScript</code> | <code>TypeScript</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--project_id</code> | No | <code>ProjectId1</code> |  |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-feature-web-standalone

Add standalone web infrastructure for a frontend without API backend. Includes Azure DevOps pipelines, Terraform, and Aspire AppHost configuration.

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--application_type</code> | No | <code>web</code> | <code>web</code> |  |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--is_external_app</code> | No | <code>false</code> |  |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-feature-webhook

Add webhook receiver endpoint with DevTunnel support for local development to an existing SAIF application

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--project_id</code> | No | <code>ProjectId1</code> |  |  |
| <code>--skip_setup</code> | No | <code>false</code> |  |  |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-frontend-service

Standalone React frontend template without API backend dependencies. Supports optional custom domain via Azure Front Door. This template composes saif-feature-base, saif-feature-web-standalone, and saif-feature-front-end-react.

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--api_type</code> | No | <code>None</code> | <code>None</code> |  |
| <code>--application_type</code> | No | <code>web</code> | <code>web</code> |  |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> | The business domain (e.g., it, claims, hr) |
| <code>--cli_runner</code> | No | <code>saif</code> | <code>dotnet</code>, <code>saif</code> |  |
| <code>--include_docs_site</code> | No | <code>false</code> |  |  |
| <code>--is_external_app</code> | No | <code>false</code> |  | Whether this is an external-facing application |
| <code>--language</code> | No | <code>TypeScript</code> | <code>TypeScript</code> |  |
| <code>--name</code> | No | <code>SAIF.App1</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> | The team that owns this application |
| <code>--tenant</code> | No | <code>corporate</code> | <code>corporate</code> |  |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-nuget-package

Create a new .NET NuGet package project with CI/CD pipeline for internal package distribution

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--businessdomain</code> | Yes |  | <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--language</code> | No | <code>C#</code> | <code>C#</code> |  |
| <code>--name</code> | No | <code>SAIF.Nuget</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--type</code> | No | <code>solution</code> | <code>solution</code> |  |

### saif new saif-terraform-module

Create a new reusable Terraform module project with automated documentation and testing

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--language</code> | No | <code>Terraform</code> | <code>Terraform</code> |  |
| <code>--name</code> | No | <code>SAIF.Terraform.Module</code> |  | The default name symbol |
| <code>--type</code> | No | <code>project</code> | <code>project</code> |  |

### saif new saif-test-tools

Create test tooling infrastructure (external test users, role assignments, token generation pipelines)

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--business_domain</code> | Yes |  | <code>it</code> |  |
| <code>--language</code> | No | <code>YAML</code> | <code>YAML</code> |  |
| <code>--name</code> | No | <code>SAIF.Test</code> |  | The default name symbol |
| <code>--type</code> | No | <code>solution</code> | <code>solution</code> |  |

### saif new saif-typespec-package

Create a new TypeSpec package for defining reusable API contracts and custom decorators

| Parameter | Required | Default | Choices | Description |
| --- | --- | --- | --- | --- |
| <code>--application_type</code> | No | <code>pkg</code> | <code>pkg</code> |  |
| <code>--business_domain</code> | Yes |  | <code>au</code>, <code>clm</code>, <code>doc</code>, <code>hr</code>, <code>it</code>, <code>lgl</code>, <code>pol</code> |  |
| <code>--language</code> | No | <code>TypeSpec</code> | <code>TypeSpec</code> |  |
| <code>--name</code> | No | <code>saif-typespec-package</code> |  | The default name symbol |
| <code>--owner</code> | Yes |  | <code>Architecture</code>, <code>CaseManagement</code>, <code>Claims</code>, <code>Corporate</code>, <code>Customer</code>, <code>Documents</code>, <code>Infrastructure</code>, <code>Platform</code>, <code>Policy</code>, <code>Regulatory</code> |  |
| <code>--type</code> | No | <code>solution</code> | <code>solution</code> |  |

[Source manifest](https://github.com/saif-corp/forge/blob/main/src/dotnet/SAIF.Platform.Sdk/CliKnowledge/Manifests/cli-manifest.json)
