Security · Project Management

Security Projects.
Fully Under Control.

From project intake to final report delivery — one structured platform for security teams that need visibility, automation, and enterprise-grade access control.

Dashboard
Projects
Reports
12
Active Projects
38
Assessments
94
Reports
Complete
Alpha Corp — Web App PT
2 days ago
Ongoing
Beta Ltd — Network VA
In progress
Revisit
Gamma Inc — Source Review
Awaiting sign-off
Finding
Delta Co — Wireless Audit
Report drafted
6
Assessment Types
13
Auto Report Variables
3
Role Tiers
7
Slack Notification Types

Platform Features

Everything Your Security Team Needs

Built for security firms — not a generic PM tool bolted onto security workflows.

🔐

Microsoft Entra ID SSO

OAuth 2.0/OIDC authentication with zero friction for Microsoft 365 environments. No extra credential management needed.

📊

Role-Based Dashboards

Admin, Sales, and Delivery each see a tailored view. Revenue tracking, workload visibility, and status badges — all in one place.

📁

Project & Assessment Management

Six assessment types with a 4-stage status workflow. S3 delivery folders auto-created; projects auto-complete when all assessments close.

📝

Automated Report Generation

Quill-based templates with 13 auto-variables and one-click PDF + DOCX export stored securely in S3.

☁️

AWS Cloud Infrastructure

DynamoDB, S3, SSM Parameter Store. Secrets loaded at runtime — never hardcoded. Deployed on ECS Fargate with Docker.

💬

Slack Notifications

Real-time event alerts on assignments, status changes, and completions — plus three scheduled reminders (weekly, monthly, quarterly) that surface unassigned, stale, and overdue work automatically.

🔌

REST API & MCP Server

Automate and integrate. A CSRF-protected REST API powers every screen, and a remote Model Context Protocol server lets AI clients like Claude Desktop and Claude Code act on your behalf — authenticated with per-user tokens and bound by the same role-based access (scoped read or read-write).

Explore API & MCP →
🤖

AI-Assisted Finding Write-up Generation

Paste raw assessment notes — AI identifies and consolidates findings, writes professional security write-ups with full CVSS 3.1 scoring, auto-sorted by severity. Yellow [TO DO:] markers highlight engagement-specific gaps for analyst review before delivery.

Explore AI Reporting →
💬

Report Review & Sign-off

Review reports the way you review a shared doc. Highlight the exact text and pin a comment to it (📌 anchored), or leave a 📝 general note. Author and reviewer reply in threads and resolve them, then the reviewer approves or requests changes — all inside the editor, with Slack notifying the reviewer. Review is optional and never blocks delivery.

See how review works →

Access Control

Role-Based Access Control

A two-layer model: a Role Gate checks if the role is allowed to act (returns 403 if not), then a Filter Level limits which records the user can see. Admins bypass all filters.

A
Admin
Full platform access — no restrictions
  • All projects, users & roles
  • Create, assign, update any assessment
  • Full template & report CRUD (inc. delete)
  • All Slack notifications
S
Sales
Own projects where projectLead / salesLead / teamMember
  • Create projects & assign assessments
  • Update status on own projects
  • Templates: create, view, edit (no delete)
  • Reports: generate* / view / edit / download (own projects) — no delete
D
Delivery
Assigned projects where teamMember / projectLead / salesLead
  • View projects & update assessment status
  • Upload / download project files
  • Templates: create, view, edit (no delete)
  • Reports: generate* / view / edit / download (own projects) — no delete

* Generate uses assessment-level filtering — user must appear in the assignment record for the specific assessment (assignedMembers, assignedMember, or createdBy). All other report actions use project-level filtering (user must be projectLead, salesLead, or in teamMembers).

Under the Hood

Built on Modern, Proven Technologies

Enterprise infrastructure with zero compromise on security or reliability.

Node.js & Express
AWS DynamoDB
AWS S3
AWS SSM & ECS Fargate
Microsoft Entra ID
Docker
Puppeteer (PDF)
Slack API
Model Context Protocol (MCP)
Quill Editor
Vanilla JS / HTML / CSS

📝 Report Generation

Design reusable templates in a rich WYSIWYG editor, apply dynamic variables, and export professional PDF & DOCX reports — stored securely in S3.

Explore Report Generation

🤖 AI-Assisted Finding Write-up Generation

Paste raw assessment notes — AI identifies findings, assigns severity, maps CVSS scores, and inserts structured write-ups directly into the report editor.

Explore AI Reporting

Collaborative Review

