@dataformer/env-service 2.0.0 → 2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @dataformer/env-service
2
2
 
3
+ ## 2.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - LoggerService upgraded
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+ - @dataformer/secret-manager-client@2.3.0
13
+
14
+ ## 2.2.0
15
+
16
+ ### Minor Changes
17
+
18
+ - removed requirement for user email from secret manager name
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies
23
+ - @dataformer/secret-manager-client@2.2.0
24
+
3
25
  ## 2.0.0
4
26
 
5
27
  ### Major Changes
package/dist/index.d.ts CHANGED
@@ -43,8 +43,7 @@ declare const getJiraUserEmail: () => Promise<string | null>;
43
43
  declare const getGeminiApiKey: () => Promise<string | null>;
44
44
  declare const getNpmToken: () => Promise<string | null>;
45
45
  declare const getProjectRoot: () => string;
46
- declare const getGcpUserEmail: () => Promise<string | null>;
47
46
  declare const printEnv: () => Promise<void>;
48
47
  declare const run: () => Promise<void>;
49
48
 
50
- export { askQuestion, getBigtableInstanceName, getBigtableProjectId, getBigtableTableName, getCustomSearchApiKey, getEnvVar, getFirestoreProjectId, getGcpProjectId, getGcpUserEmail, getGeminiApiKey, getJiraApiBaseUrl, getJiraApiToken, getJiraUserEmail, getLogToConsole, getNpmToken, getPostgresAuthType, getPostgresDatabase, getPostgresHostName, getPostgresInstanceConnectionName, getPostgresIpType, getPostgresPassword, getPostgresPoolSizeMax, getPostgresUser, getProjectRoot, getSearchEngineId, obfuscateCred, printEnv, run, setBigtableInstanceName, setBigtableProjectId, setBigtableTableName, setCustomSearchApiKey, setEnvVar, setFirestoreProjectId, setGeminiApiKey, setJiraApiBaseUrl, setJiraApiToken, setJiraUserEmail, setLogToConsole, setNpmToken, setPostgresAuthType, setPostgresDatabase, setPostgresHostName, setPostgresInstanceConnectionName, setPostgresIpType, setPostgresPassword, setPostgresPoolSizeMax, setPostgresUser };
49
+ export { askQuestion, getBigtableInstanceName, getBigtableProjectId, getBigtableTableName, getCustomSearchApiKey, getEnvVar, getFirestoreProjectId, getGcpProjectId, getGeminiApiKey, getJiraApiBaseUrl, getJiraApiToken, getJiraUserEmail, getLogToConsole, getNpmToken, getPostgresAuthType, getPostgresDatabase, getPostgresHostName, getPostgresInstanceConnectionName, getPostgresIpType, getPostgresPassword, getPostgresPoolSizeMax, getPostgresUser, getProjectRoot, getSearchEngineId, obfuscateCred, printEnv, run, setBigtableInstanceName, setBigtableProjectId, setBigtableTableName, setCustomSearchApiKey, setEnvVar, setFirestoreProjectId, setGeminiApiKey, setJiraApiBaseUrl, setJiraApiToken, setJiraUserEmail, setLogToConsole, setNpmToken, setPostgresAuthType, setPostgresDatabase, setPostgresHostName, setPostgresInstanceConnectionName, setPostgresIpType, setPostgresPassword, setPostgresPoolSizeMax, setPostgresUser };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/index.ts
2
2
  import readline from "readline";
3
3
  import path from "path";
4
- import { createSecretManagerClient } from "@dataformer/secret-manager-client";
4
+ import { SecretManagerClient } from "@dataformer/secret-manager-client";
5
5
  var secretManager = null;
6
6
  var secretManagerInitialized = false;
