Files

46 lines
1.6 KiB
JavaScript
Raw Permalink Normal View History

"use strict";
const PLUGIN_DEV_ENV = "NETCATTY_PLUGIN_DEV";
const PLUGIN_PROTOCOL_SCHEME = "netcatty-plugin";
const PLUGIN_API_VERSION = "0.1.0-internal";
const PLUGIN_ACTIVATION_TIMEOUT_MS = 5_000;
const PLUGIN_DEACTIVATION_TIMEOUT_MS = 2_000;
const PLUGIN_UTILITY_TERMINATION_GRACE_MS = 500;
const PLUGIN_UTILITY_FORCE_EXIT_TIMEOUT_MS = 1_000;
const PLUGIN_RPC_DEFAULT_TIMEOUT_MS = 30_000;
const PLUGIN_RPC_MAX_PENDING = 256;
const PLUGIN_RPC_MAX_JSON_BYTES = 1024 * 1024;
// Broker payloads live inside the control-plane JSON envelope. Reserve enough
// room for worst-case JSON string escaping (six wire bytes per raw byte),
// headers, paths, correlation fields, and future compatible metadata.
const PLUGIN_RPC_MAX_RAW_BYTES = Math.floor(PLUGIN_RPC_MAX_JSON_BYTES / 8);
const PLUGIN_STREAM_MAX_FRAME_JSON_BYTES = 24 * 1024 * 1024;
const PLUGIN_CRASH_WINDOW_MS = 5 * 60_000;
const PLUGIN_CRASH_QUARANTINE_THRESHOLD = 3;
const PLUGIN_LOG_MAX_BYTES = 1024 * 1024;
const PLUGIN_LOG_MAX_FILES = 3;
function isPluginDevelopmentEnabled(env = process.env) {
return env?.[PLUGIN_DEV_ENV] === "1";
}
module.exports = {
PLUGIN_ACTIVATION_TIMEOUT_MS,
PLUGIN_API_VERSION,
PLUGIN_CRASH_QUARANTINE_THRESHOLD,
PLUGIN_CRASH_WINDOW_MS,
PLUGIN_DEACTIVATION_TIMEOUT_MS,
PLUGIN_DEV_ENV,
PLUGIN_LOG_MAX_BYTES,
PLUGIN_LOG_MAX_FILES,
PLUGIN_PROTOCOL_SCHEME,
PLUGIN_RPC_DEFAULT_TIMEOUT_MS,
PLUGIN_RPC_MAX_RAW_BYTES,
PLUGIN_RPC_MAX_JSON_BYTES,
PLUGIN_RPC_MAX_PENDING,
PLUGIN_STREAM_MAX_FRAME_JSON_BYTES,
PLUGIN_UTILITY_FORCE_EXIT_TIMEOUT_MS,
PLUGIN_UTILITY_TERMINATION_GRACE_MS,
isPluginDevelopmentEnabled,
};