{"_id":"@ekozynin/asyncapi-kafka-template","_rev":"1-076d2d22b4be16c0b560ccf8a15784e4","name":"@ekozynin/asyncapi-kafka-template","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.4":{"name":"@ekozynin/asyncapi-kafka-template","version":"0.0.4","description":"Generates scripts to deploy kafka topology in a kafka cluster.","scripts":{"test":"echo 'No tests available in this project.'","release":"yarn generate:assets ; yarn lint ; yarn test ; echo 'TODO semantic-release'","lint":"eslint --max-warnings 0 --fix --config .eslintrc .","generate:readme:toc":"markdown-toc -i README.md","generate:readme:contributors":"all-contributors generate","generate:assets":"yarn generate:readme:toc ; yarn generate:readme:contributors","bump:version":"npm --no-git-tag-version --allow-same-version version $VERSION"},"repository":{"type":"git","url":"git+https://github.com/ekozynin/asyncapi-kafka-template.git"},"keywords":["asyncapi","generator","template","kafka"],"author":{"name":"Eugen Kozynin","email":"ekozynin@gmail.com","url":"https://github.com/ekozynin/"},"license":"Apache-2.0","publishConfig":{"access":"public"},"bugs":{"url":"https://github.com/ekozynin/asyncapi-kafka-template/issues"},"homepage":"https://github.com/ekozynin/asyncapi-kafka-template#readme","dependencies":{"@asyncapi/generator-filters":"^2.0.0","@asyncapi/generator-hooks":"^0.1.0","@asyncapi/generator-react-sdk":"^0.2.11"},"devDependencies":{"@asyncapi/generator":"^1.8.0","@asyncapi/parser":"^1.6.0","eslint":"^7.7.0","eslint-plugin-jest":"^23.20.0","eslint-plugin-react":"^7.21.5","eslint-plugin-security":"^1.4.0","eslint-plugin-sonarjs":"^0.5.0","jest":"^26.4.2","jest-esm-transformer":"^1.0.0","all-contributors-cli":"^6.19.0","markdown-toc":"^1.2.0","semantic-release":"^17.4.4","@semantic-release/commit-analyzer":"^8.0.1","@semantic-release/github":"^7.0.4","@semantic-release/npm":"^7.0.3","@semantic-release/release-notes-generator":"^9.0.1","conventional-changelog-conventionalcommits":"^4.2.3"},"jest":{"transform":{"\\.m?jsx?$":"jest-esm-transformer"},"collectCoverageFrom":["{filters,hooks}/**/*.js","!hooks/generateExtraFormats.js"]},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"conventionalcommits"}],["@semantic-release/release-notes-generator",{"preset":"conventionalcommits"}],"@semantic-release/npm","@semantic-release/github"]},"generator":{"renderer":"react","supportedProtocols":["kafka"],"parameters":{"environment":{"description":"The environment to deploy to. Should be one of the servers in your asyncapi file."}},"nonRenderableFiles":["style.css","sample.gif"],"generator":">=1.8.0"},"gitHead":"5e97ef867c68d84bf3d5110fab11c61f88a6472d","_id":"@ekozynin/asyncapi-kafka-template@0.0.4","_nodeVersion":"16.1.0","_npmVersion":"7.23.0","dist":{"integrity":"sha512-fbhsEohvaXhU7KFAt6uvLtvFTQK5fOnTF7d5HlG2mgsTIwvsNpKDH11MU6lJiMAGVZeuTaALCkkxWT9Rks9esw==","shasum":"359a9dfe2dce6f562f7978cacfee6442b22833ef","tarball":"https://registry.npmjs.org/@ekozynin/asyncapi-kafka-template/-/asyncapi-kafka-template-0.0.4.tgz","fileCount":20,"unpackedSize":55991,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhPICZCRA9TVsSAnZWagAA3oEP/1Smm3l1j6s77wtQi0SH\nnbDsC7ZjE2gqp8/In1vij1bJdwf29gZQeIbR0OljgND4brwyVyQgmmdfTksB\noaLvGQzHhBSA2IeHjxMqTUmCvN88QCUX6ojDPjTTZkwgYW7RhovnpB6MRPn0\n4frWKygDNhvLEDM0oV71IxeWp5IBcyQPu8B5tID/3VGnh1o7knzjTusM20jA\nMS7gw8ufYPVwSK4AEIAep8wmW0d7+NkM7kx5L8IbVXxak8cXFjRUME4xqTZy\n7roTsT31Jaxjql2JY2/i24TxuojipjJ9JrWWSuv1yZ0udhRx2ix7M47Hw+fT\nj8wZa9ZXHHOrjUoPOfFBR6EahItyxdVqW9AdtA0DnFDnb2suib7FA+fUfX6V\nUe13auqX1/l8bJH+Oro7Mx121Xd/c73Y8X57UYhQSo5PfNne94CIo1JxD109\nI3W0o6Ue/MTxYwSvTQ7CNRT5F1EoN/UwzfabgrLI7yjWeRrnmvxr3z/W1bke\nlcsmXNsDn5p9GbyHZKFjzk+wtZdA6ASuTvIb4ALQutcFidGWqV4EuvzyXgJk\nboZqs5GwDOGdklI3DFrdj/SOjvz7lw0JoYDde8UaZhhUHxmYg9dSSs3RzKgg\naFkBOer8PASK2LMMSN9wwB8YqOyU4vQx8CKirg3dHNp4yNS1Nul56xAg36Le\nr8Ec\r\n=dcl2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7SIu/i1pSm3pNnfcQd10fIxv6GoN1wIZdijT/CjE0cwIhAIVWLs1F6kZW+92TFyyyfZHmThN9eLPcacwoPEuEC/Pr"}]},"_npmUser":{"name":"ekozynin","email":"ekozynin@gmail.com"},"directories":{},"maintainers":[{"name":"ekozynin","email":"ekozynin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/asyncapi-kafka-template_0.0.4_1631355033725_0.5488360474591998"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-11T10:10:33.671Z","0.0.4":"2021-09-11T10:10:33.869Z","modified":"2022-04-05T07:02:54.248Z"},"maintainers":[{"name":"ekozynin","email":"ekozynin@gmail.com"}],"description":"Generates scripts to deploy kafka topology in a kafka cluster.","homepage":"https://github.com/ekozynin/asyncapi-kafka-template#readme","keywords":["asyncapi","generator","template","kafka"],"repository":{"type":"git","url":"git+https://github.com/ekozynin/asyncapi-kafka-template.git"},"author":{"name":"Eugen Kozynin","email":"ekozynin@gmail.com","url":"https://github.com/ekozynin/"},"bugs":{"url":"https://github.com/ekozynin/asyncapi-kafka-template/issues"},"license":"Apache-2.0","readme":"![Confluent Kafka logo](./docos/confluent-kafka.png) \n\n# Confluent Kafka generator\n\nThis template will generate python scripts to create kafka topology in an existing Kafka cluster based on your AsyncApi.\n\nThe following Confluent Kafka components can be defined using AsyncApi specification:\n- topics\n- schema definitions\n- [TODO] connectors\n- [TODO] KSql\n\n\n__Table of Contents__\n\n<!-- toc -->\n\n- [Usage](#usage)\n  * [Run it](#run-it)\n- [Special Considerations](#special-considerations)\n  * [Servers](#servers)\n  * [Security](#security)\n    + [Environment variables](#environment-variables)\n- [AsyncApi Extensions](#asyncapi-extensions)\n- [Contributors](#contributors)\n\n<!-- tocstop -->\n\n## Usage\n\n```bash\n  Usage: ag [options] <asyncapi.yaml> @ekozynin/asyncapi-kafka-template\n\n  Options:\n    --force-write               force writing of the generated files to given directory (defaults to false)\n    -o, --output <outputDir>    directory where to put the generated files (defaults to current directory)\n```\n\n### Run it\n\nThe generated scripts were tested with python 3.9.7\n\nGo to the root folder of the generated code and run this command (you need python):\n```bash\n  Usage: python main.py -e <environment>\n\n  Options:\n    environment   one of the \"servers\" definitions in your asyncapi file\n```\n\nFirst time you may need to install additional python dependencies. Go to the root folder of the generated code and install required python dependencies:\n\n```bash\npip install -U -r python-requirements.txt\n```\n\n## Special Considerations\n\n### Servers\nKafka cluster usually has different components to deploy Kafka topology to: brokers, schema registry, connectors, KSql.\n\nTo name the servers follow this rules:\n- server name should start with the environment name (such as local, dev, prod)\n- followed by dash '-'\n- followed by component type. One of: 'broker', 'schemaRegistry'\n\n### Security\n\nTo connect to Confluent Cloud Cluster, the servers above should have 'security' attribute defined. Security schemas must be defined exactly as below. [Refer to full example.](./examples)\n\n```yaml\ncomponents:\n  securitySchemes:\n    confluentBroker:\n      type: userPassword\n      x-configs:\n        security.protocol: sasl_ssl\n        sasl.mechanisms: PLAIN\n        sasl.username: '{{ CLUSTER_API_KEY }}'\n        sasl.password: '{{ CLUSTER_API_SECRET }}'\n\n    confluentSchemaRegistry:\n      type: userPassword\n      x-configs:\n        basic.auth.user.info: '{{ SCHEMA_REGISTRY_API_KEY }}:{{ SCHEMA_REGISTRY_API_SECRET }}'\n```\n\n#### Environment variables\nUse environment variables to pass security details when deploying kafka topology.\n\nThe names for environment variables are:\n- CLUSTER_API_KEY\n- CLUSTER_API_SECRET\n- SCHEMA_REGISTRY_API_KEY\n- SCHEMA_REGISTRY_API_SECRET\n\n## AsyncApi Extensions\n[Additional extensions to the AsyncApi specification that this generator understands.](./EXTENSIONS.md)\n\n## Contributors\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n  <tr>\n    <td align=\"center\"><a href=\"https://github.com/ekozynin\"><img src=\"https://avatars.githubusercontent.com/u/4666186?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Eugen Kozynin</b></sub></a><br /><a href=\"https://github.com/ekozynin/asyncapi-kafka-template/commits?author=ekozynin\" title=\"Code\">💻</a> <a href=\"https://github.com/ekozynin/asyncapi-kafka-template/commits?author=ekozynin\" title=\"Documentation\">📖</a> <a href=\"#design-ekozynin\" title=\"Design\">🎨</a> <a href=\"#ideas-ekozynin\" title=\"Ideas, Planning, & Feedback\">🤔</a> <a href=\"#maintenance-ekozynin\" title=\"Maintenance\">🚧</a></td>\n    <td align=\"center\"><a href=\"https://github.com/Bazza95\"><img src=\"https://avatars.githubusercontent.com/u/14013264?v=4?s=100\" width=\"100px;\" alt=\"\"/><br /><sub><b>Jake Bayer</b></sub></a><br /><a href=\"https://github.com/ekozynin/asyncapi-kafka-template/commits?author=Bazza95\" title=\"Code\">💻</a> <a href=\"https://github.com/ekozynin/asyncapi-kafka-template/pulls?q=is%3Apr+reviewed-by%3ABazza95\" title=\"Reviewed Pull Requests\">👀</a> <a href=\"#ideas-Bazza95\" title=\"Ideas, Planning, & Feedback\">🤔</a></td>\n  </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->","readmeFilename":"README.md"}