7
7
  async function getSecretManager() {
@@ -9,7 +9,7 @@ async function getSecretManager() {
9
9
  return secretManager;
10
10
  }
11
11
  try {
12
- secretManager = await createSecretManagerClient();
12
+ secretManager = await SecretManagerClient.create();
13
13
  secretManagerInitialized = true;
14
14
  return secretManager;
15
15
  } catch (error) {
@@ -226,15 +226,6 @@ var getProjectRoot = () => {
226
226
  const currentDir = path.dirname(new URL(import.meta.url).pathname);
227
227
  return path.resolve(currentDir, "../..");
228
228
  };
229
- var _getResolvedGcpUserEmail = async () => {
230
- const sm = await getSecretManager();
231
- if (!sm) {
232
- console.warn("[EnvService.ts] SecretManager not available for _getResolvedGcpUserEmail");
233
- return null;
234
- }
235
- return sm.getResolvedUserEmail();
236
- };
237
- var getGcpUserEmail = _getResolvedGcpUserEmail;
238
229
  var printEnv = async () => {
239
230
  const logToConsole = await getLogToConsole();
240
231
  const postgresUser = await getPostgresUser();
@@ -255,11 +246,9 @@ var printEnv = async () => {
255
246
  const geminiApiKey = await getGeminiApiKey();
256
247
  const customSearchApiKey = await getCustomSearchApiKey();
257
248
  const gcpProjectIdVal = await getGcpProjectId();
258
- const gcpUserEmailVal = await getGcpUserEmail();
259
249
  const npmToken = await getNpmToken();
260
250
  console.log(`Project Root: ${getProjectRoot()}`);
261
251
  console.log(`GCP Project ID: ${gcpProjectIdVal}`);
262
- console.log(`GCP User Email (for Secret Manager naming): ${gcpUserEmailVal}`);
263
252
  console.log(`Log to Console: ${logToConsole}`);
264
253
  console.log(`PostgreSQL User: ${postgresUser}`);
265
254
  console.log(`PostgreSQL Password: ${obfuscateCred(postgresPassword)}`);
@@ -364,7 +353,6 @@ export {
364
353
  getEnvVar,
365
354
  getFirestoreProjectId,
366
355
  getGcpProjectId,
367
- getGcpUserEmail,
368
356
  getGeminiApiKey,
369
357
  getJiraApiBaseUrl,
370
358
  getJiraApiToken,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dataformer/env-service",
3
- "version": "2.0.0",
3
+ "version": "2.3.0",
4
4
  "description": "Environment service for Dataformer",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "dependencies": {
15
15
  "@google-cloud/secret-manager": "^5.4.0",
16
- "@dataformer/secret-manager-client": "^2.0.0"
16
+ "@dataformer/secret-manager-client": "^2.3.0"
17
17
  },
18
18
  "devDependencies": {
19
19
  "tsup": "^8.0.0",
package/src/index.ts CHANGED
@@ -1,12 +1,16 @@
1
1
  // EnvService.ts - Manages environment variables and credentials using Google Secret Manager.
2
2
  //
3
3
  // HOW TO USE:
4
- // This script is typically invoked via the wrapper `env.js` in the project root.
4
+ // This script can be invoked via the wrapper `env.js` in the project root (after building):
5
5
  // Commands are passed as arguments, e.g.:
6
6
  // node env.js printEnv - Prints all current environment variable values.
7
- // node env.js setApiKey - Prompts to set the API key.
7
+ // node env.js setGeminiApiKey - Prompts to set the Gemini API key.
8
+ // node env.js setPostgresUser - Prompts to set the PostgreSQL user.
8
9
  // ... and so on for other specific setters listed in the `run` function's switch statement.
9
10
  //
11
+ // Alternatively, you can run it directly from the compiled output:
12
+ // node packages/services/env-service/dist/index.js printEnv
13
+ //
10
14
  // GCLOUD AUTHENTICATION REQUIREMENT:
11
15
  // This script requires you to be authenticated with Google Cloud CLI (`gcloud`).
12
16
  // The credentials are used by the underlying SecretManagerClient to access Google Secret Manager.
@@ -30,12 +34,12 @@
30
34
  // 2. Local gcloud configuration (for development: `gcloud config get-value project`)
31
35
  //
32
36
  // SECRET NAMING CONVENTION:
33
- // Secrets are named using the format: {projectId}_{userEmail}_{secretId}
34
- // This ensures user-specific secrets that don't conflict across users or projects.
37
+ // Secrets are named using the format: {projectId}_{secretId}
38
+ // This ensures project-specific secrets that don't conflict across projects.
35
39
 
36
40
  import readline from 'readline';
37
41
  import path from 'path';
38
- import { createSecretManagerClient, SecretManagerClient } from '@dataformer/secret-manager-client';
42
+ import { SecretManagerClient } from '@dataformer/secret-manager-client';
39
43
 
40
44
  // SecretManager client will be initialized lazily on first use
41
45
  let secretManager: SecretManagerClient | null = null;
@@ -47,7 +51,7 @@ async function getSecretManager(): Promise<SecretManagerClient | null> {
47
51
  }
48
52
 
49
53
  try {
50
- secretManager = await createSecretManagerClient();
54
+ secretManager = await SecretManagerClient.create();
51
55
  secretManagerInitialized = true;
52
56
  return secretManager;
53
57
  } catch (error) {
@@ -319,17 +323,6 @@ const _getResolvedGcpProjectId = async (): Promise<string | null> => {
319
323
  return sm.getResolvedProjectId();
320
324
  };
321
325
 
322
- const _getResolvedGcpUserEmail = async (): Promise<string | null> => {
323
- const sm = await getSecretManager();
324
- if (!sm) {
325
- console.warn('[EnvService.ts] SecretManager not available for _getResolvedGcpUserEmail');
326
- return null;
327
- }
328
- return sm.getResolvedUserEmail();
329
- };
330
-
331
- const getGcpUserEmail = _getResolvedGcpUserEmail;
332
-
333
326
  const printEnv = async (): Promise<void> => {
334
327
  const logToConsole = await getLogToConsole();
335
328
  const postgresUser = await getPostgresUser();
@@ -350,12 +343,10 @@ const printEnv = async (): Promise<void> => {
350
343
  const geminiApiKey = await getGeminiApiKey();
351
344
  const customSearchApiKey = await getCustomSearchApiKey();
352
345
  const gcpProjectIdVal = await getGcpProjectId();
353
- const gcpUserEmailVal = await getGcpUserEmail();
354
346
  const npmToken = await getNpmToken();
355
347
 
356
348
  console.log(`Project Root: ${getProjectRoot()}`);
357
349
  console.log(`GCP Project ID: ${gcpProjectIdVal}`);
358
- console.log(`GCP User Email (for Secret Manager naming): ${gcpUserEmailVal}`);
359
350
  console.log(`Log to Console: ${logToConsole}`);
360
351
  console.log(`PostgreSQL User: ${postgresUser}`);
361
352
  console.log(`PostgreSQL Password: ${obfuscateCred(postgresPassword)}`);
@@ -462,7 +453,6 @@ export {
462
453
 
463
454
  // Synchronous Getters / Utility
464
455
  getProjectRoot,
465
- getGcpUserEmail,
466
456
 
467
457
  // Generic accessors
468
458
  getEnvVar,