@cnstra/devtools-server-repository-redis
v0.3.0
Published
Redis repository for CNStra DevTools server (resumable stimulations & hops)
Maintainers
Readme
@cnstra/devtools-server-repository-redis
⚠️ Experimental: API may change.
Redis persistence for the CNStra DevTools server. A drop-in, resumable
replacement for @cnstra/devtools-server-repository-in-memory: same
ICNSDevToolsServerRepository contract, backed by Redis so apps, topology, stimulations and
per-hop history outlive a restart.
Install
npm install @cnstra/devtools-server-repository-redis ioredisUsage
import Redis from 'ioredis';
import { CNSDevToolsServer } from '@cnstra/devtools-server';
import { CNSDevToolsServerRepositoryRedis } from '@cnstra/devtools-server-repository-redis';
const redis = new Redis(process.env.REDIS_URL);
const repo = new CNSDevToolsServerRepositoryRedis(redis);
const server = new CNSDevToolsServer(repo);The constructor accepts any ioredis-style client. ioredis
is an optional peer dependency (the client is typed structurally). node-redis v4 uses
different method names (hSet, hGetAll, …) and is not directly compatible.
Options
new CNSDevToolsServerRepositoryRedis(redis, { keyPrefix: 'cns:' });Data layout
With the default cns: prefix: cns:apps / cns:topology / cns:cnsToApp (hashes),
cns:stim:{id} (stimulation JSON), cns:stims:{appId} (zset scored by startedAt for
ordering/paging and time-range filters), cns:hops:{stimId} (list), cns:appToCns:{appId}
(set). hasError / collateralId / neuronId filters are applied in memory after the
time-range zset scan — fine at DevTools scale.
License
MIT
