{"id":47355318,"url":"https://github.com/jbrazda/iics-cli","last_synced_at":"2026-05-11T22:06:14.823Z","repository":{"id":342946160,"uuid":"1175541816","full_name":"jbrazda/iics-cli","owner":"jbrazda","description":"Informaticaa IICS(IDMC) API CLI implemented in go","archived":false,"fork":false,"pushed_at":"2026-05-11T20:19:36.000Z","size":1340,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T20:32:27.617Z","etag":null,"topics":["cli-tool","go","idmc","iics","informatica"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jbrazda.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-07T21:12:15.000Z","updated_at":"2026-04-10T12:17:08.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jbrazda/iics-cli","commit_stats":null,"previous_names":["jbrazda/iics-cli"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/jbrazda/iics-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrazda%2Fiics-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrazda%2Fiics-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrazda%2Fiics-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrazda%2Fiics-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbrazda","download_url":"https://codeload.github.com/jbrazda/iics-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbrazda%2Fiics-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32914581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-11T17:09:15.040Z","status":"ssl_error","status_checked_at":"2026-05-11T17:08:45.420Z","response_time":120,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-tool","go","idmc","iics","informatica"],"created_at":"2026-03-18T02:11:19.355Z","updated_at":"2026-05-11T22:06:14.817Z","avatar_url":"https://github.com/jbrazda.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iics - Informatica Intelligent Cloud Services CLI\n\nA comprehensive command-line interface for the [Informatica Intelligent Cloud Services (IICS)](https://www.informatica.com/products/cloud-integration.html) platform REST API v3. Manage assets, users, connections, export/import packages, and more - from your terminal or CI/CD pipelines.\n\n## Features\n\n- **Full API v3 coverage** - objects, connections, schedules, export/import, users, roles, permissions, runtime environments, agents, tags, source control, and more\n- **Interactive setup** - guided profile wizard on first run, or via `iics profile add`\n- **Multi-profile configuration** - switch between dev/staging/prod orgs with `--profile`\n- **Session caching** - reuses sessions across invocations (30-min window) to avoid repeated logins\n- **Automatic session refresh** - transparent 401 retry with re-authentication\n- **Flexible output** - human-readable tables (default) or JSON (`--output json`)\n- **CI/CD friendly** - environment variable overrides, `--yes` flag for non-interactive use, JSON output for scripting\n- **Cross-platform** - builds for Linux, macOS, and Windows (amd64 \u0026 arm64)\n\n## Installation\n\n### From source\n\nRequires Go 1.25 or later.\n\n```bash\ngo install github.com/jbrazda/iics-cli@latest\n```\n\n### From releases\n\nDownload the pre-built binary for your platform from the [Releases](https://github.com/jbrazda/iics-cli/releases) page.\n\n### Build from source\n\n```bash\ngit clone https://github.com/jbrazda/iics-cli.git\ncd iics-cli\nmake build\n```\n\n## Quick Start\n\n### 1. Set up a profile\n\n```bash\niics profile add\n```\n\nThe wizard prompts for your username, password, and region, then saves the profile to\n`~/.iics/config.yaml`. You can also set up multiple named profiles:\n\n```bash\niics profile add dev\niics profile add prod\niics profile set-default dev\n```\n\nAlternatively, create the config file manually - see the [Configuration](#configuration) section.\n\n### 2. Login\n\n```bash\n# Uses default profile; prompts for password if not in config\niics login\n\n# Use a specific profile\niics login --profile prod\n\n# Override credentials via environment\nIICS_USERNAME=user@company.com IICS_PASSWORD=secret iics login\n```\n\n### 3. Use commands\n\n```bash\n# List objects\niics objects list --type MTT\n\niics objects list                       # all objects, auto-paginated\niics objects list --type MTT            # all mappings, auto-paginated\niics objects list --type MTT --limit 50 # first 50 only\niics objects list --limit 50 --skip 100 # results 101-150\n\n# List objects as JSON\niics objects list --type DTEMPLATE --output json\n\n# List connections\niics connection list\n\n# Get a specific connection\niics connection get --id \u003cconnection-id\u003e\n\n# Export assets\niics export create --name \"my-export\" --ids \u003casset-id-1\u003e,\u003casset-id-2\u003e\niics export status --id \u003cjob-id\u003e\niics export download --id \u003cjob-id\u003e --output export.zip\n\n# Import assets\niics import upload --file export.zip\niics import start --id \u003cjob-id\u003e\niics import status --id \u003cjob-id\u003e\n\n# List users\niics user list\n\n# Logout\niics logout\n```\n\n## Configuration\n\n### Config file (`~/.iics/config.yaml`)\n\n```yaml\ndefaultProfile: dev\nstyle:\n  theme: default     # default | minimal | compact | plain | markdown | gh\n  noColor: false     # true = disable color permanently (same as --no-color)\n  headerColor: \"\"    # lipgloss color: \"6\"=cyan, \"244\"=gray, \"#FF0000\"=hex (empty = theme default)\nprofiles:\n  dev:\n    name: \"Development Org\"\n    region: \"USE4\"\n    username: \"user@company.com\"\n    password: \"\"\n    loginUrl: \"https://use4.dm-us.informaticacloud.com/saas/public/core/v3/login\"\n    baseApiUrl: \"https://use4.dm-us.informaticacloud.com/saas\"\n    caiUrl: \"https://use4-cai.dm-us.informaticacloud.com\"\n  prod:\n    name: \"Production Org\"\n    region: \"EMEA\"\n    username: \"admin@company.com\"\n    password: \"@keyring\"   # real password stored in OS keychain\n    loginUrl: \"https://dm-em.informaticacloud.com/saas/public/core/v3/login\"\n    baseApiUrl: \"https://dm-em.informaticacloud.com/saas\"\n    caiUrl: \"https://dm-em-cai.informaticacloud.com\"\n```\n\nThe `loginUrl`, `baseApiUrl`, and `caiUrl` fields are populated automatically after the first\n`iics login` - you do not need to set them manually.\n\nThe `style` section controls table output appearance. Available themes:\n\n| Theme      | Description                                                                                            |\n|------------|--------------------------------------------------------------------------------------------------------|\n| `default`  | Unicode rounded borders, cyan bold headers (TTY only)                                                  |\n| `minimal`  | No borders, colored bold headers with unicode underline                                                |\n| `compact`  | No borders, gray bold headers, 1-space column gap (TTY only)                                           |\n| `plain`    | ASCII borders, no color - used automatically for non-TTY output                                        |\n| `markdown` | GitHub-flavored markdown table, no color, always rendered regardless of TTY                            |\n| `gh`       | GitHub CLI-style: no borders, no separator, plain headers, no color, always rendered regardless of TTY |\n\nNon-TTY output (piped, redirected) always uses `plain` regardless of the configured theme.\nThe `markdown` and `gh` themes are exceptions - they always render as-is even when output\nis piped, since they are already colorless.\nThe `NO_COLOR` environment variable is also respected.\n\nThe `style.headerColor` field accepts a lipgloss color string (`\"6\"` for cyan, `\"244\"` for\ngray, `\"#FF0000\"` for hex) and overrides the built-in header color for `default` and `minimal`\nthemes. Leave empty to use the theme default.\n\n### Environment variable overrides\n\n| Variable                    | Description                                                                              |\n|-----------------------------|------------------------------------------------------------------------------------------|\n| `IICS_PROFILE`              | Override default profile                                                                 |\n| `IICS_USERNAME`             | Override profile username                                                                |\n| `IICS_PASSWORD`             | Override profile password (takes precedence over keychain)                               |\n| `IICS_REGION`               | Override profile region                                                                  |\n| `IICS_LOGIN_URL`            | Override computed login URL                                                              |\n| `IICS_CAI_URL`              | Override profile `caiUrl`                                                                |\n| `IICS_OUTPUT`               | Override default output format                                                           |\n| `IICS_THEME`                | Override table theme (same values as `--theme` flag)                                     |\n| `IICS_VALID_DEPLOY_TARGETS` | Override valid target allowlist for `iics release` commands (comma-separated)            |\n| `IICS_TARGET_PROFILE_MAP`   | Override target to profile mapping for `iics release plan` (format `TARGET=profile,...`) |\n| `IICS_USER_\u003cTARGET\u003e`        | CI target username fallback for `iics release plan` when profile is not configured       |\n| `IICS_PWD_\u003cTARGET\u003e`         | CI target password fallback for `iics release plan` when profile is not configured       |\n| `IICS_REGION_\u003cTARGET\u003e`      | Optional CI target region for `iics release plan`                                        |\n| `IICS_LOGIN_URL_\u003cTARGET\u003e`   | Optional CI target login URL for `iics release plan`                                     |\n\nEnvironment variables take precedence over config file values.\n\n### Supported regions\n\n| Region                                 | ssLogin Host                |\n|----------------------------------------|-----------------------------|\n| US, USW1, USE2, USW3, USE4, USW5, USE6 | dm-us.informaticacloud.com  |\n| USW1-1, USW3-1                         | dm1-us.informaticacloud.com |\n| USW1-2                                 | dm2-us.informaticacloud.com |\n| CAC1                                   | dm-na.informaticacloud.com  |\n| APSE1, APJ                             | dm-ap.informaticacloud.com  |\n| APNE1                                  | dm1-ap.informaticacloud.com |\n| EMEA, EMWE1                            | dm-em.informaticacloud.com  |\n\n## Security\n\nPasswords stored in `~/.iics/config.yaml` can be protected using the OS keychain instead of\nkeeping them in plaintext. When you add or edit a profile interactively, iics-cli offers to\nstore the password in the OS keychain and writes the sentinel value `@keyring` in the config\nfile instead of the real password.\n\nSupported backends:\n\n| Platform | Backend                                            |\n|----------|----------------------------------------------------|\n| macOS    | macOS Keychain (`security` framework)              |\n| Linux    | D-Bus Secret Service (e.g. GNOME Keyring, KWallet) |\n| Windows  | Windows Credential Manager                         |\n\nTo store a password for an existing profile:\n\n```bash\niics profile set-password \u003cprofile-name\u003e\n```\n\nTo move a profile's password into the keychain after manual config edits:\n\n```bash\niics profile set-password dev\n```\n\n`IICS_PASSWORD` always takes precedence over both the keychain and plaintext config, making\nit easy to override credentials in CI pipelines without touching the config file.\n\n## Commands\n\n| Command                                              | Alias  | Subcommands                                                            | Description                                                        |\n|------------------------------------------------------|--------|------------------------------------------------------------------------|--------------------------------------------------------------------|\n| [profile](docs/documentation/profile.md)             |        | `add`, `edit`, `list`, `delete`, `set-default`, `set-password`, `show` | Manage connection profiles                                         |\n| [login](docs/documentation/login.md)                 |        |                                                                        | Authenticate and cache session                                     |\n| [logout](docs/documentation/logout.md)               |        |                                                                        | Invalidate session                                                 |\n| [objects](docs/documentation/objects.md)             |        | `list`, `dependencies`                                                 | List/search assets, find dependencies                              |\n| [lookup](docs/documentation/lookup.md)               |        |                                                                        | Resolve object IDs, names, and paths                               |\n| [connection](docs/documentation/connection.md)       | `conn` | `list`, `get`, `create`, `update`, `delete`                            | Manage connections                                                 |\n| [export](docs/documentation/export.md)               |        | `run`, `start`, `status`, `download`, `create`                         | Export asset packages                                              |\n| [import](docs/documentation/import.md)               | `imp`  | `run`, `upload`, `start`, `status`, `download-log`                     | Import asset packages                                              |\n| [publish](docs/documentation/publish.md)             |        | `start`, `status`, `run`                                               | Publish CAI assets to the runtime                                  |\n| [unpublish](docs/documentation/unpublish.md)         |        | `start`, `status`, `run`                                               | Unpublish CAI assets from the runtime                              |\n| [package](docs/documentation/package.md)             |        | `expand`, `create`, `dependencies`                                     | Extract, assemble, or inspect dependencies of IICS export packages |\n| [release](docs/documentation/release.md)             |        | `manifest`, `validate`, `plan`                                         | Generate CI release manifests and per-environment plan files       |\n| [project](docs/documentation/project.md)             |        | `create`, `update`, `delete`                                           | Manage projects                                                    |\n| [folder](docs/documentation/folder.md)               |        | `create`, `update`, `delete`                                           | Manage folders                                                     |\n| [schedule](docs/documentation/schedule.md)           |        | `list`, `get`, `create`, `update`, `delete`                            | Manage schedules                                                   |\n| [user](docs/documentation/user.md)                   |        | `list`, `get`, `create`, `update`, `delete`                            | Manage users                                                       |\n| [usergroup](docs/documentation/usergroup.md)         | `ug`   | `list`, `get`, `create`, `update`, `delete`                            | Manage user groups                                                 |\n| [role](docs/documentation/role.md)                   |        | `list`, `get`, `create`, `update`, `delete`                            | Manage roles                                                       |\n| [privilege](docs/documentation/privilege.md)         |        | `list`                                                                 | List available privileges                                          |\n| [runtime](docs/documentation/runtime.md)             | `rt`   | `list`, `get`, `create`, `update`                                      | Manage runtime environments                                        |\n| [agent](docs/documentation/agent.md)                 |        | `list`, `get`, `details`, `start`, `stop`                              | Manage Secure Agents                                               |\n| [tag](docs/documentation/tag.md)                     |        | `assign`, `remove`                                                     | Assign/remove tags on objects                                      |\n| [permission](docs/documentation/permission.md)       | `perm` | `get`, `set`, `delete`                                                 | Manage object-level permissions                                    |\n| [activitylog](docs/documentation/activitylog.md)     |        | `list`, `get`                                                          | Query activity logs for completed jobs                             |\n| [auditlog](docs/documentation/auditlog.md)           |        | `list`                                                                 | Query organization audit log (V2 API)                              |\n| [securitylog](docs/documentation/securitylog.md)     |        | `list`                                                                 | Query security audit log                                           |\n| [metering](docs/documentation/metering.md)           |        | `get`, `download`                                                      | Query usage and metering data                                      |\n| [sourcecontrol](docs/documentation/sourcecontrol.md) | `sc`   | `checkout`, `checkin`, `pull`, `commit`                                | Source control operations                                          |\n| [state](docs/documentation/state.md)                 |        | `fetch`, `load`                                                        | Fetch/load object state snapshots                                  |\n| [completion](docs/documentation/completion.md)       |        | `bash`, `zsh`, `fish`, `powershell`                                    | Generate shell completion scripts                                  |\n\n\u003e **Keeping completions up to date:** After adding or changing any command or flag, regenerate\n\u003e the shell completion scripts by running `make completions`. The pre-generated scripts live in\n\u003e the `completions/` directory and must be committed together with the code change.\n\n### Global flags\n\n| Flag         | Short | Description                                                                                |\n|--------------|-------|--------------------------------------------------------------------------------------------|\n| `--profile`  | `-p`  | Profile to use (overrides default)                                                         |\n| `--output`   | `-o`  | Output format: `table` (default), `json`, `csv`, `yaml`                                    |\n| `--verbose`  | `-v`  | Enable verbose output                                                                      |\n| `--no-color` |       | Disable colored output and force `plain` table theme                                       |\n| `--theme`    |       | Table theme: `default`, `minimal`, `compact`, `plain`, `markdown`, `gh` (overrides config) |\n| `--config`   |       | Config file path (default `~/.iics/config.yaml`)                                           |\n| `--debug`    |       | Print full HTTP request/response trace to stderr                                           |\n\n## Development\n\n### Prerequisites\n\n- Go 1.25+\n- Make\n\n### Build and test\n\n```bash\n# Build\nmake build\n\n# Run tests\nmake test\n\n# Run linter\nmake lint\n\n# Run all checks\nmake all\n```\n\n### Install from Build\n\n```bash\nmake install\n```\n\nCompiles 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.\n\n### Project structure\n\nSee [docs/DESIGN.md](docs/DESIGN.md) for the full design document.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbrazda%2Fiics-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbrazda%2Fiics-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbrazda%2Fiics-cli/lists"}