{"id":18203,"library":"charming-circle","title":"CCNQ4 User Database","description":"Per-user database access library for the CCNQ4 platform, version 4.1.3. Provides a framework for creating and managing individual user provisioning and voicemail databases in CouchDB, including security setup and replication from a master provisioning database. Part of a broader CCNQ4 ecosystem, intended for use with zappajs. Release cadence is tied to CCNQ4 updates; no breaking changes documented in recent versions. Differentiators: tightly coupled with CCNQ4's architecture, leverages CouchDB features for user isolation.","status":"active","version":"4.1.3","language":"javascript","source_language":"en","source_url":"github.com/shimaore/charming-circle","tags":["javascript"],"install":[{"cmd":"npm install charming-circle","lang":"bash","label":"npm"},{"cmd":"yarn add charming-circle","lang":"bash","label":"yarn"},{"cmd":"pnpm add charming-circle","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for runtime integration","package":"zappajs","optional":false}],"imports":[{"note":"ESM-only since v4; no default export, use named imports instead","wrong":"const charmingCircle = require('charming-circle')","symbol":"default","correct":"import charmingCircle from 'charming-circle'"},{"note":"Named export for the UserDatabase class","wrong":"import UserDatabase from 'charming-circle'","symbol":"UserDatabase","correct":"import { UserDatabase } from 'charming-circle'"},{"note":"Factory function for database creation","wrong":"","symbol":"createUserDatabase","correct":"import { createUserDatabase } from 'charming-circle'"}],"quickstart":{"code":"import { createUserDatabase } from 'charming-circle';\nimport app from 'zappajs';\n\nconst db = createUserDB(app, { user: 'alice', password: process.env.DB_PASS ?? '' });\n// Use db to access per-user provisioning or voicemail\n","lang":"typescript","description":"Shows how to create a per-user database instance using the createUserDatabase factory with zappajs integration."},"warnings":[{"fix":"Use import syntax instead of require().","message":"Version 4.x drops CommonJS support; ESM only.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Upgrade to v4 and use the new monitoring pattern.","message":"The original user document creation API is deprecated in favor of monitor-based triggers.","severity":"deprecated","affected_versions":"<4.0.0"},{"fix":"Ensure DB_PASS env var is set with admin password.","message":"Requires CouchDB admin credentials to create databases.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install charming-circle' in your project directory.","cause":"Node.js unable to locate the package in node_modules.","error":"Cannot find module 'charming-circle'"},{"fix":"Use import syntax or set type: 'module' in package.json.","cause":"Trying to require an ESM-only package.","error":"The requested module 'charming-circle' is not a CommonJS module"},{"fix":"Pass the app object from 'zappajs' import.","cause":"createUserDatabase requires a valid zappajs app instance as first argument.","error":"Zappa app not provided"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}