Skip to main content

isman — Management Server

isman is the HTTP management server that powers Ingenium server monitoring, policy operations, and automation. It runs as a background service and provides a REST API consumed by the VS Code extension and CLI tools.

info

You typically don't interact with isman directly. Use iman start to launch it and the VS Code extension to interact with it.


Starting the Server

isman is launched by iman:

iman start # Find port and launch
iman start -f # Force restart

Or manually (for troubleshooting):

isman <PORT>

API Overview

Health & Lifecycle

MethodEndpointDescription
GET/pingHealth check — returns "pong"
POST/shutdownGraceful server shutdown

Ingenium Server Management

MethodEndpointDescription
GET/ing/regionsList all configured regions with status
GET/ing/region/{name}/workersList workers in a specific region
POST/ing/region/{name}/startStart Ingenium for a region
POST/ing/region/{name}/stopStop Ingenium for a region

Policy Operations

MethodEndpointDescription
GET/ipol/tasksList all policy tasks
POST/ipol/exportCreate a policy export task
POST/ipol/importCreate a policy import task
POST/ipol/copyCreate a policy copy task
POST/ipol/downloadDownload a policy archive from remote
POST/ipol/uploadUpload a policy archive to remote

Configuration

isman reads its configuration from ~/.nova/cfg/iman.toml:

[iman]
name = "local"
max_threads = 4

# Define database regions
[[iman.regions]]
name = "DEV"
dbname = "DEVDB"
dbschema = "DEVSCHEMA"
dbuser = "devuser"
dbpass = "Bencrypted_password"

# Define remote servers (optional)
[[iman.remotes]]
name = "PROD"
host = "prod-server"
port = 22
user = "admin"
key_path = "~/.ssh/id_rsa"

# Policy table definitions
[iman.policy]
export_tables = "export_tables.csv"
delete_tables = "delete_tables.csv"
import_tables = "import_tables.csv"

Regions

Each region represents a database environment (DEV, ST, AT, PROD). The server connects to each region's DB2 database on startup.

note

Database passwords must be encrypted using nexus encrypt. See the nexus guide for details.

Remotes

Remote servers are accessed via SSH for cross-environment operations like policy copy. SSH keys are the recommended authentication method.


Policy Task System

Policy tasks follow a lifecycle managed by a background scheduler:

New → Waiting → Active → Processing → Done
→ Error
  1. New: Task created via API request
  2. Waiting: Queued for processing
  3. Active: Picked up by the scheduler
  4. Processing: Operation in progress
  5. Done / Error: Completed or failed

The scheduler polls for new tasks every 5 seconds. You can monitor task progress in the VS Code extension's Ingenium Management panel.


Single Instance

Only one isman instance can run at a time, enforced by a file lock at ~/.nova/isman/.lock.

Log File

Server activity is logged to ~/.nova/isman/logs/isman.log.