@codiac.io/codiac-cli 1.3.181 → 1.3.182

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 (268) hide show
  1. package/README.md +1 -1
  2. package/dist/apis/codiac-api/gen/client.d.ts +5 -1
  3. package/dist/apis/codiac-api/gen/client.js +12 -0
  4. package/dist/apis/codiac-api/gen/client.js.map +1 -1
  5. package/dist/apis/codiac-api/gen/contracts/types.gen.d.ts +25 -0
  6. package/dist/apis/codiac-api/gen/contracts/types.gen.js.map +1 -1
  7. package/dist/apis/codiac-api/i-client.d.ts +4 -0
  8. package/dist/apis/codiac-api-nats/gen/client.d.ts +4 -0
  9. package/dist/apis/codiac-api-nats/gen/client.js +17 -1
  10. package/dist/apis/codiac-api-nats/gen/client.js.map +1 -1
  11. package/dist/apis/codiac-api-nats/gen/contracts/types.gen.d.ts +25 -0
  12. package/dist/apis/codiac-api-nats/gen/contracts/types.gen.js.map +1 -1
  13. package/dist/apis/codiac-relay/gen/client.d.ts +16 -3
  14. package/dist/apis/codiac-relay/gen/client.js +58 -1
  15. package/dist/apis/codiac-relay/gen/client.js.map +1 -1
  16. package/dist/apis/codiac-relay/gen/contracts/types.gen.d.ts +173 -7
  17. package/dist/apis/codiac-relay/gen/contracts/types.gen.js.map +1 -1
  18. package/dist/apis/codiac-relay/i-client.d.ts +8 -0
  19. package/dist/apis/codiac-relay-nats/gen/client.d.ts +15 -7
  20. package/dist/apis/codiac-relay-nats/gen/client.js +86 -19
  21. package/dist/apis/codiac-relay-nats/gen/client.js.map +1 -1
  22. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.d.ts +151 -15
  23. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js +4 -4
  24. package/dist/apis/codiac-relay-nats/gen/contracts/types.gen.js.map +1 -1
  25. package/dist/apis/codiac-relay-nats/gen/contracts.ng.d.ts +6 -0
  26. package/dist/apis/codiac-relay-nats/gen/contracts.ng.js +1 -0
  27. package/dist/apis/codiac-relay-nats/gen/contracts.ng.js.map +1 -1
  28. package/dist/bootstrapper-for-api-clients.js +14 -2
  29. package/dist/bootstrapper-for-api-clients.js.map +1 -1
  30. package/dist/cli-common/built-in-cli-user-input.d.ts +2 -1
  31. package/dist/cli-common/built-in-cli-user-input.js +52 -1
  32. package/dist/cli-common/built-in-cli-user-input.js.map +1 -1
  33. package/dist/cli-common/entities/prompt-choice.d.ts +2 -7
  34. package/dist/cli-common/mock-ui.d.ts +2 -1
  35. package/dist/cli-common/mock-ui.js +3 -0
  36. package/dist/cli-common/mock-ui.js.map +1 -1
  37. package/dist/codiac-constants.d.ts +3 -0
  38. package/dist/codiac-constants.js +3 -0
  39. package/dist/codiac-constants.js.map +1 -1
  40. package/dist/command-base-enterprise.d.ts +23 -2
  41. package/dist/command-base-enterprise.js +82 -26
  42. package/dist/command-base-enterprise.js.map +1 -1
  43. package/dist/command-base-exec.js +4 -2
  44. package/dist/command-base-exec.js.map +1 -1
  45. package/dist/commands/asset/deploy.d.ts +2 -1
  46. package/dist/commands/asset/deploy.js +3 -2
  47. package/dist/commands/asset/deploy.js.map +1 -1
  48. package/dist/commands/asset/list.d.ts +26 -7
  49. package/dist/commands/asset/list.js +127 -112
  50. package/dist/commands/asset/list.js.map +1 -1
  51. package/dist/commands/asset/probe/create.d.ts +26 -5
  52. package/dist/commands/asset/probe/create.js +182 -164
  53. package/dist/commands/asset/probe/create.js.map +1 -1
  54. package/dist/commands/asset/recycle.js +3 -4
  55. package/dist/commands/asset/recycle.js.map +1 -1
  56. package/dist/commands/asset/undeploy.d.ts +24 -9
  57. package/dist/commands/asset/undeploy.js +162 -161
  58. package/dist/commands/asset/undeploy.js.map +1 -1
  59. package/dist/commands/asset/view.js +1 -1
  60. package/dist/commands/asset/view.js.map +1 -1
  61. package/dist/commands/asset/volume/create.d.ts +24 -13
  62. package/dist/commands/asset/volume/create.js +153 -158
  63. package/dist/commands/asset/volume/create.js.map +1 -1
  64. package/dist/commands/asset/volume/delete.d.ts +21 -7
  65. package/dist/commands/asset/volume/delete.js +107 -101
  66. package/dist/commands/asset/volume/delete.js.map +1 -1
  67. package/dist/commands/asset/volume/list.d.ts +23 -9
  68. package/dist/commands/asset/volume/list.js +74 -54
  69. package/dist/commands/asset/volume/list.js.map +1 -1
  70. package/dist/commands/cabinet/cluster/attach.d.ts +32 -0
  71. package/dist/commands/cabinet/cluster/attach.js +144 -0
  72. package/dist/commands/cabinet/cluster/attach.js.map +1 -0
  73. package/dist/commands/cabinet/create.d.ts +1 -0
  74. package/dist/commands/cabinet/create.js +5 -1
  75. package/dist/commands/cabinet/create.js.map +1 -1
  76. package/dist/commands/cabinet/list.d.ts +27 -6
  77. package/dist/commands/cabinet/list.js +130 -121
  78. package/dist/commands/cabinet/list.js.map +1 -1
  79. package/dist/commands/cabinet/obliterate.d.ts +1 -0
  80. package/dist/commands/cabinet/obliterate.js +5 -1
  81. package/dist/commands/cabinet/obliterate.js.map +1 -1
  82. package/dist/commands/cabinet/restore.d.ts +36 -0
  83. package/dist/commands/cabinet/restore.js +186 -0
  84. package/dist/commands/cabinet/restore.js.map +1 -0
  85. package/dist/commands/cluster/agent/configure.d.ts +47 -0
  86. package/dist/commands/cluster/agent/configure.js +320 -0
  87. package/dist/commands/cluster/agent/configure.js.map +1 -0
  88. package/dist/commands/cluster/agent/install.d.ts +32 -0
  89. package/dist/commands/cluster/agent/install.js +152 -0
  90. package/dist/commands/cluster/agent/install.js.map +1 -0
  91. package/dist/commands/cluster/agent/uninstall.d.ts +29 -0
  92. package/dist/commands/cluster/agent/uninstall.js +130 -0
  93. package/dist/commands/cluster/agent/uninstall.js.map +1 -0
  94. package/dist/commands/cluster/bootstrap.d.ts +50 -0
  95. package/dist/commands/cluster/bootstrap.js +310 -0
  96. package/dist/commands/cluster/bootstrap.js.map +1 -0
  97. package/dist/commands/cluster/connect.d.ts +0 -5
  98. package/dist/commands/cluster/connect.js +1 -26
  99. package/dist/commands/cluster/connect.js.map +1 -1
  100. package/dist/commands/cluster/install.d.ts +45 -0
  101. package/dist/commands/cluster/install.js +224 -0
  102. package/dist/commands/cluster/install.js.map +1 -0
  103. package/dist/commands/cluster/stack/capture.js +0 -2
  104. package/dist/commands/cluster/stack/capture.js.map +1 -1
  105. package/dist/commands/cluster/stack/install.d.ts +40 -0
  106. package/dist/commands/cluster/stack/install.js +196 -0
  107. package/dist/commands/cluster/stack/install.js.map +1 -0
  108. package/dist/commands/cluster/start.d.ts +0 -5
  109. package/dist/commands/cluster/start.js +1 -27
  110. package/dist/commands/cluster/start.js.map +1 -1
  111. package/dist/commands/cluster/stop.d.ts +0 -5
  112. package/dist/commands/cluster/stop.js +1 -27
  113. package/dist/commands/cluster/stop.js.map +1 -1
  114. package/dist/commands/config/add.d.ts +9 -11
  115. package/dist/commands/config/add.js +59 -125
  116. package/dist/commands/config/add.js.map +1 -1
  117. package/dist/commands/config/delete.d.ts +22 -11
  118. package/dist/commands/config/delete.js +28 -83
  119. package/dist/commands/config/delete.js.map +1 -1
  120. package/dist/commands/config/deploy.d.ts +26 -8
  121. package/dist/commands/config/deploy.js +169 -198
  122. package/dist/commands/config/deploy.js.map +1 -1
  123. package/dist/commands/config/import.d.ts +27 -22
  124. package/dist/commands/config/import.js +222 -253
  125. package/dist/commands/config/import.js.map +1 -1
  126. package/dist/commands/config/settings/get.d.ts +25 -14
  127. package/dist/commands/config/settings/get.js +30 -123
  128. package/dist/commands/config/settings/get.js.map +1 -1
  129. package/dist/commands/config/view.d.ts +26 -6
  130. package/dist/commands/config/view.js +112 -95
  131. package/dist/commands/config/view.js.map +1 -1
  132. package/dist/commands/csp/logout.d.ts +23 -6
  133. package/dist/commands/csp/logout.js +86 -63
  134. package/dist/commands/csp/logout.js.map +1 -1
  135. package/dist/commands/deploy.d.ts +31 -14
  136. package/dist/commands/deploy.js +264 -385
  137. package/dist/commands/deploy.js.map +1 -1
  138. package/dist/commands/enterprise/list.d.ts +22 -4
  139. package/dist/commands/enterprise/list.js +97 -67
  140. package/dist/commands/enterprise/list.js.map +1 -1
  141. package/dist/commands/env/add.d.ts +26 -7
  142. package/dist/commands/env/add.js +182 -179
  143. package/dist/commands/env/add.js.map +1 -1
  144. package/dist/commands/environment/cluster/attach.d.ts +1 -0
  145. package/dist/commands/environment/cluster/attach.js +5 -1
  146. package/dist/commands/environment/cluster/attach.js.map +1 -1
  147. package/dist/commands/environment/cluster/detach.d.ts +1 -0
  148. package/dist/commands/environment/cluster/detach.js +5 -1
  149. package/dist/commands/environment/cluster/detach.js.map +1 -1
  150. package/dist/commands/environment/create.d.ts +1 -0
  151. package/dist/commands/environment/create.js +5 -1
  152. package/dist/commands/environment/create.js.map +1 -1
  153. package/dist/commands/environment/delete.d.ts +39 -0
  154. package/dist/commands/environment/delete.js +135 -0
  155. package/dist/commands/environment/delete.js.map +1 -0
  156. package/dist/commands/environment/list.d.ts +28 -9
  157. package/dist/commands/environment/list.js +128 -167
  158. package/dist/commands/environment/list.js.map +1 -1
  159. package/dist/commands/host/map.d.ts +29 -19
  160. package/dist/commands/host/map.js +263 -324
  161. package/dist/commands/host/map.js.map +1 -1
  162. package/dist/commands/imageRegistry/capture.d.ts +12 -11
  163. package/dist/commands/imageRegistry/capture.js +49 -113
  164. package/dist/commands/imageRegistry/capture.js.map +1 -1
  165. package/dist/commands/imageRegistry/forget.d.ts +12 -11
  166. package/dist/commands/imageRegistry/forget.js +53 -114
  167. package/dist/commands/imageRegistry/forget.js.map +1 -1
  168. package/dist/commands/imageRegistry/pullSecret/set.d.ts +21 -11
  169. package/dist/commands/imageRegistry/pullSecret/set.js +184 -278
  170. package/dist/commands/imageRegistry/pullSecret/set.js.map +1 -1
  171. package/dist/commands/imageRegistry/pullSecret/unset.d.ts +19 -11
  172. package/dist/commands/imageRegistry/pullSecret/unset.js +117 -190
  173. package/dist/commands/imageRegistry/pullSecret/unset.js.map +1 -1
  174. package/dist/commands/images/add.d.ts +19 -6
  175. package/dist/commands/images/add.js +63 -53
  176. package/dist/commands/images/add.js.map +1 -1
  177. package/dist/commands/kit/create.d.ts +22 -10
  178. package/dist/commands/kit/create.js +119 -121
  179. package/dist/commands/kit/create.js.map +1 -1
  180. package/dist/commands/logout.d.ts +21 -5
  181. package/dist/commands/logout.js +44 -25
  182. package/dist/commands/logout.js.map +1 -1
  183. package/dist/commands/noc/cluster/create.js +22 -10
  184. package/dist/commands/noc/cluster/create.js.map +1 -1
  185. package/dist/commands/noc/cluster/credentials-set.d.ts +38 -0
  186. package/dist/commands/noc/cluster/credentials-set.js +174 -0
  187. package/dist/commands/noc/cluster/credentials-set.js.map +1 -0
  188. package/dist/commands/noc/cluster/define.d.ts +46 -0
  189. package/dist/commands/noc/cluster/define.js +305 -0
  190. package/dist/commands/noc/cluster/define.js.map +1 -0
  191. package/dist/commands/noc/cluster/deinit.d.ts +22 -5
  192. package/dist/commands/noc/cluster/deinit.js +99 -106
  193. package/dist/commands/noc/cluster/deinit.js.map +1 -1
  194. package/dist/commands/noc/cluster/forget.js +2 -4
  195. package/dist/commands/noc/cluster/forget.js.map +1 -1
  196. package/dist/commands/noc/cluster/grant.d.ts +20 -11
  197. package/dist/commands/noc/cluster/grant.js +94 -132
  198. package/dist/commands/noc/cluster/grant.js.map +1 -1
  199. package/dist/commands/noc/cluster/init.d.ts +25 -7
  200. package/dist/commands/noc/cluster/init.js +121 -133
  201. package/dist/commands/noc/cluster/init.js.map +1 -1
  202. package/dist/commands/noc/cluster/journal.d.ts +0 -5
  203. package/dist/commands/noc/cluster/journal.js +1 -26
  204. package/dist/commands/noc/cluster/journal.js.map +1 -1
  205. package/dist/commands/noc/cluster/list.d.ts +23 -5
  206. package/dist/commands/noc/cluster/list.js +107 -111
  207. package/dist/commands/noc/cluster/list.js.map +1 -1
  208. package/dist/commands/noc/cluster/restore.d.ts +36 -0
  209. package/dist/commands/noc/cluster/restore.js +196 -0
  210. package/dist/commands/noc/cluster/restore.js.map +1 -0
  211. package/dist/commands/portal.d.ts +21 -5
  212. package/dist/commands/portal.js +37 -36
  213. package/dist/commands/portal.js.map +1 -1
  214. package/dist/commands/secretStore/capture.d.ts +13 -11
  215. package/dist/commands/secretStore/capture.js +63 -123
  216. package/dist/commands/secretStore/capture.js.map +1 -1
  217. package/dist/commands/secretStore/forget.d.ts +13 -11
  218. package/dist/commands/secretStore/forget.js +55 -111
  219. package/dist/commands/secretStore/forget.js.map +1 -1
  220. package/dist/commands/shell/init.d.ts +15 -0
  221. package/dist/commands/shell/init.js +96 -0
  222. package/dist/commands/shell/init.js.map +1 -0
  223. package/dist/commands/snapshot/deploy.d.ts +22 -42
  224. package/dist/commands/snapshot/deploy.js +173 -269
  225. package/dist/commands/snapshot/deploy.js.map +1 -1
  226. package/dist/commands/snapshot/list.d.ts +26 -5
  227. package/dist/commands/snapshot/list.js +116 -109
  228. package/dist/commands/snapshot/list.js.map +1 -1
  229. package/dist/commands/tenant/create.d.ts +18 -13
  230. package/dist/commands/tenant/create.js +69 -69
  231. package/dist/commands/tenant/create.js.map +1 -1
  232. package/dist/commands/tenant/switch.d.ts +18 -12
  233. package/dist/commands/tenant/switch.js +65 -59
  234. package/dist/commands/tenant/switch.js.map +1 -1
  235. package/dist/commands/whereami.d.ts +18 -8
  236. package/dist/commands/whereami.js +67 -102
  237. package/dist/commands/whereami.js.map +1 -1
  238. package/dist/commands/whoami.d.ts +19 -3
  239. package/dist/commands/whoami.js +44 -13
  240. package/dist/commands/whoami.js.map +1 -1
  241. package/dist/ops/i-user-input-provider.d.ts +20 -1
  242. package/dist/ops/i-user-input-provider.js.map +1 -1
  243. package/dist/ops/test/mock-ui.d.ts +2 -1
  244. package/dist/ops/test/mock-ui.js +3 -0
  245. package/dist/ops/test/mock-ui.js.map +1 -1
  246. package/dist/ops/throwing-user-input-provider.d.ts +2 -1
  247. package/dist/ops/throwing-user-input-provider.js +3 -0
  248. package/dist/ops/throwing-user-input-provider.js.map +1 -1
  249. package/dist/relay/relay-container.js +1 -1
  250. package/dist/uilogic/lrp-watcher-predef.d.ts +2 -1
  251. package/dist/uilogic/lrp-watcher-predef.js +31 -17
  252. package/dist/uilogic/lrp-watcher-predef.js.map +1 -1
  253. package/dist/uilogic/lrp-watcher-utils.d.ts +2 -0
  254. package/dist/uilogic/lrp-watcher-utils.js +2 -0
  255. package/dist/uilogic/lrp-watcher-utils.js.map +1 -1
  256. package/dist/uilogic/rootmap-ui-utils.d.ts +18 -1
  257. package/dist/uilogic/rootmap-ui-utils.js +30 -0
  258. package/dist/uilogic/rootmap-ui-utils.js.map +1 -1
  259. package/dist/uilogic/tenant-contextualizer.js +11 -1
  260. package/dist/uilogic/tenant-contextualizer.js.map +1 -1
  261. package/dist/user-context-loader.d.ts +12 -7
  262. package/dist/user-context-loader.js +89 -43
  263. package/dist/user-context-loader.js.map +1 -1
  264. package/oclif.manifest.json +3981 -1450
  265. package/package.json +2 -2
  266. package/dist/commands/noc/cluster/recreate.d.ts +0 -28
  267. package/dist/commands/noc/cluster/recreate.js +0 -197
  268. package/dist/commands/noc/cluster/recreate.js.map +0 -1
