@objectstack/service-settings 10.2.0 → 10.3.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.
package/dist/index.js CHANGED
@@ -852,6 +852,7 @@ import { dirname, join } from "path";
852
852
  var SECRET_KEY_ENV = "OS_SECRET_KEY";
853
853
  var DEV_KEY_ENV = "OS_DEV_CRYPTO_KEY";
854
854
  var DEV_KEY_LEGACY_ENV = "OBJECTSTACK_DEV_CRYPTO_KEY";
855
+ var AUTOKEY_ENV = "OS_CRYPTO_AUTOKEY";
855
856
  var processEnv = () => globalThis.process?.env ?? {};
856
857
  var detectMode = (env) => {
857
858
  if (env.VITEST || env.NODE_ENV === "test") return "test";
@@ -875,6 +876,10 @@ var parseKey = (raw) => {
875
876
  }
876
877
  return void 0;
877
878
  };
879
+ var parseBool = (raw) => {
880
+ const v = raw?.trim().toLowerCase();
881
+ return v === "1" || v === "true" || v === "yes";
882
+ };
878
883
  var loadExistingKey = (path) => {
879
884
  try {
880
885
  if (!existsSync(path)) return void 0;
@@ -948,6 +953,17 @@ function resolveDataKey(opts) {
948
953
  );
949
954
  return { key: existing, source: "file" };
950
955
  }
956
+ if (parseBool(env[AUTOKEY_ENV])) {
957
+ const persisted2 = loadOrCreateKey(path);
958
+ if (persisted2) {
959
+ if (persisted2.generated) {
960
+ warn(
961
+ `[LocalCryptoProvider] No ${SECRET_KEY_ENV} set \u2014 minted a new AES-256-GCM key and persisted it to ${path} (mode 0600). Restarts on this host reuse it automatically. For containers, CI, or multi-node, set ${SECRET_KEY_ENV} so every node shares one key.`
962
+ );
963
+ }
964
+ return { key: persisted2.key, source: persisted2.generated ? "generated-file" : "file" };
965
+ }
966
+ }
951
967
  throw new Error(MISSING_PROD_KEY_MSG(path));
952
968
  }
953
969
  const persisted = loadOrCreateKey(path);