@dataflint/mcp-server 1.0.14 → 1.0.17

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 (105) hide show
  1. package/dist/auth/auth-strategy-factory.d.ts +60 -0
  2. package/dist/auth/auth-strategy-factory.d.ts.map +1 -0
  3. package/dist/auth/auth-strategy-factory.js +113 -0
  4. package/dist/auth/auth-strategy-factory.js.map +1 -0
  5. package/dist/auth/auth0-m2m-service.d.ts +74 -0
  6. package/dist/auth/auth0-m2m-service.d.ts.map +1 -0
  7. package/dist/auth/auth0-m2m-service.js +195 -0
  8. package/dist/auth/auth0-m2m-service.js.map +1 -0
  9. package/dist/auth/auth0-service.d.ts +64 -0
  10. package/dist/auth/auth0-service.d.ts.map +1 -0
  11. package/dist/auth/auth0-service.js +326 -0
  12. package/dist/auth/auth0-service.js.map +1 -0
  13. package/dist/auth/customer-auth-configs.d.ts +31 -0
  14. package/dist/auth/customer-auth-configs.d.ts.map +1 -0
  15. package/dist/auth/customer-auth-configs.js +39 -0
  16. package/dist/auth/customer-auth-configs.js.map +1 -0
  17. package/dist/auth/index.d.ts +75 -0
  18. package/dist/auth/index.d.ts.map +1 -0
  19. package/dist/auth/index.js +137 -0
  20. package/dist/auth/index.js.map +1 -0
  21. package/dist/auth/secrets/aws-secrets-provider.d.ts +45 -0
  22. package/dist/auth/secrets/aws-secrets-provider.d.ts.map +1 -0
  23. package/dist/auth/secrets/aws-secrets-provider.js +125 -0
  24. package/dist/auth/secrets/aws-secrets-provider.js.map +1 -0
  25. package/dist/auth/secrets/index.d.ts +12 -0
  26. package/dist/auth/secrets/index.d.ts.map +1 -0
  27. package/dist/auth/secrets/index.js +17 -0
  28. package/dist/auth/secrets/index.js.map +1 -0
  29. package/dist/auth/secrets/local-file-secrets-provider.d.ts +47 -0
  30. package/dist/auth/secrets/local-file-secrets-provider.d.ts.map +1 -0
  31. package/dist/auth/secrets/local-file-secrets-provider.js +151 -0
  32. package/dist/auth/secrets/local-file-secrets-provider.js.map +1 -0
  33. package/dist/auth/secrets/secrets-provider.d.ts +54 -0
  34. package/dist/auth/secrets/secrets-provider.d.ts.map +1 -0
  35. package/dist/auth/secrets/secrets-provider.js +106 -0
  36. package/dist/auth/secrets/secrets-provider.js.map +1 -0
  37. package/dist/auth/secrets/types.d.ts +32 -0
  38. package/dist/auth/secrets/types.d.ts.map +1 -0
  39. package/dist/auth/secrets/types.js +8 -0
  40. package/dist/auth/secrets/types.js.map +1 -0
  41. package/dist/auth/service-account-service.d.ts +77 -0
  42. package/dist/auth/service-account-service.d.ts.map +1 -0
  43. package/dist/auth/service-account-service.js +209 -0
  44. package/dist/auth/service-account-service.js.map +1 -0
  45. package/dist/auth/types.d.ts +140 -0
  46. package/dist/auth/types.d.ts.map +1 -0
  47. package/dist/auth/types.js +30 -0
  48. package/dist/auth/types.js.map +1 -0
  49. package/dist/auth.d.ts +47 -0
  50. package/dist/auth.d.ts.map +1 -0
  51. package/dist/auth.js +302 -0
  52. package/dist/auth.js.map +1 -0
  53. package/dist/dataflint-server-service.d.ts +3 -6
  54. package/dist/dataflint-server-service.d.ts.map +1 -1
  55. package/dist/dataflint-server-service.js +48 -133
  56. package/dist/dataflint-server-service.js.map +1 -1
  57. package/dist/index.d.ts +4 -3
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +7 -11
  60. package/dist/index.js.map +1 -1
  61. package/dist/request-context.d.ts +0 -20
  62. package/dist/request-context.d.ts.map +1 -1
  63. package/dist/request-context.js +1 -31
  64. package/dist/request-context.js.map +1 -1
  65. package/dist/server.d.ts +2 -2
  66. package/dist/server.d.ts.map +1 -1
  67. package/dist/server.js +14 -16
  68. package/dist/server.js.map +1 -1
  69. package/dist/standalone/config.d.ts +7 -13
  70. package/dist/standalone/config.d.ts.map +1 -1
  71. package/dist/standalone/config.js +439 -23059
  72. package/dist/standalone/config.js.map +4 -4
  73. package/dist/standalone/logger.js +2 -2
  74. package/dist/standalone/logger.js.map +1 -1
  75. package/dist/standalone/server.d.ts.map +1 -1
  76. package/dist/standalone/server.js +25 -45
  77. package/dist/standalone/server.js.map +1 -1
  78. package/dist/standalone/stdio-transport.d.ts +1 -2
  79. package/dist/standalone/stdio-transport.d.ts.map +1 -1
  80. package/dist/standalone/stdio-transport.js +4 -3
  81. package/dist/standalone/stdio-transport.js.map +1 -1
  82. package/dist/tools/base.d.ts +16 -0
  83. package/dist/tools/base.d.ts.map +1 -1
  84. package/dist/tools/base.js +16 -0
  85. package/dist/tools/base.js.map +1 -1
  86. package/dist/tools/core-tools.d.ts.map +1 -1
  87. package/dist/tools/core-tools.js +4 -4
  88. package/dist/tools/core-tools.js.map +1 -1
  89. package/dist/tools/expertise-tools.d.ts.map +1 -1
  90. package/dist/tools/expertise-tools.js +5 -5
  91. package/dist/tools/expertise-tools.js.map +1 -1
  92. package/dist/tools/findings-tools.d.ts.map +1 -1
  93. package/dist/tools/findings-tools.js +4 -4
  94. package/dist/tools/findings-tools.js.map +1 -1
  95. package/dist/tools/highlight-tools.d.ts.map +1 -1
  96. package/dist/tools/highlight-tools.js +8 -10
  97. package/dist/tools/highlight-tools.js.map +1 -1
  98. package/dist/tools/listing-tools.d.ts.map +1 -1
  99. package/dist/tools/listing-tools.js +1 -1
  100. package/dist/tools/listing-tools.js.map +1 -1
  101. package/dist/types.d.ts +13 -5
  102. package/dist/types.d.ts.map +1 -1
  103. package/dist/types.js +0 -5
  104. package/dist/types.js.map +1 -1
  105. package/package.json +1 -2
