Партнерські інтеграції Launch Pad
Варіант партнерської інтеграції 2 з 4

Запуск одним кліком у деталях

Ваш продукт надсилає межу поля й відкриває Launch Pad уже з виконаним входом на цьому полі. Користувач планує в редакторі маршрутів Launch Pad, а готовий план проходів повертається у ваш продукт. Ця сторінка є повним описом: модель облікових записів, наскрізний потік, URL перенаправлення та шляхи повернення.

Огляд

Запуск одним кліком дає вашому продукту змогу вбудувати планування проходів, не створюючи планувальник. Ваш бекенд робить кілька REST-викликів, щоб створити користувача й передати межу поля, а потім відкриває Launch Pad уже з входом на потрібному полі. Редактор маршрутів, зберігання планів та експорт бере на себе Launch Pad. Готовий план проходів повертається у ваш продукт.

Запуск одним кліком є другим із чотирьох варіантів партнерської інтеграції, і саме з нього починає більшість партнерів. Розділи нижче описують, що бачать ваші кінцеві користувачі, що отримуєте ви як бізнес і як запуск усуває тертя. Розділ Технічні деталі нижче містить інженерну специфікацію.

2 з 4
Варіант інтеграції
3
Кроки до першого запуску
REST
Стиль API
OAuth 2.0
Стандарт автентифікації
Додатковий ресурс

Портал розробника & довідник по API

Повний довідник REST API, схеми автентифікації та посібники для початку роботи з публічним API Launch Pad. Звертайтеся до нього, коли почнете оцінювати глибшу API-інтеграцію, або щоразу, коли потрібні деталі на рівні ендпоінтів понад те, що описано на цій сторінці.

Перейти до порталу розробника

Що бачать ваші користувачі

Під час запуску одним кліком Launch Pad виступає як застосунок-компаньйон вашого продукту. Він відкривається в новому вікні браузера або в iframe усередині вашого інтерфейсу, усе налаштування виконується у фоні, і користувач може одразу братися до роботи.

Немає нової реєстрації

Користувачі не створюють обліковий запис у Launch Pad. Їхнє посвідчення береться з вашого продукту.

Немає повторного входу

Користувачі входять в систему автоматично при відкритті Launch Pad з вашого застосунку.

Немає завантаження файлів для початку роботи

Потрібне поле та його межа вже завантажені, коли користувач потрапляє в систему. Робота з межами полів є одним з головних бар'єрів при освоєнні зовнішніх аграрних інструментів; схема «посилання, вхід, завантаження файлу» знищує більшу частину цінності, яку мала б дати інтеграція.

Зворотній шлях (спочатку вручну)

Завершивши роботу, користувачі завантажують файл плану проходів із Launch Pad і вивантажують його у ваш продукт. Природна точка для подальшої автоматизації через webhook або індивідуальну push-інтеграцію з тим самим API-клієнтом, який ви вже створюєте для запуску.

Що отримуєте ви як партнер

Створено для бізнесу та інженерних команд, які хочуть вбудовувати точну маршрутизацію, не будуючи інфраструктуру для її підтримки.

Один адміністративний обліковий запис

Єдиний адміністратор — це ваша ідентичність усередині Launch Pad. Цей самий користувач зберігає API-ключ для викликів сервер-сервер і може входити в Launch Pad напряму, щоб перевіряти, аудіювати або підтримувати клієнта.

Консолідовані розрахунки

Все використання збирається в єдиному партнерському білінговому обліковому записі. Кінцеві користувачі ніколи не бачать залишки кредитів або рахунки всередині Launch Pad. Ви — платник; ціна залежить від обсягу і узгоджується індивідуально.

Зведений адміністративний перегляд по клієнтах

Ваш адміністратор бачить використання, плани, межі та активність кожного користувача по всіх підключених клієнтах в одному місці. Це саме та прозорість, яка потрібна для підтримки клієнтів і звірки розрахунків.

Місце запуску одним кліком серед варіантів

