@guanjinke/artifact-client 1.17.0 → 1.19.0

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.
Files changed (76) hide show
  1. package/README.md +1 -1
  2. package/dist/artifact-client.d.ts +3 -1
  3. package/dist/artifact-client.d.ts.map +1 -1
  4. package/dist/artifact-client.js +6 -1
  5. package/dist/artifact-client.js.map +1 -1
  6. package/dist/cli/config-manager.d.ts +3 -0
  7. package/dist/cli/config-manager.d.ts.map +1 -1
  8. package/dist/cli/config-manager.js +44 -0
  9. package/dist/cli/config-manager.js.map +1 -1
  10. package/dist/cli/environment.d.ts.map +1 -1
  11. package/dist/cli/environment.js +116 -0
  12. package/dist/cli/environment.js.map +1 -1
  13. package/dist/cli/jdbc-service-client.d.ts +9 -0
  14. package/dist/cli/jdbc-service-client.d.ts.map +1 -0
  15. package/dist/cli/jdbc-service-client.js +19 -0
  16. package/dist/cli/jdbc-service-client.js.map +1 -0
  17. package/dist/cli/setup.d.ts.map +1 -1
  18. package/dist/cli/setup.js +46 -0
  19. package/dist/cli/setup.js.map +1 -1
  20. package/dist/environment/driver-discovery.d.ts +3 -0
  21. package/dist/environment/driver-discovery.d.ts.map +1 -0
  22. package/dist/environment/driver-discovery.js +163 -0
  23. package/dist/environment/driver-discovery.js.map +1 -0
  24. package/dist/environment/driver-oss.d.ts +14 -0
  25. package/dist/environment/driver-oss.d.ts.map +1 -0
  26. package/dist/environment/driver-oss.js +144 -0
  27. package/dist/environment/driver-oss.js.map +1 -0
  28. package/dist/environment/drivers.d.ts +33 -0
  29. package/dist/environment/drivers.d.ts.map +1 -0
  30. package/dist/environment/drivers.js +274 -0
  31. package/dist/environment/drivers.js.map +1 -0
  32. package/dist/environment/hana-archive.d.ts +9 -0
  33. package/dist/environment/hana-archive.d.ts.map +1 -0
  34. package/dist/environment/hana-archive.js +181 -0
  35. package/dist/environment/hana-archive.js.map +1 -0
  36. package/dist/environment/hana.d.ts +58 -0
  37. package/dist/environment/hana.d.ts.map +1 -0
  38. package/dist/environment/hana.js +238 -0
  39. package/dist/environment/hana.js.map +1 -0
  40. package/dist/environment/jdbc-connection-test.d.ts +25 -0
  41. package/dist/environment/jdbc-connection-test.d.ts.map +1 -0
  42. package/dist/environment/jdbc-connection-test.js +146 -0
  43. package/dist/environment/jdbc-connection-test.js.map +1 -0
  44. package/dist/environment/jdbc-diagnostics.d.ts +13 -0
  45. package/dist/environment/jdbc-diagnostics.d.ts.map +1 -0
  46. package/dist/environment/jdbc-diagnostics.js +108 -0
  47. package/dist/environment/jdbc-diagnostics.js.map +1 -0
  48. package/dist/environment/jdbc-service.d.ts +91 -0
  49. package/dist/environment/jdbc-service.d.ts.map +1 -0
  50. package/dist/environment/jdbc-service.js +375 -0
  51. package/dist/environment/jdbc-service.js.map +1 -0
  52. package/dist/environment/jdbc.d.ts +28 -0
  53. package/dist/environment/jdbc.d.ts.map +1 -0
  54. package/dist/environment/jdbc.js +164 -0
  55. package/dist/environment/jdbc.js.map +1 -0
  56. package/dist/environment/manager.d.ts +10 -0
  57. package/dist/environment/manager.d.ts.map +1 -1
  58. package/dist/environment/manager.js +32 -0
  59. package/dist/environment/manager.js.map +1 -1
  60. package/dist/environment/registry.d.ts +14 -0
  61. package/dist/environment/registry.d.ts.map +1 -1
  62. package/dist/environment/registry.js +7 -0
  63. package/dist/environment/registry.js.map +1 -1
  64. package/dist/environment/site-init.d.ts +16 -0
  65. package/dist/environment/site-init.d.ts.map +1 -0
  66. package/dist/environment/site-init.js +108 -0
  67. package/dist/environment/site-init.js.map +1 -0
  68. package/dist/environment/update.d.ts +1 -1
  69. package/dist/environment/update.d.ts.map +1 -1
  70. package/dist/environment/update.js +717 -552
  71. package/dist/environment/update.js.map +1 -1
  72. package/dist/providers/oss-provider.d.ts +6 -2
  73. package/dist/providers/oss-provider.d.ts.map +1 -1
  74. package/dist/providers/oss-provider.js +37 -7
  75. package/dist/providers/oss-provider.js.map +1 -1
  76. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ import { EnvironmentRecord, EnvironmentRegistry, ProcessIdentity, RunMode } from './registry';
