36e9d5b0b3
An SSH jump host that authenticates users against the shared LDAP directory, authorizes them from the SSO Manager's inventory graph, and bridges them to downstream hosts — auditing everything. - Username-grammar routing (uid_-_target@jump) + interactive TUI picker - Inbound LDAP auth (publickey / password with off|local|all policy) - Directory-driven access (LDAP groups x /api/discovery/resources?group=) - Per-user key injection into sshPublicKey, connects downstream as the user - Shell / exec / SFTP-subsystem bridging (WinSCP works) - Web UI + HTTP API (:3002) for audit + metrics; LDAP-admin gated - Packaged like proxy: ops/install.sh + systemd, all-in-one Docker, compose - Tests: 23 unit + 3 integration (node --test), all green Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 lines
1.0 KiB
JSON
39 lines
1.0 KiB
JSON
{
|
|
"name": "t42-jump-host",
|
|
"version": "1.0.0",
|
|
"description": "SSH jump host for the theta42 stack — LDAP-authenticated, directory-driven host bridging with audit and metrics",
|
|
"author": [
|
|
{
|
|
"name": "William Mantly",
|
|
"email": "wmantly@gmail.com"
|
|
}
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"scripts": {
|
|
"start": "node ./bin/www",
|
|
"dev": "npx nodemon --ignore public/ ./bin/www",
|
|
"test": "NODE_ENV=test node --test --test-force-exit 'test/**/*.test.js'",
|
|
"test:unit": "NODE_ENV=test node --test --test-force-exit 'test/unit/**/*.test.js'",
|
|
"test:integration": "NODE_ENV=test node --test --test-force-exit 'test/integration/**/*.test.js'"
|
|
},
|
|
"dependencies": {
|
|
"@simpleworkjs/conf": "^1.2.0",
|
|
"ejs": "^3.1.10",
|
|
"express": "^5.2.1",
|
|
"ldapts": "^8.1.2",
|
|
"model-redis": "^1.6.0",
|
|
"redis": "^4.7.0",
|
|
"ssh2": "^1.16.0"
|
|
},
|
|
"devDependencies": {
|
|
"nodemon": "^3.1.11"
|
|
},
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/theta42/jump-host.git"
|
|
}
|
|
}
|