Пропустить к содержанию

Независимые фермерские операции / подготовленные к следующей смене.

Разработчики

Ваша ферма генерирует события. Направьте их на любой URL, который вы хотите.

Каждая ферма в конечном итоге хочет чего-то, чего нет у поставщиков: приборную панель на амбарном телевизоре, домашний ирригационный контроллер, который реагирует на оповещения, сценарий отчетности округа, мост к программному обеспечению, о котором мы никогда не слышали. Обычный ответ - опрос API на таймере и надежда, что вы ничего не пропустили между опросами.

Лучшим ответом является тот, который производственные системы используют друг с другом: когда что-то происходит, толкайте его, подписывайте и повторяйте, пока он не приземлится.

Как это работает на самом деле

FarmHubPOST подписывали JSON на любой URL HTTPS, который вы настраиваете, когда происходят события, о которых вы заботитесь.

  • Шесть типов событий, отправляются по мере их возникновения. Запись урожая, повышение бдительности, решение тревоги, решение корректирующих действий, инициирование отзыва и создание отчета. Каждое событие POSTs к вашей конечной точке как JSON с именем события в заголовке.
  • Каждый пакет данных подписан с помощью HMAC-SHA256 FarmHubгенерирует ключ подписи для соединения и подписывает каждый орган запроса, отправляя подпись в X-FarmHub- Заголовок подписи. Вычислите HMAC по сырому телу и сравните. Если это не соответствует, то не от нас.
  • Повторные попытки доставки с экспоненциальной задержкой. Если ваша конечная точка падает или возвращает ошибку,FarmHubс обратной связью. Каждая доставка несет уникальный заголовок идентификатора доставки, чтобы ваш обработчик мог дублировать повторные запросы.
  • Версии полезной нагрузки, и вы контролируете обновление. Когда форма полезной нагрузки изменяется, версия сталкивается, и существующие соединения остаются привязанными к их версии, пока вы не решите. Ваша интеграция не нарушается, потому что мы отправили поле.

Это тот же механизм доставки, что и у нас.SlackКоманды иPagerDutyИнтеграция с пунктом назначения, переданным вам.

НА ЧТО ВЫ МОЖЕТЕ ПОЛОЖИТЬСЯ

На что вы можете положиться

Гарантии, точно:

  • FarmHub генерирует ключ подписи. Ключ HMAC создается во время соединения и хранится в зашифрованном виде. Не существует общей глобальной тайны, и вращение ключа соединения влияет только на это соединение.
  • Заголовки созданы для реальных обработчиков. Каждый запрос несет в себе подпись, название события и уникальный идентификатор доставки, поэтому вы можете проверить, маршрутизировать и размножить, не разбирая тело в первую очередь.
  • Аварийный выключатель. Отключите соединение мгновенно, и поставки прекратятся. Полезно, когда ваша конечная точка плохо себя ведет или вы вращаете инфраструктуру.
  • Строки аудита, связанные хешем. Каждая попытка доставки записывается в журнал аудита, строки которого имеют хеш-цепь, поэтому история того, что было отправлено, очевидна.

Что мы не делаем

Честные границы:

  • Доставка как минимум один раз, а не один раз. Ретриты означают, что ваш куратор может увидеть доставку дважды. Дубликат на идентификатор доставки.
  • Веб-хуки только выходят. Эта интеграция не принимает входящие данные; она сообщает вашим системам, что произошло в вашей системе.FarmHub.
  • Шесть типов событий, перечисленных выше, являются кораблями сегодня. Мы предпочли бы перечислить шесть реальных событий, чем обещать каталог, который мы не создали.

Настройка, честно

Вам нужна HTTPS-конечная точка, которая может принимать JSON POST.

  1. вFarmHubОткройте Интеграции, выберите Custom Webhook и введите URL конечной точки.FarmHubгенерирует ключ подписи HMAC.
  2. В вашем кураторе, проверьте X-FarmHubЗаголовок подписи путем пересчета HMAC-SHA256 по необработанному корпусу запроса с ключом подписи.
  3. Отвечайте 2xx быстро; выполняйте асинхронную обработку. Ответы non-2xx перепроверяются с обратной связью.
  4. Проведите пробную доставку и подтвердите, что ваша проверка подписи проходит, прежде чем полагаться на корм.

Вопросы, которые задают фермеры

Как я могу убедиться, что веб-хук пришел от FarmHub?

Вычислите HMAC-SHA256 по необработанному корпусу запроса с помощью ключа подписи соединения и сравните его с X-FarmHub- Заголовок подписи, который несет шестнадцатеричный дайджест с приставкой sha256=. Откажитесь от всего, что не соответствует.

На какие события я могу подписаться?

Запись урожая, повышение бдительности, решение тревоги, решение корректирующих действий, инициирование отзыва и создание отчета. Название события прибывает в X-FarmHub- Заголовок события.

Что произойдет, если мой конечный пункт окажется недоступен?

FarmHubПерезаписывает доставку с обратной связью. Поскольку доставка происходит как минимум один раз, ваш обработчик должен размножиться с помощью X-FarmHub- Идентификатор доставки.

Сломает ли изменение полезной нагрузки мою интеграцию?

Нет. Платежные нагрузки редактируются, и ваше соединение остается прикрепленным к его версии полезной нагрузки, пока вы не выберете новую.

Могу ли я повернуть ключ подписи?

Каждое соединение имеет своюFarmHub-сгенерированный ключ, хранящийся в зашифрованном виде. Воссоединение выдает новый ключ, и выключатель мгновенно останавливает доставку, пока вы вращаетесь.

ГОТОВ К СЛЕДУЮЩЕЙ СМЕНЕ

Создайте то, о чем мы не подумали

ТочкаFarmHub\u2019s подписал поток событий в вашей собственной конечной точке и подключил ферму к тому, что вы можете себе представить: приборная панель амбара, контроллер, бот отчета. Вам не нужно наше разрешение, просто URL.

Начать бесплатно