2
+ import { ProcessBackend } from './process';
3
+ /** Registry record for an AFM-managed Java data source service. The password stays only in config.properties. */
4
+ export interface JdbcServiceSettings {
5
+ version: string;
6
+ port: number;
7
+ url: string;
8
+ username: string;
9
+ java: string;
10
+ run?: ProcessIdentity & {
11
+ mode: RunMode;
12
+ stdout?: string;
13
+ stderr?: string;
14
+ };
15
+ }
16
+ export interface JdbcServiceDependencies {
17
+ registry?: EnvironmentRegistry;
18
+ processes?: ProcessBackend;
19
+ /** Starts the detached Java process; returns its PID. */
20
+ spawnService?: (spec: {
21
+ java: string;
22
+ jar: string;
23
+ cwd: string;
24
+ stdout: string;
25
+ stderr: string;
26
+ }) => Promise<number>;
27
+ /** Verifies the service answers health and authenticated requests. */
28
+ health?: (url: string, username: string, password: string) => Promise<void>;
29
+ /** Terminates one verified service process; tests inject a fake. */
30
+ kill?: (pid: number) => Promise<void>;
31
+ java?: string;
32
+ }
33
+ export interface JdbcServiceInstallOptions {
34
+ name: string;
35
+ /** Local official service ZIP. Mutually exclusive with `version`. */
36
+ archive?: string;
37
+ /** OSS version of the `gcef-datasource-java` package. */
38
+ version?: string;
39
+ /** OSS artifact client factory; required when `version` is used. */
40
+ clientFactory?: () => Promise<{
41
+ listArtifacts(plugin: string, version: string): Promise<Array<{
42
+ name?: string;
43
+ }>>;
44
+ downloadArtifact(plugin: string, version: string, file: string, dir: string, options?: {
45
+ maxBytes: number;
46
+ }): Promise<void>;
47
+ }> | {
48
+ listArtifacts(plugin: string, version: string): Promise<Array<{
49
+ name?: string;
50
+ }>>;
51
+ downloadArtifact(plugin: string, version: string, file: string, dir: string, options?: {
52
+ maxBytes: number;
53
+ }): Promise<void>;
54
+ };
55
+ port?: number;
56
+ java?: string;
57
+ /** The generated service listens on all interfaces, so enabling it is explicit. */
58
+ acknowledgeExposure?: boolean;
59
+ }
60
+ /**
61
+ * Install the official Java data source service into an environment.
62
+ *
63
+ * Only the service JAR and logging configuration come from the package: the
64
+ * configuration file is generated here, with random credentials and a driver
65
+ * path that points at the environment's own `third-party-drivers` directory.
66
+ * The service listens on all interfaces by default, so enabling it requires an
67
+ * explicit exposure acknowledgement.
68
+ */
69
+ export declare function installJdbcService(options: JdbcServiceInstallOptions, dependencies?: JdbcServiceDependencies): Promise<{
70
+ name: string;
71
+ directory: string;
72
+ version: string;
73
+ port: number;
74
+ url: string;
75
+ files: string[];
76
+ changed: boolean;
77
+ }>;
78
+ /** Start the managed service if the environment has one; verifies health and credentials. */
79
+ export declare function startJdbcService(entry: EnvironmentRecord, dependencies?: JdbcServiceDependencies): Promise<JdbcServiceSettings | undefined>;
80
+ /** Stop the managed service, verifying the recorded identity first. */
81
+ export declare function stopJdbcService(entry: EnvironmentRecord, dependencies?: JdbcServiceDependencies): Promise<boolean>;
82
+ export declare function jdbcServiceStatus(name: string, dependencies?: JdbcServiceDependencies): Promise<{
83
+ name: string;
84
+ installed: boolean;
85
+ url?: string;
86
+ version?: string;
87
+ port?: number;
88
+ running: boolean;
89
+ health: 'ok' | 'unreachable';
90
+ }>;
91
+ //# sourceMappingURL=jdbc-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jdbc-service.d.ts","sourceRoot":"","sources":["../../src/environment/jdbc-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,375 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.installJdbcService = installJdbcService;
37
+ exports.startJdbcService = startJdbcService;
38
+ exports.stopJdbcService = stopJdbcService;
39
+ exports.jdbcServiceStatus = jdbcServiceStatus;
40
+ const fs = __importStar(require("fs/promises"));
41
+ const fs_1 = require("fs");
42
+ const path = __importStar(require("path"));
43
+ const os = __importStar(require("os"));
44
+ const http = __importStar(require("http"));
45
+ const child_process_1 = require("child_process");
46
+ const crypto_1 = require("crypto");
47
+ const registry_1 = require("./registry");
48
+ const process_1 = require("./process");
49
+ const posix_process_1 = require("./posix-process");
50
+ const validate_1 = require("./validate");
51
+ const archive_1 = require("./archive");
52
+ const jdbc_1 = require("./jdbc");
53
+ const SERVICE_JAR = 'wyn.datasource.service.jar';
54
+ const SERVICE_ZIP_LIMIT = 128 * 1024 * 1024;
55
+ const HEALTH_TIMEOUT_MS = 30000;
56
+ function defaultProcesses() {
57
+ return process.platform === 'win32' ? new process_1.WindowsProcessBackend() : new posix_process_1.PosixProcessBackend();
58
+ }
59
+ function safeCredentials(username, password) {
60
+ if (!/^[A-Za-z0-9._-]{1,64}$/.test(username))
61
+ throw new Error('Invalid JDBC service username.');
62
+ if (!/^[A-Za-z0-9._~-]{8,128}$/.test(password))
63
+ throw new Error('Invalid JDBC service password.');
64
+ }
65
+ async function readServicePassword(directory) {
66
+ const text = await fs.readFile(path.join(directory, 'config.properties'), 'utf8');
67
+ const match = /^authorization\.password=(.+)$/m.exec(text);
68
+ if (!match)
69
+ throw new Error('Managed JDBC service configuration is missing its password.');
70
+ return match[1].trim();
71
+ }
72
+ async function request(url, endpoint, authorization) {
73
+ return new Promise((resolve, reject) => {
74
+ let settled = false;
75
+ const fail = () => { if (!settled) {
76
+ settled = true;
77
+ reject(new Error('Managed JDBC service is not answering.'));
78
+ } };
79
+ const target = new URL(url);
80
+ const req = http.request({
81
+ protocol: 'http:', hostname: target.hostname, port: target.port, path: endpoint, method: 'GET',
82
+ headers: authorization ? { Authorization: authorization } : {}, agent: false,
83
+ }, response => {
84
+ const chunks = [];
85
+ let size = 0;
86
+ response.on('data', (chunk) => { size += chunk.length; if (size > 65536) {
87
+ response.destroy();
88
+ fail();
89
+ }
90
+ else
91
+ chunks.push(chunk); });
92
+ response.on('error', fail);
93
+ response.on('end', () => { if (!settled) {
94
+ settled = true;
95
+ resolve({ status: response.statusCode ?? 0, body: Buffer.concat(chunks).toString('utf8') });
96
+ } });
97
+ });
98
+ req.setTimeout(3000, () => req.destroy());
99
+ req.on('error', fail);
100
+ req.end();
101
+ });
102
+ }
103
+ async function verifyService(url, username, password) {
104
+ const authorization = 'Basic ' + Buffer.from(`${username}:${password}`, 'utf8').toString('base64');
105
+ const deadline = Date.now() + HEALTH_TIMEOUT_MS;
106
+ for (;;) {
107
+ try {
108
+ const health = await request(url, '/api/healthcheck');
109
+ if (health.status === 200) {
110
+ const providers = await request(url, '/api/datasource/unavailableproviders/get', authorization);
111
+ if (providers.status !== 200)
112
+ throw new Error('Managed JDBC service rejected its own credentials.');
113
+ return;
114
+ }
115
+ }
116
+ catch { /* retry until the deadline */ }
117
+ if (Date.now() >= deadline)
118
+ throw new Error('Managed JDBC service did not become healthy in time.');
119
+ await new Promise(resolve => setTimeout(resolve, 250));
120
+ }
121
+ }
122
+ function spawnDetached(spec) {
123
+ return new Promise((resolve, reject) => {
124
+ // Open the log files first: a WriteStream has no descriptor until its async
125
+ // open completes, and spawn() only accepts an already opened stream or fd.
126
+ let out, err;
127
+ try {
128
+ out = (0, fs_1.openSync)(spec.stdout, 'a');
129
+ err = (0, fs_1.openSync)(spec.stderr, 'a');
130
+ }
131
+ catch (error) {
132
+ reject(error);
133
+ return;
134
+ }
135
+ const close = () => { (0, fs_1.closeSync)(out); (0, fs_1.closeSync)(err); };
136
+ const child = (0, child_process_1.spawn)(spec.java, ['-jar', spec.jar], { cwd: spec.cwd, detached: true, stdio: ['ignore', out, err], windowsHide: true });
137
+ child.once('error', error => { close(); reject(error); });
138
+ child.once('spawn', () => { close(); child.unref(); resolve(child.pid); });
139
+ });
140
+ }
141
+ /** Escape a generated value for XML; credentials are restricted before this point. */
142
+ function xml(value) { return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;'); }
143
+ function serviceConfig(port, username, password) {
144
+ return [
145
+ `port=${port}`,
146
+ `authorization.username=${username}`,
147
+ `authorization.password=${password}`,
148
+ 'connection.pool.minIdle=1',
149
+ 'connection.pool.idleTimeout=600000',
150
+ 'datasource.third-party.driver.path=third-party-drivers',
151
+ '',
152
+ ].join('\n');
153
+ }
154
+ /**
155
+ * Install the official Java data source service into an environment.
156
+ *
157
+ * Only the service JAR and logging configuration come from the package: the
158
+ * configuration file is generated here, with random credentials and a driver
159
+ * path that points at the environment's own `third-party-drivers` directory.
160
+ * The service listens on all interfaces by default, so enabling it requires an
161
+ * explicit exposure acknowledgement.
162
+ */
163
+ async function installJdbcService(options, dependencies = {}) {
164
+ if (options.acknowledgeExposure !== true)
165
+ throw new Error('The Java data source service listens on all interfaces; pass --acknowledge-exposure after restricting network access.');
166
+ if ((options.archive === undefined) === (options.version === undefined))
167
+ throw new Error('Pass exactly one of --archive or --version.');
168
+ if (options.port !== undefined && (!Number.isInteger(options.port) || options.port < 1 || options.port > 65535))
169
+ throw new Error('Invalid JDBC service port.');
170
+ const registry = dependencies.registry ?? new registry_1.EnvironmentRegistry();
171
+ const processes = dependencies.processes ?? defaultProcesses();
172
+ const original = await registry.get(options.name);
173
+ let workspace;
174
+ try {
175
+ let archive;
176
+ let version;
177
+ if (options.archive !== undefined) {
178
+ archive = path.resolve(options.archive);
179
+ const stat = await fs.lstat(archive).catch(() => undefined);
180
+ if (!stat || !stat.isFile() || stat.isSymbolicLink() || stat.size <= 0 || stat.size > SERVICE_ZIP_LIMIT)
181
+ throw new Error('Invalid JDBC service archive.');
182
+ version = 'local';
183
+ }
184
+ else {
185
+ const factory = options.clientFactory;
186
+ if (!factory)
187
+ throw new Error('OSS access is required to install by version; pass --archive instead.');
188
+ const client = await factory();
189
+ const plugin = 'gcef-datasource-java';
190
+ const artifacts = await client.listArtifacts(plugin, options.version);
191
+ const zips = artifacts.filter(item => typeof item.name === 'string' && /^[A-Za-z0-9][A-Za-z0-9._-]*\.zip$/.test(item.name));
192
+ if (zips.length !== 1)
193
+ throw new Error('Expected exactly one JDBC service archive in that OSS version.');
194
+ workspace = await fs.mkdtemp(path.join(os.tmpdir(), 'afm-jdbc-service-'));
195
+ await client.downloadArtifact(plugin, options.version, zips[0].name, workspace, { maxBytes: SERVICE_ZIP_LIMIT });
196
+ archive = path.join(workspace, zips[0].name);
197
+ version = options.version;
198
+ }
199
+ const extracted = path.join(workspace ?? await fs.mkdtemp(path.join(os.tmpdir(), 'afm-jdbc-service-')), 'extracted');
200
+ if (!workspace)
201
+ workspace = path.dirname(extracted);
202
+ await (0, archive_1.extractArchive)(archive, extracted, { maxEntries: 64, maxBytes: SERVICE_ZIP_LIMIT });
203
+ const jar = path.join(extracted, SERVICE_JAR);
204
+ const jarStat = await fs.lstat(jar).catch(() => undefined);
205
+ if (!jarStat || !jarStat.isFile() || jarStat.isSymbolicLink())
206
+ throw new Error('JDBC service archive must contain a regular wyn.datasource.service.jar.');
207
+ const logging = path.join(extracted, 'log4j2.xml');
208
+ const loggingStat = await fs.lstat(logging).catch(() => undefined);
209
+ if (!loggingStat || !loggingStat.isFile() || loggingStat.isSymbolicLink())
210
+ throw new Error('JDBC service archive must contain a regular log4j2.xml.');
211
+ return await registry.locked(`env-${original.id}`, async () => {
212
+ const entry = await registry.get(options.name);
213
+ if (entry.id !== original.id || entry.root !== original.root)
214
+ throw new Error('Environment changed during operation.');
215
+ await (0, validate_1.validateEnvironmentOwnership)(entry, registry.directory);
216
+ const state = await (0, validate_1.observeRuntimeState)(entry, processes);
217
+ if (state !== 'stopped' && state !== 'ready')
218
+ throw new Error(`Environment must be stopped; observed state: ${state}.`);
219
+ const directory = path.join(entry.root, 'DataSourceService');
220
+ const stat = await fs.lstat(directory).catch(() => undefined);
221
+ if (stat && (!stat.isDirectory() || stat.isSymbolicLink()))
222
+ throw new Error('DataSourceService must be a real directory.');
223
+ // Fresh environments ship no service directory, so AFM creates it; a link
224
+ // or file at that path is refused instead of followed.
225
+ if (!stat)
226
+ await fs.mkdir(directory);
227
+ const port = options.port ?? entry.port + 1;
228
+ if (port > 65535)
229
+ throw new Error('No port available for the JDBC service; pass --port.');
230
+ await (0, process_1.checkPort)(port);
231
+ const target = path.join(directory, SERVICE_JAR);
232
+ for (const file of [SERVICE_JAR, 'log4j2.xml', 'config.properties']) {
233
+ const existing = await fs.lstat(path.join(directory, file)).catch(() => undefined);
234
+ if (existing)
235
+ throw new Error(`JDBC service destination conflict: ${path.join(directory, file)}.`);
236
+ }
237
+ const username = 'java_service';
238
+ const password = (0, crypto_1.randomBytes)(24).toString('base64url');
239
+ safeCredentials(username, password);
240
+ const created = [];
241
+ try {
242
+ await fs.copyFile(logging, path.join(directory, 'log4j2.xml')).catch(async () => { await fs.writeFile(path.join(directory, 'log4j2.xml'), await fs.readFile(logging), { flag: 'wx' }); });
243
+ created.push(path.join(directory, 'log4j2.xml'));
244
+ await fs.copyFile(jar, target);
245
+ created.push(target);
246
+ await fs.writeFile(path.join(directory, 'config.properties'), serviceConfig(port, username, password), { flag: 'wx' });
247
+ created.push(path.join(directory, 'config.properties'));
248
+ }
249
+ catch (error) {
250
+ throw new Error(`JDBC service installation incomplete; created: ${created.join(', ') || '(none)'}. ${error.message}`);
251
+ }
252
+ const url = `http://127.0.0.1:${port}`;
253
+ const settings = { version, port, url, username, java: options.java ?? dependencies.java ?? (process.platform === 'win32' ? 'java.exe' : 'java') };
254
+ entry.jdbcService = settings;
255
+ await registry.save(entry);
256
+ // Credentials must match what the service expects, so the proxy block is
257
+ // written from the same generated values instead of a second prompt.
258
+ const conf = path.join(entry.root, 'conf', 'Wyn.conf');
259
+ const before = await fs.readFile(conf, 'utf8');
260
+ const after = (0, jdbc_1.updateJdbcXml)(before, url, { username, password });
261
+ if (after !== before)
262
+ await fs.writeFile(conf, after, { encoding: 'utf8' });
263
+ return { name: entry.name, directory, version, port, url, files: created, changed: true };
264
+ });
265
+ }
266
+ finally {
267
+ if (workspace)
268
+ await fs.rm(workspace, { recursive: true, force: true });
269
+ }
270
+ }
271
+ /** Start the managed service if the environment has one; verifies health and credentials. */
272
+ async function startJdbcService(entry, dependencies = {}) {
273
+ const settings = entry.jdbcService;
274
+ if (!settings)
275
+ return undefined;
276
+ const directory = path.join(entry.root, 'DataSourceService');
277
+ const jar = path.join(directory, SERVICE_JAR);
278
+ const processes = dependencies.processes ?? defaultProcesses();
279
+ const health = dependencies.health ?? verifyService;
280
+ const password = await readServicePassword(directory);
281
+ if (settings.run) {
282
+ const current = await processes.inspect(settings.run.pid);
283
+ if (current.status === 'live' && (0, process_1.sameProcess)(current.identity, settings.run)) {
284
+ await health(settings.url, settings.username, password);
285
+ return settings;
286
+ }
287
+ if (current.status === 'unknown')
288
+ throw new Error('Managed JDBC service process identity is uncertain; refusing to start another instance.');
289
+ delete settings.run;
290
+ }
291
+ await (0, process_1.checkPort)(settings.port);
292
+ const stdout = path.join(entry.root, 'logs', 'jdbc-service.stdout.log');
293
+ const stderr = path.join(entry.root, 'logs', 'jdbc-service.stderr.log');
294
+ await fs.mkdir(path.join(entry.root, 'logs'), { recursive: true });
295
+ const java = dependencies.java ?? settings.java;
296
+ const spawnService = dependencies.spawnService ?? spawnDetached;
297
+ const pid = await spawnService({ java, jar, cwd: directory, stdout, stderr });
298
+ try {
299
+ const inspection = await processes.inspect(pid);
300
+ if (inspection.status !== 'live')
301
+ throw new Error('Managed JDBC service exited during startup.');
302
+ settings.run = { ...inspection.identity, mode: 'background', stdout, stderr };
303
+ await health(settings.url, settings.username, password);
304
+ return settings;
305
+ }
306
+ catch (error) {
307
+ try {
308
+ const inspection = await processes.inspect(pid);
309
+ if (inspection.status === 'live')
310
+ await (dependencies.kill ?? terminate)(pid);
311
+ }
312
+ catch { /* the caller keeps the recorded identity for recovery */ }
313
+ throw error;
314
+ }
315
+ }
316
+ async function terminate(pid) {
317
+ try {
318
+ process.kill(pid);
319
+ }
320
+ catch (error) {
321
+ if (error.code !== 'ESRCH')
322
+ throw error;
323
+ }
324
+ }
325
+ /** Stop the managed service, verifying the recorded identity first. */
326
+ async function stopJdbcService(entry, dependencies = {}) {
327
+ const settings = entry.jdbcService;
328
+ if (!settings?.run)
329
+ return false;
330
+ const processes = dependencies.processes ?? defaultProcesses();
331
+ const kill = dependencies.kill ?? terminate;
332
+ const current = await processes.inspect(settings.run.pid);
333
+ if (current.status === 'unknown')
334
+ throw new Error('Managed JDBC service process identity is uncertain; refusing to stop.');
335
+ if (current.status === 'live') {
336
+ if (!(0, process_1.sameProcess)(current.identity, settings.run))
337
+ throw new Error('Managed JDBC service identity changed; refusing to stop.');
338
+ // The process backend only stops dotnet monitors, so the service is
339
+ // terminated directly after the same identity check.
340
+ await kill(settings.run.pid);
341
+ for (let attempt = 0; attempt < 20; attempt++) {
342
+ const after = await processes.inspect(settings.run.pid);
343
+ if (after.status === 'absent')
344
+ break;
345
+ await new Promise(resolve => setTimeout(resolve, 100));
346
+ }
347
+ const after = await processes.inspect(settings.run.pid);
348
+ if (after.status !== 'absent')
349
+ throw new Error('Managed JDBC service did not exit; stop it manually.');
350
+ }
351
+ delete settings.run;
352
+ return true;
353
+ }
354
+ async function jdbcServiceStatus(name, dependencies = {}) {
355
+ const registry = dependencies.registry ?? new registry_1.EnvironmentRegistry();
356
+ const entry = await registry.get(name);
357
+ const settings = entry.jdbcService;
358
+ if (!settings)
359
+ return { name: entry.name, installed: false, running: false, health: 'unreachable' };
360
+ const processes = dependencies.processes ?? defaultProcesses();
361
+ let running = false;
362
+ if (settings.run) {
363
+ const current = await processes.inspect(settings.run.pid);
364
+ running = current.status === 'live' && (0, process_1.sameProcess)(current.identity, settings.run);
365
+ }
366
+ let health = 'unreachable';
367
+ try {
368
+ const password = await readServicePassword(path.join(entry.root, 'DataSourceService'));
369
+ await (dependencies.health ?? verifyService)(settings.url, settings.username, password);
370
+ health = 'ok';
371
+ }
372
+ catch { /* report unreachable */ }
373
+ return { name: entry.name, installed: true, url: settings.url, version: settings.version, port: settings.port, running, health };
374
+ }
375
+ //# sourceMappingURL=jdbc-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jdbc-service.js","sourceRoot":"","sources":["../../src/environment/jdbc-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { EnvironmentRegistry } from './registry';
2
+ import { ProcessBackend } from './process';
3
+ export interface JdbcOptions {
4
+ name: string;
5
+ uri: string;
6
+ dryRun?: boolean;
7
+ acknowledgeService?: boolean;
8
+ }
9
+ export interface JdbcDependencies {
10
+ registry?: EnvironmentRegistry;
11
+ processes?: ProcessBackend;
12
+ }
13
+ export interface JdbcReport {
14
+ name: string;
15
+ uri: string;
16
+ dryRun: boolean;
17
+ changed: boolean;
18
+ health: 'unverified';
19
+ authentication: 'unverified';
20
+ }
21
+ export interface JdbcCredentials {
22
+ username: string;
23
+ password: string;
24
+ }
25
+ /** Change only the known afm-generated Server configuration; reject ambiguous XML. */
26
+ export declare function updateJdbcXml(xml: string, uri: string, credentials?: JdbcCredentials): string;
27
+ export declare function configureJdbc(options: JdbcOptions, dependencies?: JdbcDependencies): Promise<JdbcReport>;
28
+ //# sourceMappingURL=jdbc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jdbc.d.ts","sourceRoot":"","sources":["../../src/environment/jdbc.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,cAAc,EAAyB,MAAM,WAAW,CAAC;AAIlE,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAAE;AAC3G,MAAM,WAAW,gBAAgB;IAAG,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAAC,SAAS,CAAC,EAAE,cAAc,CAAC;CAAE;AACjG,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,YAAY,CAAC;IAAC,cAAc,EAAE,YAAY,CAAC;CAAE;AASjJ,MAAM,WAAW,eAAe;IAAG,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAOvE,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,eAAe,GAAG,MAAM,CA8C7F;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,GAAE,gBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8BlH"}