@@ -0,0 +1,45 @@
1
+ /**
2
+ * AWS Secrets Manager Provider
3
+ *
4
+ * Loads M2M credentials from AWS Secrets Manager.
5
+ * Uses dynamic import to avoid requiring AWS SDK when not in AWS environment.
6
+ */
7
+ import { Auth0M2MCredentials, IAuthLogger } from "../types";
8
+ import { ISecretsProvider } from "./types";
9
+ /**
10
+ * AWS Secrets Manager provider for M2M credentials
11
+ *
12
+ * This provider:
13
+ * 1. Detects AWS environment via env vars
14
+ * 2. Dynamically imports AWS SDK to avoid bundling overhead
15
+ * 3. Loads credentials from Secrets Manager
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const provider = new AWSSecretsProvider(logger);
20
+ * if (await provider.isAvailable()) {
21
+ * const credentials = await provider.loadAuth0M2MCredentials('my-secret-name');
22
+ * }
23
+ * ```
24
+ */
25
+ export declare class AWSSecretsProvider implements ISecretsProvider {
26
+ private logger;
27
+ private region;
28
+ constructor(logger?: IAuthLogger);
29
+ /**
30
+ * Get the provider name for logging
31
+ */
32
+ getName(): string;
33
+ /**
34
+ * Check if running in AWS environment with credentials available
35
+ */
36
+ isAvailable(): Promise<boolean>;
37
+ /**
38
+ * Load Auth0 M2M credentials from AWS Secrets Manager
39
+ *
40
+ * @param secretName - The name or ARN of the secret in Secrets Manager
41
+ * @returns M2M credentials or null if not found
42
+ */
43
+ loadAuth0M2MCredentials(secretName: string): Promise<Auth0M2MCredentials | null>;
44
+ }
45
+ //# sourceMappingURL=aws-secrets-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-secrets-provider.d.ts","sourceRoot":"","sources":["../../../src/auth/secrets/aws-secrets-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAY3C;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB;IACvD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,CAAC,EAAE,WAAW;IAKhC;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAwBrC;;;;;OAKG;IACG,uBAAuB,CACzB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;CAiEzC"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ /**
3
+ * AWS Secrets Manager Provider
4
+ *
5
+ * Loads M2M credentials from AWS Secrets Manager.
6
+ * Uses dynamic import to avoid requiring AWS SDK when not in AWS environment.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AWSSecretsProvider = void 0;
10
+ /**
11
+ * Default no-op logger
12
+ */
13
+ const noopLogger = {
14
+ info: () => { },
15
+ warn: () => { },
16
+ error: () => { },
17
+ debug: () => { },
18
+ };
19
+ /**
20
+ * AWS Secrets Manager provider for M2M credentials
21
+ *
22
+ * This provider:
23
+ * 1. Detects AWS environment via env vars
24
+ * 2. Dynamically imports AWS SDK to avoid bundling overhead
25
+ * 3. Loads credentials from Secrets Manager
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * const provider = new AWSSecretsProvider(logger);
30
+ * if (await provider.isAvailable()) {
31
+ * const credentials = await provider.loadAuth0M2MCredentials('my-secret-name');
32
+ * }
33
+ * ```
34
+ */
35
+ class AWSSecretsProvider {
36
+ logger;
37
+ region;
38
+ constructor(logger) {
39
+ this.logger = logger || noopLogger;
40
+ this.region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION;
41
+ }
42
+ /**
43
+ * Get the provider name for logging
44
+ */
45
+ getName() {
46
+ return "AWS Secrets Manager";
47
+ }
48
+ /**
49
+ * Check if running in AWS environment with credentials available
50
+ */
51
+ async isAvailable() {
52
+ // Check for AWS environment indicators
53
+ const hasRegion = !!(process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION);
54
+ const hasExecutionEnv = !!process.env.AWS_EXECUTION_ENV;
55
+ const hasCredentials = !!(process.env.AWS_ACCESS_KEY_ID ||
56
+ process.env.AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ||
57
+ process.env.AWS_WEB_IDENTITY_TOKEN_FILE);
58
+ const isAWSEnvironment = hasRegion && (hasExecutionEnv || hasCredentials);
59
+ if (isAWSEnvironment) {
60
+ this.logger.debug("AWS environment detected");
61
+ }
62
+ else {
63
+ this.logger.debug("Not in AWS environment");
64
+ }
65
+ return isAWSEnvironment;
66
+ }
67
+ /**
68
+ * Load Auth0 M2M credentials from AWS Secrets Manager
69
+ *
70
+ * @param secretName - The name or ARN of the secret in Secrets Manager
71
+ * @returns M2M credentials or null if not found
72
+ */
73
+ async loadAuth0M2MCredentials(secretName) {
74
+ this.logger.info(`Loading M2M credentials from AWS Secrets Manager: ${secretName}`);
75
+ try {
76
+ // Dynamic import to avoid bundling AWS SDK when not needed
77
+ const { SecretsManagerClient, GetSecretValueCommand } =
78
+ // @ts-expect-error - @aws-sdk/client-secrets-manager is an optional runtime dependency
79
+ await import("@aws-sdk/client-secrets-manager");
80
+ const client = new SecretsManagerClient({
81
+ region: this.region,
82
+ });
83
+ const command = new GetSecretValueCommand({
84
+ SecretId: secretName,
85
+ });
86
+ const response = await client.send(command);
87
+ if (!response.SecretString) {
88
+ this.logger.error("Secret value is empty or binary");
89
+ return null;
90
+ }
91
+ const secretValue = JSON.parse(response.SecretString);
92
+ // Validate required fields
93
+ if (!secretValue.client_id ||
94
+ !secretValue.client_secret ||
95
+ !secretValue.audience ||
96
+ !secretValue.domain) {
97
+ this.logger.error("Secret missing required fields (client_id, client_secret, audience, domain)");
98
+ return null;
99
+ }
100
+ this.logger.info("M2M credentials loaded from AWS Secrets Manager");
101
+ return {
102
+ client_id: secretValue.client_id,
103
+ client_secret: secretValue.client_secret,
104
+ audience: secretValue.audience,
105
+ domain: secretValue.domain,
106
+ };
107
+ }
108
+ catch (error) {
109
+ if (error instanceof Error) {
110
+ if (error.name === "ResourceNotFoundException") {
111
+ this.logger.warn(`Secret not found: ${secretName}`);
112
+ return null;
113
+ }
114
+ if (error.message.includes("Cannot find module")) {
115
+ this.logger.warn("AWS SDK not available - @aws-sdk/client-secrets-manager not installed");
116
+ return null;
117
+ }
118
+ this.logger.error("Failed to load secret from AWS", error);
119
+ }
120
+ return null;
121
+ }
122
+ }
123
+ }
124
+ exports.AWSSecretsProvider = AWSSecretsProvider;
125
+ //# sourceMappingURL=aws-secrets-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-secrets-provider.js","sourceRoot":"","sources":["../../../src/auth/secrets/aws-secrets-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Secrets Providers Module
3
+ *
4
+ * Provides multiple strategies for loading M2M credentials:
5
+ * - AWS Secrets Manager (production)
6
+ * - Local file (development)
7
+ */
8
+ export { ISecretsProvider } from "./types";
9
+ export { AWSSecretsProvider } from "./aws-secrets-provider";
10
+ export { LocalFileSecretsProvider } from "./local-file-secrets-provider";
11
+ export { SecretsProvider } from "./secrets-provider";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/secrets/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Secrets Providers Module
4
+ *
5
+ * Provides multiple strategies for loading M2M credentials:
6
+ * - AWS Secrets Manager (production)
7
+ * - Local file (development)
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.SecretsProvider = exports.LocalFileSecretsProvider = exports.AWSSecretsProvider = void 0;
11
+ var aws_secrets_provider_1 = require("./aws-secrets-provider");
12
+ Object.defineProperty(exports, "AWSSecretsProvider", { enumerable: true, get: function () { return aws_secrets_provider_1.AWSSecretsProvider; } });
13
+ var local_file_secrets_provider_1 = require("./local-file-secrets-provider");
14
+ Object.defineProperty(exports, "LocalFileSecretsProvider", { enumerable: true, get: function () { return local_file_secrets_provider_1.LocalFileSecretsProvider; } });
15
+ var secrets_provider_1 = require("./secrets-provider");
16
+ Object.defineProperty(exports, "SecretsProvider", { enumerable: true, get: function () { return secrets_provider_1.SecretsProvider; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/secrets/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAGH,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,6EAAyE;AAAhE,uIAAA,wBAAwB,OAAA;AACjC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Local File Secrets Provider
3
+ *
4
+ * Loads M2M credentials from local file system.
5
+ * Primarily used for local development and testing.
6
+ */
7
+ import { Auth0M2MCredentials, IAuthLogger } from "../types";
8
+ import { ISecretsProvider } from "./types";
9
+ /**
10
+ * Local file secrets provider for M2M credentials
11
+ *
12
+ * Loads credentials from `~/.dataflint/m2m_secret.{environment}.json`
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const provider = new LocalFileSecretsProvider('prod', logger);
17
+ * if (await provider.isAvailable()) {
18
+ * const credentials = await provider.loadAuth0M2MCredentials('unused');
19
+ * }
20
+ * ```
21
+ */
22
+ export declare class LocalFileSecretsProvider implements ISecretsProvider {
23
+ private logger;
24
+ private environment;
25
+ private secretFilePath;
26
+ constructor(environment: string, logger?: IAuthLogger);
27
+ /**
28
+ * Get the provider name for logging
29
+ */
30
+ getName(): string;
31
+ /**
32
+ * Check if the local secret file exists
33
+ */
34
+ isAvailable(): Promise<boolean>;
35
+ /**
36
+ * Load Auth0 M2M credentials from local file
37
+ *
38
+ * @param _secretName - Ignored, uses environment-based file path
39
+ * @returns M2M credentials or null if not found or invalid
40
+ */
41
+ loadAuth0M2MCredentials(_secretName: string): Promise<Auth0M2MCredentials | null>;
42
+ /**
43
+ * Get the path to the secret file (for diagnostics)
44
+ */
45
+ getSecretFilePath(): string;
46
+ }
47
+ //# sourceMappingURL=local-file-secrets-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-file-secrets-provider.d.ts","sourceRoot":"","sources":["../../../src/auth/secrets/local-file-secrets-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAY3C;;;;;;;;;;;;GAYG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IAC7D,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAS;gBAEnB,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAUrD;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBrC;;;;;OAKG;IACG,uBAAuB,CACzB,WAAW,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAqDtC;;OAEG;IACH,iBAAiB,IAAI,MAAM;CAG9B"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ /**
3
+ * Local File Secrets Provider
4
+ *
5
+ * Loads M2M credentials from local file system.
6
+ * Primarily used for local development and testing.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.LocalFileSecretsProvider = void 0;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const os = __importStar(require("os"));
46
+ /**
47
+ * Default no-op logger
48
+ */
49
+ const noopLogger = {
50
+ info: () => { },
51
+ warn: () => { },
52
+ error: () => { },
53
+ debug: () => { },
54
+ };
55
+ /**
56
+ * Local file secrets provider for M2M credentials
57
+ *
58
+ * Loads credentials from `~/.dataflint/m2m_secret.{environment}.json`
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const provider = new LocalFileSecretsProvider('prod', logger);
63
+ * if (await provider.isAvailable()) {
64
+ * const credentials = await provider.loadAuth0M2MCredentials('unused');
65
+ * }
66
+ * ```
67
+ */
68
+ class LocalFileSecretsProvider {
69
+ logger;
70
+ environment;
71
+ secretFilePath;
72
+ constructor(environment, logger) {
73
+ this.logger = logger || noopLogger;
74
+ this.environment = environment;
75
+ this.secretFilePath = path.join(os.homedir(), ".dataflint", `m2m_secret.${environment}.json`);
76
+ }
77
+ /**
78
+ * Get the provider name for logging
79
+ */
80
+ getName() {
81
+ return "Local File";
82
+ }
83
+ /**
84
+ * Check if the local secret file exists
85
+ */
86
+ async isAvailable() {
87
+ const exists = fs.existsSync(this.secretFilePath);
88
+ if (exists) {
89
+ this.logger.debug(`Local M2M secret file found: ${this.secretFilePath}`);
90
+ }
91
+ else {
92
+ this.logger.debug(`Local M2M secret file not found: ${this.secretFilePath}`);
93
+ }
94
+ return exists;
95
+ }
96
+ /**
97
+ * Load Auth0 M2M credentials from local file
98
+ *
99
+ * @param _secretName - Ignored, uses environment-based file path
100
+ * @returns M2M credentials or null if not found or invalid
101
+ */
102
+ async loadAuth0M2MCredentials(_secretName) {
103
+ this.logger.info(`Loading M2M credentials from local file: ${this.secretFilePath}`);
104
+ try {
105
+ if (!fs.existsSync(this.secretFilePath)) {
106
+ this.logger.debug("Local secret file does not exist");
107
+ return null;
108
+ }
109
+ // Check file permissions (should be 0600 for security)
110
+ const stats = fs.statSync(this.secretFilePath);
111
+ const mode = stats.mode & 0o777;
112
+ if (mode !== 0o600) {
113
+ this.logger.warn(`Secret file has insecure permissions: ${mode.toString(8)}. Should be 600.`);
114
+ }
115
+ const content = fs.readFileSync(this.secretFilePath, "utf8");
116
+ const secretValue = JSON.parse(content);
117
+ // Validate required fields
118
+ if (!secretValue.client_id ||
119
+ !secretValue.client_secret ||
120
+ !secretValue.audience ||
121
+ !secretValue.domain) {
122
+ this.logger.error("Local secret file missing required fields (client_id, client_secret, audience, domain)");
123
+ return null;
124
+ }
125
+ this.logger.info("M2M credentials loaded from local file");
126
+ return {
127
+ client_id: secretValue.client_id,
128
+ client_secret: secretValue.client_secret,
129
+ audience: secretValue.audience,
130
+ domain: secretValue.domain,
131
+ };
132
+ }
133
+ catch (error) {
134
+ if (error instanceof SyntaxError) {
135
+ this.logger.error("Failed to parse local secret file as JSON");
136
+ }
137
+ else {
138
+ this.logger.error("Failed to load local secret file", error);
139
+ }
140
+ return null;
141
+ }
142
+ }
143
+ /**
144
+ * Get the path to the secret file (for diagnostics)
145
+ */
146
+ getSecretFilePath() {
147
+ return this.secretFilePath;
148
+ }
149
+ }
150
+ exports.LocalFileSecretsProvider = LocalFileSecretsProvider;
151
+ //# sourceMappingURL=local-file-secrets-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-file-secrets-provider.js","sourceRoot":"","sources":["../../../src/auth/secrets/local-file-secrets-provider.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAIzB;;GAEG;AACH,MAAM,UAAU,GAAgB;IAC5B,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAa,wBAAwB;IACzB,MAAM,CAAc;IACpB,WAAW,CAAS;IACpB,cAAc,CAAS;IAE/B,YAAY,WAAmB,EAAE,MAAoB;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAC3B,EAAE,CAAC,OAAO,EAAE,EACZ,YAAY,EACZ,cAAc,WAAW,OAAO,CACnC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,OAAO;QACH,OAAO,YAAY,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACb,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,gCAAgC,IAAI,CAAC,cAAc,EAAE,CACxD,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,oCAAoC,IAAI,CAAC,cAAc,EAAE,CAC5D,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CACzB,WAAmB;QAEnB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,4CAA4C,IAAI,CAAC,cAAc,EAAE,CACpE,CAAC;QAEF,IAAI,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;gBACtD,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,uDAAuD;YACvD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;YAChC,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,yCAAyC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAC9E,CAAC;YACN,CAAC;YAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAExC,2BAA2B;YAC3B,IACI,CAAC,WAAW,CAAC,SAAS;gBACtB,CAAC,WAAW,CAAC,aAAa;gBAC1B,CAAC,WAAW,CAAC,QAAQ;gBACrB,CAAC,WAAW,CAAC,MAAM,EACrB,CAAC;gBACC,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,wFAAwF,CAC3F,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YAC3D,OAAO;gBACH,SAAS,EAAE,WAAW,CAAC,SAAS;gBAChC,aAAa,EAAE,WAAW,CAAC,aAAa;gBACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,MAAM,EAAE,WAAW,CAAC,MAAM;aAC7B,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;CACJ;AA5GD,4DA4GC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Composite Secrets Provider
3
+ *
4
+ * Tries multiple secrets providers in priority order:
5
+ * 1. AWS Secrets Manager (production environments)
6
+ * 2. Local file (development/testing)
7
+ */
8
+ import { Auth0M2MCredentials, IAuthLogger } from "../types";
9
+ import { ISecretsProvider } from "./types";
10
+ /**
11
+ * Composite secrets provider that tries multiple sources in order
12
+ *
13
+ * Priority:
14
+ * 1. AWS Secrets Manager (if in AWS environment)
15
+ * 2. Local file (~/.dataflint/m2m_secret.{env}.json)
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const provider = new SecretsProvider('prod', logger);
20
+ * const credentials = await provider.loadAuth0M2MCredentials('auth0_m2m_databricks_loader_prod');
21
+ * if (credentials) {
22
+ * // Use credentials for Auth0 M2M authentication
23
+ * }
24
+ * ```
25
+ */
26
+ export declare class SecretsProvider implements ISecretsProvider {
27
+ private logger;
28
+ private providers;
29
+ private environment;
30
+ constructor(environment: string, logger?: IAuthLogger);
31
+ /**
32
+ * Get the provider name for logging
33
+ */
34
+ getName(): string;
35
+ /**
36
+ * Check if any provider is available
37
+ */
38
+ isAvailable(): Promise<boolean>;
39
+ /**
40
+ * Load Auth0 M2M credentials from the first available provider
41
+ *
42
+ * @param secretName - The name of the secret (used for AWS, ignored for local file)
43
+ * @returns M2M credentials or null if not found in any provider
44
+ */
45
+ loadAuth0M2MCredentials(secretName: string): Promise<Auth0M2MCredentials | null>;
46
+ /**
47
+ * Get the default secret name for M2M credentials based on environment
48
+ *
49
+ * @param environment - The environment (prod, staging, local)
50
+ * @returns The default secret name
51
+ */
52
+ static getDefaultSecretName(environment: string): string;
53
+ }
54
+ //# sourceMappingURL=secrets-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets-provider.d.ts","sourceRoot":"","sources":["../../../src/auth/secrets/secrets-provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAc3C;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACpD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAWrD;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAarC;;;;;OAKG;IACG,uBAAuB,CACzB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IA+BtC;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CAG3D"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ /**
3
+ * Composite Secrets Provider
4
+ *
5
+ * Tries multiple secrets providers in priority order:
6
+ * 1. AWS Secrets Manager (production environments)
7
+ * 2. Local file (development/testing)
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.SecretsProvider = void 0;
11
+ const aws_secrets_provider_1 = require("./aws-secrets-provider");
12
+ const local_file_secrets_provider_1 = require("./local-file-secrets-provider");
13
+ /**
14
+ * Default no-op logger
15
+ */
16
+ const noopLogger = {
17
+ info: () => { },
18
+ warn: () => { },
19
+ error: () => { },
20
+ debug: () => { },
21
+ };
22
+ /**
23
+ * Composite secrets provider that tries multiple sources in order
24
+ *
25
+ * Priority:
26
+ * 1. AWS Secrets Manager (if in AWS environment)
27
+ * 2. Local file (~/.dataflint/m2m_secret.{env}.json)
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const provider = new SecretsProvider('prod', logger);
32
+ * const credentials = await provider.loadAuth0M2MCredentials('auth0_m2m_databricks_loader_prod');
33
+ * if (credentials) {
34
+ * // Use credentials for Auth0 M2M authentication
35
+ * }
36
+ * ```
37
+ */
38
+ class SecretsProvider {
39
+ logger;
40
+ providers;
41
+ environment;
42
+ constructor(environment, logger) {
43
+ this.logger = logger || noopLogger;
44
+ this.environment = environment;
45
+ // Initialize providers in priority order
46
+ this.providers = [
47
+ new aws_secrets_provider_1.AWSSecretsProvider(logger),
48
+ new local_file_secrets_provider_1.LocalFileSecretsProvider(environment, logger),
49
+ ];
50
+ }
51
+ /**
52
+ * Get the provider name for logging
53
+ */
54
+ getName() {
55
+ return "Composite Secrets Provider";
56
+ }
57
+ /**
58
+ * Check if any provider is available
59
+ */
60
+ async isAvailable() {
61
+ for (const provider of this.providers) {
62
+ if (await provider.isAvailable()) {
63
+ this.logger.debug(`Secrets provider available: ${provider.getName()}`);
64
+ return true;
65
+ }
66
+ }
67
+ this.logger.debug("No secrets providers available");
68
+ return false;
69
+ }
70
+ /**
71
+ * Load Auth0 M2M credentials from the first available provider
72
+ *
73
+ * @param secretName - The name of the secret (used for AWS, ignored for local file)
74
+ * @returns M2M credentials or null if not found in any provider
75
+ */
76
+ async loadAuth0M2MCredentials(secretName) {
77
+ this.logger.info("Attempting to load M2M credentials...");
78
+ for (const provider of this.providers) {
79
+ const providerName = provider.getName();
80
+ if (!(await provider.isAvailable())) {
81
+ this.logger.debug(`Provider not available: ${providerName}`);
82
+ continue;
83
+ }
84
+ this.logger.info(`Trying provider: ${providerName}`);
85
+ const credentials = await provider.loadAuth0M2MCredentials(secretName);
86
+ if (credentials) {
87
+ this.logger.info(`M2M credentials loaded from: ${providerName}`);
88
+ return credentials;
89
+ }
90
+ this.logger.debug(`No credentials found in provider: ${providerName}`);
91
+ }
92
+ this.logger.info("No M2M credentials found in any provider");
93
+ return null;
94
+ }
95
+ /**
96
+ * Get the default secret name for M2M credentials based on environment
97
+ *
98
+ * @param environment - The environment (prod, staging, local)
99
+ * @returns The default secret name
100
+ */
101
+ static getDefaultSecretName(environment) {
102
+ return `auth0_m2m_databricks_loader_${environment}`;
103
+ }
104
+ }
105
+ exports.SecretsProvider = SecretsProvider;
106
+ //# sourceMappingURL=secrets-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets-provider.js","sourceRoot":"","sources":["../../../src/auth/secrets/secrets-provider.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAIH,iEAA4D;AAC5D,+EAAyE;AAEzE;;GAEG;AACH,MAAM,UAAU,GAAgB;IAC5B,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAa,eAAe;IAChB,MAAM,CAAc;IACpB,SAAS,CAAqB;IAC9B,WAAW,CAAS;IAE5B,YAAY,WAAmB,EAAE,MAAoB;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,UAAU,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,yCAAyC;QACzC,IAAI,CAAC,SAAS,GAAG;YACb,IAAI,yCAAkB,CAAC,MAAM,CAAC;YAC9B,IAAI,sDAAwB,CAAC,WAAW,EAAE,MAAM,CAAC;SACpD,CAAC;IACN,CAAC;IAED;;OAEG;IACH,OAAO;QACH,OAAO,4BAA4B,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,IAAI,MAAM,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,+BAA+B,QAAQ,CAAC,OAAO,EAAE,EAAE,CACtD,CAAC;gBACF,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CACzB,UAAkB;QAElB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAE1D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;YAExC,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;gBAC7D,SAAS;YACb,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;YACrD,MAAM,WAAW,GACb,MAAM,QAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YAEvD,IAAI,WAAW,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,gCAAgC,YAAY,EAAE,CACjD,CAAC;gBACF,OAAO,WAAW,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,qCAAqC,YAAY,EAAE,CACtD,CAAC;QACN,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CAAC,WAAmB;QAC3C,OAAO,+BAA+B,WAAW,EAAE,CAAC;IACxD,CAAC;CACJ;AAvFD,0CAuFC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Secrets Provider Types
3
+ *
4
+ * Defines interfaces for loading M2M credentials from various sources.
5
+ */
6
+ import { Auth0M2MCredentials } from "../types";
7
+ /**
8
+ * Interface for secrets providers that can load M2M credentials
9
+ *
10
+ * Implementations:
11
+ * - AWSSecretsProvider: Loads from AWS Secrets Manager
12
+ * - LocalFileSecretsProvider: Loads from local file system
13
+ */
14
+ export interface ISecretsProvider {
15
+ /**
16
+ * Get the name of this provider for logging
17
+ */
18
+ getName(): string;
19
+ /**
20
+ * Check if this provider is available in the current environment
21
+ * (e.g., AWS credentials available, local file exists)
22
+ */
23
+ isAvailable(): Promise<boolean>;
24
+ /**
25
+ * Load Auth0 M2M credentials from the secrets source
26
+ *
27
+ * @param secretName - The name/path of the secret to load
28
+ * @returns The M2M credentials or null if not found
29
+ */
30
+ loadAuth0M2MCredentials(secretName: string): Promise<Auth0M2MCredentials | null>;
31
+ }
32
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/auth/secrets/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,OAAO,IAAI,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC;;;;;OAKG;IACH,uBAAuB,CACnB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;CAC1C"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * Secrets Provider Types
4
+ *
5
+ * Defines interfaces for loading M2M credentials from various sources.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/auth/secrets/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}