A comprehensive command-line interface for the Informatica Intelligent Cloud Services (IICS) platform REST API v3. Manage assets, users, connections, export/import packages, and more - from your terminal or CI/CD pipelines.
- Full API v3 coverage - objects, connections, schedules, export/import, users, roles, permissions, runtime environments, agents, tags, source control, and more
- Interactive setup - guided profile wizard on first run, or via
iics profile add - Multi-profile configuration - switch between dev/staging/prod orgs with
--profile - Session caching - reuses sessions across invocations (30-min window) to avoid repeated logins
- Automatic session refresh - transparent 401 retry with re-authentication
- Flexible output - human-readable tables (default) or JSON (
--output json) - CI/CD friendly - environment variable overrides,
--yesflag for non-interactive use, JSON output for scripting - Cross-platform - builds for Linux, macOS, and Windows (amd64 & arm64)
Requires Go 1.25 or later.
go install github.com/jbrazda/iics-cli@latestDownload the pre-built binary for your platform from the Releases page.
git clone https://github.com/jbrazda/iics-cli.git
cd iics-cli
make buildiics profile addThe wizard prompts for your username, password, and region, then saves the profile to
~/.iics/config.yaml. You can also set up multiple named profiles:
iics profile add dev
iics profile add prod
iics profile set-default devAlternatively, create the config file manually - see the Configuration section.
# Uses default profile; prompts for password if not in config
iics login
# Use a specific profile
iics login --profile prod
# Override credentials via environment
IICS_USERNAME=user@company.com IICS_PASSWORD=secret iics login# List objects
iics objects list --type MTT
iics objects list # all objects, auto-paginated
iics objects list --type MTT # all mappings, auto-paginated
iics objects list --type MTT --limit 50 # first 50 only
iics objects list --limit 50 --skip 100 # results 101-150
# List objects as JSON
iics objects list --type DTEMPLATE --output json
# List connections
iics connection list
# Get a specific connection
iics connection get --id <connection-id>
# Export assets
iics export create --name "my-export" --ids <asset-id-1>,<asset-id-2>
iics export status --id <job-id>
iics export download --id <job-id> --output export.zip
# Import assets
iics import upload --file export.zip
iics import start --id <job-id>
iics import status --id <job-id>
# List users
iics user list
# Logout
iics logoutdefaultProfile: dev
style:
theme: default # default | minimal | compact | plain | markdown | gh
noColor: false # true = disable color permanently (same as --no-color)
headerColor: "" # lipgloss color: "6"=cyan, "244"=gray, "#FF0000"=hex (empty = theme default)
profiles:
dev:
name: "Development Org"
region: "USE4"
username: "user@company.com"
password: ""
loginUrl: "https://use4.dm-us.informaticacloud.com/saas/public/core/v3/login"
baseApiUrl: "https://use4.dm-us.informaticacloud.com/saas"
caiUrl: "https://use4-cai.dm-us.informaticacloud.com"
prod:
name: "Production Org"
region: "EMEA"
username: "admin@company.com"
password: "@keyring" # real password stored in OS keychain
loginUrl: "https://dm-em.informaticacloud.com/saas/public/core/v3/login"
baseApiUrl: "https://dm-em.informaticacloud.com/saas"
caiUrl: "https://dm-em-cai.informaticacloud.com"The loginUrl, baseApiUrl, and caiUrl fields are populated automatically after the first
iics login - you do not need to set them manually.
The style section controls table output appearance. Available themes:
| Theme | Description |
|---|---|
default |
Unicode rounded borders, cyan bold headers (TTY only) |
minimal |
No borders, colored bold headers with unicode underline |
compact |
No borders, gray bold headers, 1-space column gap (TTY only) |
plain |
ASCII borders, no color - used automatically for non-TTY output |
markdown |
GitHub-flavored markdown table, no color, always rendered regardless of TTY |
gh |
GitHub CLI-style: no borders, no separator, plain headers, no color, always rendered regardless of TTY |
Non-TTY output (piped, redirected) always uses plain regardless of the configured theme.
The markdown and gh themes are exceptions - they always render as-is even when output
is piped, since they are already colorless.
The NO_COLOR environment variable is also respected.
The style.headerColor field accepts a lipgloss color string ("6" for cyan, "244" for
gray, "#FF0000" for hex) and overrides the built-in header color for default and minimal
themes. Leave empty to use the theme default.
| Variable | Description |
|---|---|
IICS_PROFILE |
Override default profile |
IICS_USERNAME |
Override profile username |
IICS_PASSWORD |
Override profile password (takes precedence over keychain) |
IICS_REGION |
Override profile region |
IICS_LOGIN_URL |
Override computed login URL |
IICS_CAI_URL |
Override profile caiUrl |
IICS_OUTPUT |
Override default output format |
IICS_THEME |
Override table theme (same values as --theme flag) |
Environment variables take precedence over config file values.
| Region | ssLogin Host |
|---|---|
| US, USW1, USE2, USW3, USE4, USW5, USE6 | dm-us.informaticacloud.com |
| USW1-1, USW3-1 | dm1-us.informaticacloud.com |
| USW1-2 | dm2-us.informaticacloud.com |
| CAC1 | dm-na.informaticacloud.com |
| APSE1, APJ | dm-ap.informaticacloud.com |
| APNE1 | dm1-ap.informaticacloud.com |
| EMEA, EMWE1 | dm-em.informaticacloud.com |
Passwords stored in ~/.iics/config.yaml can be protected using the OS keychain instead of
keeping them in plaintext. When you add or edit a profile interactively, iics-cli offers to
store the password in the OS keychain and writes the sentinel value @keyring in the config
file instead of the real password.
Supported backends:
| Platform | Backend |
|---|---|
| macOS | macOS Keychain (security framework) |
| Linux | D-Bus Secret Service (e.g. GNOME Keyring, KWallet) |
| Windows | Windows Credential Manager |
To store a password for an existing profile:
iics profile set-password <profile-name>To move a profile's password into the keychain after manual config edits:
iics profile set-password devIICS_PASSWORD always takes precedence over both the keychain and plaintext config, making
it easy to override credentials in CI pipelines without touching the config file.
| Command | Alias | Subcommands | Description |
|---|---|---|---|
| profile | add, edit, list, delete, set-default, set-password, show |
Manage connection profiles | |
| login | Authenticate and cache session | ||
| logout | Invalidate session | ||
| objects | list, dependencies |
List/search assets, find dependencies | |
| lookup | Resolve object IDs, names, and paths | ||
| connection | conn |
list, get, create, update, delete |
Manage connections |
| export | run, start, status, download, create |
Export asset packages | |
| import | imp |
run, upload, start, status, download-log |
Import asset packages |
| publish | start, status, run |
Publish CAI assets to the runtime | |
| unpublish | start, status, run |
Unpublish CAI assets from the runtime | |
| package | expand, create, dependencies |
Extract, assemble, or inspect dependencies of IICS export packages | |
| project | create, update, delete |
Manage projects | |
| folder | create, update, delete |
Manage folders | |
| schedule | list, get, create, update, delete |
Manage schedules | |
| user | list, get, create, update, delete |
Manage users | |
| usergroup | ug |
list, get, create, update, delete |
Manage user groups |
| role | list, get, create, update, delete |
Manage roles | |
| privilege | list |
List available privileges | |
| runtime | rt |
list, get, create, update |
Manage runtime environments |
| agent | list, get, details, start, stop |
Manage Secure Agents | |
| tag | assign, remove |
Assign/remove tags on objects | |
| permission | perm |
get, set, delete |
Manage object-level permissions |
| activitylog | list, get |
Query activity logs for completed jobs | |
| auditlog | list |
Query organization audit log (V2 API) | |
| securitylog | list |
Query security audit log | |
| metering | get, download |
Query usage and metering data | |
| sourcecontrol | sc |
checkout, checkin, pull, commit |
Source control operations |
| state | fetch, load |
Fetch/load object state snapshots | |
| completion | bash, zsh, fish, powershell |
Generate shell completion scripts |
Keeping completions up to date: After adding or changing any command or flag, regenerate the shell completion scripts by running
make completions. The pre-generated scripts live in thecompletions/directory and must be committed together with the code change.
| Flag | Short | Description |
|---|---|---|
--profile |
-p |
Profile to use (overrides default) |
--output |
-o |
Output format: table (default), json, csv, yaml |
--verbose |
-v |
Enable verbose output |
--no-color |
Disable colored output and force plain table theme |
|
--theme |
Table theme: default, minimal, compact, plain, markdown, gh (overrides config) |
|
--config |
Config file path (default ~/.iics/config.yaml) |
|
--debug |
Print full HTTP request/response trace to stderr |
- Go 1.25+
- Make
# Build
make build
# Run tests
make test
# Run linter
make lint
# Run all checks
make allmake installCompiles the binary and installs it to $GOPATH/bin (typically ~/go/bin), making iics available system-wide without specifying a path. The build injects the current git tag or commit SHA as the version string via -ldflags, and strips debug symbols (-s -w) to reduce binary size.
See docs/DESIGN.md for the full design document.
See CONTRIBUTING.md for guidelines.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.