🔧 CPE Device Incident Tracker

Architecture Overview for Network Support Engineers

Built by Salomon Fritz Lubin for Adaptiv Networks

AWS Cloud Terraform Python Lambda DynamoDB CloudFront API Gateway

🎯 What Is This Application?

A centralized web application designed specifically for our support team to efficiently track and manage CPE device incidents (E40, E60, etc.)

📝

Submit Incidents

Log CPE device issues with detailed information including outage times, troubleshooting notes, and resolution details

🔍

Lookup Recurring Issues

Quickly identify repeat offenders by searching device serial numbers

📊

View All Incidents

Browse complete incident history in an organized table format

📤

Export Data

Download incident reports as CSV files for analysis and reporting

🏗️ System Architecture

The application follows a modern, cloud-native, serverless architecture hosted entirely on AWS

Frontend Layer
HTML/CSS/JavaScript
Hosted on S3
Delivered via CloudFront CDN
Custom Domain (adaptiv-device-tracker.ca)
API Layer
AWS API Gateway
HTTP REST Routes
CORS Enabled
Lambda Integration
Backend Layer
Python Lambda Functions
DynamoDB Database
Cognito Authentication
EventBridge Automation
User → CloudFront → S3 Frontend → API Gateway → Lambda → DynamoDB

🔌 API Endpoints

The application provides these REST API endpoints for different operations:

Route Method Description Lambda Function
/incident POST Submit a new CPE incident report create_incident
/recurring GET Get incident count by serial number (past 12 months) get_recurring
/incidents GET Retrieve all incidents as JSON get_all_incidents
/export-csv GET Download all incidents as CSV file export_csv

🔄 How Data Flows

When You Submit an Incident:

Fill Out Form: Enter device info, site name, partner, customer, detected/resolved times, cause, fix, Freshservice ticket, etc.
Frontend Processing: JavaScript extracts serial number from Network ID field (format: "1164 | 220S101F4")
API Call: Data sent to API Gateway POST /incident endpoint
Lambda Processing: create_incident function generates unique ID and stores in DynamoDB
Database Storage: Incident stored in cpe_incidents table with timestamp

When You Look Up Recurring Issues:

Enter Serial Number: Type device serial (e.g., "220S101F4")
API Query: GET /recurring?serial_number=220S101F4
Database Scan: Lambda searches all incidents for that serial in past 12 months
Results Display: Shows count and list of recent incidents for that device

🔐 Security & Access

🔑 Authentication

Shared Login Credentials:

  • Username: Adaptiv_user
  • Password: Stored securely in Terraform Cloud
  • Managed via AWS Cognito User Pool

🛡️ Infrastructure Security

  • All traffic encrypted with HTTPS/TLS
  • AWS IAM roles with least-privilege access
  • Private VPC networking for backend components
  • CloudFront provides DDoS protection

⚠️ Important Notes

  • This is an internal tool - not exposed to customers
  • All sensitive data stays within Adaptiv's AWS environment
  • Regular backups handled automatically by DynamoDB

🚀 Deployment & Infrastructure

Infrastructure as Code with Terraform

Everything is defined in code and deployed automatically - no manual AWS console clicking!

Code Repository: All infrastructure defined in Terraform files stored in GitHub
Terraform Cloud: Handles remote state management and deployment automation
AWS Resources: Creates all necessary AWS services (Lambda, DynamoDB, S3, CloudFront, etc.)
Domain Setup: Configures custom domain with SSL certificate
Frontend Deployment: Uploads HTML/CSS/JS files to S3 and configures CloudFront distribution

🔧 Easy Updates

When code changes are needed, simply update the repository and run Terraform apply - the entire infrastructure updates automatically!

🚀 Future Enhancements

The system is designed to be modular and extensible. Here's what's planned:

💬

Slack Integration

Automatic alerts for recurring offenders and real-time incident notifications

📊

Analytics Dashboard

Visual reports on incident trends, device reliability, and performance metrics

👥

Partner Dashboards

Separate views for partners to see incidents related to their sites

📱

Mobile App

Native mobile app for field technicians to log incidents on-site

🔔

SMS/Email Alerts

Automated notifications via AWS SNS for critical incidents

🤖

AI Analysis

Machine learning to predict device failures and suggest preventive actions

💡 How to Use the Application

📝 Logging a New Incident

  1. Navigate to the application URL
  2. Fill out the incident form with all relevant details
  3. Ensure Network ID includes both network and serial (format: "1164 | 220S101F4")
  4. Include Freshservice ticket number for tracking
  5. Click Submit - the incident is immediately stored

🔍 Checking for Recurring Issues

  1. Scroll to "Recurring Offender Check" section
  2. Enter the device serial number (e.g., "220S101F4")
  3. Click Search to see incident count for past 12 months
  4. Review the list of recent incidents for patterns

📊 Viewing and Exporting Data

  1. Scroll to "All Incidents Logged" to see recent entries
  2. Click "📤 Export CSV" to download complete incident history
  3. Use exported data for analysis, reporting, or importing into other tools

💭 Pro Tips

  • Always include detailed resolution notes - future you will thank you!
  • Use consistent naming for partners and sites to improve search/filtering
  • Check for recurring issues before starting troubleshooting
  • Export data regularly for backup and analysis

🆘 Questions & Support

Application built and designed by:

Salomon Fritz Lubin

For Adaptiv Networks Internal Operations

🔧 Technical Issues

For technical problems, feature requests, or questions about the application:

  • Check if it's a network connectivity issue first
  • Note any error messages you see
  • Mention what you were trying to do when the issue occurred

🌐 Application URLs

Production: https://adaptiv-device-tracker.ca

Fallback S3 URL: Available in Terraform outputs if needed