mcp-quickbase 2.0.5 → 2.2.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.
Files changed (146) hide show
  1. package/.crewchief/runs/state.json +3 -0
  2. package/.mcp.json +6 -32
  3. package/.sdd/tickets/RELS_relationship-management/README.md +98 -0
  4. package/.sdd/tickets/RELS_relationship-management/planning/analysis.md +190 -0
  5. package/.sdd/tickets/RELS_relationship-management/planning/architecture.md +413 -0
  6. package/.sdd/tickets/RELS_relationship-management/planning/plan.md +177 -0
  7. package/.sdd/tickets/RELS_relationship-management/planning/quality-strategy.md +335 -0
  8. package/.sdd/tickets/RELS_relationship-management/planning/review-updates.md +95 -0
  9. package/.sdd/tickets/RELS_relationship-management/planning/security-review.md +213 -0
  10. package/.sdd/tickets/RELS_relationship-management/planning/ticket-review.md +885 -0
  11. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.1001_domain-setup.md +96 -0
  12. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.1002_get-relationships-tool.md +142 -0
  13. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.1003_register-phase1-tools.md +105 -0
  14. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.2001_create-relationship-tool.md +151 -0
  15. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.2002_update-relationship-tool.md +145 -0
  16. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.3001_delete-relationship-tool.md +154 -0
  17. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.4001_integration-testing.md +159 -0
  18. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.4002_final-verification.md +182 -0
  19. package/.sdd/tickets/RELS_relationship-management/tasks/RELS_TASK_INDEX.md +179 -0
  20. package/crewchief.config.js +31 -0
  21. package/dist/client/quickbase.d.ts +7 -2
  22. package/dist/client/quickbase.js +64 -51
  23. package/dist/client/quickbase.js.map +1 -1
  24. package/dist/mcp/index.d.ts +1 -1
  25. package/dist/mcp/server.d.ts +3 -3
  26. package/dist/mcp/server.js +21 -17
  27. package/dist/mcp/server.js.map +1 -1
  28. package/dist/mcp-stdio-server.js +64 -49
  29. package/dist/mcp-stdio-server.js.map +1 -1
  30. package/dist/server.js +84 -83
  31. package/dist/server.js.map +1 -1
  32. package/dist/tools/apps/create_app.d.ts +2 -2
  33. package/dist/tools/apps/create_app.js +23 -23
  34. package/dist/tools/apps/create_app.js.map +1 -1
  35. package/dist/tools/apps/index.d.ts +4 -4
  36. package/dist/tools/apps/index.js +3 -3
  37. package/dist/tools/apps/list_tables.d.ts +7 -7
  38. package/dist/tools/apps/list_tables.js +28 -27
  39. package/dist/tools/apps/list_tables.js.map +1 -1
  40. package/dist/tools/apps/update_app.d.ts +2 -2
  41. package/dist/tools/apps/update_app.js +28 -26
  42. package/dist/tools/apps/update_app.js.map +1 -1
  43. package/dist/tools/base.d.ts +3 -3
  44. package/dist/tools/base.js +7 -7
  45. package/dist/tools/base.js.map +1 -1
  46. package/dist/tools/configure_cache.d.ts +3 -3
  47. package/dist/tools/configure_cache.js +16 -16
  48. package/dist/tools/configure_cache.js.map +1 -1
  49. package/dist/tools/fields/create_field.d.ts +8 -7
  50. package/dist/tools/fields/create_field.js +39 -29
  51. package/dist/tools/fields/create_field.js.map +1 -1
  52. package/dist/tools/fields/delete_field.d.ts +79 -0
  53. package/dist/tools/fields/delete_field.js +105 -0
  54. package/dist/tools/fields/delete_field.js.map +1 -0
  55. package/dist/tools/fields/get_field.d.ts +91 -0
  56. package/dist/tools/fields/get_field.js +82 -0
  57. package/dist/tools/fields/get_field.js.map +1 -0
  58. package/dist/tools/fields/index.d.ts +5 -3
  59. package/dist/tools/fields/index.js +11 -5
  60. package/dist/tools/fields/index.js.map +1 -1
  61. package/dist/tools/fields/update_field.d.ts +7 -15
  62. package/dist/tools/fields/update_field.js +39 -38
  63. package/dist/tools/fields/update_field.js.map +1 -1
  64. package/dist/tools/files/download_file.d.ts +2 -2
  65. package/dist/tools/files/download_file.js +35 -35
  66. package/dist/tools/files/download_file.js.map +1 -1
  67. package/dist/tools/files/index.d.ts +3 -3
  68. package/dist/tools/files/index.js +3 -3
  69. package/dist/tools/files/upload_file.d.ts +2 -2
  70. package/dist/tools/files/upload_file.js +52 -44
  71. package/dist/tools/files/upload_file.js.map +1 -1
  72. package/dist/tools/index.d.ts +13 -12
  73. package/dist/tools/index.js +6 -3
  74. package/dist/tools/index.js.map +1 -1
  75. package/dist/tools/records/bulk_create_records.d.ts +2 -2
  76. package/dist/tools/records/bulk_create_records.js +28 -28
  77. package/dist/tools/records/bulk_create_records.js.map +1 -1
  78. package/dist/tools/records/bulk_update_records.d.ts +2 -2
  79. package/dist/tools/records/bulk_update_records.js +27 -27
  80. package/dist/tools/records/bulk_update_records.js.map +1 -1
  81. package/dist/tools/records/create_record.d.ts +2 -2
  82. package/dist/tools/records/create_record.js +40 -40
  83. package/dist/tools/records/create_record.js.map +1 -1
  84. package/dist/tools/records/index.d.ts +6 -6
  85. package/dist/tools/records/index.js +3 -3
  86. package/dist/tools/records/query_records.d.ts +3 -3
  87. package/dist/tools/records/query_records.js +82 -78
  88. package/dist/tools/records/query_records.js.map +1 -1
  89. package/dist/tools/records/update_record.d.ts +2 -2
  90. package/dist/tools/records/update_record.js +31 -29
  91. package/dist/tools/records/update_record.js.map +1 -1
  92. package/dist/tools/registry.d.ts +1 -1
  93. package/dist/tools/registry.js +1 -1
  94. package/dist/tools/relationships/create_relationship.d.ts +150 -0
  95. package/dist/tools/relationships/create_relationship.js +181 -0
  96. package/dist/tools/relationships/create_relationship.js.map +1 -0
  97. package/dist/tools/relationships/delete_relationship.d.ts +66 -0
  98. package/dist/tools/relationships/delete_relationship.js +85 -0
  99. package/dist/tools/relationships/delete_relationship.js.map +1 -0
  100. package/dist/tools/relationships/get_relationships.d.ts +126 -0
  101. package/dist/tools/relationships/get_relationships.js +126 -0
  102. package/dist/tools/relationships/get_relationships.js.map +1 -0
  103. package/dist/tools/relationships/index.d.ts +14 -0
  104. package/dist/tools/relationships/index.js +37 -0
  105. package/dist/tools/relationships/index.js.map +1 -0
  106. package/dist/tools/relationships/update_relationship.d.ts +139 -0
  107. package/dist/tools/relationships/update_relationship.js +168 -0
  108. package/dist/tools/relationships/update_relationship.js.map +1 -0
  109. package/dist/tools/reports/index.d.ts +2 -2
  110. package/dist/tools/reports/index.js +3 -3
  111. package/dist/tools/reports/run_report.d.ts +3 -3
  112. package/dist/tools/reports/run_report.js +29 -29
  113. package/dist/tools/reports/run_report.js.map +1 -1
  114. package/dist/tools/tables/create_table.d.ts +2 -49
  115. package/dist/tools/tables/create_table.js +26 -49
  116. package/dist/tools/tables/create_table.js.map +1 -1
  117. package/dist/tools/tables/get_table_fields.d.ts +2 -2
  118. package/dist/tools/tables/get_table_fields.js +25 -25
  119. package/dist/tools/tables/get_table_fields.js.map +1 -1
  120. package/dist/tools/tables/index.d.ts +4 -4
  121. package/dist/tools/tables/index.js +3 -3
  122. package/dist/tools/tables/update_table.d.ts +2 -2
  123. package/dist/tools/tables/update_table.js +28 -26
  124. package/dist/tools/tables/update_table.js.map +1 -1
  125. package/dist/tools/test_connection.d.ts +2 -2
  126. package/dist/tools/test_connection.js +28 -28
  127. package/dist/tools/test_connection.js.map +1 -1
  128. package/dist/types/api.d.ts +1 -1
  129. package/dist/types/mcp.d.ts +1 -1
  130. package/dist/utils/cache.js +16 -16
  131. package/dist/utils/cache.js.map +1 -1
  132. package/dist/utils/file.js +44 -40
  133. package/dist/utils/file.js.map +1 -1
  134. package/dist/utils/logger.js +30 -28
  135. package/dist/utils/logger.js.map +1 -1
  136. package/dist/utils/retry.js +10 -10
  137. package/dist/utils/retry.js.map +1 -1
  138. package/dist/utils/validation.d.ts +1 -1
  139. package/dist/utils/validation.js +39 -36
  140. package/dist/utils/validation.js.map +1 -1
  141. package/docs/README.md +6 -0
  142. package/docs/future-improvements.md +33 -0
  143. package/docs/migration-guide.md +160 -0
  144. package/docs/release-notes.md +89 -0
  145. package/package.json +5 -4
  146. /package/{HARDENING_SUMMARY.md → docs/hardening-summary.md} +0 -0
