Skip to main content

Configuration Options

Every setting in Prisma AIRS CLI, with its tenant-file key and default value.


Config Cascade​

Settings resolve through a three-level cascade (highest priority wins):

  1. CLI flags
  2. The selected tenant's config file (airs-cli tenant switch <name>)
  3. Zod schema defaults

Environment variables are never consulted. See environment variables for the two registry-location variables and the SDK diagnostic switches.

info

The ~ prefix in any path value is expanded to $HOME at load time.


Tenant config file​

A JSON file registered with airs-cli tenant create. Keys use camelCase matching the Zod schema. Edit keys with airs-cli tenant set <name> <key> [value], remove them with airs-cli tenant unset <name> <key>, and read them with airs-cli tenant get or airs-cli tenant read.

{
"mgmtClientId": "airs-cli@1234567890.iam.panserviceaccount.com",
"mgmtClientSecret": "…",
"mgmtTsgId": "1234567890",
"airsApiKey": "…",
"scanConcurrency": 3,
"defaultOutput": "json"
}

Credentials​

There is exactly one OAuth credential set per tenant. Management, DLP, Red Team, Model Security, AgentGuard, AI Gateway, and SCM IAM commands all authenticate with it, through one token endpoint.

KeyRequiredPurpose
mgmtClientIdYesSCM OAuth2 client ID
mgmtClientSecretYesSCM OAuth2 client secret
mgmtTsgIdYesTenant service group ID; pinned at registration
mgmtTokenEndpoint--OAuth2 token URL for every product (default https://auth.apps.paloaltonetworks.com/oauth2/access_token)
airsApiKeyscan commandsRuntime scan API key
airsApiTokenscan commandsPre-obtained scan bearer token (alternative to the key)
aiGwInferenceEndpoint, aiGwInferenceApiKeyinference commandsAI Gateway runtime base URL and workspace key; not SCM OAuth
aiGwInferenceModel, aiGwEmbeddingModel--Default models for inference commands
typesafeApiKeyredteam judgeTypeSafe API key for the Jev judge; not SCM OAuth. TYPESAFE_API_KEY in the environment is ignored
typesafeBaseUrl, typesafeModel--TypeSafe base URL (default https://api.typesafe.ai) and model (default jev-latest) for redteam judge

Endpoints​

Base URLs default to the SDK constants. Overrides exist for test servers and private routing; they never change how authentication works.

KeyDefault
airsApiEndpointhttps://service.api.aisecurity.paloaltonetworks.com
mgmtEndpointhttps://api.apps.paloaltonetworks.com/aisec
mgmtDashboardEndpointhttps://api.apps.paloaltonetworks.com/aisec
dlpEndpointhttps://api.dlp.paloaltonetworks.com
redTeamDataEndpoint, redTeamMgmtEndpoint, redTeamNetworkBrokerEndpointhttps://api.apps.paloaltonetworks.com/ai-red-teaming/{data-plane,mgmt-plane,data-plane/network-broker}
modelSecDataEndpoint, modelSecMgmtEndpointhttps://api.apps.paloaltonetworks.com/aims/{data,mgmt}
agentGuardDataEndpoint, agentGuardMgmtEndpointhttps://api.apps.paloaltonetworks.com/aiag/{data,mgmt}
aiGwDataEndpoint, aiGwAdminEndpointhttps://api.apps.paloaltonetworks.com/ai_gw/v2, …/ai_gw/admin/v2
iamEndpointhttps://api.apps.paloaltonetworks.com/iam/v1

Every product except DLP lives on api.apps.paloaltonetworks.com; DLP stays on api.dlp.paloaltonetworks.com. Retired keys redTeamTokenEndpoint, modelSecTokenEndpoint, agentGuardTokenEndpoint, and aiGwTokenEndpoint are ignored when present; airs-cli doctor points them out.

Tuning​

KeyDefaultWhat it does
scanConcurrency5Parallel scan requests (1--20)
airsNumRetries5SDK retry count for scan calls (0--5)
defaultOutputprettyDefault read format (pretty, table, markdown, csv, json, yaml); the global --output flag overrides it
dataDir~/.prisma-airs/runsBulk-scan state directory
Concurrency tuning

scanConcurrency above 5 risks AIRS rate limiting. Increase cautiously.