Разработчики
Ваша ферма генерирует события. Направьте их на любой URL, который вы хотите.
Каждая ферма в конечном итоге хочет чего-то, чего нет у поставщиков: приборную панель на амбарном телевизоре, домашний ирригационный контроллер, который реагирует на оповещения, сценарий отчетности округа, мост к программному обеспечению, о котором мы никогда не слышали. Обычный ответ - опрос API на таймере и надежда, что вы ничего не пропустили между опросами.
Лучшим ответом является тот, который производственные системы используют друг с другом: когда что-то происходит, толкайте его, подписывайте и повторяйте, пока он не приземлится.
Как это работает на самом деле
FarmHubPOST подписывали JSON на любой URL HTTPS, который вы настраиваете, когда происходят события, о которых вы заботитесь.
- Шесть типов событий, отправляются по мере их возникновения. Запись урожая, повышение бдительности, решение тревоги, решение корректирующих действий, инициирование отзыва и создание отчета. Каждое событие POSTs к вашей конечной точке как JSON с именем события в заголовке.
- Каждый пакет данных подписан с помощью HMAC-SHA256 FarmHubгенерирует ключ подписи для соединения и подписывает каждый орган запроса, отправляя подпись в X-FarmHub- Заголовок подписи. Вычислите HMAC по сырому телу и сравните. Если это не соответствует, то не от нас.
- Повторные попытки доставки с экспоненциальной задержкой. Если ваша конечная точка падает или возвращает ошибку,FarmHubс обратной связью. Каждая доставка несет уникальный заголовок идентификатора доставки, чтобы ваш обработчик мог дублировать повторные запросы.
- Версии полезной нагрузки, и вы контролируете обновление. Когда форма полезной нагрузки изменяется, версия сталкивается, и существующие соединения остаются привязанными к их версии, пока вы не решите. Ваша интеграция не нарушается, потому что мы отправили поле.
Это тот же механизм доставки, что и у нас.SlackКоманды иPagerDutyИнтеграция с пунктом назначения, переданным вам.
НА ЧТО ВЫ МОЖЕТЕ ПОЛОЖИТЬСЯ
На что вы можете положиться
Гарантии, точно:
- FarmHub генерирует ключ подписи. Ключ HMAC создается во время соединения и хранится в зашифрованном виде. Не существует общей глобальной тайны, и вращение ключа соединения влияет только на это соединение.
- Заголовки созданы для реальных обработчиков. Каждый запрос несет в себе подпись, название события и уникальный идентификатор доставки, поэтому вы можете проверить, маршрутизировать и размножить, не разбирая тело в первую очередь.
- Аварийный выключатель. Отключите соединение мгновенно, и поставки прекратятся. Полезно, когда ваша конечная точка плохо себя ведет или вы вращаете инфраструктуру.
- Строки аудита, связанные хешем. Каждая попытка доставки записывается в журнал аудита, строки которого имеют хеш-цепь, поэтому история того, что было отправлено, очевидна.
Что мы не делаем
Честные границы:
- Доставка как минимум один раз, а не один раз. Ретриты означают, что ваш куратор может увидеть доставку дважды. Дубликат на идентификатор доставки.
- Веб-хуки только выходят. Эта интеграция не принимает входящие данные; она сообщает вашим системам, что произошло в вашей системе.FarmHub.
- Шесть типов событий, перечисленных выше, являются кораблями сегодня. Мы предпочли бы перечислить шесть реальных событий, чем обещать каталог, который мы не создали.
Настройка, честно
Вам нужна HTTPS-конечная точка, которая может принимать JSON POST.
- вFarmHubОткройте Интеграции, выберите Custom Webhook и введите URL конечной точки.FarmHubгенерирует ключ подписи HMAC.
- В вашем кураторе, проверьте X-FarmHubЗаголовок подписи путем пересчета HMAC-SHA256 по необработанному корпусу запроса с ключом подписи.
- Отвечайте 2xx быстро; выполняйте асинхронную обработку. Ответы non-2xx перепроверяются с обратной связью.
- Проведите пробную доставку и подтвердите, что ваша проверка подписи проходит, прежде чем полагаться на корм.
Вопросы, которые задают фермеры
Как я могу убедиться, что веб-хук пришел от FarmHub?
Вычислите HMAC-SHA256 по необработанному корпусу запроса с помощью ключа подписи соединения и сравните его с X-FarmHub- Заголовок подписи, который несет шестнадцатеричный дайджест с приставкой sha256=. Откажитесь от всего, что не соответствует.
На какие события я могу подписаться?
Запись урожая, повышение бдительности, решение тревоги, решение корректирующих действий, инициирование отзыва и создание отчета. Название события прибывает в X-FarmHub- Заголовок события.
Что произойдет, если мой конечный пункт окажется недоступен?
FarmHubПерезаписывает доставку с обратной связью. Поскольку доставка происходит как минимум один раз, ваш обработчик должен размножиться с помощью X-FarmHub- Идентификатор доставки.
Сломает ли изменение полезной нагрузки мою интеграцию?
Нет. Платежные нагрузки редактируются, и ваше соединение остается прикрепленным к его версии полезной нагрузки, пока вы не выберете новую.
Могу ли я повернуть ключ подписи?
Каждое соединение имеет своюFarmHub-сгенерированный ключ, хранящийся в зашифрованном виде. Воссоединение выдает новый ключ, и выключатель мгновенно останавливает доставку, пока вы вращаетесь.
ГОТОВ К СЛЕДУЮЩЕЙ СМЕНЕ
Создайте то, о чем мы не подумали
ТочкаFarmHub\u2019s подписал поток событий в вашей собственной конечной точке и подключил ферму к тому, что вы можете себе представить: приборная панель амбара, контроллер, бот отчета. Вам не нужно наше разрешение, просто URL.
Начать бесплатно