← Tous les utilitaires

NSAdaBrowse

Version 26.1 (build 541) Essai 30 jours

Cette documentation n’existe pas encore en français : affichage en anglais.

NSAdaBrowse
Sommaire

What NSAdaBrowse is

nsadabrowse is Nacarsoft’s web explorer for ADABAS files. Browse databases and their files from any browser, view data in table, form or FDT (file definition) mode, and manage access with JWT authentication and role-based control (RBAC with users, groups, roles and permissions). Multiple environments (DEV/TEST…) are configured via YAML.

Database, file and data names in the examples are fictional.

Use cases

1. Quick record lookup without desktop tools

Find a specific record (e.g. fictional policy POL-2024-00123) from the browser.

./build/nsadabrowse init /tmp/mybrowse
./build/nsadabrowse start /tmp/mybrowse
./build/nsadabrowse status /tmp/mybrowse
# → nsadabrowse is RUNNING (PID 12345)  Listening: http://0.0.0.0:3000

Web flow (http://localhost:3000, admin / admin123): pick the database (e.g. DEV) in the side panel, open the file in the tree, search with criteria and read the record in form view.

2. Exploring a file’s FDT/DDM structure

Review a file’s fields, formats and descriptors (e.g. fictional file no. 100) before coding against it.

./build/nsadabrowse status /tmp/mybrowse   # confirm RUNNING

Web flow: select database and file in the side tree; switch to FDT view for the field definitions; flip to table view to contrast with real data.

3. Support team with per-database limited access

Give the support team read-only access to TEST without touching DEV.

curl -s http://localhost:3000/api/health
# → {"service":"nsadabrowse","status":"healthy"}

Web flow (as admin): create a role with query permission only on the TEST database in the RBAC administration; the support user logs in and only sees TEST in the side panel.

4. Paging through a large file under controlled limits

Walk a file with thousands of records (e.g. a fictional history file) without overloading the server.

./build/nsadabrowse stop /tmp/mybrowse
# (tune pagination.* in /tmp/mybrowse/config.yaml, then restart)
./build/nsadabrowse start /tmp/mybrowse

Web flow: open the file in table view and page through (pagination.page_size); the read_limit caps the maximum read per query.

Interface

File browser

File data view

Reference

CLI commands (verified with --help, v1.1.0 build 540)

CommandDescription
init <dir>Create a new instance (config.yaml + security database + folders)
start [dir]Start the server as a daemon (default: current directory)
stop [dir]Stop the daemon
status [dir]Daemon status (PID, uptime, memory; exit 0/1)
version (or -version)Show version, build, date, commit and trial status
-serverDeprecated alias of start (warns WARN: '-server' is deprecated — use 'start')
-stopDeprecated alias of stop (warns WARN: '-stop' is deprecated — use 'stop')

Note: the manual also lists -config and -license, but the real binary rejects them (Unknown command): the environment is chosen with the positional [dir] argument and the license goes to the path below.

Main config.yaml options (see config.example.yaml)

OptionDescription
server.host / server.portWeb interface and port (default 0.0.0.0:3000)
server.tls_cert_file / tls_key_fileTLS certificates; empty when TLS is terminated at the proxy (Traefik)
database.pathSecurity SQLite (db/security.db): users, groups, roles, permissions
security.jwt_secretJWT key — change it in production
security.token_expiry_hoursToken lifetime (24)
security.password_reset_code_ttl_minutesReset-code validity (10)
adabas.databasesDefined databases: DEV (dbid 150, connect: "acj;target=150", config_file: ./db/db150.json), TEST (dbid 200, connect: "acj;target=200;ipcs", files: "(100-120)")
smtp.*Mail for password reset (host, port, username, password, from, use_tls)
pagination.page_size / read_limitPage size (80) and read limit (10000)
config.separator_decimal, daemon, logdir, logdaysDecimal separator, daemon mode, log directory and retention
swagger.enabled, api_key, title, versionREST API documentation

The manual’s example (database.path: ./data/nsadabrowse.db, a databases: list with host/port/user) is illustrative; the real configuration uses db/security.db and the adabas.databases map shown above.

Web UI areas

AreaWhat it does
LoginUsername/password authentication; token-based JWT session (security.jwt_secret, expires after token_expiry_hours)
Side panel / treeLists configured databases (DEV, TEST) and their files with numbers; active-database selector
Table viewPaged record browsing (pagination.page_size), page navigation
Form viewRecord-by-record reading with all fields
FDT viewFile definition: fields, formats and descriptors (structure, no data)
SearchRecord filtering by field criteria
RBAC administrationUsers, groups, roles and permissions per database and action
ThemesDark and light themes available

Commented examples

# 1. New instance and startup in the current directory
./build/nsadabrowse init
./build/nsadabrowse start
./build/nsadabrowse status

# 2. Two environments (prod/dev) with the same binary
./build/nsadabrowse init /tmp/prod && ./build/nsadabrowse start /tmp/prod
./build/nsadabrowse init /tmp/dev  && ./build/nsadabrowse start /tmp/dev
./build/nsadabrowse status /tmp/prod
./build/nsadabrowse stop /tmp/dev

# 3. Verification: health, SPA and version (reports remaining trial)
curl -s http://localhost:3000/api/health
curl -s http://localhost:3000/ -o /dev/null -w '%{http_code}\n'
./build/nsadabrowse version

# 4. Manual-style invocation (deprecated but working, with warning)
./build/nsadabrowse -server  # equals 'start' (deprecated)

In example 4, -server works as a deprecated start alias; the manual’s -config <file> and -license flags no longer exist (Unknown command): the environment is given with [dir].

FAQ

Which URL and user do I log in with? http://localhost:3000 with admin / admin123; change security.jwt_secret in production or login is insecure.

Where does the license go? At /opt/ns/licenses/nsadabrowse.key; without it there is a 30-day trial and version shows days left.

It won’t connect to ADABAS? Check adabas.databases in config.yaml (real dbid, connect, config_file — manual and example values are fictional) and network access to the ADABAS nucleus.

Port busy or login not loading? Change server.port if 3000 is taken; if login fails, verify jwt_secret is not the default value.

Aussi disponible en : es