react-on-rails-pro-node-renderer 16.5.1 → 16.6.0-rc.1
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/lib/master.d.ts.map +1 -1
- package/lib/master.js +56 -4
- package/lib/master.js.map +1 -1
- package/lib/shared/configBuilder.d.ts +3 -1
- package/lib/shared/configBuilder.d.ts.map +1 -1
- package/lib/shared/configBuilder.js +98 -8
- package/lib/shared/configBuilder.js.map +1 -1
- package/lib/shared/utils.d.ts +1 -0
- package/lib/shared/utils.d.ts.map +1 -1
- package/lib/shared/utils.js +8 -3
- package/lib/shared/utils.js.map +1 -1
- package/lib/shared/workerMessages.d.ts +13 -0
- package/lib/shared/workerMessages.d.ts.map +1 -0
- package/lib/shared/workerMessages.js +23 -0
- package/lib/shared/workerMessages.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/worker/handleRenderRequest.d.ts.map +1 -1
- package/lib/worker/handleRenderRequest.js +1 -1
- package/lib/worker/handleRenderRequest.js.map +1 -1
- package/lib/worker/startupErrorHandler.d.ts +10 -0
- package/lib/worker/startupErrorHandler.d.ts.map +1 -0
- package/lib/worker/startupErrorHandler.js +57 -0
- package/lib/worker/startupErrorHandler.js.map +1 -0
- package/lib/worker.d.ts.map +1 -1
- package/lib/worker.js +73 -6
- package/lib/worker.js.map +1 -1
- package/package.json +3 -3
- package/src/master.ts +64 -4
- package/src/shared/configBuilder.ts +118 -11
- package/src/shared/utils.ts +9 -3
- package/src/shared/workerMessages.ts +34 -0
- package/src/worker/handleRenderRequest.ts +3 -1
- package/src/worker/startupErrorHandler.ts +65 -0
- package/src/worker.ts +80 -12
- package/tests/configBuilder.test.ts +357 -8
- package/tests/masterStartupFailure.test.ts +295 -0
- package/tests/worker.test.ts +145 -0
- package/tests/workerStartupFailure.test.ts +250 -0
package/lib/master.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master.d.ts","sourceRoot":"","sources":["../src/master.ts"],"names":[],"mappings":"AAQA,OAAO,EAAe,MAAM,EAAsB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"master.d.ts","sourceRoot":"","sources":["../src/master.ts"],"names":[],"mappings":"AAQA,OAAO,EAAe,MAAM,EAAsB,MAAM,2BAA2B,CAAC;AAcpF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAgKhE"}
|
package/lib/master.js
CHANGED
|
@@ -49,6 +49,7 @@ const configBuilder_js_1 = require("./shared/configBuilder.js");
|
|
|
49
49
|
const restartWorkers_js_1 = __importDefault(require("./master/restartWorkers.js"));
|
|
50
50
|
const errorReporter = __importStar(require("./shared/errorReporter.js"));
|
|
51
51
|
const licenseValidator_js_1 = require("./shared/licenseValidator.js");
|
|
52
|
+
const workerMessages_js_1 = require("./shared/workerMessages.js");
|
|
52
53
|
const MILLISECONDS_IN_MINUTE = 60000;
|
|
53
54
|
// How often to scan for orphaned upload directories.
|
|
54
55
|
const ORPHAN_CLEANUP_INTERVAL_MS = 5 * MILLISECONDS_IN_MINUTE;
|
|
@@ -104,22 +105,73 @@ function masterRun(runningConfig) {
|
|
|
104
105
|
}
|
|
105
106
|
})();
|
|
106
107
|
}, ORPHAN_CLEANUP_INTERVAL_MS);
|
|
108
|
+
let isAbortingForStartupFailure = false;
|
|
109
|
+
let fatalStartupFailure = null;
|
|
110
|
+
let hasInitiatedShutdown = false;
|
|
111
|
+
const abortForStartupFailure = () => {
|
|
112
|
+
if (!(isAbortingForStartupFailure && fatalStartupFailure))
|
|
113
|
+
return false;
|
|
114
|
+
if (!hasInitiatedShutdown) {
|
|
115
|
+
hasInitiatedShutdown = true;
|
|
116
|
+
// Note: the exiting worker may differ from the one that sent the
|
|
117
|
+
// failure message if multiple workers exit in rapid succession.
|
|
118
|
+
// We always report the first failure received.
|
|
119
|
+
const { failure, workerId: failedWorkerId } = fatalStartupFailure;
|
|
120
|
+
const msg = failure.code === 'EADDRINUSE'
|
|
121
|
+
? `Node renderer startup failed: ${failure.host}:${failure.port} is already in use`
|
|
122
|
+
: `Node renderer startup failed in worker ${failedWorkerId}: ${failure.message}`;
|
|
123
|
+
errorReporter.message(msg);
|
|
124
|
+
// Disconnect all live workers so they release their ports before the
|
|
125
|
+
// master exits. cluster.disconnect() is async — the callback fires
|
|
126
|
+
// once every worker has disconnected. A hard-deadline timer guarantees
|
|
127
|
+
// the master still exits if a worker is stuck (leaked handle, blocking
|
|
128
|
+
// syscall, etc.), following the same pattern as restartWorkers.ts.
|
|
129
|
+
const MASTER_SHUTDOWN_TIMEOUT_MS = 5000;
|
|
130
|
+
const shutdownTimer = setTimeout(() => process.exit(1), MASTER_SHUTDOWN_TIMEOUT_MS);
|
|
131
|
+
if (typeof shutdownTimer.unref === 'function')
|
|
132
|
+
shutdownTimer.unref();
|
|
133
|
+
cluster_1.default.disconnect(() => {
|
|
134
|
+
clearTimeout(shutdownTimer);
|
|
135
|
+
process.exit(1);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return true;
|
|
139
|
+
};
|
|
140
|
+
cluster_1.default.on('message', (worker, message) => {
|
|
141
|
+
// Check the abort flag first to short-circuit the type-guard on every
|
|
142
|
+
// ordinary IPC message once we are already aborting.
|
|
143
|
+
if (isAbortingForStartupFailure || !(0, workerMessages_js_1.isWorkerStartupFailureMessage)(message))
|
|
144
|
+
return;
|
|
145
|
+
isAbortingForStartupFailure = true;
|
|
146
|
+
fatalStartupFailure = { workerId: worker.id, failure: message };
|
|
147
|
+
});
|
|
107
148
|
for (let i = 0; i < workersCount; i += 1) {
|
|
108
149
|
cluster_1.default.fork();
|
|
109
150
|
}
|
|
110
151
|
// Listen for dying workers:
|
|
111
152
|
cluster_1.default.on('exit', (worker) => {
|
|
153
|
+
// Once a startup failure has been detected, abort regardless of whether
|
|
154
|
+
// this particular exit was from the failing worker, a scheduled restart,
|
|
155
|
+
// or an unrelated crash. Don't fork any more workers.
|
|
156
|
+
if (abortForStartupFailure()) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
112
159
|
if (worker.isScheduledRestart) {
|
|
113
160
|
log_js_1.default.info('Restarting worker #%d on schedule', worker.id);
|
|
161
|
+
cluster_1.default.fork();
|
|
162
|
+
return;
|
|
114
163
|
}
|
|
115
|
-
|
|
164
|
+
// Give in-flight startup-failure IPC messages one event-loop turn to be
|
|
165
|
+
// processed before classifying this as an ordinary runtime crash.
|
|
166
|
+
setImmediate(() => {
|
|
167
|
+
if (abortForStartupFailure())
|
|
168
|
+
return;
|
|
116
169
|
// TODO: Track last rendering request per worker.id
|
|
117
170
|
// TODO: Consider blocking a given rendering request if it kills a worker more than X times
|
|
118
171
|
const msg = `Worker ${worker.id} died UNEXPECTEDLY :(, restarting`;
|
|
119
172
|
errorReporter.message(msg);
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
cluster_1.default.fork();
|
|
173
|
+
cluster_1.default.fork();
|
|
174
|
+
});
|
|
123
175
|
});
|
|
124
176
|
// Schedule regular restarts of workers
|
|
125
177
|
if (allWorkersRestartInterval && delayBetweenIndividualWorkerRestarts) {
|
package/lib/master.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master.js","sourceRoot":"","sources":["../src/master.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"master.js","sourceRoot":"","sources":["../src/master.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,4BAgKC;AAtLD;;;GAGG;AACH,gDAAwB;AACxB,sDAA8B;AAC9B,0CAAgD;AAChD,6DAAkC;AAClC,gEAAoF;AACpF,mFAAwD;AACxD,yEAA2D;AAC3D,sEAAgE;AAChE,kEAA6G;AAE7G,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,qDAAqD;AACrD,MAAM,0BAA0B,GAAG,CAAC,GAAG,sBAAsB,CAAC;AAC9D,gEAAgE;AAChE,4EAA4E;AAC5E,8DAA8D;AAC9D,MAAM,uBAAuB,GAAG,EAAE,GAAG,sBAAsB,CAAC;AAE5D,SAAwB,SAAS,CAAC,aAA+B;IAC/D,wDAAwD;IACxD,yEAAyE;IACzE,gFAAgF;IAChF,0CAA0C;IAC1C,MAAM,MAAM,GAAG,IAAA,sCAAgB,GAAE,CAAC;IAClC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,YAAY,CAAC;IACrG,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,gBAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAG,CAAC,CAAC,CAAC,CAAC,gBAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAG,CAAC,CAAC;IAE/E,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,gBAAG,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;IACnE,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,eAAe,CAAC,uFAAuF,CAAC,CAAC;IAC3G,CAAC;SAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,eAAe,CACb,+FAA+F,CAChG,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,sFAAsF,CAAC,CAAC;IAC1G,CAAC;IAED,wFAAwF;IACxF,MAAM,MAAM,GAAG,IAAA,8BAAW,EAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,EACJ,YAAY,EACZ,yBAAyB,EACzB,oCAAoC,EACpC,4BAA4B,GAC7B,GAAG,MAAM,CAAC;IAEX,IAAA,qCAAkB,GAAE,CAAC;IAErB,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,qCAAqC;IACrC,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IACtE,WAAW,CAAC,GAAG,EAAE;QACf,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAA,kBAAO,EAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAc,CAAC,CAAC;gBACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC1B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;oBAC7C,MAAM,KAAK,GAAG,MAAM,IAAA,eAAI,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,GAAG,uBAAuB,EAAE,CAAC;wBAC1E,MAAM,IAAA,aAAE,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;wBACpD,gBAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,sCAAsC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,gBAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gDAAgD,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,0BAA0B,CAAC,CAAC;IAE/B,IAAI,2BAA2B,GAAG,KAAK,CAAC;IACxC,IAAI,mBAAmB,GAAsE,IAAI,CAAC;IAClG,IAAI,oBAAoB,GAAG,KAAK,CAAC;IAEjC,MAAM,sBAAsB,GAAG,GAAY,EAAE;QAC3C,IAAI,CAAC,CAAC,2BAA2B,IAAI,mBAAmB,CAAC;YAAE,OAAO,KAAK,CAAC;QAExE,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,oBAAoB,GAAG,IAAI,CAAC;YAC5B,iEAAiE;YACjE,gEAAgE;YAChE,+CAA+C;YAC/C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC;YAClE,MAAM,GAAG,GACP,OAAO,CAAC,IAAI,KAAK,YAAY;gBAC3B,CAAC,CAAC,iCAAiC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,oBAAoB;gBACnF,CAAC,CAAC,0CAA0C,cAAc,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAErF,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,qEAAqE;YACrE,mEAAmE;YACnE,uEAAuE;YACvE,uEAAuE;YACvE,mEAAmE;YACnE,MAAM,0BAA0B,GAAG,IAAI,CAAC;YACxC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;YACpF,IAAI,OAAO,aAAa,CAAC,KAAK,KAAK,UAAU;gBAAE,aAAa,CAAC,KAAK,EAAE,CAAC;YACrE,iBAAO,CAAC,UAAU,CAAC,GAAG,EAAE;gBACtB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,iBAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QACxC,sEAAsE;QACtE,qDAAqD;QACrD,IAAI,2BAA2B,IAAI,CAAC,IAAA,iDAA6B,EAAC,OAAO,CAAC;YAAE,OAAO;QAEnF,2BAA2B,GAAG,IAAI,CAAC;QACnC,mBAAmB,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,iBAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;IAED,4BAA4B;IAC5B,iBAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QAC5B,wEAAwE;QACxE,yEAAyE;QACzE,sDAAsD;QACtD,IAAI,sBAAsB,EAAE,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,gBAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACzD,iBAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,kEAAkE;QAClE,YAAY,CAAC,GAAG,EAAE;YAChB,IAAI,sBAAsB,EAAE;gBAAE,OAAO;YAErC,mDAAmD;YACnD,2FAA2F;YAC3F,MAAM,GAAG,GAAG,UAAU,MAAM,CAAC,EAAE,mCAAmC,CAAC;YACnE,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,iBAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,uCAAuC;IACvC,IAAI,yBAAyB,IAAI,oCAAoC,EAAE,CAAC;QACtE,gBAAG,CAAC,IAAI,CACN,mEAAmE,EACnE,yBAAyB,EACzB,oCAAoC,CACrC,CAAC;QAEF,MAAM,2BAA2B,GAAG,yBAAyB,GAAG,sBAAsB,CAAC;QACvF,MAAM,sBAAsB,GAAG,GAAG,EAAE;YAClC,KAAK,IAAA,2BAAc,EAAC,oCAAoC,EAAE,4BAA4B,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACnG,UAAU,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,UAAU,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,CAAC;IAClE,CAAC;SAAM,IAAI,yBAAyB,IAAI,oCAAoC,EAAE,CAAC;QAC7E,gBAAG,CAAC,KAAK,CACP,wEAAwE;YACtE,4EAA4E,CAC/E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,gBAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -29,7 +29,9 @@ export interface Config {
|
|
|
29
29
|
export declare function getConfig(): Config;
|
|
30
30
|
export declare function logSanitizedConfig(): void;
|
|
31
31
|
/**
|
|
32
|
-
* Lazily create the config
|
|
32
|
+
* Lazily create the config.
|
|
33
|
+
* Passing password: undefined means "keep the env/default password", not "clear the password".
|
|
34
|
+
* Other undefined keys retain normal JavaScript spread semantics.
|
|
33
35
|
*/
|
|
34
36
|
export declare function buildConfig(providedUserConfig?: Partial<Config>): Config;
|
|
35
37
|
//# sourceMappingURL=configBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configBuilder.d.ts","sourceRoot":"","sources":["../../src/shared/configBuilder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"configBuilder.d.ts","sourceRoot":"","sources":["../../src/shared/configBuilder.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAavC,MAAM,WAAW,MAAM;IAIrB,IAAI,EAAE,MAAM,CAAC;IAIb,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,eAAe,CAAC;IAE1B,YAAY,EAAE,eAAe,CAAC;IAG9B,oBAAoB,EAAE,oBAAoB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAG9D,qBAAqB,EAAE,MAAM,CAAC;IAE9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB,cAAc,EAAE,OAAO,CAAC;IAKxB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAElD,YAAY,EAAE,MAAM,CAAC;IAGrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAI7B,yBAAyB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9C,oCAAoC,EAAE,MAAM,GAAG,SAAS,CAAC;IAGzD,4BAA4B,EAAE,MAAM,GAAG,SAAS,CAAC;IAEjD,qBAAqB,EAAE,MAAM,CAAC;IAE9B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,sBAAsB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzC,UAAU,EAAE,OAAO,CAAC;IAEpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAIhC,8BAA8B,EAAE,OAAO,CAAC;IAIxC,aAAa,EAAE,MAAM,CAAC;CACvB;AAKD,wBAAgB,SAAS,WAMxB;AA8KD,wBAAgB,kBAAkB,SAYjC;AAgCD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAyGxE"}
|
|
@@ -22,7 +22,6 @@ const DEFAULT_PORT = 3800;
|
|
|
22
22
|
const DEFAULT_LOG_LEVEL = 'info';
|
|
23
23
|
const { env } = process;
|
|
24
24
|
const MAX_DEBUG_SNIPPET_LENGTH = 1000;
|
|
25
|
-
const NODE_ENV = env.NODE_ENV || 'production';
|
|
26
25
|
let config;
|
|
27
26
|
let userConfig = {};
|
|
28
27
|
function getConfig() {
|
|
@@ -68,6 +67,30 @@ function logLevel(level) {
|
|
|
68
67
|
return DEFAULT_LOG_LEVEL;
|
|
69
68
|
}
|
|
70
69
|
}
|
|
70
|
+
function validatePort(port) {
|
|
71
|
+
if (!Number.isInteger(port) || !Number.isFinite(port) || port < 0 || port > 65535) {
|
|
72
|
+
return `RENDERER_PORT must be an integer between 0 and 65535. Received: ${String(port)}`;
|
|
73
|
+
}
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
function normalizedRuntimeEnvs() {
|
|
77
|
+
return [env.RAILS_ENV, env.NODE_ENV]
|
|
78
|
+
.filter((value) => Boolean(value))
|
|
79
|
+
.map((value) => value.toLowerCase());
|
|
80
|
+
}
|
|
81
|
+
function runtimeEnvsAllowDevelopmentDefaults() {
|
|
82
|
+
const runtimeEnvs = normalizedRuntimeEnvs();
|
|
83
|
+
// Fail closed: every present runtime env must be development/test before we allow
|
|
84
|
+
// missing-password defaults. Any production-like value, or no env at all, still
|
|
85
|
+
// requires an explicit password.
|
|
86
|
+
return runtimeEnvs.length > 0 && runtimeEnvs.every((value) => value === 'development' || value === 'test');
|
|
87
|
+
}
|
|
88
|
+
function defaultReplayServerAsyncOperationLogs() {
|
|
89
|
+
if (env.REPLAY_SERVER_ASYNC_OPERATION_LOGS != null) {
|
|
90
|
+
return (0, truthy_js_1.default)(env.REPLAY_SERVER_ASYNC_OPERATION_LOGS);
|
|
91
|
+
}
|
|
92
|
+
return env.NODE_ENV?.toLowerCase() === 'development';
|
|
93
|
+
}
|
|
71
94
|
const defaultConfig = {
|
|
72
95
|
// Use env port if we run on Heroku
|
|
73
96
|
port: Number(env.RENDERER_PORT) || DEFAULT_PORT,
|
|
@@ -96,8 +119,8 @@ const defaultConfig = {
|
|
|
96
119
|
maxDebugSnippetLength: MAX_DEBUG_SNIPPET_LENGTH,
|
|
97
120
|
// default to true if empty, otherwise it is set to false
|
|
98
121
|
stubTimers: env.RENDERER_STUB_TIMERS === 'true' || !env.RENDERER_STUB_TIMERS,
|
|
99
|
-
//
|
|
100
|
-
replayServerAsyncOperationLogs: (
|
|
122
|
+
// Default to true in development, otherwise it is set to false.
|
|
123
|
+
replayServerAsyncOperationLogs: defaultReplayServerAsyncOperationLogs(),
|
|
101
124
|
// Maximum number of VM contexts to keep in memory. Defaults to 2 since typically only two contexts
|
|
102
125
|
// are needed - one for the server bundle and one for React Server Components (RSC) if enabled.
|
|
103
126
|
maxVMPoolSize: (env.MAX_VM_POOL_SIZE && parseInt(env.MAX_VM_POOL_SIZE, 10)) || 2,
|
|
@@ -111,7 +134,8 @@ function envValuesUsed() {
|
|
|
111
134
|
RENDERER_SERVER_BUNDLE_CACHE_PATH: !userConfig.serverBundleCachePath && env.RENDERER_SERVER_BUNDLE_CACHE_PATH,
|
|
112
135
|
RENDERER_BUNDLE_PATH: !userConfig.serverBundleCachePath && !userConfig.bundlePath && env.RENDERER_BUNDLE_PATH,
|
|
113
136
|
RENDERER_WORKERS_COUNT: !userConfig.workersCount && env.RENDERER_WORKERS_COUNT,
|
|
114
|
-
|
|
137
|
+
// Explicit password overrides, including empty strings, intentionally suppress the env-derived value here.
|
|
138
|
+
RENDERER_PASSWORD: userConfig.password === undefined && env.RENDERER_PASSWORD && '<MASKED>',
|
|
115
139
|
RENDERER_SUPPORT_MODULES: !('supportModules' in userConfig) && env.RENDERER_SUPPORT_MODULES,
|
|
116
140
|
RENDERER_STUB_TIMERS: !('stubTimers' in userConfig) && env.RENDERER_STUB_TIMERS,
|
|
117
141
|
RENDERER_ALL_WORKERS_RESTART_INTERVAL: !userConfig.allWorkersRestartInterval && env.RENDERER_ALL_WORKERS_RESTART_INTERVAL,
|
|
@@ -124,10 +148,19 @@ function envValuesUsed() {
|
|
|
124
148
|
};
|
|
125
149
|
}
|
|
126
150
|
function sanitizedSettings(aConfig, defaultValue) {
|
|
151
|
+
let sanitizedPassword = defaultValue;
|
|
152
|
+
if (aConfig?.password === '') {
|
|
153
|
+
sanitizedPassword = '<EMPTY STRING>';
|
|
154
|
+
}
|
|
155
|
+
else if (aConfig?.password) {
|
|
156
|
+
sanitizedPassword = '<MASKED>';
|
|
157
|
+
}
|
|
127
158
|
return aConfig && Object.keys(aConfig).length > 0
|
|
128
159
|
? {
|
|
129
160
|
...aConfig,
|
|
130
|
-
|
|
161
|
+
// Distinguish explicit empty-string overrides from truly missing passwords in diagnostics.
|
|
162
|
+
// Empty strings still flow through as explicit overrides and fail validation in production-like envs.
|
|
163
|
+
password: sanitizedPassword,
|
|
131
164
|
allWorkersRestartInterval: aConfig.allWorkersRestartInterval || defaultValue,
|
|
132
165
|
delayBetweenIndividualWorkerRestarts: aConfig.delayBetweenIndividualWorkerRestarts || defaultValue,
|
|
133
166
|
gracefulWorkerRestartTimeout: aConfig.gracefulWorkerRestartTimeout || defaultValue,
|
|
@@ -138,18 +171,61 @@ function logSanitizedConfig() {
|
|
|
138
171
|
log_js_1.default.info({
|
|
139
172
|
'Node Renderer version': packageJson_js_1.default.version,
|
|
140
173
|
'Protocol version': packageJson_js_1.default.protocolVersion,
|
|
141
|
-
'Default settings': defaultConfig,
|
|
174
|
+
'Default settings at module load (env-backed values may lag current runtime)': sanitizedSettings(defaultConfig, '<NOT PROVIDED AT MODULE LOAD>'),
|
|
142
175
|
'ENV values used for settings (use "RENDERER_" prefix)': envValuesUsed(),
|
|
143
176
|
'Customized values for settings from config object (overrides ENV)': sanitizedSettings(userConfig),
|
|
144
177
|
'Final renderer settings': sanitizedSettings(config, '<NOT PROVIDED>'),
|
|
145
178
|
});
|
|
146
179
|
}
|
|
180
|
+
function validatePasswordForProduction(aConfig) {
|
|
181
|
+
// Only a truthy password satisfies the production-like requirement. Null, undefined, and empty strings are
|
|
182
|
+
// all treated as missing passwords.
|
|
183
|
+
if (aConfig.password)
|
|
184
|
+
return null;
|
|
185
|
+
// Require all present runtime envs to be development/test; fail closed otherwise.
|
|
186
|
+
// If either env indicates a production-like value, or neither env is set, password is required.
|
|
187
|
+
// This preserves a fail-closed invariant across the renderer startup path and the Ruby-side checks.
|
|
188
|
+
const allowMissingPassword = runtimeEnvsAllowDevelopmentDefaults();
|
|
189
|
+
if (allowMissingPassword)
|
|
190
|
+
return null;
|
|
191
|
+
return ('RENDERER_PASSWORD must be set in production-like environments ' +
|
|
192
|
+
`(NODE_ENV: "${env.NODE_ENV ?? '(not set)'}", RAILS_ENV: "${env.RAILS_ENV ?? '(not set)'}").` +
|
|
193
|
+
'\n\n' +
|
|
194
|
+
'In development and test environments, the renderer password is optional and no authentication\n' +
|
|
195
|
+
'is required. In all other environments, you must explicitly configure a password to secure\n' +
|
|
196
|
+
'communication between Rails and the Node Renderer.\n\n' +
|
|
197
|
+
'To fix this, set the RENDERER_PASSWORD environment variable:\n\n' +
|
|
198
|
+
' export RENDERER_PASSWORD="your-secure-password"\n\n' +
|
|
199
|
+
'Or pass it in the config object:\n\n' +
|
|
200
|
+
' reactOnRailsProNodeRenderer({ password: process.env.RENDERER_PASSWORD });\n\n' +
|
|
201
|
+
'Environment matrix:\n' +
|
|
202
|
+
' development — password optional (no authentication)\n' +
|
|
203
|
+
' test — password optional (no authentication)\n' +
|
|
204
|
+
' (neither set) — treated as production-like; RENDERER_PASSWORD required\n' +
|
|
205
|
+
' all other environments (staging, production, qa, preview, etc.) — RENDERER_PASSWORD required');
|
|
206
|
+
}
|
|
147
207
|
/**
|
|
148
|
-
* Lazily create the config
|
|
208
|
+
* Lazily create the config.
|
|
209
|
+
* Passing password: undefined means "keep the env/default password", not "clear the password".
|
|
210
|
+
* Other undefined keys retain normal JavaScript spread semantics.
|
|
149
211
|
*/
|
|
150
212
|
function buildConfig(providedUserConfig) {
|
|
151
213
|
userConfig = providedUserConfig || {};
|
|
152
|
-
|
|
214
|
+
const explicitUndefinedPassword = Object.prototype.hasOwnProperty.call(userConfig, 'password') && userConfig.password === undefined;
|
|
215
|
+
if (explicitUndefinedPassword && !runtimeEnvsAllowDevelopmentDefaults()) {
|
|
216
|
+
log_js_1.default.warn('buildConfig({ password: undefined }) preserves the env/default password rather than clearing it. ' +
|
|
217
|
+
'In production-like environments, a password is always required and cannot be cleared.');
|
|
218
|
+
}
|
|
219
|
+
const runtimeDefaultConfig = {
|
|
220
|
+
...defaultConfig,
|
|
221
|
+
password: env.RENDERER_PASSWORD,
|
|
222
|
+
// Re-evaluate env-derived defaults at build time in case env vars are set post-import.
|
|
223
|
+
replayServerAsyncOperationLogs: defaultReplayServerAsyncOperationLogs(),
|
|
224
|
+
};
|
|
225
|
+
config = { ...runtimeDefaultConfig, ...userConfig };
|
|
226
|
+
if (explicitUndefinedPassword) {
|
|
227
|
+
config.password = runtimeDefaultConfig.password;
|
|
228
|
+
}
|
|
153
229
|
// Handle bundlePath deprecation
|
|
154
230
|
if ('bundlePath' in userConfig) {
|
|
155
231
|
log_js_1.default.warn('bundlePath is deprecated and will be removed in a future version. ' +
|
|
@@ -180,6 +256,15 @@ function buildConfig(providedUserConfig) {
|
|
|
180
256
|
config.port = parseInt(val, 10);
|
|
181
257
|
}
|
|
182
258
|
});
|
|
259
|
+
// Coerce port to a number — user configs frequently pass env-derived strings
|
|
260
|
+
// (e.g. `port: env.RENDERER_PORT || 3800` yields the string "3800").
|
|
261
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-conversion -- runtime value may be string despite the type
|
|
262
|
+
config.port = Number(config.port);
|
|
263
|
+
const portValidationError = validatePort(config.port);
|
|
264
|
+
if (portValidationError) {
|
|
265
|
+
log_js_1.default.error(portValidationError);
|
|
266
|
+
process.exit(1);
|
|
267
|
+
}
|
|
183
268
|
if ('honeybadgerApiKey' in config ||
|
|
184
269
|
'sentryDsn' in config ||
|
|
185
270
|
'sentryTracing' in config ||
|
|
@@ -196,6 +281,11 @@ function buildConfig(providedUserConfig) {
|
|
|
196
281
|
log_js_1.default.error('includeTimerPolyfills is renamed to stubTimers in RoRP 4.0');
|
|
197
282
|
process.exit(1);
|
|
198
283
|
}
|
|
284
|
+
const passwordValidationError = validatePasswordForProduction(config);
|
|
285
|
+
if (passwordValidationError) {
|
|
286
|
+
log_js_1.default.error(passwordValidationError);
|
|
287
|
+
process.exit(1);
|
|
288
|
+
}
|
|
199
289
|
log_js_1.default.level = config.logLevel;
|
|
200
290
|
return config;
|
|
201
291
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configBuilder.js","sourceRoot":"","sources":["../../src/shared/configBuilder.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"configBuilder.js","sourceRoot":"","sources":["../../src/shared/configBuilder.ts"],"names":[],"mappings":"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"}
|
package/lib/shared/utils.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export interface ResponseResult {
|
|
|
15
15
|
data?: unknown;
|
|
16
16
|
stream?: Readable;
|
|
17
17
|
}
|
|
18
|
+
export declare function badRequestResponseResult(msg: string): ResponseResult;
|
|
18
19
|
export declare function errorResponseResult(msg: string, tracingContext?: TracingContext): ResponseResult;
|
|
19
20
|
/**
|
|
20
21
|
* @param renderingRequest The JavaScript code which threw an error
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAsC,WAAW,EAAQ,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAY,WAAW,EAAE,MAAM,QAAQ,CAAC;AAKnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AAEzD,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAEvE,wBAAgB,aAAa,4BAE5B;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAoC,iBAqBtF;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/shared/utils.js
CHANGED
|
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.delay = exports.majorVersion = exports.isErrorRenderResult = exports.handleStreamError = exports.safePipe = exports.isReadableStream = exports.SHUTDOWN_WORKER_MESSAGE = exports.TRUNCATION_FILLER = void 0;
|
|
40
40
|
exports.workerIdLabel = workerIdLabel;
|
|
41
41
|
exports.smartTrim = smartTrim;
|
|
42
|
+
exports.badRequestResponseResult = badRequestResponseResult;
|
|
42
43
|
exports.errorResponseResult = errorResponseResult;
|
|
43
44
|
exports.formatExceptionMessage = formatExceptionMessage;
|
|
44
45
|
exports.saveMultipartFile = saveMultipartFile;
|
|
@@ -88,14 +89,18 @@ function smartTrim(value, maxLength = (0, configBuilder_js_1.getConfig)().maxDeb
|
|
|
88
89
|
const rstrip = toRemove - lstrip;
|
|
89
90
|
return string.substring(0, midpoint - lstrip) + exports.TRUNCATION_FILLER + string.substring(midpoint + rstrip);
|
|
90
91
|
}
|
|
91
|
-
|
|
92
|
-
|
|
92
|
+
const NO_CACHE_HEADERS = { 'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate' };
|
|
93
|
+
function badRequestResponseResult(msg) {
|
|
93
94
|
return {
|
|
94
|
-
headers:
|
|
95
|
+
headers: NO_CACHE_HEADERS,
|
|
95
96
|
status: 400,
|
|
96
97
|
data: msg,
|
|
97
98
|
};
|
|
98
99
|
}
|
|
100
|
+
function errorResponseResult(msg, tracingContext) {
|
|
101
|
+
errorReporter.message(msg, tracingContext);
|
|
102
|
+
return badRequestResponseResult(msg);
|
|
103
|
+
}
|
|
99
104
|
/**
|
|
100
105
|
* @param renderingRequest The JavaScript code which threw an error
|
|
101
106
|
* @param error The error that was thrown (typed as `unknown` to minimize casts in `catch`)
|
package/lib/shared/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,sCAEC;AAGD,8BAqBC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/shared/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const WORKER_STARTUP_FAILURE: "NODE_RENDERER_WORKER_STARTUP_FAILURE";
|
|
2
|
+
export interface WorkerStartupFailureMessage {
|
|
3
|
+
type: typeof WORKER_STARTUP_FAILURE;
|
|
4
|
+
stage: 'listen';
|
|
5
|
+
code?: string;
|
|
6
|
+
errno?: number;
|
|
7
|
+
syscall?: string;
|
|
8
|
+
host: string;
|
|
9
|
+
port: number;
|
|
10
|
+
message: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function isWorkerStartupFailureMessage(value: unknown): value is WorkerStartupFailureMessage;
|
|
13
|
+
//# sourceMappingURL=workerMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerMessages.d.ts","sourceRoot":"","sources":["../../src/shared/workerMessages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,EAAG,sCAA+C,CAAC;AAEtF,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,sBAAsB,CAAC;IACpC,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,2BAA2B,CAoBlG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WORKER_STARTUP_FAILURE = void 0;
|
|
4
|
+
exports.isWorkerStartupFailureMessage = isWorkerStartupFailureMessage;
|
|
5
|
+
exports.WORKER_STARTUP_FAILURE = 'NODE_RENDERER_WORKER_STARTUP_FAILURE';
|
|
6
|
+
function isWorkerStartupFailureMessage(value) {
|
|
7
|
+
if (typeof value !== 'object' || value === null) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
const message = value;
|
|
11
|
+
// stage: 'listen' is the only supported stage today. To handle pre-listen
|
|
12
|
+
// failures (e.g. plugin registration), add a new stage value here and
|
|
13
|
+
// update the master handler accordingly.
|
|
14
|
+
return (message.type === exports.WORKER_STARTUP_FAILURE &&
|
|
15
|
+
message.stage === 'listen' &&
|
|
16
|
+
typeof message.host === 'string' &&
|
|
17
|
+
typeof message.port === 'number' &&
|
|
18
|
+
Number.isInteger(message.port) &&
|
|
19
|
+
message.port >= 0 &&
|
|
20
|
+
message.port <= 65535 &&
|
|
21
|
+
typeof message.message === 'string');
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=workerMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workerMessages.js","sourceRoot":"","sources":["../../src/shared/workerMessages.ts"],"names":[],"mappings":";;;AAaA,sEAoBC;AAjCY,QAAA,sBAAsB,GAAG,sCAA+C,CAAC;AAatF,SAAgB,6BAA6B,CAAC,KAAc;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,KAA6C,CAAC;IAE9D,0EAA0E;IAC1E,sEAAsE;IACtE,yCAAyC;IACzC,OAAO,CACL,OAAO,CAAC,IAAI,KAAK,8BAAsB;QACvC,OAAO,CAAC,KAAK,KAAK,QAAQ;QAC1B,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAChC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;QAChC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,OAAO,CAAC,IAAI,IAAI,CAAC;QACjB,OAAO,CAAC,IAAI,IAAI,KAAK;QACrB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CACpC,CAAC;AACJ,CAAC"}
|