fe71ec1bcc
The announcer half of AGENT_LOCAL_DISCOVERY_SPEC.md / MULTI_SITE_SPEC.md Appendix B -- advertises which public hostnames this site fronts (and at what local IP) via mDNS, so a theta-agent on the same LAN segment with prefer_local_directory enabled can skip the relay/WAN path. Opt-in via THETA_LOCAL_DISCOVERY_HOSTS (comma-separated); no-op if unset, so this changes nothing for an install that doesn't configure it. Only ever advertises which hostnames map to which local IP -- no identity/ trust information -- consistent with the hard rule on the listening side (theta-agent) that local-discovery may change DNS resolution but must never touch certificate validation. Verified end-to-end against the real theta-agent Go binary: announce, discover, apply, and clean revert on disappearance all confirmed working over real multicast between two containers.
58 lines
1.8 KiB
JSON
58 lines
1.8 KiB
JSON
{
|
|
"name": "theta-gateway",
|
|
"version": "2.0.1",
|
|
"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": ">=20.14"
|
|
},
|
|
"scripts": {
|
|
"start": "node ./bin/www",
|
|
"dev": "npx nodemon --ignore public/ ./bin/www",
|
|
"test": "NODE_ENV=test node --test --test-force-exit test/unit/access.test.js test/unit/host_keys.test.js test/unit/no_native_dialogs.test.js test/unit/target_match.test.js test/unit/username_grammar.test.js test/unit/wireguard.test.js test/unit/mesh_addressing.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": {
|
|
"@fortawesome/fontawesome-free": "^7.3.0",
|
|
"@simpleworkjs/app-stack": "^1.0.0",
|
|
"@simpleworkjs/bao-conf": "^1.0.0",
|
|
"@simpleworkjs/conf": "^1.2.0",
|
|
"@simpleworkjs/directory-schema": "^1.0.0",
|
|
"@simpleworkjs/frontend": "^0.2.6",
|
|
"@simpleworkjs/ldap": "^1.0.1",
|
|
"@simpleworkjs/oidc-client": "^1.0.0",
|
|
"@simpleworkjs/orm": "^0.2.8",
|
|
"bcrypt": "^6.0.0",
|
|
"bonjour-service": "^1.4.4",
|
|
"bootstrap": "^5.3.8",
|
|
"compression": "^1.8.1",
|
|
"ejs": "^3.1.10",
|
|
"express": "^5.2.1",
|
|
"express-rate-limit": "^8.5.2",
|
|
"jq-repeat": "^2.2.0",
|
|
"jquery": "^4.0.0",
|
|
"ldapts": "^8.1.8",
|
|
"model-redis": "^1.6.0",
|
|
"moment": "^2.30.1",
|
|
"mustache": "^4.2.0",
|
|
"qrcode": "^1.5.4",
|
|
"redis": "^6.1.0",
|
|
"socket.io": "^4.8.3",
|
|
"ssh2": "^1.16.0"
|
|
},
|
|
"devDependencies": {
|
|
"nodemon": "^3.1.11"
|
|
},
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/theta42/jump-host.git"
|
|
}
|
|
}
|