Clientes oficiais para TypeScript e Python
Os SDKs encapsulam autenticação, timeouts, uploads, serialização e o envelope de erros da Management API. Ambos usam os mesmos nomes de recursos e acompanham o contrato OpenAPI publicado.
TypeScript
Requer Node.js 20.9 ou superior. O cliente usa o fetch nativo e publica declarações TypeScript estritas.
npm install https://feature-rollout.dev/downloads/featurerollout-sdk-0.1.0.tgzCrie uma única instância por processo e injete FEATURE_ROLLOUT_TOKEN pelo secret manager.
Liste projetos e consulte uma feature
import { FeatureRollout, FeatureRolloutError } from "@featurerollout/sdk";
const fr = new FeatureRollout({ token: process.env.FEATURE_ROLLOUT_TOKEN! });
try {
const { projects } = await fr.projects.list("lb-pay");
const { feature } = await fr.features.get("LBP-PIX-001");
console.log({ projects: projects.length, score: feature.score });
} catch (error) {
if (error instanceof FeatureRolloutError) {
console.error(error.code, error.requestId, error.retryable);
}
throw error;
}Python
Requer Python 3.10 ou superior e não adiciona dependências em runtime. Uploads multipart e erros estruturados fazem parte do cliente.
python -m pip install https://feature-rollout.dev/downloads/feature_rollout-0.1.0-py3-none-any.whlCrie uma evidência explicada
import os
from feature_rollout import FeatureRollout, FeatureRolloutError
fr = FeatureRollout(os.environ["FEATURE_ROLLOUT_TOKEN"])
try:
result = fr.evidences.create("LBP-PIX-001", {
"kind": "JSON",
"title": "Contrato da autorização",
"description": "Comprova status e ID persistido.",
"doubleChecked": True,
"contentType": "application/json",
"content": '{"status":"ATIVA"}',
})
print(result["evidence"]["id"])
except FeatureRolloutError as error:
print(error.code, error.request_id, error.retryable)
raiseFixe versões e valide integridade
Os artefatos oficiais são servidos pelo mesmo domínio da plataforma, sem autenticação de registry. Fixe a URL completa em lockfiles e compare o download com SHA256SUMS antes de promovê-lo.
curl --fail --remote-name https://feature-rollout.dev/downloads/SHA256SUMS
curl --fail --remote-name https://feature-rollout.dev/downloads/featurerollout-sdk-0.1.0.tgz
shasum -a 256 --check SHA256SUMS --ignore-missingTratamento de erros
statusStatus HTTP recebidocodeCódigo estável para controle de fluxodetailsValidação ou contexto estruturadorequestIdCorrelação entre cliente, logs e suporteretryableIndica se uma repetição controlada pode fazer sentidodocUrlPágina específica do erroRepita apenas operações idempotentes ou protegidas por chave de idempotência. Nunca repita DELETE automaticamente.