@tejasanik/postgres-mcp-server 1.7.1 → 2.1.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.
@@ -1,68 +0,0 @@
1
- /**
2
- * Utility functions for masking sensitive data in responses.
3
- * Only used for output - actual connections use real values.
4
- */
5
- /**
6
- * Masks sensitive host URLs to prevent exposure of infrastructure details.
7
- * Examples:
8
- * - "pgbouncer-xxx.elb.us-east-1.amazonaws.com" -> "***.elb.us-east-1.amazonaws.com"
9
- * - "my-db.xxx.rds.amazonaws.com" -> "***.rds.amazonaws.com"
10
- * - "192.168.1.100" -> "***.***.***.***"
11
- * - "localhost" -> "localhost" (unchanged)
12
- */
13
- export function maskHost(host) {
14
- if (!host)
15
- return host;
16
- // Don't mask localhost or simple hostnames
17
- if (host === 'localhost' || host === '127.0.0.1' || !host.includes('.')) {
18
- return host;
19
- }
20
- // Mask AWS RDS/ELB endpoints
21
- if (host.includes('.amazonaws.com')) {
22
- const parts = host.split('.');
23
- const awsIndex = parts.findIndex(p => p === 'amazonaws');
24
- if (awsIndex > 0) {
25
- const suffix = parts.slice(awsIndex - 1).join('.');
26
- return `***.${suffix}`;
27
- }
28
- return '***.amazonaws.com';
29
- }
30
- // Mask Azure endpoints
31
- if (host.includes('.database.windows.net'))
32
- return '***.database.windows.net';
33
- if (host.includes('.azure.com'))
34
- return '***.azure.com';
35
- // Mask GCP endpoints
36
- if (host.includes('.cloudsql.') || host.includes('.googleapis.com'))
37
- return '***.googleapis.com';
38
- // Mask IP addresses
39
- if (/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(host))
40
- return '***.***.***.***';
41
- // For other hosts, mask subdomain but keep domain
42
- const parts = host.split('.');
43
- if (parts.length >= 2)
44
- return `***.${parts.slice(-2).join('.')}`;
45
- return host;
46
- }
47
- /**
48
- * Masks sensitive data in response objects before sending to client.
49
- */
50
- export function maskResponseData(data) {
51
- if (!data || typeof data !== 'object')
52
- return data;
53
- // Deep clone to avoid mutating original
54
- const masked = JSON.parse(JSON.stringify(data));
55
- // Mask host in server listings
56
- if (masked.servers && Array.isArray(masked.servers)) {
57
- masked.servers = masked.servers.map((s) => ({
58
- ...s,
59
- host: maskHost(s.host)
60
- }));
61
- }
62
- // Mask host in connection info
63
- if (masked.host) {
64
- masked.host = maskHost(masked.host);
65
- }
66
- return masked;
67
- }
68
- //# sourceMappingURL=masking.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"masking.js","sourceRoot":"","sources":["../../src/utils/masking.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,IAA+B;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAc,CAAC;IAEjC,2CAA2C;IAC3C,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAA6B;IAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;QACzD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,OAAO,OAAO,MAAM,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,OAAO,0BAA0B,CAAC;IAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,eAAe,CAAC;IAExD,qBAAqB;IACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAAE,OAAO,oBAAoB,CAAC;IAEjG,oBAAoB;IACpB,IAAI,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAEhF,kDAAkD;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAEjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAS;IACxC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEnD,wCAAwC;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,+BAA+B;IAC/B,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,CAAC;YACJ,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;SACvB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}