@@ -19,15 +19,17 @@ var LogLevel;
19
19
  })(LogLevel || (exports.LogLevel = LogLevel = {}));
20
20
  // Global log level (can be set via environment variable)
21
21
  let globalLogLevel = process.env.LOG_LEVEL
22
- ? (LogLevel[process.env.LOG_LEVEL.toUpperCase()] || LogLevel.INFO)
22
+ ? LogLevel[process.env.LOG_LEVEL.toUpperCase()] ||
23
+ LogLevel.INFO
23
24
  : LogLevel.INFO;
24
25
  /**
25
26
  * Set the global log level
26
27
  * @param level New log level
27
28
  */
28
29
  function setLogLevel(level) {
29
- if (typeof level === 'string') {
30
- globalLogLevel = LogLevel[level.toUpperCase()] || LogLevel.INFO;
30
+ if (typeof level === "string") {
31
+ globalLogLevel =
32
+ LogLevel[level.toUpperCase()] || LogLevel.INFO;
31
33
  }
32
34
  else {
33
35
  globalLogLevel = level;
@@ -38,7 +40,7 @@ function setLogLevel(level) {
38
40
  * @returns Current log level
39
41
  */
40
42
  function getLogLevel() {
41
- return LogLevel[globalLogLevel] || 'INFO';
43
+ return LogLevel[globalLogLevel] || "INFO";
42
44
  }
43
45
  /**
44
46
  * Creates a logger with the specified name
@@ -48,7 +50,7 @@ function getLogLevel() {
48
50
  function createLogger(name) {
49
51
  const formatData = (data) => {
50
52
  if (data === undefined)
51
- return '';
53
+ return "";
52
54
  try {
53
55
  return JSON.stringify(redactSensitiveData(data));
54
56
  }
@@ -62,43 +64,43 @@ function createLogger(name) {
62
64
  error(message, data) {
63
65
  if (globalLogLevel >= LogLevel.ERROR) {
64
66
  // Use stderr to avoid interfering with JSON responses on stdout
65
- process.stderr.write(`[ERROR] ${name}: ${message} ${data ? formatData(data) : ''}\n`);
67
+ process.stderr.write(`[ERROR] ${name}: ${message} ${data ? formatData(data) : ""}\n`);
66
68
  }
67
69
  },
68
70
  warn(message, data) {
69
71
  if (globalLogLevel >= LogLevel.WARN) {
70
72
  // Use stderr to avoid interfering with JSON responses on stdout
71
- process.stderr.write(`[WARN] ${name}: ${message} ${data ? formatData(data) : ''}\n`);
73
+ process.stderr.write(`[WARN] ${name}: ${message} ${data ? formatData(data) : ""}\n`);
72
74
  }
73
75
  },
74
76
  info(message, data) {
75
77
  if (globalLogLevel >= LogLevel.INFO) {
76
78
  // Use stderr to avoid interfering with JSON responses on stdout
77
- process.stderr.write(`[INFO] ${name}: ${message} ${data ? formatData(data) : ''}\n`);
79
+ process.stderr.write(`[INFO] ${name}: ${message} ${data ? formatData(data) : ""}\n`);
78
80
  }
79
81
  },
80
82
  debug(message, data) {
81
83
  if (globalLogLevel >= LogLevel.DEBUG) {
82
84
  // Use stderr to avoid interfering with JSON responses on stdout
83
- process.stderr.write(`[DEBUG] ${name}: ${message} ${data ? formatData(data) : ''}\n`);
85
+ process.stderr.write(`[DEBUG] ${name}: ${message} ${data ? formatData(data) : ""}\n`);
84
86
  }
85
- }
87
+ },
86
88
  };
87
89
  }
88
90
  /**
89
91
  * Sensitive keys that should be redacted
90
92
  */
91
93
  const SENSITIVE_KEYS = [
92
- 'token',
93
- 'password',
94
- 'secret',
95
- 'auth',
96
- 'key',
97
- 'credential',
98
- 'Authorization',
99
- 'QB-USER-TOKEN',
100
- 'userToken',
101
- 'QUICKBASE_USER_TOKEN'
94
+ "token",
95
+ "password",
96
+ "secret",
97
+ "auth",
98
+ "key",
99
+ "credential",
100
+ "Authorization",
101
+ "QB-USER-TOKEN",
102
+ "userToken",
103
+ "QUICKBASE_USER_TOKEN",
102
104
  ];
103
105
  /**
104
106
  * Redacts sensitive data in objects with circular reference protection
@@ -108,26 +110,26 @@ const SENSITIVE_KEYS = [
108
110
  function redactSensitiveData(data) {
109
111
  const visited = new WeakSet();
110
112
  function redactRecursive(obj) {
111
- if (!obj || typeof obj !== 'object') {
113
+ if (!obj || typeof obj !== "object") {
112
114
  return obj;
113
115
  }
114
116
  // Circular reference protection
115
117
  if (visited.has(obj)) {
116
- return '[Circular Reference]';
118
+ return "[Circular Reference]";
117
119
  }
118
120
  visited.add(obj);
119
121
  if (Array.isArray(obj)) {
120
- return obj.map(item => redactRecursive(item));
122
+ return obj.map((item) => redactRecursive(item));
121
123
  }
122
124
  const result = {};
123
125
  try {
124
126
  for (const [key, value] of Object.entries(obj)) {
125
- if (typeof value === 'object' && value !== null) {
127
+ if (typeof value === "object" && value !== null) {
126
128
  result[key] = redactRecursive(value);
127
129
  }
128
- else if (typeof value === 'string' &&
129
- SENSITIVE_KEYS.some(k => key.toLowerCase().includes(k.toLowerCase()))) {
130
- result[key] = '***REDACTED***';
130
+ else if (typeof value === "string" &&
131
+ SENSITIVE_KEYS.some((k) => key.toLowerCase().includes(k.toLowerCase()))) {
132
+ result[key] = "***REDACTED***";
131
133
  }
132
134
  else {
133
135
  result[key] = value;
@@ -135,7 +137,7 @@ function redactSensitiveData(data) {
135
137
  }
136
138
  }
137
139
  catch (error) {
138
- return '[Unserializable Object]';
140
+ return "[Unserializable Object]";
139
141
  }
140
142
  return result;
141
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateBackoff = calculateBackoff;
4
4
  exports.withRetry = withRetry;
5
5
  const logger_1 = require("./logger");
6
- const logger = (0, logger_1.createLogger)('RetryUtil');
6
+ const logger = (0, logger_1.createLogger)("RetryUtil");
7
7
  /**
8
8
  * Default retry options
9
9
  */
@@ -17,21 +17,21 @@ const DEFAULT_RETRY_OPTIONS = {
17
17
  if (!error)
18
18
  return false;
19
19
  // Handle fetch response errors
20
- if (typeof error === 'object' && error !== null && 'status' in error) {
20
+ if (typeof error === "object" && error !== null && "status" in error) {
21
21
  const httpError = error;
22
22
  // Retry 429 (Too Many Requests), 408 (Request Timeout), and 5xx errors
23
- return httpError.status === 429 ||
23
+ return (httpError.status === 429 ||
24
24
  httpError.status === 408 ||
25
- (httpError.status >= 500 && httpError.status < 600);
25
+ (httpError.status >= 500 && httpError.status < 600));
26
26
  }
27
27
  // Handle network errors
28
28
  if (error instanceof Error) {
29
- return error.message.includes('network') ||
30
- error.message.includes('timeout') ||
31
- error.message.includes('connection');
29
+ return (error.message.includes("network") ||
30
+ error.message.includes("timeout") ||
31
+ error.message.includes("connection"));
32
32
  }
33
33
  return false;
34
- }
34
+ },
35
35
  };
36
36
  /**
37
37
  * Calculates the delay time for a retry attempt with exponential backoff
@@ -71,13 +71,13 @@ function withRetry(fn, options = {}) {
71
71
  fullOptions.isRetryable &&
72
72
  fullOptions.isRetryable(error);
73
73
  if (!shouldRetry) {
74
- logger.debug('Error not retryable or max retries reached', { error });
74
+ logger.debug("Error not retryable or max retries reached", { error });
75
75
  throw error;
76
76
  }
77
77
  const delay = calculateBackoff(attempt, fullOptions);
78
78
  logger.debug(`Retrying after ${delay}ms due to error`, { error });
79
79
  // Wait before retrying
80
- await new Promise(resolve => setTimeout(resolve, delay));
80
+ await new Promise((resolve) => setTimeout(resolve, delay));
81
81
  }
82
82
  }
83
83
  // This should never be reached due to the loop structure,
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/utils/retry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { z } from "zod";
2
2
  /**
3
3
  * Custom validation error with additional context
4
4
  */
@@ -6,7 +6,7 @@ exports.createValidationSchema = createValidationSchema;
6
6
  exports.validateParams = validateParams;
7
7
  const zod_1 = require("zod");
8
8
  const logger_1 = require("./logger");
9
- const logger = (0, logger_1.createLogger)('Validation');
9
+ const logger = (0, logger_1.createLogger)("Validation");
10
10
  /**
11
11
  * Custom validation error with additional context
12
12
  */
@@ -14,7 +14,7 @@ class ValidationError extends Error {
14
14
  constructor(message, context) {
15
15
  super(message);
16
16
  this.context = context;
17
- this.name = 'ValidationError';
17
+ this.name = "ValidationError";
18
18
  }
19
19
  }
20
20
  exports.ValidationError = ValidationError;
@@ -22,9 +22,7 @@ exports.ValidationError = ValidationError;
22
22
  * Type guard for valid JSON Schema objects
23
23
  */
24
24
  function isValidJSONSchema(schema) {
25
- return typeof schema === 'object' &&
26
- schema !== null &&
27
- 'type' in schema;
25
+ return typeof schema === "object" && schema !== null && "type" in schema;
28
26
  }
29
27
  /**
30
28
  * Schema cache for performance optimization
@@ -69,17 +67,17 @@ SchemaCache.MAX_SIZE = 100;
69
67
  * Convert JSON Schema property to Zod type
70
68
  */
71
69
  function convertPropertyToZod(prop) {
72
- if (!prop || typeof prop !== 'object') {
73
- logger.warn('Invalid property schema, defaulting to unknown', { prop });
70
+ if (!prop || typeof prop !== "object") {
71
+ logger.warn("Invalid property schema, defaulting to unknown", { prop });
74
72
  return zod_1.z.unknown();
75
73
  }
76
74
  const { type, enum: enumValues, items, format } = prop;
77
75
  // Handle enum constraints
78
76
  if (enumValues && Array.isArray(enumValues) && enumValues.length > 0) {
79
- if (enumValues.every(v => typeof v === 'string')) {
77
+ if (enumValues.every((v) => typeof v === "string")) {
80
78
  return zod_1.z.enum(enumValues);
81
79
  }
82
- const literals = enumValues.map(v => zod_1.z.literal(v));
80
+ const literals = enumValues.map((v) => zod_1.z.literal(v));
83
81
  if (literals.length === 1) {
84
82
  return literals[0];
85
83
  }
@@ -87,32 +85,35 @@ function convertPropertyToZod(prop) {
87
85
  }
88
86
  // Handle primitive types
89
87
  switch (type) {
90
- case 'string': {
88
+ case "string": {
91
89
  let stringSchema = zod_1.z.string();
92
- if (format === 'email')
90
+ if (format === "email")
93
91
  stringSchema = stringSchema.email();
94
- if (format === 'uri')
92
+ if (format === "uri")
95
93
  stringSchema = stringSchema.url();
96
94
  return stringSchema;
97
95
  }
98
- case 'number':
96
+ case "number":
99
97
  return zod_1.z.number();
100
- case 'integer':
98
+ case "integer":
101
99
  return zod_1.z.number().int();
102
- case 'boolean':
100
+ case "boolean":
103
101
  return zod_1.z.boolean();
104
- case 'array':
105
- if (items && typeof items === 'object') {
102
+ case "array":
103
+ if (items && typeof items === "object") {
106
104
  const itemSchema = convertPropertyToZod(items);
107
105
  return zod_1.z.array(itemSchema);
108
106
  }
109
107
  return zod_1.z.array(zod_1.z.unknown());
110
- case 'object':
108
+ case "object":
111
109
  // For nested objects, we'd need recursive handling
112
110
  // For now, treat as record of unknown values
113
111
  return zod_1.z.record(zod_1.z.unknown());
114
112
  default:
115
- logger.warn('Unsupported schema type, defaulting to unknown', { type, prop });
113
+ logger.warn("Unsupported schema type, defaulting to unknown", {
114
+ type,
115
+ prop,
116
+ });
116
117
  return zod_1.z.unknown();
117
118
  }
118
119
  }
@@ -122,10 +123,10 @@ function convertPropertyToZod(prop) {
122
123
  */
123
124
  function createMcpZodSchema(schema) {
124
125
  if (!isValidJSONSchema(schema)) {
125
- logger.warn('Invalid schema provided to createMcpZodSchema', { schema });
126
+ logger.warn("Invalid schema provided to createMcpZodSchema", { schema });
126
127
  return {};
127
128
  }
128
- if (schema.type !== 'object' || !schema.properties) {
129
+ if (schema.type !== "object" || !schema.properties) {
129
130
  return {};
130
131
  }
131
132
  const properties = schema.properties;
@@ -142,7 +143,7 @@ function createMcpZodSchema(schema) {
142
143
  });
143
144
  }
144
145
  catch (error) {
145
- logger.error('Error creating MCP Zod schema', { error, schema });
146
+ logger.error("Error creating MCP Zod schema", { error, schema });
146
147
  return {};
147
148
  }
148
149
  return zodSchemaObj;
@@ -153,7 +154,9 @@ function createMcpZodSchema(schema) {
153
154
  */
154
155
  function createValidationSchema(schema) {
155
156
  if (!isValidJSONSchema(schema)) {
156
- logger.warn('Invalid schema provided to createValidationSchema', { schema });
157
+ logger.warn("Invalid schema provided to createValidationSchema", {
158
+ schema,
159
+ });
157
160
  return zod_1.z.object({});
158
161
  }
159
162
  // Create cache key
@@ -165,7 +168,7 @@ function createValidationSchema(schema) {
165
168
  }
166
169
  let zodSchema;
167
170
  try {
168
- if (schema.type === 'object' && schema.properties) {
171
+ if (schema.type === "object" && schema.properties) {
169
172
  const mcpSchema = createMcpZodSchema(schema);
170
173
  zodSchema = zod_1.z.object(mcpSchema);
171
174
  }
@@ -175,7 +178,7 @@ function createValidationSchema(schema) {
175
178
  }
176
179
  }
177
180
  catch (error) {
178
- logger.error('Error creating validation schema', { error, schema });
181
+ logger.error("Error creating validation schema", { error, schema });
179
182
  zodSchema = zod_1.z.object({});
180
183
  }
181
184
  // Cache the result
@@ -188,36 +191,36 @@ function createValidationSchema(schema) {
188
191
  function validateParams(params, schema, toolName) {
189
192
  try {
190
193
  const zodSchema = createValidationSchema(schema);
191
- logger.debug('Validating parameters', {
194
+ logger.debug("Validating parameters", {
192
195
  toolName,
193
196
  paramsType: typeof params,
194
- schemaType: schema.type
197
+ schemaType: schema.type,
195
198
  });
196
199
  const result = zodSchema.parse(params);
197
- logger.debug('Parameter validation successful', { toolName });
200
+ logger.debug("Parameter validation successful", { toolName });
198
201
  return result;
199
202
  }
200
203
  catch (error) {
201
204
  if (error instanceof zod_1.z.ZodError) {
202
- const context = toolName ? ` in tool "${toolName}"` : '';
203
- const issues = error.errors.map(err => {
204
- const path = err.path.length > 0 ? err.path.join('.') : 'root';
205
+ const context = toolName ? ` in tool "${toolName}"` : "";
206
+ const issues = error.errors.map((err) => {
207
+ const path = err.path.length > 0 ? err.path.join(".") : "root";
205
208
  return `${path}: ${err.message}`;
206
209
  });
207
- const validationError = new ValidationError(`Parameter validation failed${context}: ${issues.join(', ')}`, {
210
+ const validationError = new ValidationError(`Parameter validation failed${context}: ${issues.join(", ")}`, {
208
211
  toolName,
209
212
  issues: error.errors,
210
- originalParams: params
213
+ originalParams: params,
211
214
  });
212
- logger.error('Parameter validation failed', {
215
+ logger.error("Parameter validation failed", {
213
216
  toolName,
214
217
  error: validationError.message,
215
218
  issues: error.errors,
216
- params: typeof params === 'object' ? 'object' : params
219
+ params: typeof params === "object" ? "object" : params,
217
220
  });
218
221
  throw validationError;
219
222
  }
220
- logger.error('Unexpected validation error', { error, toolName });
223
+ logger.error("Unexpected validation error", { error, toolName });
221
224
  throw error;
222
225
  }
223
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
package/docs/README.md CHANGED
@@ -22,6 +22,12 @@ This directory contains comprehensive documentation for Quickbase MCP Server v2.
22
22
  - **[Performance Benchmarks](performance-benchmarks.md)** - Performance metrics and optimization
23
23
  - **[QA Report](final-qa-report.md)** - Quality assurance testing results
24
24
 
25
+ ### History & Releases
26
+ - **[Hardening Summary](hardening-summary.md)** - Security hardening decisions and remaining improvements
27
+ - **[Migration Guide](migration-guide.md)** - V1 to V2 migration instructions
28
+ - **[Release Notes](release-notes.md)** - Version history and release information
29
+ - **[Future Improvements](future-improvements.md)** - Roadmap items for future development
30
+
25
31
  ## 🎯 Quick Links
26
32
 
27
33
  - **New users**: Start with [Quick Start Guide](quickstart.md)
@@ -0,0 +1,33 @@
1
+ # Future Improvements
2
+
3
+ This document captures improvement items for future consideration. These items were extracted from the v2.0.0 release process and can be converted to SDD tickets when prioritized.
4
+
5
+ ## Type Safety
6
+
7
+ - **Reduce TypeScript `any` types**: 72 ESLint warnings exist for `any` types in API response handling. While not critical for security, improving type definitions would enhance code maintainability and catch potential bugs at compile time.
8
+
9
+ ## Test Coverage
10
+
11
+ - **Increase overall test coverage to 80%+**: Current coverage is 42.57%. Higher coverage would improve confidence in code changes and reduce regression risk.
12
+ - **Improve file operations test coverage**: File operations currently have only 20% coverage. Given the security-critical nature of file handling, these deserve comprehensive tests.
13
+ - **Add dedicated test files for tools**: Many tools lack dedicated test files. Each tool should have corresponding unit tests covering success paths, error handling, and edge cases.
14
+
15
+ ## Code Quality
16
+
17
+ - **Refactor duplicate path validation in file upload tool**: The file upload tool contains duplicate path validation logic that could be refactored to use the centralized file utilities, improving consistency and reducing maintenance burden.
18
+
19
+ ## Features
20
+
21
+ - **Add webhook support**: Enable real-time notifications from Quickbase events to external systems.
22
+ - **Implement streaming for large datasets**: Handle large query results more efficiently without loading everything into memory at once.
23
+ - **Support for Quickbase formulas and relationships**: Add tools or capabilities to work with Quickbase formula fields and table relationships.
24
+
25
+ ## Enhancement
26
+
27
+ - **Add circuit breaker pattern to retry logic**: While exponential backoff exists, adding a circuit breaker pattern would prevent overwhelming failing services and improve system resilience.
28
+ - **Secure token storage**: User token is currently stored in the config object. Consider more secure storage mechanisms for sensitive credentials.
29
+ - **Add more comprehensive logging options**: Expand logging configuration to support different output formats, log levels per component, and structured logging for production environments.
30
+
31
+ ---
32
+
33
+ *Note: These items are documented for planning purposes and can be converted to formal SDD tickets or epics when development capacity allows. Items are prioritized by category - Type Safety and Test Coverage items improve code quality, while Features and Enhancement items add new capabilities.*