@@ -8,6 +8,7 @@ const _ = require("lodash");
8
8
  const codiac_relay_contracts_1 = require("@codiac.io/codiac-relay-contracts");
9
9
  const codiac_ops_common_1 = require("@codiac.io/codiac-ops-common");
10
10
  const codiac_constants_1 = require("./codiac-constants");
11
+ const init_1 = require("./commands/shell/init");
11
12
  /** Simply deserializes the currently cached user context from its config file.
12
13
  * This class exists so that the load methods can be called before an api client gets instantiated. */
13
14
  class UserContextLoader {
@@ -15,6 +16,15 @@ class UserContextLoader {
15
16
  this.cliEnviro = cliEnviro;
16
17
  this.logger = logger;
17
18
  }
19
+ /** Returns the path to the session file for the current shell.
20
+ * Uses CODIAC_SESSION_ID (set via `eval "$(cod shell init)"`) when available,
21
+ * falling back to process.ppid for users who have not yet configured shell integration. */
22
+ getSessionFilePath() {
23
+ var _a;
24
+ const sessionsDir = path.join(this.cliEnviro.localProgramFolder, codiac_constants_1.CliConstants.SESSIONS_FOLDER_NAME);
25
+ const sessionKey = (_a = process.env[init_1.CODIAC_SESSION_ID_VAR]) !== null && _a !== void 0 ? _a : `ppid-${process.ppid}`;
26
+ return path.join(sessionsDir, `${sessionKey}.json`);
27
+ }
18
28
  /** (context is Machine-User scoped)
19
29
  * Attempts to load the user and select from their tenant tokens and enterprise contexts persisted locally by the CLI.
20
30
  * Returns undefined for not found and throws any encountered exceptions.
@@ -31,19 +41,22 @@ class UserContextLoader {
31
41
  * @param tenantCode Enforces the given tenantCode. When set, current context will be ignored if it does not match it.
32
42
  * */
33
43
  loadUserContext(tenantCode) {
44
+ var _a;
34
45
  let context;
35
46
  let source;
36
- // 1. Retrieve and deserialize
37
- const processCntx = this.loadUserContext_fromProcessEnv();
38
- if (processCntx) {
39
- context = processCntx;
40
- source = "process env";
47
+ // 1. Retrieve and deserialize (priority: session file → global file)
48
+ const sessionCntx = this.loadUserContext_fromSessionFile();
49
+ if (sessionCntx) {
50
+ context = sessionCntx;
51
+ const sessionKey = (_a = process.env[init_1.CODIAC_SESSION_ID_VAR]) !== null && _a !== void 0 ? _a : `ppid-${process.ppid}`;
52
+ source = `session file (${sessionKey})`;
41
53
  }
42
54
  else {
43
- const machineCntx = this.loadUserContext_fromFile(tenantCode);
44
- context = machineCntx;
45
- source = "file";
55
+ context = this.loadUserContext_fromFile(tenantCode);
56
+ source = "global file";
46
57
  }
58
+ // Non-blocking stale session cleanup — runs in background, never blocks the command.
59
+ this.cleanStaleSessions().catch(() => { });
47
60
  if (context) {
48
61
  // 2. Switch to requested tenant code (if given)
49
62
  if (tenantCode != undefined && !_.isEmpty(tenantCode)) {
@@ -55,20 +68,6 @@ class UserContextLoader {
55
68
  }
56
69
  return context;
57
70
  }
58
- /** Deserializes the full user context object from the process.env, if the env variable exists.
59
- *
60
- * @param tenantCode Enforces the given tenantCode. When set, current context will be ignored if it does not match it.
61
- * */
62
- loadUserContext_fromProcessEnv() {
63
- let context;
64
- this.logger.trace(`Reading env variable ${UserContextLoader.USER_CONTEXT_ENV_VAR}...`);
65
- const cntxEncoded = process.env[UserContextLoader.USER_CONTEXT_ENV_VAR];
66
- if (cntxEncoded != undefined && !_.isEmpty(cntxEncoded)) {
67
- const json = Buffer.from(cntxEncoded, 'base64').toString('utf-8'); // jwt-lib uses "binary" as the string encoding here...
68
- context = JSON.parse(json);
69
- }
70
- return context;
71
- }
72
71
  /** (context is Machine-User scoped)
73
72
  * Attempts to load the user and select from their tenant tokens and enterprise contexts persisted locally by the CLI.
74
73
  * Returns undefined for not found and throws any encountered exceptions.
@@ -106,6 +105,37 @@ class UserContextLoader {
106
105
  // }
107
106
  return machineUserContext; // output;
108
107
  }
108
+ /** Deserializes the user context from the session file for the current shell.
109
+ * Returns undefined if no session file exists for this shell instance. */
110
+ loadUserContext_fromSessionFile() {
111
+ const sessionPath = this.getSessionFilePath();
112
+ this.logger.trace(`Reading session file ${sessionPath}...`);
113
+ return codiac_ops_common_1.JsonUtils.deserializeJsonFile(sessionPath);
114
+ }
115
+ /** Removes ppid-fallback session files whose parent shell process is no longer alive.
116
+ * UUID-keyed session files (from shell integration) are left in place — they have no
117
+ * liveness signal and are typically small enough to be harmless.
118
+ * Runs best-effort; never throws. */
119
+ cleanStaleSessions() {
120
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
121
+ const sessionsDir = path.join(this.cliEnviro.localProgramFolder, codiac_constants_1.CliConstants.SESSIONS_FOLDER_NAME);
122
+ if (!fs.existsSync(sessionsDir))
123
+ return;
124
+ const entries = fs.readdirSync(sessionsDir);
125
+ for (const entry of entries) {
126
+ const match = entry.match(/^ppid-(\d+)\.json$/);
127
+ if (!match)
128
+ continue; // skip UUID-keyed files
129
+ const pid = parseInt(match[1], 10);
130
+ if (!isProcessAlive(pid)) {
131
+ const filePath = path.join(sessionsDir, entry);
132
+ fs.rm(filePath, { force: true }, () => {
133
+ this.logger.trace(`Removed stale ppid-fallback session file for PID ${pid}.`);
134
+ });
135
+ }
136
+ }
137
+ });
138
+ }
109
139
  /** Mutates the given object's current tenant properties
110
140
  * (currentToken, currentEnterprise, currentTenantCode, tokenExpiration)
111
141
  * to those of the current tenant code,
@@ -134,24 +164,27 @@ class UserContextLoader {
134
164
  return new Promise((resolve, reject) => {
135
165
  try {
136
166
  // ---------------------------------------
137
- // 1. Env variable
167
+ // 1. Session file (this console instance)
138
168
  // ---------------------------------------
139
- delete process.env[UserContextLoader.USER_CONTEXT_ENV_VAR];
169
+ const sessionPath = path.normalize(this.getSessionFilePath());
170
+ if (fs.existsSync(sessionPath)) {
171
+ fs.rm(sessionPath, { force: true }, () => {
172
+ this.logger.debug(`Session context file deleted [${sessionPath}].`);
173
+ });
174
+ }
140
175
  // ---------------------------------------
141
- // 2. File
176
+ // 3. Global file
142
177
  // ---------------------------------------
143
- // let homeDir = "~/"; // path.posix.resolve("~/"); // NOTE: This tilde (~) may not be valid on a windows box.
144
- // let pathName = path.posix.join(OpsUtils.resolveHomeDir(homeDir), OpsConstants.CLI_CONFIG_FOLDER_NAME, CliConstants.USER_CONTEXT_FILENAME);
145
- let pathName = path.posix.join(this.cliEnviro.localProgramFolder, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
146
- pathName = path.normalize(pathName);
147
- if (fs.existsSync(pathName)) {
148
- fs.rm(pathName, { force: true }, () => {
149
- this.logger.debug(`User context file deleted [${pathName}].`);
178
+ let globalPath = path.posix.join(this.cliEnviro.localProgramFolder, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
179
+ globalPath = path.normalize(globalPath);
180
+ if (fs.existsSync(globalPath)) {
181
+ fs.rm(globalPath, { force: true }, () => {
182
+ this.logger.debug(`User context file deleted [${globalPath}].`);
150
183
  resolve();
151
184
  });
152
185
  }
153
186
  else {
154
- this.logger.debug(`Nothing to do: user context file does not exist at [${pathName}]`);
187
+ this.logger.debug(`Nothing to do: user context file does not exist at [${globalPath}]`);
155
188
  resolve();
156
189
  }
157
190
  }
@@ -163,8 +196,6 @@ class UserContextLoader {
163
196
  }
164
197
  }
165
198
  exports.UserContextLoader = UserContextLoader;
166
- /** The env variable that holds the user context for the current process. */
167
- UserContextLoader.USER_CONTEXT_ENV_VAR = "CODIAC_USER_CNTX";
168
199
  /** Provides cruds for the user context, persisting to the local context config file. */
169
200
  class UserContextManager {
170
201
  constructor(cliEnviro, authClient, logger) {
@@ -212,17 +243,21 @@ class UserContextManager {
212
243
  * Throws any encountered exceptions. */
213
244
  writeUserContext(userContext) {
214
245
  // ---------------------------------------
215
- // 1. Env variable (base64-encoded json)
246
+ // 1. Session file (isolated per console instance, keyed by parent shell PID)
216
247
  // ---------------------------------------
217
- const json = JSON.stringify(userContext);
218
- process.env[UserContextLoader.USER_CONTEXT_ENV_VAR] = Buffer.from(json).toString('base64');
248
+ const sessionPath = this.loader.getSessionFilePath();
249
+ const sessionsDir = path.dirname(sessionPath);
250
+ if (!fs.existsSync(sessionsDir)) {
251
+ fs.mkdirSync(sessionsDir, { recursive: true });
252
+ }
253
+ this.logger.debug(`Writing UserContext to session file ${sessionPath}`);
254
+ codiac_ops_common_1.JsonUtils.serializeJsonFile(userContext, sessionPath);
219
255
  // ---------------------------------------
220
- // 2. Json File
256
+ // 3. Global file (backward-compat fallback for first-run / tooling that reads it directly)
221
257
  // ---------------------------------------
222
- // let pathName = path.join("~/", OpsConstants.CLI_CONFIG_FOLDER_NAME, CliConstants.USER_CONTEXT_FILENAME);
223
- let pathName = path.join(this.cliEnviro.localProgramFolder, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
224
- this.logger.debug(`Writing UserContext to ${pathName}`);
225
- codiac_ops_common_1.JsonUtils.serializeJsonFile(userContext, pathName);
258
+ let globalPath = path.join(this.cliEnviro.localProgramFolder, codiac_constants_1.CliConstants.USER_CONTEXT_FILENAME);
259
+ this.logger.debug(`Writing UserContext to global file ${globalPath}`);
260
+ codiac_ops_common_1.JsonUtils.serializeJsonFile(userContext, globalPath);
226
261
  }
227
262
  /** Persists the current user, its token, and its tenantCode to the user context
228
263
  * and the userContext file stored on the local machine. */
@@ -258,4 +293,15 @@ class UserContextManager {
258
293
  }
259
294
  }
260
295
  exports.UserContextManager = UserContextManager;
296
+ /** Returns true if the given PID corresponds to a running process, false otherwise.
297
+ * Uses signal 0 (no-op) to probe existence without affecting the process. */
298
+ function isProcessAlive(pid) {
299
+ try {
300
+ process.kill(pid, 0);
301
+ return true;
302
+ }
303
+ catch (_a) {
304
+ return false;
305
+ }
306
+ }
261
307
  //# sourceMappingURL=user-context-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user-context-loader.js","sourceRoot":"","sources":["../src/user-context-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user-context-loader.js","sourceRoot":"","sources":["../src/user-context-loader.ts"],"names":[],"mappings":"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"}