Proteja rotas, filas e pipelines aplicando lógica ternária antes de continuar o fluxo.
| Middleware | Descrição | Namespace |
|---|---|---|
TernaryGateMiddleware |
Avalia múltiplos atributos (user/request) com operador ternário configurável | Trilean\Http\Middleware |
RequireTernaryTrue |
Bloqueia a requisição se o atributo especificado não for TRUE |
Trilean\Http\Middleware |
- Registrar no Kernel
protected $routeMiddleware = [ 'ternary.gate' => \Trilean\Http\Middleware\TernaryGateMiddleware::class, 'ternary.requireTrue' => \Trilean\Http\Middleware\RequireTernaryTrue::class, ];
- Definir Rotas
Route::middleware('ternary.requireTrue:kyc_state')->group(function () { // rotas protegidas });
- Parâmetros padrão:
keys,source,operator,weights,requiredRatio,responseFactory. - Funcionamento:
- Coleta valores do
Requestou do usuário autenticado. - Normaliza via
ternary(). - Executa operador (
and,or,xor,consensus,weighted). - Gera
TernaryDecisionReport(incluindoexplanations). - Bloqueia com resposta 423/403 se resultado
FALSE.
- Coleta valores do
- Exemplo de uso avançado:
Onde a requisição deve conter
Route::middleware('ternary.gate:checks,request,weighted,requiredRatio=0.66') ->post('/payouts', PayoutController::class);
checks(array|stringde estados). - Custom Response: Forneça
responseFactoryque aceite(Request $request, TernaryDecisionReport $report).
- Uso Simples:
Route::middleware('ternary.requireTrue:user.compliance_state') ->post('/investments', ...);
- Fonte:
user,request,route,payload(defaultuser). - Comportamento: Se o estado for
FALSEouUNKNOWN, aborta com403ouRetry-Afterse configurado.
- Ambos middleware registram logs via
TrileanLoggerquando habilitado (config('trilean.logging')). TernaryGateMiddlewarepode disparar eventosTrilean\Events\TernaryDecisionEvaluatedpara integrações.- Integre com Prometheus/DataDog via
DecisionMetrics::record($report).
- Use
actingAscom usuários cujos atributos retornemTernaryState. - Para testar request payload, utilize
$this->postJson('/endpoint', ['checks' => ['true', 'unknown']]). - Valide resposta JSON contendo
report(se habilitado) comassertJsonFragment.
- Compliance: bloquear operações financeiras enquanto auditorias estiverem como
UNKNOWN. - Feature Early-Access: liberar rota apenas se gate retornou
TRUEem flag centralizada. - Infraestrutura: impedir deploy se verificação externa (
CI/CD) sinalizouFALSE.
Middleware ternários aplicam regras de negócio na borda, garantindo que estados inconsistentes sejam tratados antes de atingir o core da aplicação.