{"_id":"@braedonsaunders/appkit-query-console","_rev":"2-a2a774bb6fb0ca096c8a73789289e5af","name":"@braedonsaunders/appkit-query-console","dist-tags":{"latest":"3.0.0"},"versions":{"2.0.0":{"name":"@braedonsaunders/appkit-query-console","version":"2.0.0","keywords":["appkit","application-framework","postgresql","query-console","sql","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-query-console@2.0.0","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/query-console#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"72dac3b43ee9d8e7ed85a2d864c2e39d135d4ba5","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-query-console/-/appkit-query-console-2.0.0.tgz","fileCount":48,"integrity":"sha512-eaGfoyupntTKMhum8Ve5Wr3MUrSxHseMqe/h7xZ0aMdAG/+Bt741r0nym0I+V1y4XTO5poPJrG+L+LstMiNgCA==","signatures":[{"sig":"MEUCIGeIrGEwps8k2vnGNvbhg4RrR5WGEmhxpL1E8ziyAzUFAiEAoGw2ghJV0puHTN5KTEl+1ngMJez+L0nvUQkK+1YdW9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-query-console@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":221744},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-query-console-2.0.0.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./styles.css":"./styles.css","./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/72f24a4fb91e4231e101aa129c113aeb/braedonsaunders-appkit-query-console-2.0.0.tgz","_integrity":"sha512-eaGfoyupntTKMhum8Ve5Wr3MUrSxHseMqe/h7xZ0aMdAG/+Bt741r0nym0I+V1y4XTO5poPJrG+L+LstMiNgCA==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/query-console"},"_npmVersion":"10.9.8","description":"A governed raw-SQL workbench with schema discovery, snippets, history, sortable results, CSV export, and host-owned execution.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","lucide-react":"^1.24.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"lucide-react":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-query-console_2.0.0_1787095329412_0.801712606641775","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"@braedonsaunders/appkit-query-console@3.0.0","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"157f7c9f26c65a3775961ff0db3d81465847a38e","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-query-console/-/appkit-query-console-3.0.0.tgz","fileCount":48,"integrity":"sha512-gzyI5PQzGqNnNm0VX9NqS8xGScovgKbtMy4VSb8S9zj5siSayuY6ATazjRGjfzkEOAeO4KPkqe3fUOEfIUq3RA==","signatures":[{"sig":"MEUCIFaIX/l/dKfqnWUk2GLiNxFbCUuLBFtc4mL2BF2Q8ZYgAiEAk7gdnYwzAJMxVeHJWtdObvYPBeYeaOLvRs2tW57HrZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG0VfuwfA4nxK5asVTK+iC2IN9vBCKGJ3bW1rzTTQ2tgAiEAvwqa5LlQIu52kjQG3n71xbAppgnr0yLPAaogfrh4AHI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-query-console@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":221719},"main":"./index.js","name":"@braedonsaunders/appkit-query-console","type":"module","_from":"file:braedonsaunders-appkit-query-console-3.0.0.tgz","types":"./index.d.ts","author":{"name":"Braedon Saunders"},"engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./styles.css":"./styles.css","./package.json":"./package.json"},"license":"AGPL-3.0-or-later","version":"3.0.0","_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/query-console#readme","keywords":["appkit","application-framework","postgresql","query-console","sql","typescript"],"_resolved":"/tmp/f910fd3bfb620c9c4d480b4ea4269ce7/braedonsaunders-appkit-query-console-3.0.0.tgz","_integrity":"sha512-gzyI5PQzGqNnNm0VX9NqS8xGScovgKbtMy4VSb8S9zj5siSayuY6ATazjRGjfzkEOAeO4KPkqe3fUOEfIUq3RA==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/query-console"},"_npmVersion":"10.9.8","description":"A governed raw-SQL workbench with schema discovery, snippets, history, sortable results, CSV export, and host-owned execution.","directories":{},"maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"sideEffects":["*.css"],"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","lucide-react":"^1.24.0","@braedonsaunders/appkit-ui":"^0.3.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"lucide-react":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/appkit-query-console_3.0.0_1789182735344_0.7995850265560347"}}},"time":{"created":"2026-08-18T23:22:09.243Z","modified":"2026-09-12T03:12:15.855Z","2.0.0":"2026-08-18T23:22:09.560Z","3.0.0":"2026-09-12T03:12:15.452Z"},"bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/query-console#readme","keywords":["appkit","application-framework","postgresql","query-console","sql","typescript"],"repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/query-console"},"description":"A governed raw-SQL workbench with schema discovery, snippets, history, sortable results, CSV export, and host-owned execution.","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"readme":"# @braedonsaunders/appkit-query-console\n\nA governed raw-SQL workbench. The package owns the\neditor, live schema tree, snippets, history, sortable/filterable results, CSV\nexport, browser or injected persistence, response validation, and HTTP adapter.\n\nThe consuming application owns the actual query trust boundary. Its\n`QueryConsoleAdapter` must authorize the request and execute with database-level\ntenant scope, a SELECT-only role, a read-only transaction, a statement timeout,\nand a result cap. `validateReadOnlySql()` is defense in depth, not a substitute\nfor those controls.\n\n## Install\n\n```bash\npnpm add @braedonsaunders/appkit-query-console @braedonsaunders/appkit-ui\n```\n\nImport `@braedonsaunders/appkit-query-console/styles.css` beside the AppKit UI\nstylesheet so Tailwind scans the optional React entry.\n\n```tsx\nimport { createHttpQueryConsoleAdapter } from '@braedonsaunders/appkit-query-console'\nimport { QueryConsole } from '@braedonsaunders/appkit-query-console/react'\n\nconst adapter = createHttpQueryConsoleAdapter({\n  executeUrl: '/api/query',\n  schemaUrl: '/api/query/schema',\n})\n\nexport function QueryPage() {\n  return <QueryConsole adapter={adapter} storageNamespace=\"my-app.query.user-123\" />\n}\n```\n\nFor multi-user applications, include the authenticated user and tenant in the\nbrowser-storage namespace or inject a durable `QueryConsoleStorage`. Saved SQL\ncan reveal schema and business vocabulary and must not leak between sessions.\n\n## Host-owned boundaries\n\n- route authentication and `sql.execute` authorization;\n- tenant/subsidiary scope and any fail-closed scope restrictions;\n- governed schema views and sensitive-column exclusion;\n- the database role, read-only transaction, timeout, and row cap;\n- audit persistence and application error redaction.\n\nThe package intentionally does not accept a database connection or infer a\ntenant from the browser.\n","readmeFilename":"README.md"}