n8n-nodes-smart-memory 1.0.39 → 1.0.40

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/README.md CHANGED
@@ -302,11 +302,124 @@ The system defines a storage interface that any backend can implement:
302
302
  - Delete memory for chat identifier
303
303
 
304
304
  **Supported Backends**:
305
- - In-memory storage (volatile, for development/testing)
306
- - Persistent storage solutions (databases, etc.)
305
+ - **In-Memory Storage** (volatile, for development/testing)
306
+ - **Redis Storage** (high-performance, optional persistence)
307
+ - **PostgreSQL Storage** (persistent, ACID-compliant)
307
308
 
308
309
  The core logic is entirely independent of storage implementation, enabling deployment flexibility.
309
310
 
311
+ ### Redis Backend
312
+ Redis provides high-performance, in-memory caching with optional persistence:
313
+
314
+ **Features**:
315
+ - Lightning-fast read/write operations (1-5ms)
316
+ - Automatic expiration via TTL (Time To Live)
317
+ - Connection pooling for efficiency
318
+ - Supports both `redis` and `ioredis` clients
319
+ - Key prefixing for namespace isolation
320
+
321
+ **Use Cases**:
322
+ - High-traffic chatbots requiring fast response times
323
+ - Session management with automatic cleanup
324
+ - Temporary conversations that don't need long-term storage
325
+ - Caching layer for active conversations
326
+
327
+ **Configuration**:
328
+ - Host, port, and authentication credentials
329
+ - Optional TTL for automatic memory expiration (default: 7 days)
330
+ - Key prefix for organizing data
331
+ - TLS/SSL support for secure connections
332
+
333
+ **Installation Requirements**:
334
+ ```bash
335
+ npm install redis
336
+ # OR
337
+ npm install ioredis
338
+ ```
339
+
340
+ ### PostgreSQL Backend
341
+ PostgreSQL provides reliable, persistent storage with full ACID guarantees:
342
+
343
+ **Features**:
344
+ - Persistent storage (data survives restarts)
345
+ - JSONB support for flexible schema
346
+ - Indexed queries for fast retrieval
347
+ - Advanced analytics and reporting capabilities
348
+ - Connection pooling for scalability
349
+
350
+ **Use Cases**:
351
+ - Production deployments requiring data durability
352
+ - Long-term conversation storage
353
+ - Analytics and reporting on conversation history
354
+ - Compliance scenarios requiring audit trails
355
+
356
+ **Configuration**:
357
+ - Host, port, database name, and credentials
358
+ - SSL/TLS connection modes
359
+ - Connection pool size and timeout settings
360
+ - Custom table name (default: `smart_memory`)
361
+
362
+ **Installation Requirements**:
363
+ ```bash
364
+ npm install pg
365
+ ```
366
+
367
+ **Database Schema**:
368
+ PostgreSQL automatically creates the following table structure:
369
+ ```sql
370
+ CREATE TABLE smart_memory (
371
+ chat_id VARCHAR(255) PRIMARY KEY,
372
+ memory_data JSONB NOT NULL,
373
+ updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
374
+ created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
375
+ );
376
+ ```
377
+
378
+ ### Backend Comparison
379
+
380
+ | Feature | In-Memory | Redis | PostgreSQL |
381
+ |---------|-----------|-------|------------|
382
+ | **Speed** | ⚡ Fastest (<1ms) | ⚡ Very Fast (1-5ms) | 🐢 Moderate (5-20ms) |
383
+ | **Persistence** | ❌ None | 🟡 Optional (RDB/AOF) | ✅ Always |
384
+ | **Scalability** | ❌ Single instance | ✅ Horizontal (cluster) | ✅ Vertical (replication) |
385
+ | **Memory Usage** | 🔴 High (RAM only) | 🔴 High (RAM only) | 🟢 Low (disk-based) |
386
+ | **TTL Support** | ❌ No | ✅ Built-in | ❌ Manual |
387
+ | **Query Flexibility** | ❌ None | 🟡 Limited | ✅ Full SQL |
388
+ | **Best For** | Development/testing | High-traffic, temporary | Production, long-term |
389
+
390
+ ### Choosing a Backend
391
+
392
+ **Use In-Memory when**:
393
+ - Developing or testing workflows
394
+ - Running short-lived workflows
395
+ - Memory loss on restart is acceptable
396
+ - Simplicity is paramount
397
+
398
+ **Use Redis when**:
399
+ - Building high-traffic chatbots (>1000 messages/minute)
400
+ - Conversations are temporary (hours to days)
401
+ - Automatic cleanup via TTL is desired
402
+ - Ultra-fast response time is critical
403
+ - You want optional persistence without full database overhead
404
+
405
+ **Use PostgreSQL when**:
406
+ - Building production applications
407
+ - Long-term storage is required (weeks, months, years)
408
+ - Data loss is unacceptable
409
+ - You need to query/analyze conversation history
410
+ - Compliance or audit requirements exist
411
+ - You want full ACID guarantees
412
+
413
+ ### Migration Between Backends
414
+
415
+ When switching storage backends, note that existing data does not automatically migrate:
416
+
417
+ - **From In-Memory**: Data is lost when changing backends (in-memory is volatile)
418
+ - **From Redis to PostgreSQL**: Export data using Redis commands, then import into PostgreSQL
419
+ - **From PostgreSQL to Redis**: Query PostgreSQL data and save to Redis
420
+
421
+ For production deployments, consider implementing a data export/import strategy before switching backends.
422
+
310
423
  ### Validation Strategy