Verge пропонує чотири способи додати Launch Pad у ваш продукт, у порядку зростання зусиль. Запуск одним кліком другий із них, і саме з нього починає більшість партнерів. Порівняйте всі чотири варіанти.

  1. Варіант 1
    White Label

    Без коду. Ваш логотип, піддомен і білінг поверх Launch Pad як є.

  2. Ви тут
    Варіант 2
    Запуск одним кліком

    Кілька викликів API. Редактор маршрутів Launch Pad виконує планування, а план повертається вам.

  3. Варіант 3
    API-інтеграція

    Ваш інтерфейс, наш рушій. Ви самі відображаєте й передаєте план.

  4. Варіант 4
    Enterprise

    Спільний проєкт. Launch Pad нативно вбудований у вашу FMIS.

У деталях

Як запуск одним кліком усуває тертя

Навіщо потрібен запуск одним кліком

Запуск одним кліком відрізняє інтеграцію від простого гіперпосилання. З погляду користувача планування проходів є частиною вашого продукту: він натискає кнопку, виконує завдання й повертає результат.

Щоб це працювало, він усуває два найважчі моменти під час впровадження зовнішнього агроінструменту:

  1. Налаштування облікового запису (реєстрація, вхід, вибір компанії). Ваш бекенд створює користувача й виконує вхід за кулісами.
  2. Завантаження межі поля. Ваш бекенд передає межу в Launch Pad через API до відкриття вікна, тому користувач потрапляє одразу на потрібне поле.

Робота з межами впливає сильніше. Це одна з головних перешкод, коли фермери впроваджують зовнішні агроінструменти.

Модель облікового запису

Взаємодія в межах запуску одним кліком організована так:

Ваша ідентичність у Launch Pad — єдиний адміністратор

Цей користувач зберігає ваш API-ключ, має адміністративний доступ до всіх створених вами організацій клієнтів, а також може входити в Launch Pad напряму для перевірки, аудіювання або підтримки клієнта. Кінцеві користувачі цього користувача не бачать.

Кожен клієнт стає окремою організацією всередині Launch Pad

Наповнюється кінцевими користувачами, яких ви створюєте. Кінцевий користувач бачить лише свою організацію і ніколи не бачить дані клієнтів інших партнерів.

Розрахунки консолідовані у вашому білінговому обліковому записі

Кінцеві користувачі ніколи не бачать залишки кредитів або рахунки всередині Launch Pad; платник — ви.

Зведений адміністративний перегляд по клієнтах

Ваш адміністратор бачить використання по організаціях клієнтів, кількість планів і меж, а також активність кожного користувача — все в одному місці. Це саме та прозорість, яка потрібна для підтримки клієнтів і звірки розрахунків.

Що користувачі бачать у Launch Pad

Коли користувач відкриває Launch Pad через партнерський запуск, деякі опції Launch Pad не застосовуються і приховані:

  • Немає зміни пароля, керування email або обліковим записом, немає реєстрації. У користувача немає пароля Launch Pad; вхід здійснюється через ваш продукт. На екрані зміни пароля відображається повідомлення «Пароль управляється [Партнером]» — так само, як Launch Pad вже обробляє користувачів, що входять через John Deere, Trimble або CNH.
  • Немає перемикача компанії. Сесія прив'язана до єдиної організації клієнта на час візиту.
  • Вихід замінено на «Повернутись до [Партнера]», що закриває вкладку або відправляє користувача назад на вказаний вами URL, замість того щоб залишати його на сторінці входу Launch Pad.

Головне робоче меню (Плани, Планування проходів, Обладнання, Порівняти) залишається доступним, оскільки воно потрібне користувачам для роботи. Приховані лише опції посвідчень, розрахунків, адміністрування та керування обліковим записом.

Повернення плану проходів

Коли користувач завершує план проходів у Launch Pad, результат має повернутися у ваш продукт. Доступні чотири способи, і вони працюють із будь-яким варіантом інтеграції. Push-варіанти значно кращі за опитування (polling).

За замовчуванням для запуску одним кліком

Завантажити і вивантажити вручну

Користувач натискає «Завантажити» в Launch Pad, потім вивантажує файл у ваш продукт.

Найкраще коли: це найшвидший спосіб почати.

Рекомендується для продакшну

Webhook Push

Launch Pad надсилає кожен готовий план на вказаний вами URL, підписаний HMAC.

Найкраще коли: вам потрібна доставка в режимі реального часу і ви можете розмістити універсальний webhook-ендпоінт.

Розробка під конкретного партнера

Custom Push

Verge створює одноразову інтеграцію, яка доставляє готові плани безпосередньо у ваш наявний API.

Найкраще коли: у вас є вхідний API, що приймає облікові дані, але ви не хочете створювати приймач webhook.

Використовувати економно

Polling Pull

Ваш бекенд періодично запитує готові плани з API Launch Pad.

Найкраще коли: жоден push-варіант не застосовний. Частота запитів має бути консервативною.

Обов'язкова умова для ручного завантаження/вивантаження: ваш імпорт має приймати хоча б один формат, який видає Launch Pad (ISOXML, Shapefile, KML або формати партнера; підтверджується під час оцінки обсягу). Без такого перетину запуск одним кліком не забезпечить робочий наскрізний потік.

Для розробників

Технічні деталі

Нетехнічний читач може зупинитися тут. Решта сторінки — це технічна специфікація: наскрізний потік, анатомія URL переадресації та механіка повернення.

Наскрізний потік

Що відбувається крок за кроком, коли користувач партнера відкриває Launch Pad:

sequenceDiagram
    autonumber
    participant YU as UI партнера
    participant YB as Бекенд партнера
    participant LA as Launch Pad API
    participant LU as Launch Pad UI

    YU->>YB: користувач натискає «Відкрити план проходів»

    note over YB,LA: Крок 1: створити користувача LP, якщо не існує
    YB->>LA: POST /api/users (idempotent on externalUserId)
    YB->>LA: POST /api/company-accesses (idempotent on user + org)

    note over YB,LA: Крок 2 (опціонально): передати межу поля
    YB->>LA: POST /api/vBoundary/upsert

    note over YB,LA: Крок 3: запросити код запуску
    YB->>LA: POST /api/partner/launch ({ userId, companyId, returnUrl })
    LA-->>YB: { code, expiresInSec: 600 }

    YB-->>YU: 302 redirect to https://your-app.vergeag.com/launch?code=...
    YU->>LU: браузер переходить на /launch?code=...
    LU->>LA: POST /api/partner/launch/{code}/exchange
    LA-->>LU: JWT + refresh token
    note over LU: зберегти JWT у localStorage,
видалити код з URL,
перейти на returnUrl

Ключові властивості

  • Ви автентифікуєтесь сервер-сервер з довготривалим обліковим записом (API-ключ вашого адміністратора). Браузер ніколи не бачить API-ключ.
  • Браузер бачить лише короткоживучий одноразовий непрозорий код в URL (час життя 10 хвилин, знищується при обміні).
  • Ендпоінт обміну не вимагає входу; сам код є обліковим записом. UI Launch Pad викликає його, щойно користувач потрапляє на сторінку.
  • Launch Pad видає звичайну користувацьку сесію (JWT + refresh token), зберігає її в localStorage і перенаправляє користувача на вказаний вами URL.

Відповідність стандартам

Патерн — це OAuth 2.0 Authorization Code Grant, де інтерактивний екран згоди замінено серверним викликом авторизації з вашого бекенду. Сучасна термінологія OAuth називає цей back-channel варіант Pre-Authorized Code Flow (введений у специфікації OpenID for Verifiable Credential Issuance).

Короткоживучий код в URL і back-channel обмін на JWT поводяться точно так само, як у класичному OAuth; згода встановлюється партнерською угодою, а не діалогом згоди при кожному запуску.

Як виглядає URL переадресації

Що отримує браузер користувача (один рядок у вигляді заголовка Location:):

https://your-app.vergeag.com/launch?code=lc_R3w9q-Kx7VtNm2bH8sLpYj4eQ6gZc1aXfU0dT5nMoP&returnUrl=%2Fpath-planning%2Fboundary%2Fb3f47e1c-8a02-4d59-9c6e-2f7a8b1d6e09

