Portal Community

Common False Positive Scenarios

CheckFalse Positive ScenarioRecommended Fix
Expression InjectionA RuleSet condition uses env as a field name (e.g., record.env), not an environment variable accessRename the field to avoid the reserved prefix, or submit false positive with explanation
SQL InjectionA workflow node name contains "UNION" as a business term (e.g., "Union Dues Calculation")Rename the node, or submit false positive — node names are not executed
Content PolicyA README example shows a placeholder that matches an API key patternChange to clearly labeled placeholder: YOUR_API_KEY_HERE
Content PolicyA form field label in French triggers an English profanity matchSubmit false positive with language explanation
Dependency VulnerabilityA CVE affects a code path in the dependency that your package never exercisesSubmit false positive with explanation of which code path is affected and how your package avoids it

Requesting a Scan Exception

For marketplace submissions (Phase 3 — PENDING):

POST /api/marketplace/submissions/{submissionId}/scan-exception
Authorization: Bearer {publisherToken}
{
  "findingIndex":    0,                   // Index of the finding in the scan report
  "explanation":     "The expression 'record.env' refers to an employee environment field in our HR data model (env = environment, as in 'work environment score'). It is not accessing Node.js process.env or any system environment variables. The expression evaluator in BizFirstGO does not have access to system environment variables.",
  "evidence":        "The 'env' field is defined in our EntitySchema 'EmployeeRecord' as a numeric score field (type: number, range: 1-10)."
}

// Response:
{
  "exceptionId":      "exc-a1b2c3",
  "status":           "UnderReview",
  "reviewSLA":        "2 business days",
  "reviewerAssigned": true
}

For direct imports (tenant administrator path):

POST /api/installhub/imports/{importId}/scan-exception
Authorization: Bearer {adminToken}
{
  "findingIndex":  0,
  "explanation":   "...",
  "justification": "This package is from a trusted internal source. The scan finding is a false positive."
}

// Requires: installhub:admin role
// Effect: If approved, the import is requeued and proceeds past the flagged finding

Exception Review Process

1

Exception Submitted

Publisher or admin submits exception request with explanation and optional evidence. The request is logged with an immutable timestamp.

2

Assigned to Reviewer

A BizFirstGO security team member is assigned. Marketplace exceptions are reviewed within 2 business days. Import exceptions (admin-initiated) are reviewed within 4 business hours.

3

Reviewer Decision

The reviewer can: approve (proceed as if finding is absent), reject (finding stands — package remains blocked), or escalate (request additional information from the publisher).

4

Rule Update (if applicable)

If the false positive reveals a systematic scanner issue, the security team updates the detection rule to reduce future false positives for similar patterns.

Checking Exception Status

GET /api/marketplace/submissions/{submissionId}/scan-exception/{exceptionId}

// Approved:
{
  "exceptionId": "exc-a1b2c3",
  "status":      "Approved",
  "decision":    "The 'env' field reference is consistent with the EntitySchema definition provided. Not an environment variable access. Finding dismissed.",
  "reviewedBy":  "BizFirstGO Security Team",
  "reviewedAt":  "2026-05-26T10:00:00Z",
  "effect":      "Submission requeued for listing"
}

// Rejected:
{
  "exceptionId": "exc-a1b2c3",
  "status":      "Rejected",
  "decision":    "The expression 'process.env.SECRET' is unambiguous. This is not a false positive. Please remove this expression and resubmit.",
  "reviewedAt":  "2026-05-26T10:00:00Z"
}
Best Practice: Fix the Pattern When possible, the fastest path forward is to fix the pattern rather than request an exception. Exception reviews take 2 business days; fixing and resubmitting typically results in listing within 15 minutes.