311
424
  Input validation occurs at boundaries:
312
425
  - Validates chat identifiers are non-empty
@@ -356,6 +469,100 @@ Not all use cases need all features:
356
469
 
357
470
  Optional fields allow tuning the system to specific requirements.
358
471
 
472
+ ## Setup and Installation
473
+
474
+ ### Basic Installation
475
+
476
+ Install the node package in your n8n instance:
477
+
478
+ ```bash
479
+ # For n8n community nodes
480
+ npm install n8n-nodes-smart-memory
481
+
482
+ # For local development
483
+ cd ~/.n8n/custom
484
+ npm install n8n-nodes-smart-memory
485
+ ```
486
+
487
+ ### Storage Backend Setup
488
+
489
+ #### In-Memory (Default)
490
+ No additional setup required. Works out of the box but data is lost on restart.
491
+
492
+ #### Redis Setup
493
+
494
+ 1. Install Redis client library:
495
+ ```bash
496
+ npm install redis
497
+ # OR for ioredis
498
+ npm install ioredis
499
+ ```
500
+
501
+ 2. Set up Redis server:
502
+ ```bash
503
+ # Using Docker
504
+ docker run -d -p 6379:6379 redis:latest
505
+
506
+ # Or install locally (Ubuntu/Debian)
507
+ sudo apt-get install redis-server
508
+ sudo systemctl start redis
509
+ ```
510
+
511
+ 3. In n8n, create Redis credentials:
512
+ - Navigate to **Credentials** → **New Credential**
513
+ - Select **Redis API**
514
+ - Enter host, port, password (if applicable)
515
+ - Configure TTL and key prefix in node settings
516
+
517
+ For detailed Redis configuration, see [REDIS_SETUP.md](REDIS_SETUP.md)
518
+
519
+ #### PostgreSQL Setup
520
+
521
+ 1. Install PostgreSQL client library:
522
+ ```bash
523
+ npm install pg
524
+ ```
525
+
526
+ 2. Set up PostgreSQL database:
527
+ ```bash
528
+ # Create database
529
+ createdb smart_memory
530
+
531
+ # Or using SQL
532
+ psql -U postgres -c "CREATE DATABASE smart_memory;"
533
+ ```
534
+
535
+ 3. In n8n, create PostgreSQL credentials:
536
+ - Navigate to **Credentials** → **New Credential**
537
+ - Select **PostgreSQL API**
538
+ - Enter host, port, database, user, password
539
+ - Configure SSL settings for production
540
+
541
+ The node automatically creates necessary tables and indexes on first use.
542
+
543
+ For detailed PostgreSQL configuration, see [POSTGRES_SETUP.md](POSTGRES_SETUP.md)
544
+
545
+ ### Security Considerations
546
+
547
+ **Redis**:
548
+ - Enable authentication with strong passwords
549
+ - Use TLS for production deployments
550
+ - Bind to localhost unless clustering
551
+ - Disable dangerous commands (FLUSHALL, FLUSHDB)
552
+
553
+ **PostgreSQL**:
554
+ - Use SSL/TLS in production
555
+ - Create dedicated database user with minimal permissions
556
+ - Enable connection encryption
557
+ - Set up regular backups
558
+ - Use strong passwords
559
+
560
+ **General**:
561
+ - Never commit credentials to version control
562
+ - Use environment variables or n8n's credential system
563
+ - Rotate credentials regularly
564
+ - Monitor for unauthorized access
565
+
359
566
  ## Summary
360
567
 
361
568
  Smart Memory transforms the challenge of conversational context management into a solved problem through:
@@ -363,7 +570,14 @@ Smart Memory transforms the challenge of conversational context management into
363
570
  1. **Structured Memory**: Organizing conversations into LLM-ready formats
364
571
  2. **Intelligent Windowing**: Balancing context retention with resource constraints
365
572
  3. **Adaptive Architecture**: Optimizing structure based on conversation type
366
- 4. **Storage Abstraction**: Enabling flexible deployment options
573
+ 4. **Flexible Storage**: Support for in-memory, Redis, and PostgreSQL backends
367
574
  5. **Configuration-Driven**: Adapting to diverse use cases without code changes
368
575
 
369
576
  The system serves as an intermediary layer between raw conversational data and language model consumption, handling the complexity of context management so that developers can focus on building conversational experiences rather than managing conversation state.
