Portal Community
Phase 3 — PENDING This feature is planned but not yet implemented.

Why Pursue Certification?

Certification Requirements

RequirementThresholdVerified By
Security scan resultPASS (zero findings)Automated
Test coverage≥70% line coverageHuman (coverage report review)
README completenessAll 7 required sections present and substantiveHuman
Publisher domain verificationVerifiedAutomated (DNS/file)
Artifact qualityReviewer approvalHuman
License fieldValid SPDX identifierAutomated
No deprecated dependenciesZero deprecated package dependenciesAutomated

Submitting for Certification

Include requestCertification: true in your submission and attach the test coverage report:

POST /api/marketplace/submit
Authorization: Bearer {publisherToken}
Content-Type: multipart/form-data

Fields:
  package              — the .installhub.zip file
  description          — marketplace description
  category             — package category
  tags                 — comma-separated tags
  changelog            — release notes
  requestCertification — "true"
  coverageReport       — (file) lcov.info or coverage.xml

// Response:
{
  "submissionId":     "sub-a1b2c3d4",
  "status":           "Queued",
  "trustLevelTarget": "Certified",
  "estimatedMinutes": 5,
  "humanReviewEstimatedDays": 3
}

Test Coverage Report Formats

FormatFileGenerated By
LCOVlcov.infoMost JS/TS test runners, Jest, Istanbul
Cobertura XMLcoverage.xml.NET (Coverlet), Python (pytest-cov)
JaCoCo XMLjacoco.xmlJava (Maven Surefire, Gradle)
OpenCover XMLopencover.xml.NET (OpenCover, Coverlet OpenCover format)

Certification Lifecycle

Version TypeReview RequiredTimeline
Initial Certified submissionFull review (all criteria)2–5 business days
Patch version (x.y.Z)Automated only — inherits Certified status5–15 minutes
Minor version (x.Y.0)Automated + artifact diff review1 business day
Major version (X.0.0)Full review (all criteria re-checked)2–3 business days

Certification Suspension

A Certified package can have its trust level suspended if:

During suspension, the package remains installable by tenants who already have it installed but no longer appears in new marketplace search results. The publisher is notified with specific remediation instructions.

Certification API — Check Status

GET /api/marketplace/packages/{packageId}/certification

{
  "packageId":     "mkt-pkg-a1b2c3",
  "trustLevel":    "Certified",
  "certifiedAt":   "2026-03-15T00:00:00Z",
  "certifiedBy":   "BizFirstGO Review Team",
  "nextReview":    "2026-09-15T00:00:00Z",
  "coverageReport": {
    "lineCoverage":   82.4,
    "branchCoverage": 71.2,
    "reportedAt":     "2026-03-14T00:00:00Z"
  }
}