Skip to content

Projects

Projects are the core unit of organization in Corefix. Each project maps to a web application or a code repository and holds all scan results, settings, and access controls for that target.


Table of Contents


Projects List

The projects list (GET /api/projects) returns all projects belonging to your organization, sorted newest-first. You can filter by type and paginate through results.

Query Parameters

ParameterTypeDefaultDescription
pageinteger1Page number (1-based)
limitinteger20Results per page (max 100)
typestringFilter by project type: web, code, or cicd
organization_idstringDefaults to the organization from your auth token

Columns Returned per Project

Each project entry in the list includes the following fields:

FieldDescription
project_idUnique identifier for the project (e.g. proj_abc123)
repoProject name — derived from the repo name or hostname
typeProject type: web or code
providerSource provider: github, gitlab, azure, bitbucket, or web
app_typeWeb app subtype: spa, html, legacy, or api (web only)
remote_urlThe URL or clone URL of the project
descriptionOptional description entered at creation
scan_scheduleConfigured scan frequency (e.g. daily, weekly, manual)
scan_cronRaw cron expression when schedule is custom
scan_atTime of day for scheduled scans (e.g. 09:00)
emailIdsList of email addresses with report access
correlationLinked code project for web-to-code correlation
created_byEmail of the user who created the project
created_onISO 8601 timestamp of project creation
latest_buildSummary of the most recent scan build (see below)

Latest Build Summary

The latest_build object attached to each project includes:

FieldDescription
build_uuidUnique build identifier
branchGit branch the scan ran on
statusBuild status (e.g. completed, failed, running)
total_findingsTotal number of security findings
total_attack_chainsNumber of attack chain sequences identified
severity_summaryBreakdown of findings by severity level
classification_summaryBreakdown of findings by vulnerability class
compliance_frameworksCompliance frameworks covered (e.g. OWASP, PCI-DSS)
scanner_summaryWhich scanners ran and their individual results
triggered_byWho or what triggered the build
created_onWhen the build was created

Creating a Project

Endpoint: POST /api/projects/create
Auth: Bearer JWT required

All project types share these common fields:

FieldRequiredDescription
providerYesOne of: github, gitlab, azure, bitbucket, web, cicd
urlYes*Repository clone URL or web app URL
descriptionNoHuman-readable description of the project
emailIdsNoList of email addresses to share report access with
organization_idNoDefaults to the organization from your auth token

*Not required for CI/CD projects.

A project_id, a report_password, and a project_url are returned on successful creation. Store the password — it is only shown once and is required to view scan reports.


Web Application Project

Use this when your target is a live web application accessed via URL.

Set provider to web.

