← Tutte le utility

NSDeploy

Versione 26.1 (build 401) Prova 30 giorni

Questa documentazione non esiste ancora in italiano: mostrata in inglese.

NSDeploy
Indice

What NSDeploy is

nsdeploy is Nacarsoft’s web platform for automated deployment of Natural objects across ADABAS environments (via SYSOBJH). It automates the full pipeline —compile, transfer and deploy— with full traceability, role-based access control (RBAC) and multi-environment support. It is operated from the terminal (init/start/stop/status) and used from the browser at http://localhost:8080.

Server names, paths and credentials in the examples are fictitious: adapt them to your real environment.

Use cases

1. Hands-off DEV → TST → PRD pipeline

Promote the same compiled version through all three environments with the same procedure every time:

./build/nsdeploy init /tmp/myproject   # 1. Initialize the project
./build/nsdeploy start /tmp/myproject  # 2. Start the web service
# 3. At http://localhost:8080: create the package, deploy to DEV,
#    validate, then promote the same package to TST and then to PRD.
./build/nsdeploy status /tmp/myproject # 4. Check the service

Every deployment leaves a full log and result on the dashboard, so a PRD promotion is repeatable and auditable.

2. Package management with dependencies and versioning

Group related Natural objects into a package with name, description and inter-object dependencies:

./build/nsdeploy start /tmp/myproject
# On the dashboard: Packages → New package → add objects →
# resolve dependencies → deploy.

The manager resolves dependencies automatically, and package history lets you redeploy a known previous version.

3. Granular access control (RBAC) for teams

Separate who may deploy to each environment through the users → groups → roles → permissions chain:

./build/nsdeploy start /tmp/myproject
# Log in as admin (admin / admin123, change it immediately) and open the
# admin panel: create groups (e.g. "developers", "release"), assign roles,
# and grant only "deploy to DEV" to developers and "deploy to PRD" to release.

4. Audit of every deployment

Answer “who deployed what, when, and with what result?” from the dashboard’s immutable history: user, package, environment, date, result and full log of each run. Useful for internal reviews and production change windows.

Interface

Packages

Deployments

Reference

CLI commands

Syntax: nsdeploy <command> [dir] [flags][dir] is the project directory (config.yaml + db/ + packages/ + logs/ + sysobjh/ + .nsdeploy.pid); default .. --config <dir> is a hidden alias of [dir].

CommandDescription
init [dir]Creates the project structure and initial config.yaml
start [dir]Starts the server in the background
stop [dir]Stops the server
status [dir]Shows the server status
licenseShows license status and the machine fingerprint
upgradeChecks for and installs the latest version from the update server (requires a valid license)
--license-fingerprintPrints the machine fingerprint and exits
--versionShows the version

Global flags: --config <dir> (project directory), --port <n> (overrides the port), --debug (debug mode).

Key config.yaml options

ParameterDescription
server.host / server.portWeb interface and port (default 0.0.0.0:8080)
database.pathSQLite file with users, groups, roles and permissions
auth.jwtSecret / auth.jwtExpiryMin / auth.cookieName / auth.resetTokenExpiryMinJWT session secret and expirations
correo.* / smtp.*Email notifications (host, port, username, from)
logging.*Log directory and rotation (dir, maxSizeMB, maxAgeDays)
packages.rootDir / packages.sysobjhDir / packages.retentionDays / packages.maxPackagesPackage storage and retention
environments.<NAME>.*Per environment: fuser, naturalBin, buffer pools, deployTarget, schedule
updates.urlUpdate server used by upgrade

Web UI areas

  • Dashboard: real-time deployment status, package creation and the full log of each run.
  • Packages: package creation (name, description, objects), dependencies and versioning.
  • RBAC (admin): users → groups → roles → permissions; each permission authorizes one concrete action (deploy to DEV/PRD, manage packages, view audit…).
  • Audit: queryable, immutable history (user, package, environment, date, result, log).

Commented examples

# 1. New project and startup
./build/nsdeploy init /tmp/myproject
./build/nsdeploy start /tmp/myproject
./build/nsdeploy status /tmp/myproject
# → nsdeploy is running (PID 12345) — listening on 0.0.0.0:8080

# 2. Several environments with the same binary
./build/nsdeploy init /tmp/prod && ./build/nsdeploy start /tmp/prod
./build/nsdeploy init /tmp/dev  && ./build/nsdeploy start /tmp/dev

# 3. Override the port without editing config.yaml
./build/nsdeploy start /tmp/myproject --port 8090

# 4. License: status and fingerprint
./build/nsdeploy license
./build/nsdeploy --license-fingerprint

# 5. Stop the service
./build/nsdeploy stop /tmp/myproject

FAQ

Service does not start? Port in use: change server.port in config.yaml or use --port. Check logs/nsdeploy.log.

Deployment to PRD fails? Check the PRD environment connection in config.yaml (host, user, FUSER paths, Natural binary) and that the SSH source can reach it.

Expired license? The trial lasts 30 days: request a signed license from Nacarsoft and place it at /opt/ns/licenses/nsdeploy.key.

Dashboard not visible? Open port 8080 in the firewall and check http://localhost:8080/api/health.

Forgot the admin password? Use the reset flow after configuring correo.* / baseUrl in config.yaml (expiration: auth.resetTokenExpiryMin).

Disponibile anche in: es