{"_id":"gitops-secrets","_rev":"6-9491a57b24eee5c79149fae911710319","name":"gitops-secrets","dist-tags":{"latest":"0.0.6"},"versions":{"0.0.1":{"name":"gitops-secrets","version":"0.0.1","author":{"name":"Ryan Blunden","email":"ryan.blunden@doppler.com"},"description":"Securely bundle encrypted secrets into your deployments and safely decrypt at runtime.","repository":{"type":"git","url":"git+https://github.com/DopplerHQ/gitops-secrets-nodejs.git"},"homepage":"https://github.com/DopplerHQ/gitops-secrets-nodejs#readme","license":"Apache-2.0","bugs":{"url":"https://github.com/DopplerHQ/gitops-secrets-nodejs/issues"},"keywords":["dotenv","env",".env","environment","variables","config","settings","secrets","gitops","vercel","sealed","encryption","decryption"],"engines":{"node":">=12"},"exports":{".":{"require":"./src/index.js","import":"./src/index.js"},"./no-fs":{"require":"./src/no-fs.js","import":"./src/no-fs.js"}},"scripts":{"test":"jest","lint":"eslint ./src ./tests","prettier":"prettier --write .","prettier-check":"prettier --check ."},"dependencies":{},"devDependencies":{"@babel/core":"^7.17.8","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","@jest/globals":"^27.5.1","babel-jest":"^27.5.1","eslint":"^8.11.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-security":"^1.4.0","jest":"^27.5.1","jest-node-exports-resolver":"^1.1.5","prettier":"^2.6.0"},"gitHead":"a09096fa523991584b7d63017e0db98273baab6d","_id":"gitops-secrets@0.0.1","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-Lez3J13RJQNtGE96aKW53cXtMn8EY9rMSJVkPcOyMM46PHzRvF+fRKT8xdtOy/jfu65tCfIteiawMJoQZfBhHQ==","shasum":"ed2e19a0231a50c7387bf723f4a969150b2e50fe","tarball":"https://registry.npmjs.org/gitops-secrets/-/gitops-secrets-0.0.1.tgz","fileCount":26,"unpackedSize":48465,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiO6b8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpOKg//ZfUIZr3e21cw+Ax/tuBgQqCMsc8GDJN9lrsqDvHwF1SgqlXC\r\nFQUNYqa2NjU+89XUQmlK/np86DHc75Mh7rrvGUiSLCD2OtqWDpPIkSSDM/no\r\ngIfokqoBjQdU9mbT7Jf4BavyeuEmoNgIviE9cXiqYOCdqrQaqdt/jfZzcUko\r\nhPlQ5j2dqingHDu9D2RIatgVeBUbav7ZN2kYoEOX/Wm11mcDYcvb+fRRMdD2\r\nOCE+/QTuAExLql57V68MCy3rNzrWTZpacIiTwzTY/Ykv8CjcrvaJZLSOJxvH\r\neaYAUog+XwQH0t5+W+kaJQn/1ls0KFhiG76PiYH0E51u/ftZSCi9UMvBs80C\r\nFzkj3fZabXzAdwqQ3qCYnCZbXnoVBhDxv/EMc3xl7nOrfumm59GMRliEoqgB\r\nhU1daRleifT0HVHYszg04/mV2ISsY3EA1lrSH4kJ0iEJqEgNrRHJGU5kej/9\r\nlOOYXMdY5kd4yc+9X6tsGzhL90h+VqSwaJB2efG6DngN7EkDRkuec4Z8XEvw\r\nU4a77R8WGnbTIfSSPaPCUDKm/s1EXxUY2j6y9ufXOx7/rkO4lsBe8l3I45tC\r\ne4GHX3t5shwFeEML9CP8sUvbtmiGKXhGFEzASin4tDG7QDpZ7expr0Z5j8Sg\r\nbeIFKyOAaxm4LroLW4QxxJ0hcBXfQlxelRI=\r\n=0b80\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAhs6WS55XhGqOMTokhIWcwpGR5Vuhs/2q/ThKgF07n3AiEArbUMQql/cvpfDcJHEuwjMzXdCBWEasRyR4NxBmMroNg="}]},"_npmUser":{"name":"dopplerhq-bot","email":"support@doppler.com"},"directories":{},"maintainers":[{"name":"dopplerhq-bot","email":"support@doppler.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gitops-secrets_0.0.1_1648076540083_0.08347298634528633"},"_hasShrinkwrap":false},"0.0.2":{"name":"gitops-secrets","version":"0.0.2","author":{"name":"Ryan Blunden","email":"ryan.blunden@doppler.com"},"description":"Securely bundle encrypted secrets into your deployments and safely decrypt at runtime.","repository":{"type":"git","url":"git+https://github.com/DopplerHQ/gitops-secrets-nodejs.git"},"homepage":"https://github.com/DopplerHQ/gitops-secrets-nodejs#readme","license":"Apache-2.0","bugs":{"url":"https://github.com/DopplerHQ/gitops-secrets-nodejs/issues"},"keywords":["dotenv","env",".env","environment","variables","config","settings","secrets","gitops","vercel","sealed","encryption","decryption"],"engines":{"node":">=12"},"exports":{".":{"require":"./src/index.js","import":"./src/index.js"},"./no-fs":{"require":"./src/no-fs.js","import":"./src/no-fs.js"}},"scripts":{"test":"jest","lint":"eslint ./src ./tests","prettier":"prettier --write .","prettier-check":"prettier --check ."},"dependencies":{},"devDependencies":{"@babel/core":"^7.17.8","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","@jest/globals":"^27.5.1","babel-jest":"^27.5.1","eslint":"^8.11.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-security":"^1.4.0","jest":"^27.5.1","jest-node-exports-resolver":"^1.1.5","prettier":"^2.6.0"},"gitHead":"0d59c21c66820ba18c9907faa5a5af9f77230840","_id":"gitops-secrets@0.0.2","_nodeVersion":"16.14.0","_npmVersion":"8.3.1","dist":{"integrity":"sha512-DvIrCRvD99ZEelb3wS1iY7mPxaU9SrAqqyf07/ph++GCcd8Tp0GOLNOWnCkpcZRoNcI9ecwlAP91lscnAANIAw==","shasum":"8ea5af8ac7db6854f2677602adf5228f92d77aae","tarball":"https://registry.npmjs.org/gitops-secrets/-/gitops-secrets-0.0.2.tgz","fileCount":26,"unpackedSize":48421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiO8BaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrgag/9EwMTijgRNqoZ3ORFPzILd5o0eFs0SJgHYQ25Cf8+/b7PbYnf\r\nVx3CWpbAAx8bjwS9zRxH/RGhgtca3hoZsFtJSBkAGg9aryx/8EMOXZ8KORFQ\r\nDc1tEShoDpGT3pCWPS83LbgU6qP2+hJwZCZwBxuTXCGt6PXRlFRzcOAZDOYK\r\ntk7+SySlgwbBQw0llbExzC+AZSOK0HbS2x8zy8mFRNPwdJeIlXq2HaQRByQc\r\n5eKYSBZdYs4NmPBlliuezIrZqjq3ke5up19j608ByD/m/lczCWN7/NcPgfNJ\r\n3sAm62vImiO93aXtAafQWjEdP4BhQJuQ18QZBqNRmwYdHEa+cDRPF3IZwZIt\r\njhaXP2CJTeb+fQVb7OTIsKqz3TLmng2efvyR/LZIePDvNYTpe0lxqqReTIKM\r\nNtbOCVPziLHxMTsUL3elfbYLnaFKVllwkN2eG6gqLSOWbidGIC5tyaHMJjX7\r\nwDsTXc0JmWVhJr2eIAXhGeXUZ13NUgITp7bedvqS0s6zAWTNA1+7LuV1ftWa\r\nQWfqZKfvjyJHA8RsFSxI5brG6wvLfeK3l3UZhaRUUfKgo7lGGZPHCxrCFSS6\r\nwY8XtDjsJMxcwVzcVnC/lfIs6LHrK7l4c1GQjPWdSosqJRaxH7slRdk4/qHS\r\ndNgeX2S9vuBO6X3WiM2nfuxv0GiLmkqzIYA=\r\n=LjYX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDj15eQiQ9e+a4D4V2Z4tvgOMWu8oEErEilxwSuroZyWAiEAxejheTOSpiLWaJIp5QhbQImdRp1H6hqdalbQ/++uw40="}]},"_npmUser":{"name":"dopplerhq-bot","email":"support@doppler.com"},"directories":{},"maintainers":[{"name":"dopplerhq-bot","email":"support@doppler.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gitops-secrets_0.0.2_1648083033915_0.7181504049448082"},"_hasShrinkwrap":false},"0.0.3":{"name":"gitops-secrets","version":"0.0.3","author":{"name":"Ryan Blunden","email":"ryan.blunden@doppler.com"},"description":"Securely bundle encrypted secrets into your deployments and safely decrypt at runtime.","repository":{"type":"git","url":"git+https://github.com/DopplerHQ/gitops-secrets-nodejs.git"},"homepage":"https://github.com/DopplerHQ/gitops-secrets-nodejs#readme","license":"Apache-2.0","bugs":{"url":"https://github.com/DopplerHQ/gitops-secrets-nodejs/issues"},"keywords":["dotenv","env",".env","environment","variables","config","settings","secrets","gitops","vercel","sealed","encryption","decryption"],"engines":{"node":">=12"},"exports":{".":{"require":"./src/index.js","import":"./src/index.js"},"./no-fs":{"require":"./src/no-fs.js","import":"./src/no-fs.js"}},"scripts":{"test":"jest","lint":"eslint ./src ./tests","prettier":"prettier --write .","prettier-check":"prettier --check .","prepublishOnly":"sed -i \"s/development/$npm_package_version/\" src/meta.js"},"dependencies":{},"devDependencies":{"@babel/core":"^7.17.8","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","@jest/globals":"^27.5.1","babel-jest":"^27.5.1","eslint":"^8.11.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-security":"^1.4.0","jest":"^27.5.1","jest-node-exports-resolver":"^1.1.5","prettier":"^2.6.0"},"gitHead":"a22c14c3e61e89f2f5500bc007e0821ce2177c5b","_id":"gitops-secrets@0.0.3","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-Ut2J10BQQv6O/pdfkTZOsBBH0CX+mKjOoIY/cOxX52jiVTQZWHlAk7Pqf89iD/QIbTrPRAv11UobI+l4zmCAMw==","shasum":"9f1971cd77756b9ee483a2079aa9b9c00681d1fd","tarball":"https://registry.npmjs.org/gitops-secrets/-/gitops-secrets-0.0.3.tgz","fileCount":27,"unpackedSize":48774,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDB62F3225kbyEsRa9xg6eP+wI2zYN/tMfeXJyvdXCVVQIhAMgDJDTc6sbDMel5Lw9ryrICr4HGXCUM7CFDvsbfpwq1"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJib02YACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqqyw//cM/BMo2CiKDRhxTu1VDNfo9HcDn7PJOcsGYZippxLws837mS\r\nlSZcnv/SJZHHpRuO2u7PSPjz8VkUOppSmStV7ZSX584VV3bXU+htbqMF6KbN\r\n/dXC7ltssSRmmArXoX8uh0oweDG4Ams76KuXJN853Z/4ofZ/H+BJsWgGJZ37\r\nzW0ec/Fnx/sih6tu4DHxY77hX1JsM2yReuE9dAhCaLPfOPoOgnWOqg/rRTul\r\nlaG8gMBc09bScNrPUPdVshfQcU5S/Hc4A32DmXlcdvS9hzgfONIhVQfV/FHJ\r\n6oEZgyTwckeHbkJRTRl8I+qqhebkBPEIGL7AfF7oofHRWPuZAJVaV4DAt67O\r\nK//+waqzGeIzO/0Q6CV9yOBaY+zwiX/YIK8q7ozqOZqdDzgsgLEbJmHoHpST\r\nooiVVOArSrJ1AwJXajvRkmcVA0aW0sCGmBn61KDIbjGEDypE2wostFIVUf+I\r\nsJN68Uvs2GHiZ8BidxlmbRkXbRQJ44UPSWYn6GKiqXN/ymjKyW16ar0H04oh\r\nclwcJ1AZekeemSbvIu/LXQTAkUUIXSsAZqOVrP9D+o8qlBOYUTXxEJ+kSQhu\r\nUdeeM+pasYOzluSdCazrAU6R1E1AYsM+yy5q42w3GxWsXtkfE1n7bh0ojNug\r\nGM/WwrSEaGmWbx9xf9QeTIWsXYHREzsXmGk=\r\n=eFeF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dopplerhq-bot","email":"support@doppler.com"},"directories":{},"maintainers":[{"name":"dopplerhq-bot","email":"support@doppler.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gitops-secrets_0.0.3_1651461528071_0.06759924331258182"},"_hasShrinkwrap":false},"0.0.4":{"name":"gitops-secrets","version":"0.0.4","author":{"name":"Ryan Blunden","email":"ryan.blunden@doppler.com"},"description":"SecretOps workflow for bundling encrypted secrets into your deployments to safely decrypt at runtime.","repository":{"type":"git","url":"git+https://github.com/DopplerHQ/gitops-secrets-nodejs.git"},"homepage":"https://github.com/DopplerHQ/gitops-secrets-nodejs#readme","license":"Apache-2.0","bugs":{"url":"https://github.com/DopplerHQ/gitops-secrets-nodejs/issues"},"keywords":["dotenv","env",".env","environment","variables","config","settings","secrets","gitops","vercel","sealed","encryption","decryption"],"engines":{"node":">=12"},"exports":{".":{"require":"./src/index.js","import":"./src/index.js"},"./no-fs":{"require":"./src/no-fs.js","import":"./src/no-fs.js"}},"scripts":{"test":"jest","lint":"eslint ./src ./tests","prettier":"prettier --write .","prettier-check":"prettier --check .","prepublishOnly":"sed -i \"s/development/$npm_package_version/\" src/meta.js"},"dependencies":{},"devDependencies":{"@babel/core":"^7.17.8","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","@jest/globals":"^27.5.1","babel-jest":"^27.5.1","eslint":"^8.11.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-security":"^1.4.0","jest":"^27.5.1","jest-node-exports-resolver":"^1.1.5","prettier":"^2.6.0"},"gitHead":"a6353a0435b971201fd3e65377859d9753d7d92a","_id":"gitops-secrets@0.0.4","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-BaRrujgflwAdJfJaweNC9TzsY1LAH2HDncPTzZ1bRuZCQvh0+1Ir4ED4o/d332m1EMJTSxjC1ztfjUbXGDxeSQ==","shasum":"f118ac8bfc8faf45e0d82d6a4a4188cc769d7768","tarball":"https://registry.npmjs.org/gitops-secrets/-/gitops-secrets-0.0.4.tgz","fileCount":28,"unpackedSize":48770,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH9UsZbl6HjImC5QJslKviab+R9AacuAZCJ6MunQbefPAiEA3Z5oZVyHVz8iiIDiHlqTgKQF2sQgnn2SadvhWJ38o8Q="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijXvlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq9Dw//ctoKriROPWzCl/0bUQw/bF/bOZy27PEmcjSV+fLDUWr7eI5s\r\nI7mv5REAJy4SryW8vdunsl/XxAxQYf4Rp5BMKmPJID4Ovdzz63piV8JOyedC\r\nlSadALepzRSxc0Pla08+LmfWaEI7oj58Jg1VczWlNv/A95TqQNG8/3W/lKDQ\r\nVnrGd+M2jprSEQa0Jfre7RHD2B6RuosDTE7dtactWtIqQnyO6oeHNOSJgRnn\r\noCguBOInGMvufjitcKpCGV2/PTUjiyDzaZTCnw7uJSJt7/9Pf6LZVgfZBHHs\r\nimWN4NomtBKM5Rmynh37BI8N2sPwoWFvv1hxyTLe7eZjOmJGinjAf7vcZKZt\r\nCQ1aZADpUAnJWYIEresM7zA72eMTLRSi65az+fuqI6M4HdbR8qZTYaotpwl+\r\n9jlUNHUq5Mf2MTl9MZaL0Jzy3MT0SA9fD8SypcHv0uAwq2jd0ieVOOso1ImL\r\nRjMl0O/6XvqDk3sYzPQ7Oon1eesryUUwKFJTznrzgJuYy9OAvauP4bTxEFif\r\nMbmzbaopr5OzA+gCDTV/q599f3vXrATu6fpmniWx9pRt/fNxrgZRtiqWWD/E\r\n66MWTMwaUJE3Rzs8H7eAFJ0akToKxT5zAfVR4TuPaUyfUpIlagB/IpDnXbdV\r\nMHFRSBa+SEF/jOYGqQrbP9aWD8QwxN1qywU=\r\n=iPux\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dopplerhq-bot","email":"support@doppler.com"},"directories":{},"maintainers":[{"name":"dopplerhq-bot","email":"support@doppler.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gitops-secrets_0.0.4_1653439461489_0.31328279026591654"},"_hasShrinkwrap":false},"0.0.5":{"name":"gitops-secrets","version":"0.0.5","author":{"name":"Ryan Blunden","email":"ryan.blunden@doppler.com"},"description":"SecretOps workflow for bundling encrypted secrets into your deployments to safely decrypt at runtime.","repository":{"type":"git","url":"git+https://github.com/DopplerHQ/gitops-secrets-nodejs.git"},"homepage":"https://github.com/DopplerHQ/gitops-secrets-nodejs#readme","license":"Apache-2.0","bugs":{"url":"https://github.com/DopplerHQ/gitops-secrets-nodejs/issues"},"keywords":["dotenv","env",".env","environment","variables","config","settings","secrets","gitops","vercel","sealed","encryption","decryption"],"engines":{"node":">=12"},"exports":{".":{"require":"./src/index.js","import":"./src/index.js"},"./no-fs":{"require":"./src/no-fs.js","import":"./src/no-fs.js"}},"scripts":{"test":"jest","lint":"eslint ./src ./tests","prettier":"prettier --write .","prettier-check":"prettier --check .","prepublishOnly":"sed -i \"s/development/$npm_package_version/\" src/meta.js"},"dependencies":{},"devDependencies":{"@babel/core":"^7.17.8","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","@jest/globals":"^27.5.1","babel-jest":"^27.5.1","eslint":"^8.11.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-security":"^1.4.0","jest":"^27.5.1","jest-node-exports-resolver":"^1.1.5","prettier":"^2.6.0"},"gitHead":"b1f6e17ba347447c987ae25866347a3631653c80","_id":"gitops-secrets@0.0.5","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-RKS6ZJa4IJvZ0UC74ESa7/qwj0LluX5Lg2Q3tJNu0wqJph5nuosCYIj4BA8K4nftUjvDoEpjii3bDEpLaYCWnw==","shasum":"0bb166eff55c8abed0374e24237e12dc153663cf","tarball":"https://registry.npmjs.org/gitops-secrets/-/gitops-secrets-0.0.5.tgz","fileCount":28,"unpackedSize":49482,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnl2XdiXedmobLz8GPIX2Y0sFiMLPDclaCSIvKmzCVSAIgMp5A+xze90TGRdjtbwvSPnrgPrlCJSPbZ0reXtZJWAU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijX2XACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrMVg//aziaCpKkWaKCJ3JxsaDcUaOM0qoWOe9DgtU/M6u2ywhtBT7Q\r\nEXquinc7qpIJh3d6W+65J2+7lU99CfpjHpLxEemkfQ3g+nuED2WuTdAaURMy\r\nirYSuRmGlPTQSqiNP2t372uotu5JGR2scAvf+03iAxee8DfjJXUC3qCwBRq/\r\nk5p8R8gPKjKF9LIFavZdOFSNNQZdZsPzV67UhbC8n4Yu6VkrQaNhIXZh3QzL\r\nh4s0tFSW7SyPv7yKYA9fzL2qPy9FaaIhQsL/CXSRVXzloUbo7b9pITjRrS11\r\nBVBb38mcPHP+M5TYfzEetWKkYthzzv5BgepIcNaSGUuPs/i6f+GNLKRG8ng/\r\nu/4Tvi+4zA/ZRXtxlAabtaFfqdsEktNwwaBfFfj5v2zFcDYlri5MMUzgHxZS\r\nbn3+domVP1pMiz9LAT9TAbbO16ddPPV6fwk8ppnxgMzuV3BRobp1jgYFqadO\r\nNf/rbqV5ckAQbPwDyIKcp4SY+/XYGaltkTsjgZZnDlDuvVdz3nM7y0woijag\r\nzjJB/pTUUPFXOoVCt6BqQx91JwQkrBy1nlIxbA5OGjHQw/eTv0Am/szqBzzX\r\nClnFOg58FJdPOrBxTtfFlDq10tEBI+2qamVk7AR2hXTgkjjoDiIzAQktXt/I\r\n4UcihG6XHvuwxH0NcbfBayAYWU5uIe0bJ+s=\r\n=ewzY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dopplerhq-bot","email":"support@doppler.com"},"directories":{},"maintainers":[{"name":"dopplerhq-bot","email":"support@doppler.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gitops-secrets_0.0.5_1653439895018_0.5792637226084867"},"_hasShrinkwrap":false},"0.0.6":{"name":"gitops-secrets","version":"0.0.6","author":{"name":"Ryan Blunden","email":"ryan.blunden@doppler.com"},"description":"SecretOps workflow for bundling encrypted secrets into your deployments to safely decrypt at runtime.","repository":{"type":"git","url":"git+https://github.com/DopplerHQ/gitops-secrets-nodejs.git"},"homepage":"https://github.com/DopplerHQ/gitops-secrets-nodejs#readme","license":"Apache-2.0","bugs":{"url":"https://github.com/DopplerHQ/gitops-secrets-nodejs/issues"},"keywords":["dotenv","env",".env","environment","variables","config","settings","secrets","gitops","vercel","sealed","encryption","decryption"],"engines":{"node":">=12"},"exports":{".":{"require":"./src/index.js","import":"./src/index.js"},"./no-fs":{"require":"./src/no-fs.js","import":"./src/no-fs.js"}},"scripts":{"test":"jest","lint":"eslint ./src ./tests","prettier":"prettier --write .","prettier-check":"prettier --check .","prepublishOnly":"sed -i \"s/development/$npm_package_version/\" src/meta.js"},"dependencies":{},"devDependencies":{"@babel/core":"^7.17.8","@babel/eslint-parser":"^7.17.0","@babel/preset-env":"^7.16.11","@jest/globals":"^27.5.1","babel-jest":"^27.5.1","eslint":"^8.11.0","eslint-plugin-import":"^2.25.4","eslint-plugin-node":"^11.1.0","eslint-plugin-security":"^1.4.0","jest":"^27.5.1","jest-node-exports-resolver":"^1.1.5","prettier":"^2.6.0"},"gitHead":"c5bf19710bd1fb382affa95d4bc77d20b5563feb","_id":"gitops-secrets@0.0.6","_nodeVersion":"16.20.1","_npmVersion":"8.19.4","dist":{"integrity":"sha512-OGgneeLyLZqGa80YL42JCz9+wEdVmrhwGeVtn8L2r/ahgNKIc364b6qtgo42zb8H6yc6WCBlY3uZiXaDlSSAWA==","shasum":"80792fa9ef801cdce6be4c781591b9861c31ec31","tarball":"https://registry.npmjs.org/gitops-secrets/-/gitops-secrets-0.0.6.tgz","fileCount":28,"unpackedSize":50051,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCy4rePBhSmlIIqm/+aam2JYr1+HmqSdUTaZXbSPI8kkwIgGCDrfM+TIUNolsFDAHTSac18vWLc8mNBoHJF/p8qkg8="}]},"_npmUser":{"name":"dopplerhq-bot","email":"bot@doppler.com"},"directories":{},"maintainers":[{"name":"dopplerhq-bot","email":"bot@doppler.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gitops-secrets_0.0.6_1690405059784_0.8511322642060986"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-23T23:02:20.082Z","0.0.1":"2022-03-23T23:02:20.230Z","modified":"2023-07-26T20:57:40.151Z","0.0.2":"2022-03-24T00:50:34.102Z","0.0.3":"2022-05-02T03:18:48.250Z","0.0.4":"2022-05-25T00:44:21.615Z","0.0.5":"2022-05-25T00:51:35.233Z","0.0.6":"2023-07-26T20:57:39.951Z"},"maintainers":[{"name":"dopplerhq-bot","email":"bot@doppler.com"}],"description":"SecretOps workflow for bundling encrypted secrets into your deployments to safely decrypt at runtime.","homepage":"https://github.com/DopplerHQ/gitops-secrets-nodejs#readme","keywords":["dotenv","env",".env","environment","variables","config","settings","secrets","gitops","vercel","sealed","encryption","decryption"],"repository":{"type":"git","url":"git+https://github.com/DopplerHQ/gitops-secrets-nodejs.git"},"author":{"name":"Ryan Blunden","email":"ryan.blunden@doppler.com"},"bugs":{"url":"https://github.com/DopplerHQ/gitops-secrets-nodejs/issues"},"license":"Apache-2.0","readme":"# GitOps Secrets\n\nA SecretOps workflow for bundling encrypted secrets into your deployments.\n\n![GitOps SecretsDiagram](https://user-images.githubusercontent.com/133014/158977309-ce9efc17-ba94-4cb7-a7a4-bdb101a67e6d.jpg)\n\n## Usage\n\n1. Install the `gitops-secrets` package:\n\n```sh\nnpm install gitops-secrets\n```\n\n2. Bundle encrypted secrets into your build\n\n```js\n// ./bin/encrypt-secrets.js\nconst secrets = require(\"gitops-secrets\");\n\nasync function main() {\n  const payload = await secrets.providers.doppler.fetch();\n  secrets.build(payload);\n}\n\nmain();\n```\n\n```js\n// package.json\n{\n  \"scripts: {\n    ...\n    \"encrypt-secrets\": \"node ./bin/encrypt-secrets.js\"\n  }\n}\n```\n\n3. Decrypt secrets at runtime\n\n```js\nconst { loadSecrets } = require(\"gitops-secrets\");\nconst secrets = loadSecrets();\n```\n\n## Background and Motivation\n\nExceeding AWS Lambda's 4KB environment variable limit is a common problem that also impacts platforms such as [Vercel](https://vercel.com/support/articles/how-do-i-workaround-vercel-s-4-kb-environment-variables-limit) and the [Serverless framework](https://www.serverless.com/framework/docs/providers/aws/guide/variables) which deploy on top of AWS Lambda.\n\nA SecretOps workflow that bundles encrypted secrets into a deployment eliminates such environment variable limits without insecure hacks such as storing unencrypted .env files in your builds.\n\nAs creators of the [Doppler SecretOps Platform](https://www.doppler.com/) which provide secrets sync integrations for [Vercel](https://vercel.com/integrations/doppler) and [Serverless](https://docs.doppler.com/docs/enclave-installation-serverless), we built this to provide a secure solution for our customers and the open source community.\n\nOur goal was to design a new way of accessing secrets in production that:\n\n- Allowed for a secrets payload of any size\n- Could be up and running in minutes\n- Scaled to work in any environment, including local development\n- Could support the most restrictive serverless platforms\n- Provided first-class support for ES modules\n- Prevented unencrypted secrets from ever touching the file system\n- Abstracted away the complexity of secrets fetching using community-contributed [providers](./src/providers/)\n\n## Providers\n\nA provider is designed to abstract away the complexities of fetching secrets from any secret manager or secrets store by exposing a single async `fetch` method.\n\nA secrets provider returns a plain Key-Value Object to ensure that serializing to and from JSON during encryption and decryption produces the same object structure initially fetched from the provider.\n\nThe current list of providers are:\n\n- [Doppler](./src/providers/doppler.js)\n\nWe'd love to see the list of providers grow! Please see our [contributing guide](CONTRIBUTING.md) to get started.\n\n## Encryption and Decryption\n\nThere are two file formats available for bundling encrypted secrets into your deployments:\n\n- **JSON**: Encrypted JSON file.\n- **JS Module**: Encrypted JSON embedded in JS module.\n\n### JSON\n\nTo encrypt secrets to a JSON file:\n\n```js\nconst secrets = require(\"gitops-secrets\");\n\nasync function main() {\n  const payload = await secrets.providers.doppler.fetch();\n\n  // Internally managed storage\n  secrets.encryptToFile(payload);\n\n  // Custom path\n  secrets.encryptToFile(payload, { path: \".secrets.enc.json\" });\n}\n\nmain();\n```\n\nTo decrypt secrets from a JSON file:\n\n```js\nconst { decryptFromFile } = require(\"gitops-secrets\");\n\n// Internally managed storage\nconst secrets = decryptFromFile();\n\n// Custom Path\nconst secrets = decryptFromFile(\".secrets.enc.json\");\n\n// Optionally merge secrets into environment variables\nsecrets.populateEnv();\n```\n\n### JS Module\n\nThe JS module format is ideal for restricted environments such as Vercel where application-wide access to reading static files is problematic.\n\nDepending upon the deployment platform and framework, you can potentially omit the `path` parameter to have encrypted secrets access and storage managed internally for you.\n\nBut if using Vercel with Next.js for example, the `path` configures the module to be output in your codebase with the format of the module matching that of your application.\n\nTo encrypt secrets to a JS module:\n\n```js\nconst secrets = require(\"gitops-secrets\");\n\nasync function main() {\n  const payload = await secrets.providers.doppler.fetch();\n\n  // Option 1: Internally managed storage\n  secrets.build(payload);\n\n  // Option 2: Custom path for restrictive environments\n  secrets.build(payload, { path: \"lib/secrets.js\" });\n}\n\nmain();\n```\n\nTo decrypt secrets from a JS module using internally managed storage, use the package-level `loadSecrets` method:\n\n```js\nconst { loadSecrets } = require(\"gitops-secrets\");\n\nconst secrets = loadSecrets();\n\n// Optionally merge secrets into environment variables\nsecrets.populateEnv();\n```\n\nOr use the `loadSecrets` method from the generated module (ES modules also supported):\n\n```js\nconst { loadSecrets } = require(\"../lib/secrets\");\nconst secrets = loadSecrets();\n\n// Optionally merge secrets into environment variables\nsecrets.populateEnv();\n```\n\n## Getting Started\n\nWe recommend checking out the [Working around Vercel's 4KB Environment Variables Limit for Node.js with GitOps Secrets](https://hashnode.com/preview/623404babef4c71aa6f0d65e) blog post which guides you through the entire process.\n\nOr take a look at the [Vercel GitOps Secrets Next.js sample repository](https://github.com/DopplerUniversity/vercel-gitops-secrets-nextjs) to see a complete working example that you can test and deploy to Vercel.\n\n## Support\n\nYou can get support in the [Doppler community forum](https://community.doppler.com/), find us on [Twitter](https://twitter.com/doppler), and for bugs or feature requests, [create an issue](https://github.com/DopplerHQ/gitops-secrets-nodejs/issues) on the [DopplerHQ/gitops-secrets-nodejs](https://github.com/DopplerHQ/gitops-secrets-nodejs) GitHub repository.\n\nWe'd also love to see the number of providers grow, and you can check out our [contributing guide](CONTRIBUTING.md) to get started.\n","readmeFilename":"README.md"}