< Summary

Information
Class: Intentum.Runtime.Fraud.FraudPolicies
Assembly: Intentum.Runtime
File(s): /home/runner/work/Intentum/Intentum/src/Intentum.Runtime/Fraud/FraudPolicies.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 23
Coverable lines: 23
Total lines: 41
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 34
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
Standard()0%20200%
Strict()0%14140%

File(s)

/home/runner/work/Intentum/Intentum/src/Intentum.Runtime/Fraud/FraudPolicies.cs

#LineLine coverage
 1using Intentum.Runtime.Policy;
 2
 3namespace Intentum.Runtime.Fraud;
 4
 5/// <summary>
 6/// Pre-built fraud detection policies for common deployment scenarios.
 7/// </summary>
 8public static class FraudPolicies
 9{
 10    /// <summary>
 11    /// Standard fraud detection policy: block high-confidence fraud, escalate suspicious,
 12    /// require additional auth for medium risk, allow low risk.
 13    /// </summary>
 014    public static IntentPolicy Standard() => new IntentPolicyBuilder()
 015        .Block("HighRiskFraud", i =>
 016            i.Name is "AccountTakeover" or "CredentialStuffing" or "PaymentFraud" &&
 017            i.Confidence.Score >= 0.8)
 018        .Escalate("SuspiciousBehavior", i =>
 019            i.Name is "AccountTakeover" or "CredentialStuffing" or "PaymentFraud" &&
 020            i.Confidence.Score >= 0.6)
 021        .RequireAuth("MediumRisk", i =>
 022            i.Confidence.Score >= 0.4 && i.Confidence.Level is "Medium")
 023        .RateLimit("HighFrequency", i => i.Signals.Count > 10)
 024        .Allow("LegitimateRecovery", i => i.Name == "AccountRecovery" && i.Confidence.Score >= 0.7)
 025        .Allow("LowRisk", i => i.Confidence.Score < 0.4)
 026        .Observe("Default", _ => true)
 027        .Build();
 28
 29    /// <summary>
 30    /// Strict policy: lower thresholds for blocking, suitable for high-value transactions.
 31    /// </summary>
 032    public static IntentPolicy Strict() => new IntentPolicyBuilder()
 033        .Block("AnyFraudDetected", i =>
 034            i.Name is "AccountTakeover" or "CredentialStuffing" or "PaymentFraud" &&
 035            i.Confidence.Score >= 0.5)
 036        .Escalate("Suspicious", i => i.Confidence.Score >= 0.3)
 037        .RequireAuth("AllMedium", i => i.Confidence.Level is "Medium" or "Low")
 038        .Allow("ConfirmedSafe", i => i.Name == "AccountRecovery" && i.Confidence.Score >= 0.85)
 039        .Observe("Default", _ => true)
 040        .Build();
 41}

Methods/Properties

Standard()
Strict()