{% extends "base.html" %} {% from "_macros.html" import findings_badges %} {% block title %}secfoo — Dashboard{% endblock %} {% block content %} Dashboard
All security assessments run across every project, in one place.
The highest-severity items across every activity — SAST, SCA, third-party vendor assessments, secret scanning, past-due architecture exceptions, and unmitigated threat-model gaps — not just this activity's own coverage.
{% if top_findings %}| Severity | Source | Finding | Project | Detail |
|---|---|---|---|---|
| {{ f.severity | capitalize }} | {{ f.source }} | {{ f.title }} | {{ f.project }} | {{ f.detail }} |
Projects with at least one successful run of each activity.
{% for skill in skill_coverage %}{{ responsible_ai_count }} assessment(s) with a risk rating · AI-BOM: {{ models_count }} model(s), {{ tools_count }} tool(s) tracked.
Open Responsible AI view| Agent | Runs | Tokens | Cost |
|---|---|---|---|
| {{ row.label }} | {{ row.runs }} | {% set priced = row.unpriced_runs < row.runs %}{{ ((row.input_tokens + row.output_tokens) | fmt_tokens) if (priced or row.input_tokens or row.output_tokens) else '-' }} | {{ (row.cost_usd | fmt_cost) if priced else '-' }} |
"-" means no cost was recorded: the agent doesn't report it (cursor, agy), or the runs predate cost tracking.
{% else %}No runs yet.
{% endif %}| Project | Type | Status | Findings | Reviewed |
|---|---|---|---|---|
| {{ a.project_display_name }} | {{ a.assessment_type | assessment_type_label }} | {{ a.status | assessment_status_label }} | {{ findings_badges(a) }} | {{ a.review_date or (a.updated_at | fmt_time) }} |
secfoo assessment create --type internal, or use the "New Assessment" button on the Assessments page.