onboardconnect-agent 0.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +55 -232
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAKA,iBAAe,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAKA,iBAAe,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA6DtC;AAmHD,eAAe,OAAO,CAAC"}
|
package/dist/setup.js
CHANGED
|
@@ -3,239 +3,66 @@ import ora from "ora";
|
|
|
3
3
|
import inquirer from "inquirer";
|
|
4
4
|
import { OcStore } from "./store.js";
|
|
5
5
|
async function ocSetup() {
|
|
6
|
-
console.log(chalk.bold.blue("\n OnboardConnect On-Prem Agent — Setup
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const nodeVersion = process.version;
|
|
11
|
-
const major = parseInt(nodeVersion.slice(1).split(".")[0] ?? "0", 10);
|
|
6
|
+
console.log(chalk.bold.blue("\n OnboardConnect On-Prem Agent — Setup\n"));
|
|
7
|
+
// Node.js version check
|
|
8
|
+
const nodeSpinner = ora("Checking Node.js...").start();
|
|
9
|
+
const major = parseInt(process.version.slice(1).split(".")[0] ?? "0", 10);
|
|
12
10
|
if (major < 18) {
|
|
13
|
-
|
|
11
|
+
nodeSpinner.fail(`Node.js >= 18 required. Found: ${process.version}`);
|
|
14
12
|
process.exit(1);
|
|
15
13
|
}
|
|
16
|
-
|
|
17
|
-
//
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
nodeSpinner.succeed(`Node.js ${process.version} ✓`);
|
|
15
|
+
// Accept token via --token flag or plain prompt
|
|
16
|
+
const tokenFlagIdx = process.argv.findIndex((a) => a === "--token" || a.startsWith("--token="));
|
|
17
|
+
let setupToken;
|
|
18
|
+
if (tokenFlagIdx !== -1) {
|
|
19
|
+
const arg = process.argv[tokenFlagIdx];
|
|
20
|
+
setupToken = arg.includes("=") ? arg.split("=").slice(1).join("=") : (process.argv[tokenFlagIdx + 1] ?? "");
|
|
21
|
+
console.log(chalk.gray(" Using token from --token flag."));
|
|
23
22
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
name: "proceed",
|
|
31
|
-
message: "Continue anyway?",
|
|
32
|
-
default: false,
|
|
23
|
+
else {
|
|
24
|
+
const answer = await inquirer.prompt([{
|
|
25
|
+
type: "input",
|
|
26
|
+
name: "t",
|
|
27
|
+
message: "Paste your one-time setup token:",
|
|
28
|
+
validate: (v) => v.trim().length > 0 || "Token is required",
|
|
33
29
|
}]);
|
|
34
|
-
|
|
35
|
-
process.exit(0);
|
|
30
|
+
setupToken = answer.t.trim();
|
|
36
31
|
}
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
const { setupToken } = await inquirer.prompt([{
|
|
40
|
-
type: "password",
|
|
41
|
-
name: "setupToken",
|
|
42
|
-
message: "Enter the one-time setup token from your Tenant Portal:",
|
|
43
|
-
validate: (v) => v.length > 0 || "Token is required",
|
|
44
|
-
}]);
|
|
45
|
-
const tokenSpinner = ora("Exchanging setup token...").start();
|
|
32
|
+
// Exchange token
|
|
33
|
+
const tokenSpinner = ora("Registering agent...").start();
|
|
46
34
|
let credentials;
|
|
47
35
|
try {
|
|
48
|
-
const
|
|
36
|
+
const apiBase = process.env["OC_API_BASE"] ?? "https://api.onboardconnectapp.com";
|
|
37
|
+
const res = await fetch(`${apiBase}/api/tenant/agent/exchange-token`, {
|
|
49
38
|
method: "POST",
|
|
50
39
|
headers: { "Content-Type": "application/json" },
|
|
51
40
|
body: JSON.stringify({ setupToken }),
|
|
52
41
|
});
|
|
53
|
-
if (!
|
|
54
|
-
throw new Error(
|
|
55
|
-
credentials = await
|
|
56
|
-
tokenSpinner.succeed("
|
|
42
|
+
if (!res.ok)
|
|
43
|
+
throw new Error(`${res.status}`);
|
|
44
|
+
credentials = await res.json();
|
|
45
|
+
tokenSpinner.succeed("Agent registered ✓");
|
|
57
46
|
}
|
|
58
47
|
catch (err) {
|
|
59
|
-
tokenSpinner.fail(`
|
|
48
|
+
tokenSpinner.fail(`Registration failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
60
49
|
process.exit(1);
|
|
61
50
|
}
|
|
62
|
-
//
|
|
63
|
-
console.log(chalk.bold("\n Step 2: Agent Name\n"));
|
|
64
|
-
const { agentName } = await inquirer.prompt([{
|
|
65
|
-
type: "input",
|
|
66
|
-
name: "agentName",
|
|
67
|
-
message: "Name this agent (e.g. Main Campus DC):",
|
|
68
|
-
validate: (v) => v.length > 0 || "Name is required",
|
|
69
|
-
}]);
|
|
70
|
-
// Step 4: LDAP configuration
|
|
71
|
-
console.log(chalk.bold("\n Step 3: LDAP Configuration\n"));
|
|
72
|
-
const { authMode } = await inquirer.prompt([{
|
|
73
|
-
type: "list",
|
|
74
|
-
name: "authMode",
|
|
75
|
-
message: "LDAP authentication mode:",
|
|
76
|
-
choices: [
|
|
77
|
-
{ name: "Explicit credentials (bind DN + password)", value: "explicit" },
|
|
78
|
-
{ name: "Windows Service Account (service runs as domain account — no password stored)", value: "service_account" },
|
|
79
|
-
],
|
|
80
|
-
default: "explicit",
|
|
81
|
-
}]);
|
|
82
|
-
const ldapBase = await inquirer.prompt([
|
|
83
|
-
{ type: "input", name: "host", message: "LDAP server hostname or IP:", validate: (v) => v.length > 0 || "Required" },
|
|
84
|
-
{ type: "number", name: "port", message: "LDAP port:", default: authMode === "service_account" ? 389 : 636 },
|
|
85
|
-
{ type: "input", name: "baseDn", message: "Base DN (e.g. DC=university,DC=edu):", validate: (v) => v.length > 0 || "Required" },
|
|
86
|
-
{ type: "input", name: "defaultOu", message: "Default OU for new accounts (e.g. OU=Students,DC=university,DC=edu):", validate: (v) => v.length > 0 || "Required" },
|
|
87
|
-
]);
|
|
88
|
-
let bindDn = "";
|
|
89
|
-
let bindPassword = "";
|
|
90
|
-
if (authMode === "explicit") {
|
|
91
|
-
const creds = await inquirer.prompt([
|
|
92
|
-
{ type: "input", name: "bindDn", message: "Bind DN (e.g. CN=oc-service,OU=ServiceAccounts,DC=university,DC=edu):", validate: (v) => v.length > 0 || "Required" },
|
|
93
|
-
{ type: "password", name: "bindPassword", message: "Bind password:", validate: (v) => v.length > 0 || "Required" },
|
|
94
|
-
]);
|
|
95
|
-
bindDn = creds.bindDn;
|
|
96
|
-
bindPassword = creds.bindPassword;
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
console.log(chalk.gray("\n Service Account mode: the Windows service will authenticate to LDAP using\n" +
|
|
100
|
-
" the domain account it runs as. Configure the service account in Windows\n" +
|
|
101
|
-
" Services after setup completes (Services → OnboardConnect Agent → Log On).\n"));
|
|
102
|
-
}
|
|
103
|
-
const ldapAnswers = { ...ldapBase, bindDn, bindPassword, authMode, disabledOu: "" };
|
|
104
|
-
const ldapSpinner = ora("Testing LDAP connection...").start();
|
|
105
|
-
try {
|
|
106
|
-
const { Client } = await import("ldapts");
|
|
107
|
-
const proto = ldapAnswers.port === 636 ? "ldaps" : "ldap";
|
|
108
|
-
const client = new Client({ url: `${proto}://${ldapAnswers.host}:${ldapAnswers.port}` });
|
|
109
|
-
if (authMode === "explicit") {
|
|
110
|
-
await client.bind(ldapAnswers.bindDn, ldapAnswers.bindPassword);
|
|
111
|
-
}
|
|
112
|
-
await client.unbind();
|
|
113
|
-
ldapSpinner.succeed("LDAP connection successful ✓");
|
|
114
|
-
}
|
|
115
|
-
catch (err) {
|
|
116
|
-
ldapSpinner.fail(`LDAP connection failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
117
|
-
const { cont } = await inquirer.prompt([{
|
|
118
|
-
type: "confirm", name: "cont", message: "Continue setup anyway?", default: false,
|
|
119
|
-
}]);
|
|
120
|
-
if (!cont)
|
|
121
|
-
process.exit(1);
|
|
122
|
-
}
|
|
123
|
-
// Step 5: Required file paths
|
|
124
|
-
console.log(chalk.bold("\n Step 4: File Paths\n"));
|
|
125
|
-
console.log(chalk.gray(" These directories are used by workflow steps that read from or write to\n" +
|
|
126
|
-
" files on this machine. Use absolute paths the service account can access.\n"));
|
|
127
|
-
const pathAnswers = await inquirer.prompt([
|
|
128
|
-
{
|
|
129
|
-
type: "input",
|
|
130
|
-
name: "fileReadPath",
|
|
131
|
-
message: "File read directory (agent reads input files from here):",
|
|
132
|
-
validate: (v) => v.trim().length > 0 || "Required — e.g. C:\\OC\\Imports",
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
type: "input",
|
|
136
|
-
name: "fileWritePath",
|
|
137
|
-
message: "File write directory (agent writes output files here):",
|
|
138
|
-
validate: (v) => v.trim().length > 0 || "Required — e.g. C:\\OC\\Exports",
|
|
139
|
-
},
|
|
140
|
-
]);
|
|
141
|
-
// Step 6: Additional path aliases (optional)
|
|
142
|
-
console.log(chalk.bold("\n Step 5: Additional Path Aliases (optional)\n"));
|
|
143
|
-
console.log(chalk.gray(" Aliases let workflow steps reference files by a short token\n" +
|
|
144
|
-
" (e.g. {slate_export}) instead of a full absolute path.\n" +
|
|
145
|
-
" The read/write directories above are registered automatically.\n" +
|
|
146
|
-
" Press Enter with a blank alias to skip.\n"));
|
|
147
|
-
const paths = {
|
|
148
|
-
read: pathAnswers.fileReadPath.trim(),
|
|
149
|
-
write: pathAnswers.fileWritePath.trim(),
|
|
150
|
-
};
|
|
151
|
-
let addMore = true;
|
|
152
|
-
while (addMore) {
|
|
153
|
-
const { alias } = await inquirer.prompt([{
|
|
154
|
-
type: "input",
|
|
155
|
-
name: "alias",
|
|
156
|
-
message: "Alias name (e.g. slate_export), or leave blank to finish:",
|
|
157
|
-
}]);
|
|
158
|
-
if (!alias.trim()) {
|
|
159
|
-
addMore = false;
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
const { filePath } = await inquirer.prompt([{
|
|
163
|
-
type: "input",
|
|
164
|
-
name: "filePath",
|
|
165
|
-
message: `Absolute path for {${alias}}:`,
|
|
166
|
-
validate: (v) => v.length > 0 || "Path is required",
|
|
167
|
-
}]);
|
|
168
|
-
paths[alias.trim()] = filePath.trim();
|
|
169
|
-
const { more } = await inquirer.prompt([{
|
|
170
|
-
type: "confirm",
|
|
171
|
-
name: "more",
|
|
172
|
-
message: "Add another path alias?",
|
|
173
|
-
default: false,
|
|
174
|
-
}]);
|
|
175
|
-
addMore = more;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// Step 7: Service install
|
|
179
|
-
console.log(chalk.bold("\n Step 6: Service Install\n"));
|
|
180
|
-
const { installService } = await inquirer.prompt([{
|
|
181
|
-
type: "confirm",
|
|
182
|
-
name: "installService",
|
|
183
|
-
message: "Install agent as a system service (auto-start on boot)?",
|
|
184
|
-
default: true,
|
|
185
|
-
}]);
|
|
186
|
-
let serviceAccountUser = "";
|
|
187
|
-
let serviceAccountPassword = "";
|
|
188
|
-
if (installService && authMode === "service_account" && process.platform === "win32") {
|
|
189
|
-
console.log(chalk.gray("\n Enter the domain account the service will run as for LDAP access.\n"));
|
|
190
|
-
const svcAcct = await inquirer.prompt([
|
|
191
|
-
{ type: "input", name: "user", message: "Service account (DOMAIN\\username):", validate: (v) => v.includes("\\") || "Use DOMAIN\\username format" },
|
|
192
|
-
{ type: "password", name: "password", message: "Service account password:", validate: (v) => v.length > 0 || "Required" },
|
|
193
|
-
]);
|
|
194
|
-
serviceAccountUser = svcAcct.user;
|
|
195
|
-
serviceAccountPassword = svcAcct.password;
|
|
196
|
-
}
|
|
197
|
-
// Save all credentials and paths
|
|
51
|
+
// Save credentials
|
|
198
52
|
const store = new OcStore();
|
|
199
53
|
await store.saveCredentials({ ...credentials });
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
bindDn: ldapAnswers.bindDn,
|
|
205
|
-
bindPassword: ldapAnswers.bindPassword,
|
|
206
|
-
authMode: ldapAnswers.authMode,
|
|
207
|
-
defaultOu: ldapAnswers.defaultOu,
|
|
208
|
-
disabledOu: null,
|
|
209
|
-
});
|
|
210
|
-
await store.savePaths(paths);
|
|
211
|
-
if (installService) {
|
|
212
|
-
await installSystemService(agentName, serviceAccountUser, serviceAccountPassword);
|
|
213
|
-
await ocOpenAgentUi();
|
|
214
|
-
}
|
|
54
|
+
// Install and start Windows service
|
|
55
|
+
await installSystemService();
|
|
56
|
+
// Open the UI — all further config is done there
|
|
57
|
+
await ocOpenAgentUi();
|
|
215
58
|
console.log(chalk.bold.green("\n ✓ Setup complete!\n"));
|
|
216
59
|
console.log(chalk.gray(` Agent ID: ${credentials.agentId}`));
|
|
217
|
-
console.log(chalk.gray(`
|
|
218
|
-
console.log(chalk.
|
|
219
|
-
console.log(chalk.gray(` Write path: ${pathAnswers.fileWritePath}`));
|
|
220
|
-
console.log(chalk.gray(` Config file: ${store.configPath}`));
|
|
221
|
-
if (Object.keys(paths).length > 2) {
|
|
222
|
-
console.log(chalk.gray(` Path aliases:`));
|
|
223
|
-
for (const [k, v] of Object.entries(paths)) {
|
|
224
|
-
if (k !== "read" && k !== "write")
|
|
225
|
-
console.log(chalk.gray(` {${k}} → ${v}`));
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
if (authMode === "service_account" && installService) {
|
|
229
|
-
console.log(chalk.yellow("\n Remember: set the service Log On account in Windows Services → OnboardConnect Agent → Properties → Log On.\n"));
|
|
230
|
-
}
|
|
231
|
-
console.log(chalk.gray(`\n View agent status: https://portal.onboardconnectapp.com/agents\n`));
|
|
232
|
-
if (!installService) {
|
|
233
|
-
console.log(chalk.yellow(" To start the agent manually: npx onboardconnect-agent start\n"));
|
|
234
|
-
}
|
|
60
|
+
console.log(chalk.gray(` Config: ${store.configPath}`));
|
|
61
|
+
console.log(chalk.cyan(`\n Open http://localhost:7432 to configure LDAP, file paths, and more.\n`));
|
|
235
62
|
}
|
|
236
63
|
async function ocOpenAgentUi() {
|
|
237
64
|
const UI_URL = "http://localhost:7432";
|
|
238
|
-
const spinner = ora("Waiting for agent UI
|
|
65
|
+
const spinner = ora("Waiting for agent UI...").start();
|
|
239
66
|
const deadline = Date.now() + 30_000;
|
|
240
67
|
let ready = false;
|
|
241
68
|
while (Date.now() < deadline) {
|
|
@@ -250,10 +77,10 @@ async function ocOpenAgentUi() {
|
|
|
250
77
|
await new Promise((r) => setTimeout(r, 1500));
|
|
251
78
|
}
|
|
252
79
|
if (!ready) {
|
|
253
|
-
spinner.warn(`Agent UI not responding
|
|
80
|
+
spinner.warn(`Agent UI not responding yet — open ${UI_URL} in your browser manually.`);
|
|
254
81
|
return;
|
|
255
82
|
}
|
|
256
|
-
spinner.succeed(`Agent UI ready
|
|
83
|
+
spinner.succeed(`Agent UI ready → ${UI_URL}`);
|
|
257
84
|
try {
|
|
258
85
|
const { exec } = await import("child_process");
|
|
259
86
|
const openCmd = process.platform === "win32" ? `cmd /c start "" "${UI_URL}"` :
|
|
@@ -261,54 +88,50 @@ async function ocOpenAgentUi() {
|
|
|
261
88
|
`xdg-open ${UI_URL}`;
|
|
262
89
|
exec(openCmd);
|
|
263
90
|
}
|
|
264
|
-
catch {
|
|
265
|
-
console.log(chalk.gray(` Open your browser and navigate to: ${UI_URL}`));
|
|
266
|
-
}
|
|
91
|
+
catch { /* browser open is best-effort */ }
|
|
267
92
|
}
|
|
268
|
-
async function installSystemService(
|
|
269
|
-
const spinner = ora("Installing
|
|
93
|
+
async function installSystemService() {
|
|
94
|
+
const spinner = ora("Installing Windows service...").start();
|
|
270
95
|
try {
|
|
271
96
|
if (process.platform === "win32") {
|
|
272
97
|
const { spawnSync } = await import("child_process");
|
|
273
|
-
// Require Administrator — sc.exe will silently fail without it
|
|
274
98
|
const adminCheck = spawnSync("net", ["session"], { stdio: "pipe" });
|
|
275
99
|
if (adminCheck.status !== 0) {
|
|
276
|
-
spinner.fail("Administrator privileges required. Re-run from an elevated PowerShell prompt
|
|
100
|
+
spinner.fail("Administrator privileges required. Re-run from an elevated PowerShell prompt.");
|
|
277
101
|
return;
|
|
278
102
|
}
|
|
279
103
|
const nodePath = process.execPath;
|
|
280
104
|
const scriptPath = process.argv[1];
|
|
281
105
|
if (!scriptPath) {
|
|
282
|
-
spinner.fail("Could not determine agent script path
|
|
106
|
+
spinner.fail("Could not determine agent script path.");
|
|
283
107
|
return;
|
|
284
108
|
}
|
|
285
109
|
const svcName = "OnboardConnectAgent";
|
|
286
|
-
// binPath= value: node.exe + script, both quoted so spaces are handled
|
|
287
110
|
const binPath = `"${nodePath}" "${scriptPath}"`;
|
|
288
|
-
const logOnAcct = serviceAccountUser || "LocalSystem";
|
|
289
111
|
// Remove any previous install
|
|
290
112
|
spawnSync("sc", ["stop", svcName], { stdio: "pipe" });
|
|
291
113
|
await new Promise((r) => setTimeout(r, 1500));
|
|
292
114
|
spawnSync("sc", ["delete", svcName], { stdio: "pipe" });
|
|
293
115
|
await new Promise((r) => setTimeout(r, 1000));
|
|
294
|
-
// Create
|
|
295
|
-
const
|
|
116
|
+
// Create as LocalSystem — no domain account prompts
|
|
117
|
+
const createResult = spawnSync("sc", [
|
|
296
118
|
"create", svcName,
|
|
297
119
|
"binPath=", binPath,
|
|
298
120
|
"start=", "auto",
|
|
299
121
|
"DisplayName=", "OnboardConnect Agent",
|
|
300
|
-
"obj=",
|
|
301
|
-
|
|
302
|
-
];
|
|
303
|
-
const createResult = spawnSync("sc", createArgs, { stdio: "pipe" });
|
|
122
|
+
"obj=", "LocalSystem",
|
|
123
|
+
], { stdio: "pipe" });
|
|
304
124
|
if (createResult.status !== 0) {
|
|
305
|
-
throw new Error(createResult.stderr?.toString().trim() ||
|
|
125
|
+
throw new Error(createResult.stderr?.toString().trim() ||
|
|
126
|
+
createResult.stdout?.toString().trim() ||
|
|
127
|
+
"sc create failed");
|
|
306
128
|
}
|
|
307
|
-
|
|
308
|
-
spawnSync("sc", ["description", svcName, descSafe], { stdio: "pipe" });
|
|
129
|
+
spawnSync("sc", ["description", svcName, "OnboardConnect On-Prem Agent"], { stdio: "pipe" });
|
|
309
130
|
const startResult = spawnSync("sc", ["start", svcName], { stdio: "pipe" });
|
|
310
131
|
if (startResult.status !== 0) {
|
|
311
|
-
throw new Error(startResult.stderr?.toString().trim() ||
|
|
132
|
+
throw new Error(startResult.stderr?.toString().trim() ||
|
|
133
|
+
startResult.stdout?.toString().trim() ||
|
|
134
|
+
"sc start failed");
|
|
312
135
|
}
|
|
313
136
|
}
|
|
314
137
|
else {
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|