FieldRequiredDescription
urlYesFull URL of the web application (e.g. https://app.example.com)
app_typeNoApplication architecture: spa, html, legacy, or api
credentials.usernameNoLogin username if the app requires authentication
credentials.passwordNoLogin password — stored encrypted
credentials.tokenNoAuth token alternative to password — stored encrypted
scan_scheduleNoHow often to scan automatically (see Scan Schedule)
scan_atNoTime of day for the scan (e.g. 09:00)
correlationNoLink to a code project for combined reporting

App Types

ValueUse when...
spaThe app is a Single Page Application (React, Vue, Angular, etc.)
htmlTraditional multi-page HTML site
legacyComplex or legacy application with non-standard structure
apiREST or GraphQL API endpoint

The project name is automatically derived from the hostname and port of the URL (e.g. app.example.com:443).


Code Repository Project

Use this to connect a Git repository for source-code security scanning.

Set provider to one of: github, gitlab, azure, bitbucket.

FieldRequiredDescription
urlYesClone URL of the repository
descriptionNoDescription of the project
emailIdsNoEmails to share report access with
scan_scheduleNoAutomated scan frequency
scan_atNoTime of day for the scan
correlationNoLink to another project for cross-project correlation

The project name is extracted automatically from the repository URL (the last path segment before .git).


CI/CD Pipeline Project

Use this to integrate Corefix into an existing CI/CD pipeline (GitHub Actions, GitLab CI, Jenkins, Azure DevOps, or a custom pipeline).

Set provider to cicd.

FieldRequiredDescription
descriptionNoLabel for the generated API key (defaults to "Default CI/CD token")

On success, the response includes a one-time api_key. Copy it immediately — it is not stored in plain text. Use this key in your pipeline to authenticate scan submissions.


GitHub App (Auto-connect)

When the Corefix GitHub App is installed on a GitHub organization, all selected repositories are automatically connected as code projects. No manual creation is required.

  • Each new repository gets its own project_id and report password.
  • If a repository was previously connected and then reconnected (e.g. the app was reinstalled), its existing project record is updated rather than duplicated.
  • A confirmation email is sent to the organization's primary email with the report URL and password for each newly created project.

To get the GitHub App installation URL: GET /api/auth/github-app


Project Settings

Endpoint: PATCH /api/projects/settings
Auth: Bearer JWT required

Update one or more settings for an existing project. Only the fields you include are changed.

FieldTypeDescription
project_idstringRequired. The project to update
scan_schedulestringScan frequency (see options below)
scan_cronstringCron expression — required when scan_schedule is custom
scan_atstringTime of day for scheduled runs (e.g. 09:00)
emailIdsarray of stringsFull replacement list of report-access emails (max 20)
correlationobjectLink to a code project (see Correlation)

Scan Schedule

Controls how often Corefix automatically runs a scan on the project.

ValueDescription
manualNo automatic scans — run on demand only
hourlyScan every hour
dailyScan once per day
weeklyScan once per week
biweeklyScan every two weeks
monthlyScan once per month
quarterlyScan once every three months
customUse a specific cron expression (requires scan_cron)

Custom cron example: "scan_schedule": "custom", "scan_cron": "0 9 * * 1" — runs every Monday at 9:00 AM.

Use scan_at (e.g. "09:00") alongside standard schedules to control the time of day a scan fires.


Email Sharing

The emailIds field controls who receives report access for the project.

  • Provide the complete desired list — this replaces the existing list entirely.
  • Up to 20 email recipients are allowed.
  • When new addresses are added, the report password is automatically rotated and a new password email is sent to all recipients.
  • The organization's primary email is the To: recipient; newly added addresses are included as Cc:.

Note: Rotating the password invalidates the old one immediately. Anyone using the old password will need the new one.


Correlation

Correlation links a web project to a code project so that findings from both scans can be combined and cross-referenced in reports.

json
{
  "correlation": {
    "code_project_id": "proj_abc123",
    "branch_pattern":  "main"
  }
}
FieldDescription
code_project_idThe project_id of the code repository project to link
branch_patternGit branch to correlate against (e.g. main, release/*)

The linked code project must belong to the same organization. Set correlation to null to remove an existing link.


Regenerating the Report Password

Endpoint: POST /api/projects/regenerate-password
Auth: Bearer JWT required

FieldRequiredDescription
project_idYesThe project to update

Generates a new report password and immediately invalidates the previous one. The response includes the new password and the project report URL. Share these with anyone who needs access.

json
{
  "success": true,
  "project_id": "proj_abc123",
  "repo": "my-app",
  "project_url": "https://...",
  "password": "newGeneratedPassword"
}

Use this whenever you suspect the report password has been compromised or after removing a team member from emailIds.


Deleting a Project

Endpoint: DELETE /api/projects
Auth: Bearer JWT required

FieldRequiredDescription
project_idYesThe project to delete

Deleting a project permanently removes:

  • The project record
  • All builds associated with the project
  • All findings and raw findings
  • All branch records

This action is irreversible. The response confirms what was deleted:

json
{
  "success": true,
  "message": "Project 'my-app' and all related data deleted.",
  "deleted": {
    "project_id": "proj_abc123",
    "repo": "my-app",
    "type": "code"
  }
}

Plan Limits

Each organization has limits on the number of projects that can be created, determined by its subscription plan.

Project TypeDefault LimitUpgrade
Code / CI/CD repositories5Contact sales
Web applications5Contact sales

Attempting to create a project beyond the limit returns a 403 error with a message prompting you to upgrade your plan.

Built with VitePress