A comprehensive cybersecurity risk management platform built with Next.js, designed to help organisations manage information assets, conduct risk assessments, and maintain regulatory compliance.
Cycorgi provides a modern, intuitive interface for managing cybersecurity risks and information assets. The platform features a dashboard with key metrics, detailed asset management, comprehensive risk management workflows, and compliance tracking capabilities.
- Risk Register: Complete risk tracking across all management phases
- Register: Full overview of all risks
- Phase-based Filtering: View risks by identification, analysis, evaluation, treatment, or monitoring phases
- Risk Information Pages: Detailed risk profiles with comprehensive information
- Risk Treatments: Track multiple treatments per risk with extension management
- PDF Export: Generate professional risk reports with complete details
- Real-time Updates: Live dashboard with key performance indicators
- Asset Inventory: Complete information asset registry
- CIA Assessments: Confidentiality, Integrity, and Availability evaluations
- Asset Classification: Categorise assets by type, sensitivity, and criticality
- Data Export: CSV export functionality for asset data
- Policy Management: Centralised policy documentation and tracking
- Security Steering Committee: Governance oversight and decision tracking
- Compliance Tracking: Monitor regulatory compliance scores
- Audit Management: Schedule and track security audits
- Real-time Metrics: Live updates on risks, audits, and compliance
- Performance Tracking: Month-over-month comparison of key metrics
- Quick Actions: Rapid access to common tasks
- Framework: Next.js 15.4.4 with App Router
- Language: TypeScript 5
- Styling: Tailwind CSS 4
- Database: MongoDB 6.18.0
- PDF Generation: Playwright for server-side PDF export
- Icons: FontAwesome
- Development: ESLint, Turbopack
- Infrastructure: Terraform with Google Cloud Platform
- CI/CD: GitHub Actions with Workload Identity Federation
- Container Registry: Google Artifact Registry
- Node.js 18+
- MongoDB instance (local or cloud)
- npm, yarn, pnpm, or bun package manager
- Google Cloud Platform account (for production deployment)
- Terraform 1.7.0+ (for infrastructure management)
-
Clone the repository
git clone <repository-url> cd cycorgi
-
Install dependencies
npm install
-
Configure environment variables
Create a
.env.localfile in the project root:MONGODB_URI=mongodb://localhost:27017/cycorgi
-
Seed the database (optional)
npm run seed
This populates the database with sample data for testing.
The application is configured for automated deployment to Google Cloud Platform using Terraform and GitHub Actions.
- Google Cloud Platform project with billing enabled
- Google Cloud Run API enabled
- Google Artifact Registry API enabled
- Workload Identity Federation configured
- Terraform state bucket in Google Cloud Storage
- Infrastructure Setup: Terraform manages the cloud infrastructure
- CI/CD Pipeline: GitHub Actions automatically deploys on main branch pushes
- Container Deployment: Application is deployed to Google Cloud Run
- Environment Management: Separate environments for development and production
npm run devThe application will be available at http://localhost:3000.
npm run dev- Start development server with Turbopacknpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run seed- Seed database with sample data
# Navigate to environment directory
cd infra/environments/dev
# Initialize Terraform
terraform init
# Plan changes
terraform plan
# Apply changes
terraform apply
# Destroy infrastructure (use with caution)
terraform destroycycorgi/
├── app/ # Next.js App Router
│ ├── api/ # API routes
│ ├── components/ # Reusable components
│ ├── dashboard/ # Dashboard pages
│ ├── governance/ # Governance and policy management
│ ├── inventory/ # Asset management
│ ├── layouts/ # Layout components
│ ├── risk-management/ # Risk management workflows
│ └── page.tsx # Landing page
├── infra/ # Infrastructure as Code
│ ├── environments/ # Environment-specific configurations
│ │ └── dev/ # Development environment
│ └── modules/ # Reusable Terraform modules
│ └── iam/ # Identity and Access Management
├── lib/ # Utility functions
├── public/ # Static assets
├── scripts/ # Database seeding scripts
├── .github/ # GitHub Actions workflows
│ └── workflows/ # CI/CD pipeline definitions
└── package.json
- Cloud Run: Serverless container platform for application hosting
- Artifact Registry: Container image storage and management
- Cloud Storage: Terraform state storage
- IAM: Identity and Access Management with Workload Identity Federation
- GitHub Actions: Automated deployment workflow
- Workload Identity Federation: Secure authentication between GitHub and GCP
- Terraform: Infrastructure as Code for consistent deployments
- Container Registry: Automated image building and deployment
- Development Environment: Automated deployment on main branch pushes
- State Management: Centralized Terraform state in Google Cloud Storage
- Configuration: Environment-specific variables and secrets management
Each asset includes:
- Information Asset: Asset name and identifier
- Category: Data classification (HR, Financial, etc.)
- Type: Asset type (Database, Documents, API, etc.)
- Description: Detailed asset description
- Location: Storage location
- Owner: Asset owner
- SME: Subject Matter Expert
- Administrator: Technical administrator
- Agile Release Train: ART designation
- CIA Ratings: Confidentiality, Integrity, Availability levels
Each risk includes comprehensive tracking across all management phases:
- Risk ID: Unique risk identifier
- Functional Unit: Department or team responsible
- Current Phase: Current management phase
- Jira Ticket: Issue tracking reference
- Risk Statement: Detailed risk description
- Information Assets: Affected assets
- Threat & Vulnerability: Risk factors
- Impact Assessment: CIA impact evaluation
- Current Controls: Existing mitigation measures
- Risk Ratings: Current and residual risk levels
- Treatment Plans: Mitigation strategies and timelines
- Approval Tracking: Governance decision records
Each treatment includes:
- Risk ID: Associated risk identifier
- Treatment Description: Detailed treatment plan
- Jira Ticket: Treatment tracking reference
- Owner: Treatment owner
- Due Dates: Original and extended due dates
- Extensions: Multiple extension tracking with approval details
- Completion Status: Treatment completion and approval status
- Cloud Infrastructure: Added Terraform configuration for Google Cloud Platform deployment
- CI/CD Pipeline: Implemented GitHub Actions workflow for automated deployments
- Container Deployment: Configured Google Cloud Run for serverless application hosting
- Workload Identity Federation: Secure authentication between GitHub Actions and GCP
- Environment Management: Separate development and production environment configurations
- State Management: Centralized Terraform state in Google Cloud Storage
- Comprehensive Risk Register: Complete risk lifecycle management with phase-specific views
- Dynamic Data Filtering: Risk data filtered by status for each management phase
- Enhanced UI: Professional styling with custom icons for each risk phase
- PDF Export: Generate professional risk reports with complete details and treatments
- Type-safe Field Handling: Robust form handling with proper TypeScript types
- Toast Notifications: Modern user feedback system replacing native alerts
- Restructured Navigation: Moved governance and risk management to top-level directories
- Enhanced Component Design: Consistent button styling and professional UI elements
- Improved Data Management: Comprehensive risk tracking with MongoDB integration
- Secure ID Generation: Cryptographically secure UUID generation for system reliability
- Phase-Specific Views: Tailored data tables for each risk management phase
- Responsive Design: Mobile-friendly interface with adaptive layouts
- Professional Styling: Consistent colour palette and modern UI elements
- Loading States: Visual feedback during data operations
- Error Handling: Comprehensive error handling with user-friendly messages
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions, please refer to the project documentation or create an issue in the repository.