Pular para o conteúdo

SDKs de servidor: quickstart

Tudo abaixo usa a sua write key secreta (configurações do projeto → API keys). Mantenha-a numa variável de ambiente; ela nunca deve chegar a um browser.

Terminal window
composer require kilden/kilden-php
$kilden = new Kilden\Client(getenv('KILDEN_SECRET_KEY'));
$kilden->track('user_42', 'order_completed', [
'revenue' => 99.9,
'currency' => 'CLP',
]);

Os eventos entram numa fila em memória e são enviados em lotes. Chame close() quando o seu processo desligar (em PHP, Laravel, FPM e os shutdown hooks cuidam disso; em Go use defer client.Close()); o que continuar na fila após um prazo de 10 segundos é descartado em vez de travar o processo.

identify faz upsert dos traits da pessoa. O distinct_id é explícito em cada chamada — os SDKs de servidor não guardam estado de identidade.

$kilden->identify('user_42', ['plan' => 'pro', 'email' => '[email protected]']);

A verificação de identidade precisa que o seu backend assine um JWT de vida curta para o usuário logado. O IdentitySigner faz isso sem biblioteca de JWT — e o seu endpoint são três linhas. Assine somente um id que o seu backend autenticou: assinar um user id vindo do input da request permite que qualquer um se passe por qualquer outro, ainda por cima com selo de “verificado”.

$signer = new Kilden\IdentitySigner(getenv('KILDEN_IDENTITY_SECRET'), ['kid' => 'k1']);
$token = $signer->sign($user->id, [
'traits' => ['plan' => $user->plan],
]);

Usa Laravel? O kilden/laravel traz uma rota POST /kilden/identity publicável atrás do seu middleware de auth — sem escrever código.

O plugin de WordPress expõe o mesmo em /wp-json/kilden/v1/identity, cache-safe por construção.

isEnabled(flag_key, distinct_id, { person_properties?, default? })
getFeatureFlag(flag_key, distinct_id, { person_properties?, default? })

Avaliados pela Kilden server-side, com cache in-process de 30 segundos por distinct_id, uma tentativa com timeout duro e depois o seu default. A semântica completa está no guia de feature flags.