Report Review & Sign-off

Review reports like a shared document — pin comments to the exact words they're about, talk it through in threads, and approve or request changes without ever leaving the editor.

📌 Anchored comments

Select the exact text and pin a note to it — the comment is tied to the words it's about, and one click jumps straight to the highlight. No more "para 3, second sentence".

📝 General notes

Whole-report feedback that isn't tied to a single spot sits alongside the anchored ones, clearly tagged so nothing slips through.

💬 Threaded conversations

Author and reviewer reply back and forth on each comment, then resolve or withdraw the thread once it's settled. Header counts show what's still open and what's awaiting your reply.

✅ Approve or request changes

The reviewer signs off or sends it back, with status badges — Pending review, Changes requested, Approved — and a flag if an approved report is edited again. Slack notifies the reviewer on submit. Review is optional; it never blocks delivery.

Report editor — review mode
The admin portal accepts default credentials📌 in production, allowing trivial unauthorized access to the management console…
Review 🟡 2 open · ✋ 1 awaiting you
📌 anchored "default credentials"
Reviewer — Name the affected endpoint and cite the request.
Author — Added the path + PoC request. ✅
Resolve Reply
📝 general Whole report
Reviewer — Tighten the executive summary before sign-off.
✓ Approve ⤺ Request changes

Programmatic Access

API & MCP Integration

Bring SecurePM into your own tooling and AI assistants. A REST API backs every screen, and a remote MCP server lets AI clients act on your behalf — always within your role's permissions.

🔌 MCP Server (Model Context Protocol)

Connect Claude Desktop, Claude Code, or any MCP client over Streamable HTTP at POST /mcp. The client authenticates with a per-user Bearer token and acts as that user — no shared service account.

🔑 Scoped Tokens & RBAC

Generate read or read-write tokens from your Profile. Tokens are SHA-256 hashed at rest, shown once, and revocable. Every call re-checks the live user, so the same access rules as the web app apply — Delivery never sees revenue, and writes require assignment membership.

🧰 MCP Tools

Five read tools and two write tools mirror the platform's core operations:

search_projects get_project list_my_active_assessments get_dashboard_stats get_assessment_remarks add_assessment_remark update_assessment_status

🌐 REST API

Every view is powered by CSRF-protected JSON endpoints under /api/* — dashboard stats, project & assessment management, report generation, and admin — secured by Microsoft Entra ID sessions.

Terminal — connect an MCP client
$ claude mcp add --transport http proj-mgmt \ https://app.stonecybersecurity.org/mcp \ --header "Authorization: Bearer pmcp_••••••••" proj-mgmt connected · 7 tools available List my active assessments # → runs list_my_active_assessments as you, # scoped to your role & assignments

Scheduled Notifications

Slack Reminder Workflow

Three scheduled reminders that surface stale work automatically — no manual chasing required. Silent when everything is on track; fires only when something needs attention.

Weekly  ·  Every Monday 09:00 SGT
Unassigned Projects

Projects where no delivery team has been allocated. Fires when hasAssigned=false and age exceeds REMINDER_UNASSIGNED_DAYS (default 7 days). Sorted oldest-first with client name and age.

📋
Monthly  ·  1st of every month
Stale Assessment Stages

Individual assessments stuck in ongoing or finding-report-released with no status change. Fires after REMINDER_STALE_DAYS (default 30 days). Uses statusUpdatedAt field; falls back to project creation date for legacy records.

⚠️
Quarterly  ·  Jan / Apr / Jul / Oct 1st
Uncompleted Projects

Assigned but incomplete projects past the quarter mark. Fires after REMINDER_UNCOMPLETED_DAYS (default 90 days), showing completion ratio completedCount/totalCount for each project.

# proj-alerts
🔔 SecurePM Bot Mon 09:00
⏰ Unassigned Projects Reminder
2 projects have been unassigned for 7+ days:
PROJ-2026-042 — Acme Corp (12d)
PROJ-2026-039 — Beta Ltd / Partner Inc (9d)
🕒 Weekly reminder · Mon, 31 Mar 2026 01:00:00 GMT
🔔 SecurePM Bot 1st 09:00
📋 Stale Assessment Stage Reminder
1 assessment has not advanced in 30+ days:
PROJ-2026-031 › Web App Pentest — ongoing (38d)
🕒 Monthly reminder · Tue, 1 Apr 2026 01:00:00 GMT

Ready to Streamline Your Security Operations?

One platform. Total visibility. From first brief to final report.

← Back to All Projects