Клиентские SDK

Официальные SDK оборачивают REST API типизированным клиентом, билдерами запросов и интеграцией с фреймворком — не нужно вручную собирать HTTP-запросы и JSON.

SDK Стек Пакет Репозиторий
Laravel SDK PHP 8.2+, Laravel 11/12 letopis/laravel-sdk (Packagist) max-trifonov/letopis-laravel-sdk
Node SDK Node.js 18+, TypeScript 5+ letopis-node (npm) max-trifonov/letopis-node-sdk

Нет SDK под ваш стек? Оба SDK построены поверх REST API — см. API записи и API чтения, либо сгенерируйте клиент из OpenAPI 3.1-спецификации.


Laravel SDK

composer require letopis/laravel-sdk
php artisan vendor:publish --tag=letopis-config
LETOPIS_BASE_URL=https://your-letopis-instance.example.com
LETOPIS_API_KEY=hm_live_...
use Letopis\Laravel\Facades\Letopis;

Letopis::ingest('crm.deals', 'd-1')
    ->authorId('42')
    ->state(['title' => 'Deal #1', 'amount' => 250, 'status' => 'open']);

$history = Letopis::history('crm.deals', 'd-1')->limit(50)->get();

Включает Eloquent-обсервер (трейт HasLetopisHistory или конфиг без изменения моделей) для автоматической записи изменений, а также хелпер Letopis::fake() для тестов. Покрывает ingest, батч, историю, point-in-time чтение, активности/флоу, правила, верификацию подписи вебхука, hash-chain :verify и admin-эндпоинты.

Полная документация: github.com/max-trifonov/letopis-laravel-sdk


Node SDK

npm install letopis-node
import { LetopisClient } from 'letopis-node'

const letopis = new LetopisClient({
  baseUrl: 'https://your-letopis-instance.example.com',
  apiKey: 'hm_live_...',
})

await letopis.ingest('crm.deals', 'd-1')
  .authorId('42')
  .state({ title: 'Deal #1', amount: 250, status: 'open' })

const history = await letopis.history('crm.deals', 'd-1').limit(50).get()

Типизированные билдеры запросов для ingest, батча, истории, point-in-time чтения, активностей/флоу, правил и admin-эндпоинтов. Без рантайм-зависимостей (нативный fetch).

Полная документация: github.com/max-trifonov/letopis-node-sdk