У розшифрованому для читання вигляді:

Компонент Значення Примітки
Джерело https://your-app.vergeag.com Verge надає продакшн-джерело при підключенні. HTTPS обов'язковий; звичайний HTTP відхиляється.
Шлях /launch Публічний маршрут без автентифікації. Попередня сесія Launch Pad не потрібна.
code lc_R3w9q-... Префікс lc_ позначає це значення як код запуску (на відміну від API-ключа LP- в логах). Корисне навантаження — 32 байти криптографічно випадкових даних, закодованих у base64url. Одноразовий, TTL 10 хвилин, при видачі прив'язаний до одного користувача, однієї організації та одного returnUrl.
returnUrl /path-planning/boundary/... Відносний шлях Launch Pad, на який користувач надсилається після видачі JWT. Використовує сегменти маршруту (наприклад /path-planning/boundary/:id), щоб межа завантажувалась автоматично. Повинен починатися з /. Абсолютні URL, протоколо-відносні URL //host і \ відхиляються при видачі.

Що робить UI Launch Pad при переході

Ви це не реалізуєте; інформація наведена для довідки, щоб ви розуміли, що відбувається у ваших користувачів між кліком і відображенням поля:

  1. Читає code і returnUrl з рядка запиту.
  2. Обмінює код з Launch Pad на користувацьку сесію.
  3. Авторизує користувача в потрібній організації клієнта.
  4. Видаляє код з адресного рядка, щоб він не залишався в історії браузера.
  5. Перенаправляє користувача на вказаний вами returnUrl.

Якщо code відсутній, закінчився або вже використаний, користувач потрапляє на сторінку помилки з проханням повернутися у ваш продукт і спробувати ще раз.

Варіанти повернення детально

Завантажити і вивантажити вручну

Користувач натискає Завантажити в Launch Pad, файл потрапляє на його пристрій, і він вивантажує його у ваш продукт через ваш наявний імпорт файлів. Варіант за замовчуванням для запуску одним кліком. Жодної нової інфраструктури з вашого боку. Вимагає, щоб ваш імпорт приймав хоча б один формат, який видає Launch Pad (ISOXML, Shapefile, KML або формати партнера).

Webhook Push

Launch Pad надсилає HTTPS POST на вказаний вами URL. Кожен запит містить підпис HMAC-SHA256, обчислений за спільним секретом, який Verge видає при підключенні. Ви перевіряєте підпис, обробляєте корисне навантаження і відповідаєте 2xx протягом 10 секунд.

Ключові властивості

  • Ви не автентифікуєтесь у Launch Pad для цього потоку. Жодного OAuth-обміну, жодного JWT, жодного API-ключа Launch Pad з вашого боку. Спільний HMAC-секрет — це вся модель автентифікації.
  • Один секрет на підписку, з можливістю ротації. Видається один раз при підключенні. Ротація використовує вікно перекриття двох секретів, щоб доставки не переривались при перемиканні.
  • Доставка файлу масштабується з розміром корисного навантаження. Невеликі артефакти (менше 1 МБ) передаються вбудовано в base64 всередині тіла webhook. Більші артефакти передаються як короткоживучий підписаний URL завантаження, вбудований у тіло; ви виконуєте GET на цей URL напряму, без облікових даних Launch Pad.
  • Доставка at-least-once. Launch Pad повторює спроби з експоненційним відступом при відповідях не-2xx і таймаутах. Кожна подія містить заголовок Verge-Webhook-Id для дедуплікації.

Що ви створюєте

  • Публічний HTTPS-ендпоінт, що приймає POST. Жодного входу або сесії не потрібно, крім перевірки підпису.
  • Перевірка HMAC зі спільним секретом (близько десяти рядків коду будь-якою мовою).
  • Перевірка ідемпотентності за Verge-Webhook-Id, щоб повторна спроба не оброблялась двічі.
  • Швидка відповідь 2xx. Обробляйте важку роботу асинхронно, щоб таймаути не викликали шторм повторних спроб.

