Skip to content

itential/ipctl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

203 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ’» ipctl

A CLI for managing Itential Platform servers β€” get, create, import, export, and copy 35+ resource types from the command line.

ipctl version

Quick Start

Install

Download the latest release for your platform from the releases page:

# Linux x64
curl -LO https://github.com/itential/ipctl/releases/latest/download/ipctl-linux-x86_64.tar.gz
tar -xzf ipctl-linux-x86_64.tar.gz
sudo mv ipctl /usr/local/bin/
Build from source
git clone https://github.com/itential/ipctl.git && cd ipctl
make build
./bin/ipctl --version

Configure

Create ~/.platform.d/config.toml with a server profile:

["profile default"]
host = "platform.example.com"
port = 443
use_tls = true
username = "admin"
password = "your-password"

Use

ipctl workflow

Features

Feature Description
Resource CRUD Get, create, update, and delete 35+ resource types
Import / Export Move assets via local directories or Git repositories with SSH auth
Multi-Instance Named profiles for managing multiple Platform servers
Authentication OAuth2 client credentials or basic auth with TLS
Output Formats Human-readable tables, JSON, YAML, or custom Go templates
Cross-Environment Copy automations, workflows, and assets between servers

Configuration

ipctl loads configuration from ~/.platform.d/config by default. Supports INI, YAML, TOML, and JSON formats (auto-detected by file extension).

Profile Options

Option Description Default
host Platform server hostname localhost
port Server port (0 = auto from use_tls) 0
use_tls Enable TLS connection true
verify Verify TLS certificates true
username Basic auth username -
password Basic auth password -
client_id OAuth2 client ID -
client_secret OAuth2 client secret -
timeout Request timeout in seconds (0 = disabled) 0

Authentication requires either username/password or client_id/client_secret.

Environment Variables

Override any profile value with IPCTL_PROFILE_<NAME>_<KEY>:

export IPCTL_PROFILE_PROD_PASSWORD=secret
ipctl get projects --profile prod

Precedence

CLI flags > environment variables > config file > defaults

See the Configuration Reference for complete details including multi-format examples.

Supported Resources

Category Resources
Automation Studio projects, workflows, automations, templates, transformations, jsonforms
Admin accounts, groups, roles, adapters, integrations, prebuilts, tags
Configuration Manager devices, device-groups, configuration-parsers, gctrees
Lifecycle Manager models

See the Command Quick Reference for the full matrix of supported operations per resource.

Usage Examples

Working with projects
ipctl get projects
ipctl describe project "My Project"
ipctl create project "New Project" --description "Project description"
ipctl delete project "Old Project"
ipctl export project "My Project" \
  --repository git@github.com:org/repo.git \
  --branch main
Working with automations
ipctl get automations
ipctl describe automation "Deploy Config" --output json
ipctl import automation \
  --repository https://github.com/org/automations.git \
  --reference v1.0.0
ipctl copy automation "Deploy Config" --from dev --to staging
Working with adapters
ipctl get adapters
ipctl describe adapter "ServiceNow"
ipctl start adapter "ServiceNow"
ipctl stop adapter "ServiceNow"
ipctl restart adapter "ServiceNow"
Output formats

ipctl output formats

Documentation

Contributing

Contributions are welcome. See CONTRIBUTING.md for development setup, branch conventions, and the pull request process.

All contributors must sign the Contributor License Agreement before contributions can be merged.

License

This project is licensed under the GNU General Public License v3.0.

Support

About

πŸ’» Itential Platform CLI

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages