@mcp-consultant-tools/azure-sql 28.0.0-beta.7 → 29.0.0-beta.1

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 (86) hide show
  1. package/build/cli/commands/connection-commands.d.ts +7 -0
  2. package/build/cli/commands/connection-commands.d.ts.map +1 -0
  3. package/build/cli/commands/connection-commands.js +64 -0
  4. package/build/cli/commands/connection-commands.js.map +1 -0
  5. package/build/cli/commands/crud-commands.d.ts +7 -0
  6. package/build/cli/commands/crud-commands.d.ts.map +1 -0
  7. package/build/cli/commands/crud-commands.js +63 -0
  8. package/build/cli/commands/crud-commands.js.map +1 -0
  9. package/build/cli/commands/index.d.ts +13 -0
  10. package/build/cli/commands/index.d.ts.map +1 -0
  11. package/build/cli/commands/index.js +24 -0
  12. package/build/cli/commands/index.js.map +1 -0
  13. package/build/cli/commands/query-commands.d.ts +7 -0
  14. package/build/cli/commands/query-commands.d.ts.map +1 -0
  15. package/build/cli/commands/query-commands.js +149 -0
  16. package/build/cli/commands/query-commands.js.map +1 -0
  17. package/build/cli/commands/sproc-commands.d.ts +7 -0
  18. package/build/cli/commands/sproc-commands.d.ts.map +1 -0
  19. package/build/cli/commands/sproc-commands.js +87 -0
  20. package/build/cli/commands/sproc-commands.js.map +1 -0
  21. package/build/cli/commands/unrestricted-commands.d.ts +7 -0
  22. package/build/cli/commands/unrestricted-commands.d.ts.map +1 -0
  23. package/build/cli/commands/unrestricted-commands.js +31 -0
  24. package/build/cli/commands/unrestricted-commands.js.map +1 -0
  25. package/build/cli/commands/view-commands.d.ts +7 -0
  26. package/build/cli/commands/view-commands.d.ts.map +1 -0
  27. package/build/cli/commands/view-commands.js +66 -0
  28. package/build/cli/commands/view-commands.js.map +1 -0
  29. package/build/cli/output.d.ts +11 -0
  30. package/build/cli/output.d.ts.map +1 -0
  31. package/build/cli/output.js +10 -0
  32. package/build/cli/output.js.map +1 -0
  33. package/build/cli.d.ts +9 -0
  34. package/build/cli.d.ts.map +1 -0
  35. package/build/cli.js +27 -0
  36. package/build/cli.js.map +1 -0
  37. package/build/context-factory.d.ts +10 -0
  38. package/build/context-factory.d.ts.map +1 -0
  39. package/build/context-factory.js +105 -0
  40. package/build/context-factory.js.map +1 -0
  41. package/build/index.d.ts +1 -0
  42. package/build/index.d.ts.map +1 -1
  43. package/build/index.js +45 -0
  44. package/build/index.js.map +1 -1
  45. package/build/services/connection-service.d.ts +1 -2
  46. package/build/services/connection-service.d.ts.map +1 -1
  47. package/build/services/connection-service.js +1 -3
  48. package/build/services/connection-service.js.map +1 -1
  49. package/build/services/index.d.ts +2 -0
  50. package/build/services/index.d.ts.map +1 -1
  51. package/build/services/index.js +1 -0
  52. package/build/services/index.js.map +1 -1
  53. package/build/services/query-service.d.ts.map +1 -1
  54. package/build/services/query-service.js +7 -7
  55. package/build/services/query-service.js.map +1 -1
  56. package/build/services/write-service.d.ts +109 -0
  57. package/build/services/write-service.d.ts.map +1 -0
  58. package/build/services/write-service.js +735 -0
  59. package/build/services/write-service.js.map +1 -0
  60. package/build/tool-examples.d.ts +32 -0
  61. package/build/tool-examples.d.ts.map +1 -1
  62. package/build/tool-examples.js +33 -0
  63. package/build/tool-examples.js.map +1 -1
  64. package/build/tools/crud-tools.d.ts +3 -0
  65. package/build/tools/crud-tools.d.ts.map +1 -0
  66. package/build/tools/crud-tools.js +115 -0
  67. package/build/tools/crud-tools.js.map +1 -0
  68. package/build/tools/index.d.ts +4 -0
  69. package/build/tools/index.d.ts.map +1 -1
  70. package/build/tools/index.js +12 -0
  71. package/build/tools/index.js.map +1 -1
  72. package/build/tools/sproc-tools.d.ts +3 -0
  73. package/build/tools/sproc-tools.d.ts.map +1 -0
  74. package/build/tools/sproc-tools.js +172 -0
  75. package/build/tools/sproc-tools.js.map +1 -0
  76. package/build/tools/unrestricted-tools.d.ts +7 -0
  77. package/build/tools/unrestricted-tools.d.ts.map +1 -0
  78. package/build/tools/unrestricted-tools.js +63 -0
  79. package/build/tools/unrestricted-tools.js.map +1 -0
  80. package/build/tools/view-tools.d.ts +3 -0
  81. package/build/tools/view-tools.d.ts.map +1 -0
  82. package/build/tools/view-tools.js +121 -0
  83. package/build/tools/view-tools.js.map +1 -0
  84. package/build/types.d.ts +10 -0
  85. package/build/types.d.ts.map +1 -1
  86. package/package.json +6 -4
@@ -0,0 +1,109 @@
1
+ import type { ConnectionService } from './connection-service.js';
2
+ export interface WriteResult {
3
+ success: boolean;
4
+ message: string;
5
+ objectName?: string;
6
+ rowsAffected?: number;
7
+ }
8
+ export interface UnrestrictedBatchResult {
9
+ batchIndex: number;
10
+ sql: string;
11
+ success: boolean;
12
+ rowsAffected?: number;
13
+ resultSet?: any[];
14
+ error?: string;
15
+ }
16
+ export interface UnrestrictedResult {
17
+ batches: UnrestrictedBatchResult[];
18
+ totalBatches: number;
19
+ completedBatches: number;
20
+ }
21
+ /**
22
+ * WriteService handles all write operations against Azure SQL databases:
23
+ * view management, stored procedure management/execution, and DML (INSERT/UPDATE/DELETE).
24
+ *
25
+ * Depends on ConnectionService for connection pooling.
26
+ */
27
+ export declare class WriteService {
28
+ private readonly connectionService;
29
+ constructor(connectionService: ConnectionService);
30
+ /**
31
+ * Validate that a string is a safe SQL identifier (schema name, table name, etc.).
32
+ * Prevents SQL injection on object names.
33
+ */
34
+ private validateIdentifier;
35
+ /**
36
+ * Strip SQL comments and normalize whitespace for validation.
37
+ */
38
+ private cleanSql;
39
+ /**
40
+ * Validate a DML query starts with the expected keyword and contains no dangerous patterns.
41
+ */
42
+ private validateDmlQuery;
43
+ /**
44
+ * Create or alter a view.
45
+ */
46
+ manageView(serverId: string, database: string, schemaName: string, viewName: string, selectBody: string): Promise<WriteResult>;
47
+ /**
48
+ * Deploy a view from a local .sql file.
49
+ * Reads the file and executes its contents as-is against the database.
50
+ * The file must contain a valid CREATE OR ALTER VIEW statement.
51
+ */
52
+ deployViewFromFile(serverId: string, database: string, filePath: string): Promise<WriteResult>;
53
+ /**
54
+ * Drop a view if it exists.
55
+ */
56
+ dropView(serverId: string, database: string, schemaName: string, viewName: string): Promise<WriteResult>;
57
+ /**
58
+ * Create or alter a stored procedure.
59
+ */
60
+ manageSproc(serverId: string, database: string, schemaName: string, sprocName: string, definition: string): Promise<WriteResult>;
61
+ /**
62
+ * Deploy a stored procedure from a local .sql file.
63
+ * Reads the file and executes its contents as-is against the database.
64
+ * The file must contain a valid CREATE OR ALTER PROCEDURE statement.
65
+ */
66
+ deploySprocFromFile(serverId: string, database: string, filePath: string): Promise<WriteResult>;
67
+ /**
68
+ * Drop a stored procedure if it exists.
69
+ */
70
+ dropSproc(serverId: string, database: string, schemaName: string, sprocName: string): Promise<WriteResult>;
71
+ /**
72
+ * Execute a stored procedure using mssql request.execute() (not raw SQL).
73
+ * Parameters are passed via request.input() for safety.
74
+ */
75
+ executeSproc(serverId: string, database: string, schemaName: string, sprocName: string, parameters?: Record<string, any>): Promise<{
76
+ rows: any[];
77
+ rowCount: number;
78
+ returnValue: number;
79
+ }>;
80
+ /**
81
+ * Execute an INSERT query with safety validation.
82
+ */
83
+ executeInsert(serverId: string, database: string, query: string): Promise<WriteResult>;
84
+ /**
85
+ * Execute an UPDATE query with safety validation.
86
+ */
87
+ executeUpdate(serverId: string, database: string, query: string): Promise<WriteResult>;
88
+ /**
89
+ * Execute a DELETE query with safety validation.
90
+ * REQUIRES a WHERE clause to prevent accidental full-table deletes.
91
+ */
92
+ executeDelete(serverId: string, database: string, query: string): Promise<WriteResult>;
93
+ /**
94
+ * Split T-SQL on GO batch separators.
95
+ * Matches lines containing only GO (case-insensitive, optional whitespace).
96
+ */
97
+ private splitBatches;
98
+ /**
99
+ * Detect the primary operation type from a SQL batch for audit logging.
100
+ */
101
+ private detectOperationType;
102
+ /**
103
+ * Execute any T-SQL without restrictions. Supports multi-batch scripts with GO separators.
104
+ * This is the "break glass" method — no validation, no keyword restrictions.
105
+ * The caller (MCP tool / CLI) is responsible for gating behind SQL_ENABLE_UNRESTRICTED.
106
+ */
107
+ executeUnrestricted(serverId: string, database: string, sql: string): Promise<UnrestrictedResult>;
108
+ }
109
+ //# sourceMappingURL=write-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-service.d.ts","sourceRoot":"","sources":["../../src/services/write-service.ts"],"names":[],"mappings":"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"}