Що забезпечує Verge

  • Вихідний емітер і черга повторних спроб.
  • Обробка dead-letter для постійно невдалих доставок.
  • Адміністративний інтерфейс для перегляду журналів доставки та відтворення невдалих подій.
  • Опублікований список діапазонів вихідних IP, які можна додати до білого списку на брандмауері.

Custom Push (розробка під конкретного партнера)

Якщо у вас вже є автентифікований вхідний API, але ви не хочете створювати універсальний приймач webhook, Verge може написати одноразову push-інтеграцію, яка напряму викликає ваш API. Ви передаєте Verge безпечні облікові дані (бажано API-ключ); емітер Verge автентифікується у вас при кожному push.

Цей варіант існує через асиметрію напрямку довіри. У великих FMIS-партнерів (John Deere, Trimble, CNH) кінцеві користувачі входять у Launch Pad з обліковим записом OEM, тому Launch Pad уже має захищені токени для передачі даних назад. Launch Pad уже використовує цю модель OEM push. За інтеграції через запуск одним кліком напрямок довіри зворотний (ви автентифікуєтеся в Launch Pad), тому Launch Pad не має заздалегідь виданих облікових даних для вашої системи. Індивідуальний push закриває цей розрив окремою домовленістю.

Компроміси

  • Спеціальна розробка з боку Verge. API кожного партнера індивідуальний. Це робота під конкретного партнера, а не універсальна функція, і ціна відображає це.
  • Домовленість з довіреним партнером. Ви передаєте Verge API-ключ (або еквівалентні безпечні облікові дані) і управляєте цими обліковими даними зі свого боку.
  • Спільне супроводження. Обидві сторони підтримують роботу інтеграції при змінах API та ротації облікових даних.

Підходить, якщо у вас є вхідний API, ви не хочете створювати універсальний приймач webhook і готові фінансувати роботу під конкретного партнера.

Polling Pull (використовувати економно; push переважніший)

Якщо жоден push-варіант не застосовний, ваш бекенд може періодично викликати API Launch Pad (використовуючи той самий X-API-KEY, вже виданий для провізіонування), щоб отримувати плани проходів, опубліковані або оновлені з моменту останнього опитування.

Розглядайте це як пакетне отримання з підсумковою узгодженістю, а не як доставку в режимі реального часу. Типова частота — раз на годину або рідше. Високочастотне опитування, що нагадує busy-wait в очікуванні дії користувача, не підтримується і може бути обмежене за частотою. Безперервне опитування протягом годин в очікуванні єдиної користувацької події — це саме той шаблон, для якого цей варіант не призначений.

  • Що ви створюєте: цикл опитування з консервативною частотою, дедуплікацією за ID плану проходів та імпортом до вашого файлового сховища.
  • Компроміс: значна затримка між дією користувача та отриманням даних; додаткове навантаження на API Launch Pad.
  • Push значно переважніший. Використовуйте опитування лише коли ні Webhook push, ні Custom push неможливі.

Інші варіанти інтеграції

Ця сторінка є повним описом запуску одним кліком. Якщо вашому продукту потрібно менше або більше:

White Label (менше роботи)

Нічого не потрібно розробляти. Ваші клієнти працюють безпосередньо в Launch Pad з вашим логотипом і піддоменом, під вашим зведеним білінгом. Докладніше про White Label.

API-інтеграція (більше контролю)

Схема публічного API доступна на vergeag.com/developers. Коли запуск одним кліком працює, ви можете розширювати інтеграцію, безпосередньо викликаючи більше методів API з тим самим ключем і відображаючи плани проходів у власному інтерфейсі. Докладніше про API-інтеграцію.

Enterprise (повністю індивідуально)

Launch Pad, вбудований у вашу FMIS як рідний: ваша дизайн-система, єдиний вхід через OpenID Connect, індивідуальні шляхи повернення у ваші API. Обсяг визначається спільно в межах спільного проєкту. Докладніше про Enterprise.

Обговоримо партнерську інтеграцію

Обсяг партнерської інтеграції визначається для кожного партнера окремо. Зв'яжіться з нами, і ми разом пройдемо вибір варіанта, шляхи повернення та підключення.

Зв'язатися з Verge Ag