{"_id":"@appgaleno/connect","_rev":"5-705f69f29619113563c8474f53c4d471","name":"@appgaleno/connect","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@appgaleno/connect","version":"0.1.0","license":"UNLICENSED","_id":"@appgaleno/connect@0.1.0","maintainers":[{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"}],"bin":{"appgaleno-connect":"dist/index.js","galenobase-connect":"dist/index.js"},"dist":{"shasum":"3ba51d1ae997df6270806b4b1b8f159c621126d5","tarball":"https://registry.npmjs.org/@appgaleno/connect/-/connect-0.1.0.tgz","fileCount":50,"integrity":"sha512-7/GYsdeaih2IelyrtFrX3PygRZgGuaS1HGfNTh2LjxJKzlUwdFt/Mh7U2+PjDRbZp5zY/RRit1q2CNYmnKyU/Q==","signatures":[{"sig":"MEQCIFI+w0+WIY7iY8NT5a3ibUbGq+jp1n2lPxqO1uv2TNFdAiBHwDpU08YdIFJDTHA9SZ4wuFsdOONVqwEvC9eRcMKE1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96115},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18"},"scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"},"_npmVersion":"11.6.2","description":"Secure GalenoBase connection assistant for external apps.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/connect_0.1.0_1782791419312_0.21730179692043627","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@appgaleno/connect","version":"0.1.1","license":"UNLICENSED","_id":"@appgaleno/connect@0.1.1","maintainers":[{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"}],"bin":{"appgaleno-connect":"dist/index.js","galenobase-connect":"dist/index.js"},"dist":{"shasum":"b5597bb4d153c133fec4225ce41c6caea89c1510","tarball":"https://registry.npmjs.org/@appgaleno/connect/-/connect-0.1.1.tgz","fileCount":50,"integrity":"sha512-XNsuSntMKnJ8qYN57+UJ9FIi4dl4XVHAaWlekDE6Hm/E7itV2zn7cznsRG3PbGRjkKWWX7I896bPv+GYHUIuXA==","signatures":[{"sig":"MEQCICjPvzCDg4zPI3W+tlUH+UsRcAHqwl/K0h1PtaUL449YAiAn+gvHTgUuZ/OarCbsS7t2IB5zq2iTFKkCDd8xxtvDpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96115},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18"},"scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"},"_npmVersion":"11.6.2","description":"Secure GalenoBase connection assistant for external apps.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/connect_0.1.1_1782791627247_0.5744581549964549","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@appgaleno/connect","version":"0.1.2","license":"UNLICENSED","_id":"@appgaleno/connect@0.1.2","maintainers":[{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"}],"bin":{"appgaleno-connect":"dist/index.js","galenobase-connect":"dist/index.js"},"dist":{"shasum":"38733e6f2b0654f89e60f18adcd3d652ef14453e","tarball":"https://registry.npmjs.org/@appgaleno/connect/-/connect-0.1.2.tgz","fileCount":66,"integrity":"sha512-RNoG9aqN88CLn/F4YjuSQRD8075BWe/0qObTmEpJVTs6ZPFn/wsIWxLZ6mK1GsuPqB5fGqbnxgU1qvDj2oTYfw==","signatures":[{"sig":"MEUCIDovtxal3ubIl//PaYbfE1uE3huFV+NGll+yVOXRAr97AiEAi9VvNuoyHJI1SvwUBdqgANYVNUYhG+wqHzDQI/pKeEk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150702},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=18"},"gitHead":"8e25e232dfb9c131bb2a8abbe75dd26e5e30a054","scripts":{"build":"tsc -p tsconfig.json && node ../../scripts/vendor-http-transport-kernel.js packages/connect-cli/dist && node ../../scripts/vendor-vault-contract.js packages/connect-cli/dist"},"_npmUser":{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"},"_npmVersion":"11.6.2","description":"Secure GalenoBase connection assistant for external apps.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/connect_0.1.2_1785592584916_0.8573108816344948","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@appgaleno/connect","version":"0.1.3","license":"UNLICENSED","_id":"@appgaleno/connect@0.1.3","maintainers":[{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"}],"homepage":"https://github.com/RafaelGaleno88/galenobase#readme","bugs":{"url":"https://github.com/RafaelGaleno88/galenobase/issues"},"bin":{"appgaleno-connect":"dist/index.js","galenobase-connect":"dist/index.js"},"dist":{"shasum":"43569c4d782db33846f69120e4dc1d9744c87601","tarball":"https://registry.npmjs.org/@appgaleno/connect/-/connect-0.1.3.tgz","fileCount":66,"integrity":"sha512-rtyNPhChEmzASiOg9NFRkw5QrKb6PluCH6IwFjB5b8Kyr6vEMagQvqsPc5y7z01OF1ZSn4LrH3zfZyswYNXvrg==","signatures":[{"sig":"MEUCICbGP2uukS/ldO7uS+mm3Zb/gBe+7gOIcGaTu2W8m3A7AiEA9lv+a0gi0q2qhbc8E4zg+BuqurWvjdH/39hLXkROAVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152667},"main":"dist/index.js","type":"commonjs","_from":"file:/home/runner/work/_temp/npm-release-bundle/artifacts/appgaleno-connect-0.1.3.tgz","types":"dist/index.d.ts","engines":{"node":">=18"},"scripts":{"build":"npm run clean && tsc -p tsconfig.json && node ../../scripts/vendor-http-transport-kernel.js packages/connect-cli/dist && node ../../scripts/vendor-vault-contract.js packages/connect-cli/dist","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:42b9dd12-be8e-40a7-a1f8-6a56fc724b86"}},"_resolved":"/home/runner/work/_temp/npm-release-bundle/artifacts/appgaleno-connect-0.1.3.tgz","_integrity":"sha512-rtyNPhChEmzASiOg9NFRkw5QrKb6PluCH6IwFjB5b8Kyr6vEMagQvqsPc5y7z01OF1ZSn4LrH3zfZyswYNXvrg==","repository":{"url":"git+https://github.com/RafaelGaleno88/galenobase.git","type":"git","directory":"packages/connect-cli"},"_npmVersion":"11.17.0","description":"Secure GalenoBase connection assistant for external apps.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/connect_0.1.3_1787011148730_0.7038151597628257","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"_id":"@appgaleno/connect@0.1.4","bin":{"appgaleno-connect":"dist/index.js","galenobase-connect":"dist/index.js"},"bugs":{"url":"https://github.com/RafaelGaleno88/galenobase/issues"},"dist":{"shasum":"a2ff498596beb0f03ff40d8bfcd1a518ebc4973a","tarball":"https://registry.npmjs.org/@appgaleno/connect/-/connect-0.1.4.tgz","integrity":"sha512-BwS6Ky2WKqzNQ0M0dX3mjuNS0bXMoxi9zFI36AuACGFJo9Co43PXj5e666mpzYUD+uF/eRYD20VP1/eCg2CyFQ==","fileCount":62,"unpackedSize":151800,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE8g0HK2O/itwIqRya62C42dmZcIUMJ3sVcLgG16AVkyAiAbEdXbRTTinrVo+qyc5hzo+TYA7Ou6O/f82FRSKA2KAg=="}]},"main":"dist/index.js","name":"@appgaleno/connect","type":"commonjs","_from":"file:/home/runner/work/_temp/npm-release-bundle/artifacts/appgaleno-connect-0.1.4.tgz","types":"dist/index.d.ts","engines":{"node":">=18"},"license":"UNLICENSED","scripts":{"build":"npm run clean && tsc -p tsconfig.json && node ../../scripts/vendor-http-transport-kernel.js packages/connect-cli/dist && node ../../scripts/vendor-vault-contract.js packages/connect-cli/dist","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\""},"version":"0.1.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:42b9dd12-be8e-40a7-a1f8-6a56fc724b86"},"approver":{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"}},"homepage":"https://github.com/RafaelGaleno88/galenobase#readme","_resolved":"/home/runner/work/_temp/npm-release-bundle/artifacts/appgaleno-connect-0.1.4.tgz","_integrity":"sha512-BwS6Ky2WKqzNQ0M0dX3mjuNS0bXMoxi9zFI36AuACGFJo9Co43PXj5e666mpzYUD+uF/eRYD20VP1/eCg2CyFQ==","repository":{"url":"git+https://github.com/RafaelGaleno88/galenobase.git","type":"git","directory":"packages/connect-cli"},"_npmVersion":"11.17.0","description":"Secure GalenoBase connection assistant for external apps.","directories":{},"maintainers":[{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"}],"sideEffects":false,"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/connect_0.1.4_1788109215505_0.5628897248536644"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-30T03:50:19.186Z","modified":"2026-08-30T17:00:15.770Z","0.1.0":"2026-06-30T03:50:19.455Z","0.1.1":"2026-06-30T03:53:47.389Z","0.1.2":"2026-08-01T13:56:25.068Z","0.1.3":"2026-08-17T23:59:08.829Z","0.1.4":"2026-08-30T17:00:15.592Z"},"bugs":{"url":"https://github.com/RafaelGaleno88/galenobase/issues"},"license":"UNLICENSED","homepage":"https://github.com/RafaelGaleno88/galenobase#readme","repository":{"url":"git+https://github.com/RafaelGaleno88/galenobase.git","type":"git","directory":"packages/connect-cli"},"description":"Secure GalenoBase connection assistant for external apps.","maintainers":[{"name":"rafaelgaleno","email":"r_galeno@hotmail.com"}],"readme":"# @appgaleno/connect\n\nSecure CLI assistant for connecting an external app to GalenoBase without\ncopying a Secret API Key into chat, Git, browser bundles or prompts.\n\n```bash\nnpx @appgaleno/connect --code gbconn_...\n```\n\nThe connect code is temporary and terminal-only. The CLI exchanges it for a\nserver-side Secret API Key, writes that key to an ignored local env file, creates\nAI-safe integration files without secrets and runs a temporary CRUD smoke test.\n\nThis package is prepared by the GalenoBase repository, but publishing it to npm\nis a human release gate.\n\n## Optional local vault\n\nUse this when you want AI tools to see only a local reference, not the Secret API\nKey value:\n\n```bash\nnpx @appgaleno/connect --code gbconn_... --local-vault\n```\n\nThe CLI encrypts the key with AES-256-GCM in the local GalenoBase vault and\nwrites only this server-side variable to the app:\n\n```env\nGALENOBASE_SECRET_REF=galenobase://local-vault/v1/project/default-server-key\n```\n\nThe reference itself is safe to show to an AI assistant as context. Resolution\nrequires the workstation-local `vault.json` plus a master key held by the\noperating-system key store: CurrentUser DPAPI on Windows, the login Keychain on\nmacOS, or Secret Service/libsecret on Linux. Linux requires `secret-tool` and an\navailable desktop Secret Service session. On POSIX, the vault directory remains\nrestricted to `0700` and `vault.json` to `0600`.\n\nExisting plaintext v1 vault files are migrated to the encrypted v2 file format\nwithout changing the public `/v1/` reference. Existing `vault.key` installations\nare moved into the OS key store and the legacy file is deleted only after the\nstored key is read back successfully.\n\nCI exercises the real key-store round-trip and `vault.key` migration against a\nheadless Linux Secret Service session. A path-scoped macOS job runs the same two\nvault test files against the login Keychain when `packages/connect-cli/**`\nchanges.\n\nMoving the master key out of the vault directory protects against file-only\nreaders. It is not a sandbox against arbitrary code. Code running as the same operating-system user\nmay invoke that user's OS key-store APIs. Do not give untrusted tools command\nexecution in the user session. The vault is not a cloud service and does not\nsync to deploy providers.\n\nMaintenance commands:\n\n```bash\nnpx @appgaleno/connect refs list\nnpx @appgaleno/connect refs check galenobase://local-vault/v1/project/default-server-key\nnpx @appgaleno/connect refs revoke galenobase://local-vault/v1/project/default-server-key\n```\n\nNo command prints the Secret API Key.\n\n## Deploy providers\n\n`GALENOBASE_SECRET_REF` is local-machine only. It keeps the raw key out of normal\nproject files and AI context, while the master key stays in the OS key store.\nArbitrary same-user processes may still invoke that store. The reference does\nnot sync to GitHub Actions, Vercel, Netlify, Railway, Hostinger or n8n cloud.\n\nFor production deploys, store `GALENOBASE_API_KEY` in the provider secret store:\n\n- GitHub Actions: Actions Secrets or Environment Secrets.\n- Vercel, Netlify and Railway: backend/server-side environment variables.\n- Hostinger static frontend: no Secret API Key; call your own backend.\n- Hostinger Node/PHP backend: runtime env or private env file outside public web\n  roots.\n- n8n: Credentials store or server env vars, never hardcoded workflow exports.\n\nSee `docs/secure-connect-assistant/DEPLOY_PROVIDER_SECRET_GUIDE.md` in the\nGalenoBase repository for the full provider checklist.\n","readmeFilename":"README.md"}