Initial project setup for TelemetryTaco - #1
Conversation
Add backend (Django, Celery, Ninja API), frontend (React, TypeScript, Tailwind, Shadcn UI), SDK, Docker, and CI/CD configuration. Includes core event ingestion, async processing, real-time dashboard, and development guidelines.
Replaces all 'docker-compose' commands with 'docker compose' for compatibility with newer Docker versions. Adds installation of the Poetry export plugin to support exporting dependencies. Also sets 'load: true' in Docker build step to load the image into Docker after building.
There was a problem hiding this comment.
Pull request overview
This PR establishes the initial project setup for TelemetryTaco, a lightweight telemetry tool designed to correlate feature usage with system health in real-time.
Key Changes:
- Complete backend infrastructure using Django 5.0, Celery for async processing, and Django Ninja for type-safe REST APIs
- React/TypeScript frontend with Tailwind CSS and Shadcn UI components for the dashboard
- Python SDK for non-blocking event capture using background threads
- Docker Compose setup for local development with PostgreSQL and Redis
- Comprehensive CI/CD pipeline with linting, testing, security scanning, and Docker builds
Reviewed changes
Copilot reviewed 46 out of 52 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
sdk/telemetry_taco.py |
Python SDK implementation with threading for non-blocking event capture |
backend/telemetry_taco/settings.py |
Django settings with environment-based configuration |
backend/core/models.py |
Event model with JSONB properties and optimized indexes |
backend/core/api.py |
Django Ninja API endpoints for event capture and insights |
backend/core/tasks.py |
Celery task for async event processing |
frontend/src/hooks/useEventStream.ts |
React hook for polling event data |
frontend/src/components/LiveEventStream.tsx |
Real-time event stream UI component |
frontend/src/components/InsightChart.tsx |
Event visualization chart component |
docker-compose.yml |
Multi-service Docker setup with health checks |
.github/workflows/cicd.yml |
Complete CI/CD pipeline with testing and security scanning |
README.md |
Comprehensive documentation with architecture diagrams and scaling strategy |
.cursor/rules/generalguidelines.mdc |
Development guidelines for frontend and backend |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Expanded README with detailed setup and troubleshooting instructions, added backend/SETUP.md for step-by-step backend setup, and introduced check_db.py for database connectivity diagnostics. Updated backend Dockerfile for reproducible builds, added index renaming migration, and improved validation in process_event_task. Minor cleanups in admin.py, tests.py, and views.py.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 49 out of 56 changed files in this pull request and generated 1 comment.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Introduced Ruff as a development dependency and added its configuration to pyproject.toml, specifying linting rules, line length, target Python version, and known first-party modules.
Pinned Poetry version in Dockerfile for supply-chain security and updated installation method. Improved code formatting, import ordering, and minor style fixes across backend scripts, including check_db.py, core/api.py, core/tasks.py, and settings. No functional changes to business logic; changes focus on maintainability, clarity, and best practices.
Introduced a .bandit configuration file to skip common false positives and unnecessary directories in security scans. Updated the CI workflow to use this config, generate and upload Bandit reports, and improved Ruff linter command. Marked the Django dev secret key with a 'nosec' comment to suppress Bandit warning B107.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 50 out of 57 changed files in this pull request and generated 1 comment.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Renamed and converted Bandit config to YAML for better clarity and maintainability, updated CI workflow to use the new config file, and switched Poetry installation in Dockerfile to use pip for integrity verification. Minor formatting fix in Django settings.
This commit updates all backend Python files to use consistent double quotes for strings and improves code formatting for readability. It also enhances the CI workflow to provide clearer feedback and PR comments when code formatting issues are detected by Ruff. No functional logic is changed; these are style and developer experience improvements.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 50 out of 57 changed files in this pull request and generated 5 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Integrates CodeQL security analysis into CI/CD workflow and adds a CodeQL configuration file. Enforces explicit SECRET_KEY configuration in all environments with stricter validation in Django settings. Adds django-ratelimit and django-redis dependencies, configures Redis cache for rate limiting, and applies per-IP rate limits to API endpoints. Updates backend Dockerfile to allow Poetry patch updates. Improves SDK flush method to enforce a total timeout across all threads.
Introduces start.sh and stop.sh scripts for unified local development startup and shutdown, a Makefile with common dev targets, and updates the README with quick start instructions and command references. Updates .gitignore for new log and PID files, enhances package.json scripts for easier service management, and improves CI workflow to handle Poetry lock updates. Adds new backend dependencies in poetry.lock.
|
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 54 out of 61 changed files in this pull request and generated 6 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Updated SECRET_KEY values in CI/CD workflow for better validation and security practices. Added new validation scripts for backend and frontend in package.json files to streamline linting, formatting, and type-checking processes.
Introduces a Django management command to seed the database with realistic historical event data using Faker. Adds Makefile targets, shell scripts for seeding and backend restart, and updates rate limit logic for development. Also updates dependencies to include Faker and adds related npm scripts.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 58 out of 67 changed files in this pull request and generated 4 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This update enhances the development and CI experience by generating secure Django SECRET_KEY values automatically, updating documentation to require secure keys, and enforcing validation against insecure defaults. The CI workflow now posts Bandit security scan results as PR comments and improves backend service startup reliability. The SDK now uses daemon threads to prevent hangs, and process management in start/stop scripts is more robust and cross-platform.
Adds a CodeQL config file, updates pnpm to version 9, and sets explicit permissions for lint and security jobs. Adjusts test execution to use one-off containers to prevent OOM issues and reorders backend service startup for improved reliability.
🔒 Bandit Security Scan Results✅ No security issues found! Click to view scan summary |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 58 out of 67 changed files in this pull request and generated 7 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
API rate limits are now configurable via environment variables, with sensible defaults based on the ENVIRONMENT setting. Updated documentation and setup scripts to guide users in generating secure SECRET_KEY values, and improved process validation in stop.sh for safer shutdowns. Also added security comments to random usage in seed_events.py.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 58 out of 67 changed files in this pull request and generated 4 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Added a robust safe_kill_process function to start.sh for safer process termination with validation, replacing direct kill commands in the cleanup function. Refactored timeout logic in TelemetryTaco to clarify start_time handling and improve code readability.
Add backend (Django, Celery, Ninja API), frontend (React, TypeScript, Tailwind, Shadcn UI), SDK, Docker, and CI/CD configuration. Includes core event ingestion, async processing, real-time dashboard, and development guidelines.