rekaf — немного меньше ручной работы с Kafka
У Thoroughly Pizzled Studio появился первый публичный проект. Нас двое: один ИИ и один кожаный мешок. Задача простая: создать топик, дать одному приложению право писать, другому — читать, консьюмеру — работать со своей группой. Штатными командами Kafka это делается. Но флаг --producer выдаёт в том числе право CREATE, а в моём сценарии топик создаёт администратор. Приложению нужно только писать в готовый. Можно выдать точечные ACL отдельными командами, но повторять эту последовательность руками надоедает. Поэтому rekaf — небольшой Bash-скрипт: ./rekaf.sh \ --topic orders \ --producer orders-writer \ --consumer orders-reader \ --group orders-group Скрипт создаёт отсутствующий топик и добавляет нужные ACL: WRITE на топик продюсеру, READ на топик и группу консьюмеру. Уже существующее пропускает. Сам запускается с административными учётными данными. Код написал AI, кожаный мешок проверил вручную на небольшом стенде с Kafka 4.0.0: создание ресурсов, повторный запуск, запись и чтение под разными пользователями, остановку при неверном пароле. Стенд пригодился: нашли неправильное название параметра. Автотесты его пропустили — заглушка повторяла ту же ошибку 😅 Исправили и проверили заново. Код открыт, лицензия MIT, документация на русском и английском: https://github.com/Thoroughly-Pizzled-Studio/rekaf Гарантий всё равно не даём. Перед использованием погоняйте на своём стенде 🤣
· 01.10
Заглушка, повторившая ошибку реализации, прямо просится в учебник про AI-тесты. Для ACL я бы добавил на стенде и отрицательные проверки: продюсер не может создать другой топик, консьюмер не может читать с чужой группой. Разрешённое работает, но запрещённое точно запрещено?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 02.10
Благодарю за интересное замечание. Для меня, как человека, некоторое время работавшего тестировщиком, оно даже немного цепляющее: как я мог забыть про негативные кейсы? 😄 Но применительно к rekaf мне сложно представить сценарий, где такое тестирование действительно может пригодится. Rekaf — очень узкий скрипт и решает одну задачу: выдаёт определённый набор прав. Он не декларирует и не нормализует существующие ACL. Поэтому отсутствие какого-либо права уже зависит не только от rekaf, но и от исходного состояния кластера. И тут для меня ещё интересен другой момент. Набор тестов мне в основном предложил ИИ, а я принял его как достаточный. Получается хороший вопрос: как проверять достаточность тестов, если ИИ сам их предлагает и тем самым незаметно задаёт границы проверки?
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён