{"_id":"aws-opensearch-connector","_rev":"3-5dd2819366af0a039b9261929b78d0ed","name":"aws-opensearch-connector","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"aws-opensearch-connector","version":"1.0.0","description":"A tiny Amazon Signature Version 4 connection class for @opensearch-project/opensearch, for compatibility with AWS `opensearch` and IAM authentication.","repository":{"type":"git","url":"git+https://github.com/yosefbs/aws-opensearch-connector.git"},"bugs":{"url":"https://github.com/yosefbs/aws-opensearch-connector/issues"},"keywords":["opensearch","aws-es","aws","aws4","amazon","es","http","connector","extension","sign","http-aws-es","HttpConnection"],"engines":{"node":">= 10"},"main":"src/index.js","scripts":{"publish":"git push origin --tags &&  git push origin","release:pre":"npm version prerelease && npm publish --tag pre","release:patch":"npm version patch && npm publish","release:minor":"npm version minor && npm publish","release:major":"npm version major && npm publish","lint":"standard src/*.js tests/*.js --fix","pretest":"npm run lint","test":"AWS_PROFILE=null nyc --all mocha tests/Amazon*.test.js","test:integration":"mocha tests/integration.test.js"},"author":{"name":"yosef bs"},"license":"MIT","standard":{"env":["mocha"]},"nyc":{"include":["src/**/Amazon*.js"]},"dependencies":{"aws4":"^1.11.0"},"peerDependencies":{"@opensearch-project/opensearch":">=1.0.0","aws-sdk":"^2.683.0"},"devDependencies":{"@opensearch-project/opensearch":"^1.0.0","aws-sdk":"^2.683.0","minimist":"^1.2.5","mocha":"^8.2.1","nyc":"^15.1.0","standard":"*"},"gitHead":"bc63863a86d5aba731c557d8758b61d8c1cfc260","homepage":"https://github.com/yosefbs/aws-opensearch-connector#readme","_id":"aws-opensearch-connector@1.0.0","_nodeVersion":"12.20.1","_npmVersion":"6.14.10","_npmUser":{"name":"yosefbs","email":"yosef.b.s@outlook.com"},"dist":{"integrity":"sha512-6e6qqt14qloNdWyiEKsOXdEolvPGemFi5yRmwP79erhcVSP4vf5dW1DER7zqblJAYM9n3B2Ij8hH5sv3SNHv+g==","shasum":"e490c20b066bbb6fbbdd5bb072e286cc66fd3d49","tarball":"https://registry.npmjs.org/aws-opensearch-connector/-/aws-opensearch-connector-1.0.0.tgz","fileCount":7,"unpackedSize":7108,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhljq2CRA9TVsSAnZWagAAwGgP/j3pyL7F3qwLzxCgaqZm\nOr+ItlViRUswflcp62qkfoZRNUFuaGJpBgwDahponyq8z+uJcGyw/VpggmJ2\nVa3SxV2DpEt7VsxI4Lglr9doNgzuR2KRJE2Oz9iR5I1w0L23Sl6X6X2N0/v9\nDKgh/cX+7XClK4YlVvcFrnxTjWQJL7GPdkr6XNBJbZw+lQJSIqddmOjwFxtt\naYni9LbqCAPPpW09mFEuzUi1Oe7/EAP+muJ0iy2zzPvxRnMuD7DqvKfJBZhb\nHI0gaolEdc44/dRluGWlhizDGM0T4KLELbbiYGhhr106eZo5+yrzE3zH+sxz\nD5ftiOOAhIXL+vyQ8DZROHsYxc0v4hGHS0L1RwrW6S+F01/tnfE71GoWfj9v\nZUuy6UXau7W/kksmwiKKawmVp5xbanlmaPxVrcuplkDgEjTUlg1Uwz7cKQOQ\n+WyUfdfFvdHvMrXQqNfFhFQHOffElpFVANpUmJ9Fh9SyurA9UB5qshsezO1O\njDV2k+QJZLyrTh0q2GldixoUUgyd/GCH+CcycRyGOmSZFrfZnpvAOzbA62SS\no65eTkC0u37BvSjBve/slWGrw45+MNbomdhxHT78wMswyvhLpa+ZYSl6QEm0\ndA3EEEK/SkuN3LyPUkehDm4HFGd5kfGJuWWNkl2AE2BpJNp5JQ7M8l45zH+I\nR8mx\r\n=GE3w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQWEhGFPLFK4M5OvLKObam4Vyj2VqGO4eu50KFbBMW4AIhAKAy+/HTm5eUKRs2PbrsJRfDavxV19jpK4vaCJRbSgUx"}]},"directories":{},"maintainers":[{"name":"yosefbs","email":"yosef.b.s@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-opensearch-connector_1.0.0_1637235381429_0.5777796876563792"},"_hasShrinkwrap":false},"1.1.0":{"name":"aws-opensearch-connector","version":"1.1.0","description":"A tiny Amazon Signature Version 4 connection class for @opensearch-project/opensearch, for compatibility with AWS `opensearch` and IAM authentication.","repository":{"type":"git","url":"git+https://github.com/yosefbs/aws-opensearch-connector.git"},"bugs":{"url":"https://github.com/yosefbs/aws-opensearch-connector/issues"},"keywords":["opensearch","aws-es","aws","aws4","amazon","es","http","connector","extension","sign","http-aws-es","HttpConnection"],"engines":{"node":">= 10"},"main":"src/index.js","types":"index.d.ts","scripts":{"publish":"git push origin --tags && npm run changelog && git push origin","release:pre":"npm version prerelease && npm publish --tag pre","release:patch":"npm version patch && npm publish","release:minor":"npm version minor && npm publish","release:major":"npm version major && npm publish","changelog":"github_changelog_generator -u compwright -p aws-opensearch-connector && git add CHANGELOG.md && git commit -am \"Updating changelog\"","lint":"eslint src/*.js tests/*.js --fix","pretest":"npm run lint","test":"AWS_PROFILE=null nyc --all mocha tests/Amazon*.test.js","test:integration":"mocha tests/integration.test.js"},"author":{"name":"Jonathon Hill, Yosef B.S.","email":"jonathon@compwright.com","url":"https://compwright.com"},"license":"MIT","standard":{"env":["mocha"]},"nyc":{"include":["src/**/Amazon*.js"]},"dependencies":{"aws4":"^1.11.0"},"peerDependencies":{"@opensearch-project/opensearch":">=1.0.0"},"devDependencies":{"@opensearch-project/opensearch":"^1.0.0","aws-sdk":"^2.1174.0","minimist":"^1.2.5","eslint":"^8.19.0","mocha":"*","nyc":"*"},"gitHead":"28369f8b4625b387cae3a9f8ae71ed178992d34b","homepage":"https://github.com/yosefbs/aws-opensearch-connector#readme","_id":"aws-opensearch-connector@1.1.0","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-e3rHl5JVdukB40qfuu5sq4WB0E1jO2WkiA1lYOfvc1ol1tJayw8eFqCilO//O+8OH7ypbiDO0ayKI3aEWjaZWQ==","shasum":"78a3b4a5e6e4a101a97ef2e9177ace036be2f0a8","tarball":"https://registry.npmjs.org/aws-opensearch-connector/-/aws-opensearch-connector-1.1.0.tgz","fileCount":10,"unpackedSize":10016,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDBw+Z62hORRLM6Zid+KxRE19sBoYK8OQRc3MxQWdZCpAiEAgf7etCsJdkIqZLcRbOHThQsGrqOAEpfxUOyxVOqDPfQ="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi0x2dACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqQ1A/+Oy70VxL6wmRfgGVbs4j+2bMjmg3e+FUgNHE7R+mD+9d6NR3V\r\nfZYQ6XSSsYL6wvPSSzgniT9f820B2/xwfiKwWveM+98QE4V+34lOMtras8gG\r\neiO2OYUgmcvFfwEY7aYP0abA/SQ6Q8GlKfPyqc9gESP+a38J0PMyvIS5rBmk\r\nzA/u0CbFCfKCtPdwe9R7T1Pdhhb+PgbzPraDe9ilLf0xjZh8uOpLoYphUEpi\r\nLy6w1nXEv8UI6DxTiWC5GTv6N2xM8YIGh61VEmzTxxuk7QZrCJLVjrM3Uv9j\r\n/ha/AxJZEkaAJSXGoIJOEf3xBb9VTvYXaux64oXryRA8zV5VSNP4KRyZ8Cq2\r\nnd1XkqEg551I6YfMxX6C+BgIGipOUJOc9a1tg1GsPYYC6QhKUlO2cPwjlanL\r\ncp0lAvea9RJQLtbhDhx11zVrFi9CftHVcEw4KOZTVI4IUkSUtRNuEiIE1+Ip\r\nr4eJZWtOQXPFp7dacV7WOt5D4zNoom6xi8A6IkMCyhz8/ui8t44IJhQh8N0Y\r\niqJV1KKv7lqDuPiwQv537f1BwWoKDXOlVolOhGqBVnMeLyt0JF7o0fuhyQmX\r\n9dTNysCyPo0/Cuffj0ncH8tjCmC2vT/SPtKlOcLg3f2OY/7iKWyy2n7+tz0u\r\nrqf98svMPZzP7GiI9drC3ai6zpWGN5ZUbzc=\r\n=CKeg\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"yosefbs","email":"yosef.b.s@outlook.com"},"directories":{},"maintainers":[{"name":"yosefbs","email":"yosef.b.s@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-opensearch-connector_1.1.0_1658002845307_0.02250868136921813"},"_hasShrinkwrap":false},"1.2.0":{"name":"aws-opensearch-connector","version":"1.2.0","description":"A tiny Amazon Signature Version 4 connection class for @opensearch-project/opensearch, for compatibility with AWS `opensearch` and IAM authentication.","repository":{"type":"git","url":"git+https://github.com/yosefbs/aws-opensearch-connector.git"},"bugs":{"url":"https://github.com/yosefbs/aws-opensearch-connector/issues"},"keywords":["opensearch","aws-es","aws","aws4","amazon","es","http","connector","extension","sign","http-aws-es","HttpConnection"],"engines":{"node":">= 10"},"main":"src/index.js","types":"index.d.ts","scripts":{"publish":"git push origin --tags && git push origin","release:pre":"npm version prerelease && npm publish --tag pre","release:patch":"npm version patch && npm publish","release:minor":"npm version minor && npm publish","release:major":"npm version major && npm publish","lint":"eslint src/*.js tests/*.js --fix","pretest":"npm run lint","test":"AWS_PROFILE=null nyc --all mocha tests/Amazon*.test.js","test:integration":"mocha tests/integration.test.js"},"author":{"name":"Jonathon Hill, Yosef B.S.","email":"jonathon@compwright.com","url":"https://compwright.com"},"license":"MIT","standard":{"env":["mocha"]},"nyc":{"include":["src/**/Amazon*.js"]},"dependencies":{"aws4":"^1.11.0"},"peerDependencies":{"@opensearch-project/opensearch":">=1.0.0"},"devDependencies":{"@opensearch-project/opensearch":"^1.0.0","@smithy/types":"^2.10.0","aws-sdk":"^2.1174.0","eslint":"^8.19.0","minimist":"^1.2.5","mocha":"*","nyc":"*"},"gitHead":"d697bfa0e72519b38045383a408c743f3222f63c","homepage":"https://github.com/yosefbs/aws-opensearch-connector#readme","_id":"aws-opensearch-connector@1.2.0","_nodeVersion":"18.17.1","_npmVersion":"9.6.7","dist":{"integrity":"sha512-Jex72kdNtkpXdBFkA8n/VkWqI+S0AjqY6xGN8I8qA7W2CAjppBEh6PVRER1zLa/Q+/dqxou15uZ5Qz6NFfmqFQ==","shasum":"d674d8b1892ccca9e57d1080219695861a1ea126","tarball":"https://registry.npmjs.org/aws-opensearch-connector/-/aws-opensearch-connector-1.2.0.tgz","fileCount":10,"unpackedSize":10229,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICbO0+MQVnEUZyLAewJ2WA2a1TqiL5iuBwChwVV1BQP7AiBLglwS6g11KPlRgwuwZtyKfaLTmMtoFCOpefj89GCoUA=="}]},"_npmUser":{"name":"yosefbs","email":"yosef.b.s@outlook.com"},"directories":{},"maintainers":[{"name":"yosefbs","email":"yosef.b.s@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/aws-opensearch-connector_1.2.0_1710834076977_0.4638108555018967"},"_hasShrinkwrap":false}},"time":{"created":"2021-11-18T11:36:21.429Z","1.0.0":"2021-11-18T11:36:22.019Z","modified":"2024-03-19T07:41:17.565Z","1.1.0":"2022-07-16T20:20:45.483Z","1.2.0":"2024-03-19T07:41:17.134Z"},"maintainers":[{"name":"yosefbs","email":"yosef.b.s@outlook.com"}],"description":"A tiny Amazon Signature Version 4 connection class for @opensearch-project/opensearch, for compatibility with AWS `opensearch` and IAM authentication.","homepage":"https://github.com/yosefbs/aws-opensearch-connector#readme","keywords":["opensearch","aws-es","aws","aws4","amazon","es","http","connector","extension","sign","http-aws-es","HttpConnection"],"repository":{"type":"git","url":"git+https://github.com/yosefbs/aws-opensearch-connector.git"},"author":{"name":"Jonathon Hill, Yosef B.S.","email":"jonathon@compwright.com","url":"https://compwright.com"},"bugs":{"url":"https://github.com/yosefbs/aws-opensearch-connector/issues"},"license":"MIT","readme":"# aws-opensearch-connector\n\n[![Download Status](https://img.shields.io/npm/dm/aws-opensearch-connector.svg?style=flat-square)](https://www.npmjs.com/package/aws-opensearch-connector)\n\nA tiny [Amazon Signature Version 4](https://www.npmjs.com/package/aws4) connection class for the official [Opensearch Node.js client](https://www.npmjs.com/package/@opensearch-project/opensearch), for compatibility with AWS OpenSearch and IAM authentication.\n\nSupports AWS SDK global or specific configuration instances (AWS.Config), including asyncronous credentials from IAM roles and credential refreshing.\n\n## Installation\n\n```bash\nnpm install --save aws-opensearch-connector\n```\n\n## Example usage\n\n### Using global configuration\n\n```javascript\nconst { Client } = require('@opensearch-project/opensearch');\nconst AWS = require('aws-sdk');\nconst createAwsOpensearchConnector = require('aws-opensearch-connector');\n\n// (Optional) load profile credentials from file\nAWS.config.update({\n  profile: 'my-profile',\n});\n\nconst client = new Client({\n  ...createAwsOpensearchConnector(AWS.config),\n  node: 'https://my-opensearch-cluster.us-east-1.es.amazonaws.com',\n});\n```\n\n### Using specific configuration\n\n```javascript\nconst { Client } = require('@opensearch-project/opensearch');\nconst AWS = require('aws-sdk');\nconst createAwsOpensearchConnector = require('aws-opensearch-connector');\n\nconst awsConfig = new AWS.Config({\n  // Your credentials and settings here, see\n  // https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html#constructor-property\n});\n\nconst client = new Client({\n  ...createAwsOpensearchConnector(awsConfig),\n  node: 'https://my-opensearch-cluster.us-east-1.es.amazonaws.com',\n});\n```\n\n### Using aws-sdk v3\n\n```javascript\nconst { STSClient, AssumeRoleCommand } = require('@aws-sdk/client-sts');\nconst { Client } = require('@opensearch-project/opensearch');\nconst createAwsOpensearchConnector = require('./src/index.js');\n\nasync function ping() {\n  const creds = await assumeRole(\n    'arn:aws:iam::0123456789012:role/Administrator',\n    'us-east-1'\n  );\n  const client = new Client({\n    ...createAwsOpensearchConnector({\n      region: 'us-east-1',\n      credentials: creds,\n    }),\n    node: 'https://my-opensearch-cluster.us-east-1.es.amazonaws.com',\n  });\n  const response = await client.ping();\n  console.log(`Got Response`, response);\n}\n\nasync function assumeRole(roleArn, region) {\n  const client = new STSClient({ region });\n  const response = await client.send(\n    new AssumeRoleCommand({\n      RoleArn: roleArn,\n      RoleSessionName: 'aws-es-connection',\n    })\n  );\n  return {\n    accessKeyId: response.Credentials.AccessKeyId,\n    secretAccessKey: response.Credentials.SecretAccessKey,\n    sessionToken: response.Credentials.SessionToken,\n  };\n}\n```\n\n### Using aws-sdk v3 and Lambda (Node 18+)\n\n```javascript\nconst { fromEnv } = require('@aws-sdk/credential-providers');\nconst { Client } = require('@opensearch-project/opensearch');\nconst createAwsOpensearchConnector = require('./src/index.js');\n\nasync function ping() {\n  const client = new Client({\n    ...createAwsOpensearchConnector({\n      region: 'us-east-1',\n      credentials: await fromEnv()(),\n    }),\n    node: 'https://my-opensearch-cluster.us-east-1.es.amazonaws.com',\n  });\n  const response = await client.ping();\n  console.log(`Got Response`, response);\n}\n```\n\n## Test\n\n```bash\nnpm test\n\n# Run integration tests against a real endpoint\nAWS_SDK_LOAD_CONFIG=true AWS_PROFILE=your-profile npm run test:integration -- \\\n  --endpoint https://my-opensearch-cluster.us-east-1.es.amazonaws.com\n\n\n # Run integration tests against a real endpoint using assume role\n  AWS_SDK_LOAD_CONFIG=true AWS_PROFILE=your-profile npm run test:integration -- \\\n  --endpoint https://my-opensearch-cluster.us-east-1.es.amazonaws.com \\\n  --role arn:aws:iam::123456789:role/OpenSearchAccessRole\n```\n","readmeFilename":"README.md"}