577
+
578
+ ## Additional Resources
579
+
580
+ - **[BACKEND_INTEGRATION.md](BACKEND_INTEGRATION.md)**: Technical details on backend integration
581
+ - **[REDIS_SETUP.md](REDIS_SETUP.md)**: Complete Redis configuration guide
582
+ - **[POSTGRES_SETUP.md](POSTGRES_SETUP.md)**: Complete PostgreSQL configuration guide
583
+ - **[Smart Memory Example Workflow.json](Smart%20Memory%20Example%20Workflow.json)**: Example n8n workflow demonstrating usage
@@ -1 +1 @@
1
- {"version":3,"file":"SmartMemory.node.d.ts","sourceRoot":"","sources":["../src/SmartMemory.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAE,oBAAoB,EAAuB,MAAM,+BAA+B,CAAC;AAK1F,qBAAa,WAAY,YAAW,SAAS;IAC3C,WAAW,EAAE,oBAAoB,CAgT/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;IA+FvE,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B,OAAO,CAAC,MAAM,CAAC,WAAW;IAwD1B,OAAO,CAAC,MAAM,CAAC,cAAc;IAoE7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAuBhC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAIhE"}
1
+ {"version":3,"file":"SmartMemory.node.d.ts","sourceRoot":"","sources":["../src/SmartMemory.node.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAMvC,OAAO,EAAE,oBAAoB,EAAuB,MAAM,+BAA+B,CAAC;AAK1F,qBAAa,WAAY,YAAW,SAAS;IAC3C,WAAW,EAAE,oBAAoB,CAyZ/B;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;mBAgGlD,aAAa;IA8FlC,OAAO,CAAC,MAAM,CAAC,WAAW;IAuF1B,OAAO,CAAC,MAAM,CAAC,cAAc;IAsF7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAuBhC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;CAIhE"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SmartMemory = void 0;
4
4
  const SmartMemory_1 = require("./SmartMemory");
5
5
  const InMemoryStorage_1 = require("./storage/InMemoryStorage");
6
+ const RedisStorage_1 = require("./storage/RedisStorage");
7
+ const PostgresStorage_1 = require("./storage/PostgresStorage");
6
8
  const OutputCleaner_1 = require("./utils/OutputCleaner");
7
9
  const constants_1 = require("./constants");
8
10
  const NormalizationUtils_1 = require("./utils/NormalizationUtils");
@@ -15,7 +17,7 @@ class SmartMemory {
15
17
  iconColor: 'black',
16
18
  group: ['transform'],
17
19
  version: 1,
18
- description: 'Configuration-driven memory management for chatbots',
20
+ description: 'Manage conversation memory for AI chatbots',
19
21
  defaults: {
20
22
  name: 'Smart Memory',
21
23
  },
@@ -40,6 +42,7 @@ class SmartMemory {
40
42
  type: 'string',
41
43
  default: '',
42
44
  description: 'Unique identifier for the session',
45
+ placeholder: 'user123_chat456',
43
46
  required: true,
44
47
  },
45
48
  {
@@ -53,6 +56,7 @@ class SmartMemory {
53
56
  },
54
57
  default: '',
55
58
  description: 'Text content of the message',
59
+ placeholder: 'Hello, how can I help you today?',
56
60
  required: true,
57
61
  },
58
62
  {
@@ -75,10 +79,100 @@ class SmartMemory {
75
79
  displayName: 'Storage Backend',
76
80
  name: 'storageBackend',
77
81
  type: 'options',
78
- options: [{ name: 'In-Memory', value: 'memory' }],
82
+ options: [
83
+ { name: 'In-Memory', value: 'memory' },
84
+ { name: 'Redis', value: 'redis' },
85
+ { name: 'PostgreSQL', value: 'postgres' },
86
+ ],
79
87
  default: 'memory',
80
88
  description: 'Where to store the memory',
81
89
  },
90
+ {
91
+ displayName: 'Redis Credentials',
92
+ name: 'redisCredentials',
93
+ type: 'credentials',
94
+ displayOptions: {
95
+ show: {
96
+ storageBackend: ['redis'],
97
+ },
98
+ },
99
+ default: '',
100
+ required: true,
101
+ credentialTypes: [
102
+ {
103
+ name: 'redisApi',
104
+ required: true,
105
+ },
106
+ ],
107
+ },
108
+ {
109
+ displayName: 'PostgreSQL Credentials',
110
+ name: 'postgresCredentials',
111
+ type: 'credentials',
112
+ displayOptions: {
113
+ show: {
114
+ storageBackend: ['postgres'],
115
+ },
116
+ },
117
+ default: '',
118
+ required: true,
119
+ credentialTypes: [
120
+ {
121
+ name: 'postgresApi',
122
+ required: true,
123
+ },
124
+ ],
125
+ },
126
+ {
127
+ displayName: 'Storage Settings',
128
+ name: 'storageSettings',
129
+ type: 'collection',
130
+ placeholder: 'Add Storage Setting',
131
+ displayOptions: {
132
+ show: {
133
+ storageBackend: ['redis', 'postgres'],
134
+ },
135
+ },
136
+ default: {},
137
+ options: [
138
+ {
139
+ displayName: 'TTL (Redis Only)',
140
+ name: 'ttl',
141
+ type: 'number',
142
+ displayOptions: {
143
+ show: {
144
+ '/storageBackend': ['redis'],
145
+ },
146
+ },
147
+ default: 604800,
148
+ description: 'Time to live in seconds (0 for no expiration)',
149
+ },
150
+ {
151
+ displayName: 'Table Name (Postgres Only)',
152
+ name: 'tableName',
153
+ type: 'string',
154
+ displayOptions: {
155
+ show: {
156
+ '/storageBackend': ['postgres'],
157
+ },
158
+ },
159
+ default: 'smart_memory',
160
+ description: 'Database table name',
161
+ },
162
+ {
163
+ displayName: 'Use IoRedis (Redis Only)',
164
+ name: 'useIoRedis',
165
+ type: 'boolean',
166
+ displayOptions: {
167
+ show: {
168
+ '/storageBackend': ['redis'],
169
+ },
170
+ },
171
+ default: false,
172
+ description: 'Use ioredis library instead of redis',
173
+ },
174
+ ],
175
+ },
82
176
  {
83
177
  displayName: 'Insert Mode',
84
178
  name: 'insertMode',
@@ -112,7 +206,8 @@ class SmartMemory {
112
206
  name: 'chatId',
113
207
  type: 'string',
114
208
  default: '',
115
- description: 'Unique identifier for the chat (defaults to Session ID)',
209
+ description: 'Chat ID (defaults to Session ID)',
210
+ placeholder: 'chat_001',
116
211
  },
117
212
  {
118
213
  displayName: 'Chat Type',
@@ -127,6 +222,7 @@ class SmartMemory {
127
222
  type: 'string',
128
223
  default: '',
129
224
  description: 'Name of the chat',
225
+ placeholder: 'General Support',
130
226
  },
131
227
  {
132
228
  displayName: 'Message ID',
@@ -134,6 +230,7 @@ class SmartMemory {
134
230
  type: 'string',
135
231
  default: '',
136
232
  description: 'Optional unique identifier for the message',
233
+ placeholder: 'msg_12345',
137
234
  },
138
235
  {
139
236
  displayName: 'Reply To Message',
@@ -141,20 +238,21 @@ class SmartMemory {
141
238
  type: 'string',
142
239
  default: '',
143
240
  description: 'The message being replied to',
241
+ placeholder: 'Original message content...',
144
242
  },
145
243
  {
146
244
  displayName: 'Include Reply Context',
147
245
  name: 'includeReplyContext',
148
246
  type: 'boolean',
149
247
  default: false,
150
- description: 'Include information about replied-to messages',
248
+ description: 'Include reply context',
151
249
  },
152
250
  {
153
251
  displayName: 'Include Reply Display Name',
154
252
  name: 'includeReplyDisplayName',
155
253
  type: 'boolean',
156
254
  default: true,
157
- description: 'Include reply sender display name in messages',
255
+ description: 'Include reply sender display name',
158
256
  displayOptions: {
159
257
  show: {
160
258
  includeReplyContext: [true],
@@ -166,7 +264,7 @@ class SmartMemory {
166
264
  name: 'includeReplyUsername',
167
265
  type: 'boolean',
168
266
  default: true,
169
- description: 'Include reply sender username in messages',
267
+ description: 'Include reply sender username',
170
268
  displayOptions: {
171
269
  show: {
172
270
  includeReplyContext: [true],
@@ -178,7 +276,7 @@ class SmartMemory {
178
276
  name: 'includeReplyMessage',
179
277
  type: 'boolean',
180
278
  default: true,
181
- description: 'Include reply message content in messages',
279
+ description: 'Include reply message content',
182
280
  displayOptions: {
183
281
  show: {
184
282
  includeReplyContext: [true],
@@ -190,7 +288,7 @@ class SmartMemory {
190
288
  name: 'includeReplyMessageId',
191
289
  type: 'boolean',
192
290
  default: false,
193
- description: 'Include reply message ID in messages',
291
+ description: 'Include reply message ID',
194
292
  displayOptions: {
195
293
  show: {
196
294
  includeReplyContext: [true],
@@ -209,7 +307,11 @@ class SmartMemory {
209
307
  operation: ['insert'],
210
308
  },
211
309
  },
212
- default: { isBotResponse: false, userRole: constants_1.DEFAULT_VALUES.USER_ROLE, assistantRole: constants_1.DEFAULT_VALUES.ASSISTANT_ROLE },
310
+ default: {
311
+ isBotResponse: false,
312
+ userRole: constants_1.DEFAULT_VALUES.USER_ROLE,
313
+ assistantRole: constants_1.DEFAULT_VALUES.ASSISTANT_ROLE,
314
+ },
213
315
  options: [
214
316
  {
215
317
  displayName: 'Is Bot Response',
@@ -224,6 +326,7 @@ class SmartMemory {
224
326
  type: 'string',
225
327
  default: 'user',
226
328
  description: 'Role for user messages',
329
+ placeholder: 'user',
227
330
  displayOptions: {
228
331
  show: {
229
332
  isBotResponse: [false],
@@ -236,6 +339,7 @@ class SmartMemory {
236
339
  type: 'string',
237
340
  default: 'assistant',
238
341
  description: 'Role for assistant/bot messages',
342
+ placeholder: 'assistant',
239
343
  displayOptions: {
240
344
  show: {
241
345
  isBotResponse: [true],
@@ -248,6 +352,7 @@ class SmartMemory {
248
352
  type: 'string',
249
353
  default: '',
250
354
  description: 'Unique identifier for the identity',
355
+ placeholder: 'user_123',
251
356
  displayOptions: {
252
357
  show: {
253
358
  isBotResponse: [true, false],
@@ -260,6 +365,7 @@ class SmartMemory {
260
365
  type: 'string',
261
366
  default: '',
262
367
  description: 'Display name for the identity',
368
+ placeholder: 'John Doe',
263
369
  displayOptions: {
264
370
  show: {
265
371
  isBotResponse: [true, false],
@@ -272,6 +378,7 @@ class SmartMemory {
272
378
  type: 'string',
273
379
  default: '',
274
380
  description: 'Username for the identity',
381
+ placeholder: '@johndoe',
275
382
  displayOptions: {
276
383
  show: {
277
384
  isBotResponse: [true, false],
@@ -335,7 +442,8 @@ class SmartMemory {
335
442
  if (isInsert || isGet) {
336
443
  memoryWindowSizeParam = this.getNodeParameter('memoryWindowSize', i);
337
444
  storageBackendParam = this.getNodeParameter('storageBackend', i);
338
- rawMemorySettings = this.getNodeParameter('memorySettings', i) ?? {};
445
+ rawMemorySettings =
446
+ this.getNodeParameter('memorySettings', i) ?? {};
339
447
  }
340
448
  const messageSettings = isInsert
341
449
  ? (this.getNodeParameter('messageSettings', i) ?? {})
@@ -367,7 +475,7 @@ class SmartMemory {
367
475
  storageBackend,
368
476
  };
369
477
  if (!storage) {
370
- storage = SmartMemory.createStorage(storageBackend);
478
+ storage = await SmartMemory.createStorage(storageBackend, this, i);
371
479
  }
372
480
  const config = SmartMemory.buildConfig(operation, memorySettings, this, i);
373
481
  const memoryManager = new SmartMemory_1.PureMemoryManager(config, storage);
@@ -395,12 +503,72 @@ class SmartMemory {
395
503
  }
396
504
  return [returnData];
397
505
  }
398
- static createStorage(storageBackend) {
506
+ static async createStorage(storageBackend, context, itemIndex) {
399
507
  // Validate storage backend early
400
508
  const normalized = NormalizationUtils_1.NormalizationUtils.toString(storageBackend, constants_1.STORAGE_BACKENDS.MEMORY);
401
509
  if (normalized === constants_1.STORAGE_BACKENDS.MEMORY) {
402
510
  return new InMemoryStorage_1.InMemoryStorage();
403
511
  }
512
+ if (normalized === constants_1.STORAGE_BACKENDS.REDIS) {
513
+ const credentials = await context.getCredentials('redisApi');
514
+ const storageSettings = context.getNodeParameter('storageSettings', itemIndex) ?? {};
515
+ const redisConfig = {
516
+ host: credentials.host,
517
+ port: credentials.port,
518
+ ttl: NormalizationUtils_1.NormalizationUtils.extractNumber(storageSettings, 'ttl', 604800, 0, Number.MAX_SAFE_INTEGER),
519
+ useIoRedis: NormalizationUtils_1.NormalizationUtils.extractBoolean(storageSettings, 'useIoRedis', false),
520
+ };
521
+ // Only add optional properties if they have values
522
+ if (credentials.password) {
523
+ redisConfig.password = credentials.password;
524
+ }
525
+ if (credentials.database !== undefined) {
526
+ redisConfig.database = credentials.database;
527
+ }
528
+ if (credentials.tls !== undefined) {
529
+ redisConfig.tls = credentials.tls;
530
+ }
531
+ if (credentials.connectionTimeout !== undefined) {
532
+ redisConfig.connectionTimeout = credentials.connectionTimeout;
533
+ }
534
+ if (credentials.keyPrefix) {
535
+ redisConfig.keyPrefix = credentials.keyPrefix;
536
+ }
537
+ const storage = new RedisStorage_1.RedisStorage(redisConfig);
538
+ await storage.initialize();
539
+ return storage;
540
+ }
541
+ if (normalized === constants_1.STORAGE_BACKENDS.POSTGRES) {
542
+ const credentials = await context.getCredentials('postgresApi');
543
+ const storageSettings = context.getNodeParameter('storageSettings', itemIndex) ?? {};
544
+ const sslMode = credentials.ssl;
545
+ let sslConfig = false;
546
+ if (sslMode === 'require' || sslMode === 'allow') {
547
+ sslConfig = true;
548
+ }
549
+ else if (sslMode === 'verify-ca') {
550
+ sslConfig = { rejectUnauthorized: true };
551
+ }
552
+ const postgresConfig = {
553
+ host: credentials.host,
554
+ port: credentials.port,
555
+ database: credentials.database,
556
+ user: credentials.user,
557
+ password: credentials.password,
558
+ ssl: sslConfig,
559
+ tableName: NormalizationUtils_1.NormalizationUtils.extractString(storageSettings, 'tableName', 'smart_memory'),
560
+ };
561
+ // Only add optional properties if they have values
562
+ if (credentials.connectionTimeout !== undefined) {
563
+ postgresConfig.connectionTimeout = credentials.connectionTimeout;
564
+ }
565
+ if (credentials.maxConnections !== undefined) {
566
+ postgresConfig.maxConnections = credentials.maxConnections;
567
+ }
568
+ const storage = new PostgresStorage_1.PostgresStorage(postgresConfig);
569
+ await storage.initialize();
570
+ return storage;
571
+ }
404
572
  throw new Error(`Unsupported storage backend: '${normalized}'. Supported backends: ${Object.values(constants_1.STORAGE_BACKENDS).join(', ')}`);
405
573
  }
406
574
  static buildConfig(operation, memorySettings, context, itemIndex) {
@@ -1 +1 @@
1
- {"version":3,"file":"SmartMemory.node.js","sourceRoot":"","sources":["../src/SmartMemory.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SmartMemory.node.js","sourceRoot":"","sources":["../src/SmartMemory.node.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,8 @@ export declare const FIELD_MAPPINGS: {
20
20
  export declare const MEDIA_PLACEHOLDER = "[Media/Other content]";
21
21
  export declare const STORAGE_BACKENDS: {
22
22
  readonly MEMORY: "memory";
23
+ readonly REDIS: "redis";
24
+ readonly POSTGRES: "postgres";
23
25
  };
24
26
  export declare const CHAT_TYPES: {
25
27
  readonly PRIVATE: "private";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AAEzD,eAAO,MAAM,gBAAgB;;CAEnB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AAEzD,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC"}
package/dist/constants.js CHANGED
@@ -23,6 +23,8 @@ exports.FIELD_MAPPINGS = {
23
23
  exports.MEDIA_PLACEHOLDER = '[Media/Other content]';
24
24
  exports.STORAGE_BACKENDS = {
25
25
  MEMORY: 'memory',
26
+ REDIS: 'redis',
27
+ POSTGRES: 'postgres',
26
28
  };
27
29
  exports.CHAT_TYPES = {
28
30
  PRIVATE: 'private',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,cAAc,GAAG;IAC5B,cAAc,EAAE,WAAW;IAC3B,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,MAAM;IACjB,kBAAkB,EAAE,EAAE;IACtB,iBAAiB,EAAE,CAAC;IACpB,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,QAAiB;IAClC,SAAS,EAAE,SAAkB;IAC7B,kBAAkB,EAAE,cAAc;CAC1B,CAAC;AAEE,QAAA,cAAc,GAAG;IAC5B,YAAY,EAAE,aAAa;IAC3B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,QAAQ;CACT,CAAC;AAEE,QAAA,iBAAiB,GAAG,uBAAuB,CAAC;AAE5C,QAAA,gBAAgB,GAAG;IAC9B,MAAM,EAAE,QAAQ;CACR,CAAC;AAEE,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;CACV,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,cAAc,GAAG;IAC5B,cAAc,EAAE,WAAW;IAC3B,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,MAAM;IACjB,kBAAkB,EAAE,EAAE;IACtB,iBAAiB,EAAE,CAAC;IACpB,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,QAAiB;IAClC,SAAS,EAAE,SAAkB;IAC7B,kBAAkB,EAAE,cAAc;CAC1B,CAAC;AAEE,QAAA,cAAc,GAAG;IAC5B,YAAY,EAAE,aAAa;IAC3B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,QAAQ;CACT,CAAC;AAEE,QAAA,iBAAiB,GAAG,uBAAuB,CAAC;AAE5C,QAAA,gBAAgB,GAAG;IAC9B,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEE,QAAA,UAAU,GAAG;IACxB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;CACV,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class PostgresApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ authenticate: IAuthenticateGeneric;
8
+ test: ICredentialTestRequest;
9
+ }
10
+ //# sourceMappingURL=PostgresApi.credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresApi.credentials.d.ts","sourceRoot":"","sources":["../../src/credentials/PostgresApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB,qBAAa,WAAY,YAAW,eAAe;IACjD,IAAI,SAAiB;IACrB,WAAW,SAAoB;IAC/B,gBAAgB,SAAc;IAC9B,UAAU,EAAE,eAAe,EAAE,CAmF3B;IAEF,YAAY,EAAE,oBAAoB,CAGhC;IAEF,IAAI,EAAE,sBAAsB,CAK1B;CACH"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostgresApi = void 0;
4
+ class PostgresApi {
5
+ constructor() {
6
+ this.name = 'postgresApi';
7
+ this.displayName = 'PostgreSQL API';
8
+ this.documentationUrl = 'postgres';
9
+ this.properties = [
10
+ {
11
+ displayName: 'Host',
12
+ name: 'host',
13
+ type: 'string',
14
+ default: 'localhost',
15
+ required: true,
16
+ description: 'PostgreSQL server hostname or IP address',
17
+ },
18
+ {
19
+ displayName: 'Port',
20
+ name: 'port',
21
+ type: 'number',
22
+ default: 5432,
23
+ required: true,
24
+ description: 'PostgreSQL server port',
25
+ },
26
+ {
27
+ displayName: 'Database',
28
+ name: 'database',
29
+ type: 'string',
30
+ default: '',
31
+ required: true,
32
+ description: 'Database name',
33
+ },
34
+ {
35
+ displayName: 'User',
36
+ name: 'user',
37
+ type: 'string',
38
+ default: '',
39
+ required: true,
40
+ description: 'Database user',
41
+ },
42
+ {
43
+ displayName: 'Password',
44
+ name: 'password',
45
+ type: 'string',
46
+ typeOptions: {
47
+ password: true,
48
+ },
49
+ default: '',
50
+ required: true,
51
+ description: 'Database password',
52
+ },
53
+ {
54
+ displayName: 'SSL',
55
+ name: 'ssl',
56
+ type: 'options',
57
+ options: [
58
+ {
59
+ name: 'Disable',
60
+ value: 'disable',
61
+ },
62
+ {
63
+ name: 'Allow',
64
+ value: 'allow',
65
+ },
66
+ {
67
+ name: 'Require',
68
+ value: 'require',
69
+ },
70
+ {
71
+ name: 'Verify CA',
72
+ value: 'verify-ca',
73
+ },
74
+ ],
75
+ default: 'disable',
76
+ description: 'SSL connection mode',
77
+ },
78
+ {
79
+ displayName: 'Connection Timeout',
80
+ name: 'connectionTimeout',
81
+ type: 'number',
82
+ default: 5000,
83
+ description: 'Connection timeout in milliseconds',
84
+ },
85
+ {
86
+ displayName: 'Max Connections',
87
+ name: 'maxConnections',
88
+ type: 'number',
89
+ default: 10,
90
+ description: 'Maximum number of connections in the pool',
91
+ },
92
+ ];
93
+ this.authenticate = {
94
+ type: 'generic',
95
+ properties: {},
96
+ };
97
+ this.test = {
98
+ request: {
99
+ baseURL: '={{$credentials.host}}:{{$credentials.port}}',
100
+ url: '',
101
+ },
102
+ };
103
+ }
104
+ }
105
+ exports.PostgresApi = PostgresApi;
106
+ //# sourceMappingURL=PostgresApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresApi.credentials.js","sourceRoot":"","sources":["../../src/credentials/PostgresApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,WAAW;IAAxB;QACE,SAAI,GAAG,aAAa,CAAC;QACrB,gBAAW,GAAG,gBAAgB,CAAC;QAC/B,qBAAgB,GAAG,UAAU,CAAC;QAC9B,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,0CAA0C;aACxD;YACD;gBACE,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,wBAAwB;aACtC;YACD;gBACE,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,eAAe;aAC7B;YACD;gBACE,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,mBAAmB;aACjC;YACD;gBACE,WAAW,EAAE,KAAK;gBAClB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,OAAO;qBACf;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,WAAW;qBACnB;iBACF;gBACD,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,qBAAqB;aACnC;YACD;gBACE,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,oCAAoC;aAClD;YACD;gBACE,WAAW,EAAE,iBAAiB;gBAC9B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,2CAA2C;aACzD;SACF,CAAC;QAEF,iBAAY,GAAyB;YACnC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,SAAI,GAA2B;YAC7B,OAAO,EAAE;gBACP,OAAO,EAAE,8CAA8C;gBACvD,GAAG,EAAE,EAAE;aACR;SACF,CAAC;IACJ,CAAC;CAAA;AApGD,kCAoGC"}
@@ -0,0 +1,10 @@
1
+ import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class RedisApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ properties: INodeProperties[];
7
+ authenticate: IAuthenticateGeneric;
8
+ test: ICredentialTestRequest;
9
+ }
10
+ //# sourceMappingURL=RedisApi.credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisApi.credentials.d.ts","sourceRoot":"","sources":["../../src/credentials/RedisApi.credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,eAAe,EAChB,MAAM,cAAc,CAAC;AAEtB,qBAAa,QAAS,YAAW,eAAe;IAC9C,IAAI,SAAc;IAClB,WAAW,SAAe;IAC1B,gBAAgB,SAAW;IAC3B,UAAU,EAAE,eAAe,EAAE,CAuD3B;IAEF,YAAY,EAAE,oBAAoB,CAGhC;IAEF,IAAI,EAAE,sBAAsB,CAK1B;CACH"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisApi = void 0;
4
+ class RedisApi {
5
+ constructor() {
6
+ this.name = 'redisApi';
7
+ this.displayName = 'Redis API';
8
+ this.documentationUrl = 'redis';
9
+ this.properties = [
10
+ {
11
+ displayName: 'Host',
12
+ name: 'host',
13
+ type: 'string',
14
+ default: 'localhost',
15
+ required: true,
16
+ description: 'Redis server hostname or IP address',
17
+ },
18
+ {
19
+ displayName: 'Port',
20
+ name: 'port',
21
+ type: 'number',
22
+ default: 6379,
23
+ required: true,
24
+ description: 'Redis server port',
25
+ },
26
+ {
27
+ displayName: 'Password',
28
+ name: 'password',
29
+ type: 'string',
30
+ typeOptions: {
31
+ password: true,
32
+ },
33
+ default: '',
34
+ description: 'Redis password (leave empty if no authentication)',
35
+ },
36
+ {
37
+ displayName: 'Database',
38
+ name: 'database',
39
+ type: 'number',
40
+ default: 0,
41
+ description: 'Redis database number (0-15)',
42
+ },
43
+ {
44
+ displayName: 'TLS',
45
+ name: 'tls',
46
+ type: 'boolean',
47
+ default: false,
48
+ description: 'Whether to use TLS/SSL connection',
49
+ },
50
+ {
51
+ displayName: 'Connection Timeout',
52
+ name: 'connectionTimeout',
53
+ type: 'number',
54
+ default: 5000,
55
+ description: 'Connection timeout in milliseconds',
56
+ },
57
+ {
58
+ displayName: 'Key Prefix',
59
+ name: 'keyPrefix',
60
+ type: 'string',
61
+ default: 'smart_memory:',
62
+ description: 'Prefix for all Redis keys',
63
+ },
64
+ ];
65
+ this.authenticate = {
66
+ type: 'generic',
67
+ properties: {},
68
+ };
69
+ this.test = {
70
+ request: {
71
+ baseURL: '={{$credentials.host}}:{{$credentials.port}}',
72
+ url: '',
73
+ },
74
+ };
75
+ }
76
+ }
77
+ exports.RedisApi = RedisApi;
78
+ //# sourceMappingURL=RedisApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisApi.credentials.js","sourceRoot":"","sources":["../../src/credentials/RedisApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,QAAQ;IAArB;QACE,SAAI,GAAG,UAAU,CAAC;QAClB,gBAAW,GAAG,WAAW,CAAC;QAC1B,qBAAgB,GAAG,OAAO,CAAC;QAC3B,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,qCAAqC;aACnD;YACD;gBACE,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,mBAAmB;aACjC;YACD;gBACE,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,mDAAmD;aACjE;YACD;gBACE,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,8BAA8B;aAC5C;YACD;gBACE,WAAW,EAAE,KAAK;gBAClB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,mCAAmC;aACjD;YACD;gBACE,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,oCAAoC;aAClD;YACD;gBACE,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,2BAA2B;aACzC;SACF,CAAC;QAEF,iBAAY,GAAyB;YACnC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,EAAE;SACf,CAAC;QAEF,SAAI,GAA2B;YAC7B,OAAO,EAAE;gBACP,OAAO,EAAE,8CAA8C;gBACvD,GAAG,EAAE,EAAE;aACR;SACF,CAAC;IACJ,CAAC;CAAA;AAxED,4BAwEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-smart-memory",
3
- "version": "1.0.39",
3
+ "version": "1.0.40",
4
4
  "description": "Flexible memory management node for n8n with support for multiple storage backends",
5
5
  "main": "dist/SmartMemory.node.js",
6
6
  "scripts": {
@@ -17,6 +17,10 @@
17
17
  "n8nNodesApiVersion": 1,
18
18
  "nodes": [
19
19
  "dist/SmartMemory.node.js"
20
+ ],
21
+ "credentials": [
22
+ "dist/credentials/RedisApi.credentials.js",
23
+ "dist/credentials/PostgresApi.credentials.js"
20
24
  ]
21
25
  },
22
26
  "keywords": [