FEATURE ROLLOUT · DOCUMENTAÇÃO

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.

shell
npm install https://feature-rollout.dev/downloads/featurerollout-sdk-0.1.0.tgz
Exemplo

Crie uma única instância por processo e injete FEATURE_ROLLOUT_TOKEN pelo secret manager.

Liste projetos e consulte uma feature

typescript
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.

shell
python -m pip install https://feature-rollout.dev/downloads/feature_rollout-0.1.0-py3-none-any.whl

Crie uma evidência explicada

python
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)
    raise

Fixe 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.

shell
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-missing

Tratamento de erros

statusStatus HTTP recebido
codeCódigo estável para controle de fluxo
detailsValidação ou contexto estruturado
requestIdCorrelação entre cliente, logs e suporte
retryableIndica se uma repetição controlada pode fazer sentido
docUrlPágina específica do erro
Retries

Repita apenas operações idempotentes ou protegidas por chave de idempotência. Nunca repita DELETE automaticamente.