SDK SUITE · 0.1.0 SOURCE RELEASES
SDK и клиентская интеграция
В source tree доступны initial TypeScript @certrail/sdk 0.1.0, Python certrail 0.1.0 и Go SDK 0.1.0 для OpenAPI 0.29.0, а также три independently runnable sample roots для decision replay, webhook verification и event consumption. Публичные npm/PyPI/Go module-дистрибуции и отдельные remote repositories этим фактом не подтверждены.
- Граница выполнения
- LOCAL SOURCE PACKAGES · PUBLIC DISTRIBUTION NOT ACTIVATED
- TypeScript, Python и Go SDK 0.1.0 source packages
- ТРЕБУЕТ АКТИВАЦИИ
Контракты и исходные файлыOpenAPI, схемы и примеры для скачивания.
OpenAPI, схемы и примеры для скачивания.
Выберите client strategy
TypeScript использует CertaRailClient; Python предоставляет CertaRail и native AsyncCertaRail; Go принимает context.Context в каждой network operation. Все клиенты по умолчанию используют подтверждённый loopback Local sandbox URL, bearer provider и 10-секундный timeout на попытку.
Вызовите нужный ресурс
decisions, movements и evidence имеют typed request/response contracts и сохраняют response metadata.
Сохраните command identity
Request ID, Idempotency-Key и JSON bytes не меняются между bounded retry attempts; 409 никогда не скрывается automatic retry.
Проверяйте webhook локально
webhooks.verify() принимает raw bytes, проверяет body digest, UTC microseconds, replay window и HMAC-SHA256 без network call.
import { CertaRailClient } from '@certrail/sdk';
const client = new CertaRailClient({
accessToken: () => process.env.CERTARAIL_API_KEY!,
});
const result = await client.decisions.create(request, {
requestId: 'integration-run-42',
idempotencyKey: 'decision-command-42',
});
console.log(result.data.decision.outcome, result.requestId);Каждый каталог содержит собственный manifest, lockfile, README, fixture mode и проверки. Команды запускаются без правки source code; samples/smoke дополнительно связывает TypeScript и Go entrypoints с реальным Python receiver path в hermetic HTTP smoke с replay, webhook HMAC и удалением временного credential.
| Repository root | Проверяемый путь | Default boundary |
|---|---|---|
| samples/decision-replay-evidence | Decision → exact replay → тот же audit receipt | In-process synthetic Fetch; live sandbox opt-in |
| samples/webhook-verification | Raw bytes → HMAC → SQLite Inbox → duplicate | Ephemeral loopback; external HTTPS не заявлен |
| samples/event-consumer | AsyncAPI headers/payload → durable Inbox → offset commit | NDJSON fixture; Local Kafka opt-in |
cd samples/decision-replay-evidence
npm run setup && npm run demo
cd ../webhook-verification
uv sync --locked && uv run webhook-demo
cd ../event-consumer
go mod download && go run . --source fixture
cd ../..
uv run --project samples/webhook-verification python samples/smoke/run.py- TypeScript strict types/runtime tests/npm pack, Python PEP 561/mypy/runtime tests/wheel/sdist/twine и Go test/race/vet/example builds входят в отдельные CI gates.
- Commit/release smoke поднимает ephemeral loopback fixture, выполняет три sample path и отдельным always-postcondition проверяет credential cleanup receipt.
- TypeScript и Go не имеют runtime dependencies; Python использует один fully typed HTTP stack и фиксирует полный development graph в uv.lock.
- Не логировать bearer, checkout token, raw restricted payload или signing material.
- Не генерировать новый idempotency key после неоднозначного timeout.
- Автоматически повторяются только bounded retry statuses и transport failures; mutation требует стабильный key, Retry-After ограничен сверху.
- Успешный HMAC не доказывает settlement, execution, внешнюю доставку или legal effect; consumer отдельно deduplicate event_id.
| Gate | Текущий evidence |
|---|---|
| Versioning | 0.1.0, SemVer policy, package/OpenAPI constants и changelog |
| Security | Raw-body HMAC verifier, bounded payload, minimal dependency surface и secret-handling notes |
| Reliability | Type contract, retry/idempotency/timeout/error tests и stable request identity |
| Distribution | Локальные npm pack, Python wheel/sdist и Go module checks выполняются; npm/PyPI publish, sdk/go/v0.1.0 tag, provenance attestation и owner approval не выполнены |
| Support | README и release notes есть; production support/deprecation SLA требует owner approval |
Нашли неточность?
Участники private repository могут предложить правку через reviewed pull request. Остальные пользователи — отправить техническое сообщение без credentials и чувствительных данных.