{"id":45513,"library":"nanocyte-configuration-saver-redis","title":"Nanocyte Configuration Saver Redis","description":"A Node.js module for persisting nanocyte configuration data to a Redis store. Version 3.3.0 is the latest stable release, but the package appears to be in low-maintenance mode with sparse updates. It is part of the Octoblu IoT platform's nanocyte pipeline engine, specifically handling storage of configuration after pipeline execution. Differentiators include tight integration with nanocyte and Octoblu, but it is not actively developed and alternative solutions may be more robust for general Redis config storage.","status":"maintenance","version":"3.3.0","language":"javascript","source_language":"en","source_url":"https://github.com/octoblu/nanocyte-configuration-saver-redis","tags":["javascript","nanocyte","redis"],"install":[{"cmd":"npm install nanocyte-configuration-saver-redis","lang":"bash","label":"npm"},{"cmd":"yarn add nanocyte-configuration-saver-redis","lang":"bash","label":"yarn"},{"cmd":"pnpm add nanocyte-configuration-saver-redis","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Required for Redis client connectivity to store and retrieve configuration data.","package":"redis","optional":false}],"imports":[{"note":"Default CJS require is valid in CommonJS environments, but named import is preferred for ESM.","wrong":"const ConfigurationSaver = require('nanocyte-configuration-saver-redis').ConfigurationSaver","symbol":"ConfigurationSaver","correct":"import { ConfigurationSaver } from 'nanocyte-configuration-saver-redis'"},{"note":"This package has a default CommonJS export; default ESM import may fail if interop is not configured.","wrong":"import NanocyteConfigurationSaverRedis from 'nanocyte-configuration-saver-redis'","symbol":"NanocyteConfigurationSaverRedis","correct":"const NanocyteConfigurationSaverRedis = require('nanocyte-configuration-saver-redis')"},{"note":"config is a named export, not a default export.","wrong":"import config from 'nanocyte-configuration-saver-redis'","symbol":"config","correct":"import { config } from 'nanocyte-configuration-saver-redis'"}],"quickstart":{"code":"const { ConfigurationSaver } = require('nanocyte-configuration-saver-redis');\nconst redis = require('redis');\n\nconst client = redis.createClient({\n  host: process.env.REDIS_HOST || 'localhost',\n  port: process.env.REDIS_PORT || 6379\n});\n\nconst saver = new ConfigurationSaver({ redis: client });\n\nconst config = {\n  flows: [{ id: 'flow1', nodes: [] }]\n};\n\nsaver.save('my-config', config, (err, result) => {\n  if (err) {\n    console.error('Save failed:', err);\n  } else {\n    console.log('Configuration saved:', result);\n  }\n  client.quit();\n});","lang":"javascript","description":"Demonstrates how to create a ConfigurationSaver instance and save a configuration object to Redis."},"warnings":[{"fix":"Pass a Redis client instance instead of a callback to the ConfigurationSaver constructor.","message":"In version 2.x, the constructor accepted a callback; in 3.x it expects a Redis client object directly.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Wrap the callback in a Promise or use util.promisify for easier async handling.","message":"The save method callback pattern is deprecated; future versions may use promises or async/await.","severity":"deprecated","affected_versions":"3.x"},{"fix":"client.on('error', (err) => console.error('Redis error:', err));","message":"Redis connection errors may be swallowed if not handled; always attach error listener on Redis client.","severity":"gotcha","affected_versions":"all"},{"fix":"Avoid circular references; use replacer function if needed.","message":"Configuration is saved as a JSON string; ensure your config object is serializable by JSON.stringify.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'3.3.0':18 'activ':70 'altern':73 'appear':27 'config':82 'configur':2,11,54 'data':12 'develop':71 'differenti':58 'engin':49 'execut':57 'general':80 'handl':51 'includ':59 'integr':61 'iot':44 'javascript':84 'latest':21 'low':32 'low-mainten':31 'mainten':33 'may':75 'mode':34 'modul':7 'nanocyt':1,10,47,63,85 'node.js':6 'octoblu':43,65 'packag':26 'part':40 'persist':9 'pipelin':48,56 'platform':45 'redi':4,15,81,86 'releas':23 'robust':78 'saver':3 'solut':74 'spars':36 'specif':50 'stabl':22 'storag':52,83 'store':16 'tight':60 'updat':37 'version':17","created_at":"2026-06-07T12:55:22.909115+00:00","updated_at":"2026-06-07T12:55:22.909115+00:00","problems":[{"fix":"Use const { ConfigurationSaver } = require('...') or use a bundler that handles CJS interop.","cause":"Using default import from ESM when package uses CommonJS exports.","error":"TypeError: ConfigurationSaver is not a constructor"},{"fix":"Start Redis service or set REDIS_HOST and REDIS_PORT environment variables correctly.","cause":"Redis server is not running or host/port are incorrect.","error":"Error: Redis connection refused"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/octoblu/nanocyte-configuration-saver-redis#readme","github":"https://github.com/octoblu/nanocyte-configuration-saver-redis","docs":null,"changelog":null,"pypi":null,"npm":"nanocyte-configuration-saver-redis","openapi_spec":null,"status_page":null,"smithery":null,"categories":["storage"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}