Sentinel is an advanced, AI-powered platform designed to automate the entire API testing lifecycle. It leverages a modular, microservices-inspired architecture and an ecosystem of specialized, ephemeral AI agents to provide comprehensive, intelligent, and efficient testing across functional, security, and performance domains.
The platform is built upon the ruv-FANN and ruv-swarm frameworks, enabling a paradigm of "ephemeral swarm intelligence" where lightweight, WASM-based agents are dynamically spawned to perform specific testing tasks and dissolved upon completion.
- API Gateway (Port 8000): Single entry point for all user interactions with RBAC integration
- Authentication Service (Port 8005): JWT-based authentication and user management
- Specification Service (Port 8001): Manages API specification ingestion and parsing
- Orchestration Service (Port 8002): Central brain managing agentic workflows
- Execution Service (Port 8003): Handles test execution and scheduling
- Data & Analytics Service (Port 8004): Manages data persistence and analytics
- PostgreSQL Database (Port 5432): Data storage with pgvector extension
- Sentinel Rust Core (Port 8088): High-performance agentic core powered by
ruv-swarm
- RabbitMQ Message Broker (Port 5672/15672): Asynchronous task queue for decoupled service communication
- Prometheus (Port 9090): Metrics collection and monitoring
- Jaeger (Port 16686): Distributed tracing and request flow visualization
The platform employs a workforce of specialized AI agents with both Python and Rust implementations for optimal performance and reliability:
- Functional-Positive-Agent: Generates valid, "happy path" test cases with schema-based data generation โ Python/Rust
- Functional-Negative-Agent: Creates boundary value analysis and creative negative testing scenarios โ Python/Rust
- Functional-Stateful-Agent: Builds complex multi-step workflows using Semantic Operation Dependency Graphs (SODG) โ Python/Rust
- Security-Auth-Agent: Tests for BOLA, function-level authorization, and authentication bypass vulnerabilities โ Python/Rust
- Security-Injection-Agent: Probes for SQL/NoSQL/Command injection and LLM prompt injection attacks โ Python/Rust
- Performance-Planner-Agent: Generates comprehensive load, stress, and spike testing scenarios with k6/JMeter/Locust scripts โ Python/Rust
- Data-Mocking-Agent: Creates intelligent, schema-aware test data with multiple generation strategies โ Python/Rust
- Spec-Linter-Agent: Analyzes API specs for "LLM-readiness" โณ Python only
- Performance-Analyzer-Agent: Analyzes performance test results with AI-powered insights โณ Python only
Performance Benefits: Rust agents provide 10-50x performance improvement for compute-intensive operations while maintaining Python agents as fallback for resilience.
- Docker and Docker Compose
- Python 3.10+ (for local development)
- Poetry (for dependency management)
- Node.js 14+ and npm (for frontend development)
- Anthropic API Key (for LLM-powered features)
- Make (for convenient commands)
-
Clone and navigate to the project:
git clone https://github.com/proffesor-for-testing/sentinel-api-testing.git cd sentinel-api-testing
-
Set up LLM configuration (required for AI features):
export SENTINEL_APP_ANTHROPIC_API_KEY=your-anthropic-api-key
-
Complete setup with one command:
make setup
This will:
- Build all Docker images
- Initialize the database with all tables
- Start all backend services
- Provide instructions for starting the frontend
-
Start the frontend (in a separate terminal):
cd sentinel_frontend npm install npm start
-
Access the platform:
- Frontend Application: http://localhost:3000
- Default credentials:
[email protected]
/admin123
- Default credentials:
- API Gateway: http://localhost:8000
- Petstore Test API: http://localhost:8080 (for testing)
- Frontend Application: http://localhost:3000
If you prefer manual control:
# Build and start services (from project root)
docker-compose up --build
# Initialize database (in another terminal, from project root)
make init-db
# Start frontend (from project root)
cd sentinel_frontend
npm install
npm start
make help # Show all available commands
make start # Start all services
make stop # Stop all services
make restart # Restart services
make init-db # Initialize/repair database
make reset-db # Reset database (WARNING: data loss)
make backup-db # Backup database
make restore-db # Restore from backup
make status # Check service status
make logs # View service logs
make test # Run tests
make clean # Clean up everything
Once running, you can access the interactive API documentation:
- API Gateway: http://localhost:8000/docs
- Each service also exposes its own
/docs
endpoint
The platform includes comprehensive observability features:
-
Prometheus Metrics: http://localhost:9090
- View service metrics and health status
- Query time-series data for performance analysis
- Monitor request rates, latencies, and error rates
-
Jaeger Tracing: http://localhost:16686
- Visualize distributed request flows across services
- Analyze service dependencies and bottlenecks
- Debug complex multi-service interactions
-
Structured Logging: All services output JSON-formatted logs with:
- Correlation IDs for request tracking
- Service context and metadata
- Error details and stack traces
The platform now includes an advanced consciousness verification system in the Rust core that enables:
- Emergent Intelligence: Self-modifying test generation with pattern learning
- Psycho-Symbolic Reasoning: Combines psychological models with symbolic logic for deeper test insights
- Temporal Consciousness: Nanosecond-precision scheduling with temporal computational advantages
- Knowledge Graph Integration: Semantic understanding of API relationships and dependencies
- Sublinear Solvers: O(log n) performance for large-scale test optimization
- Predictive Testing: Solve test scenarios before data arrives using temporal advantages
- Pattern Recognition: Identify edge cases through emergent behavior analysis
- Self-Learning: Tests improve over time through feedback loops
- Distributed Intelligence: Multi-agent swarms with collective decision making
# Run consciousness verification tests
./test_consciousness_improvements.py
# Monitor consciousness emergence
./monitor_consciousness.sh
# Test API with consciousness features
./test_api_consciousness.sh
For detailed documentation see:
The platform implements a cutting-edge hybrid Python/Rust architecture for optimal performance:
- Rust Priority: When available, high-performance Rust agents execute via RabbitMQ
- Python Fallback: Automatic fallback to Python agents ensures 100% availability
- Seamless Switching: No code changes required - the system automatically selects the best option
- 18-21x Faster: Rust agents execute test generation 18-21x faster than Python equivalents
- Memory Efficient: Lower memory footprint with Rust's zero-cost abstractions
- Concurrent Processing: Safe parallel execution without Global Interpreter Lock (GIL)
- Type Safety: Compile-time guarantees prevent runtime errors
Complete documentation for the hybrid architecture is available in the docs/
directory:
- Hybrid Architecture Overview
- Rust Agents Complete Documentation
- Individual agent implementation guides for each Rust agent
The platform includes a comprehensive React-based frontend with the following features:
- Authentication System: JWT-based login with secure token management
- Dashboard: Real-time database-driven metrics and system status
- Specifications Management:
- Upload and parse OpenAPI specifications (including OpenAPI 3.1.0 with webhooks)
- View detailed specification information including endpoints and schemas
- Full CRUD operations (Create, Read, Update, Delete)
- Quick Test functionality for rapid test generation
- Generate Tests with AI agent selection
- Test Cases Browser:
- View all generated test cases with filtering by agent type
- Display full test definition details (method, endpoint, expected status)
- Create test suites from selected test cases
- Tag management for organization
- Detailed test case inspection with specification relationships
- Test Suites Management:
- Create, view, edit, and delete test suites
- Add/remove test cases from suites
- View test case count and specification relationships
- One-click test suite execution
- Test Runs:
- Execute test suites against target environments
- Modal-based test run creation workflow
- Real-time status tracking
- Detailed results viewing
- Analytics: Comprehensive dashboards with trend analysis and insights
- Agent Selection Modal: Choose from multiple specialized AI agents
- Quick Test: One-click test generation using default agents
- LLM Enhancement: All agents powered by Claude Sonnet 4 for intelligent test creation
- Real-time Progress: Track test generation status and results
Agents for API testing/
โโโ docs/ # Comprehensive documentation
โ โโโ index.md # Documentation hub
โ โโโ user-guide/ # User guides and tutorials
โ โโโ technical-guide/ # Technical architecture docs
โ โโโ api-reference/ # API documentation
โ โโโ deployment/ # Deployment guides
โ โโโ troubleshooting/ # Common issues and solutions
โโโ memory-bank/ # Project documentation and memory bank
โ โโโ projectbrief.md # Project overview and objectives
โ โโโ agent-specifications.md # Detailed agent capabilities
โ โโโ database-schema.md # Database design
โ โโโ api-design.md # REST API specifications
โ โโโ progress.md # Implementation roadmap
โโโ sentinel_backend/ # Backend microservices
โ โโโ pyproject.toml # Python dependencies
โ โโโ config/ # Centralized configuration
โ โ โโโ settings.py # Environment-specific settings
โ โโโ api_gateway/ # API Gateway service (8000)
โ โโโ auth_service/ # Authentication service (8005)
โ โโโ spec_service/ # Specification service (8001)
โ โโโ orchestration_service/ # Agent orchestration (8002)
โ โ โโโ agents/ # AI agent implementations
โ โ โโโ functional_positive_agent.py
โ โ โโโ functional_negative_agent.py
โ โ โโโ functional_stateful_agent.py
โ โ โโโ security_auth_agent.py
โ โ โโโ security_injection_agent.py
โ โ โโโ performance_planner_agent.py
โ โ โโโ data_mocking_agent.py
โ โโโ execution_service/ # Test execution service (8003)
โ โโโ data_service/ # Data & analytics service (8004)
โ โโโ llm_providers/ # Multi-LLM provider support
โ โ โโโ providers/ # Provider implementations
โ โ โโโ templates/ # Model-specific templates
โ โ โโโ utils/ # Cost tracking, caching
โ โโโ sentinel_rust_core/ # High-performance agent core (8088)
โ โโโ scripts/ # LLM configuration scripts
โ โโโ tests/ # Comprehensive test suite (540+ tests)
โ โโโ unit/ # Unit tests (456 tests)
โ โโโ integration/ # Integration tests (20 tests)
โ โโโ e2e/ # Backend E2E tests (30 tests)
โ โโโ performance/ # Performance tests
โโโ sentinel_frontend/ # React-based frontend UI
โ โโโ src/ # React application source
โ โ โโโ components/ # Reusable UI components
โ โ โโโ pages/ # Application pages
โ โ โโโ features/ # Redux slices
โ โ โโโ services/ # API communication
โ โโโ e2e/ # Playwright E2E tests (45+ tests)
โ โโโ package.json # Node.js dependencies
โ โโโ tailwind.config.js # Tailwind CSS configuration
โโโ docker-compose.yml # Main Docker orchestration
โโโ demo_*.py # Demonstration scripts
โโโ scripts/ # Utility scripts
โโโ CLAUDE.md # SPARC development configuration
The platform features a comprehensive LLM abstraction layer that enables all AI agents to leverage multiple LLM providers with automatic fallback capabilities. This hybrid approach combines deterministic algorithms with LLM creativity for superior test generation.
- Anthropic (Default): Claude Opus 4.1/4, Claude Sonnet 4, Claude Haiku 3.5
- OpenAI: GPT-4 Turbo, GPT-4, GPT-3.5 Turbo
- Google: Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.0 Flash
- Mistral: Mistral Large, Small 3, Codestral
- Ollama (Local): DeepSeek-R1, Llama 3.3, Qwen 2.5, and more
- Automatic Fallback: Seamlessly switches to backup providers on failure
- Cost Tracking: Real-time usage monitoring with budget limits
- Response Caching: Reduces API calls and costs
- Token Management: Intelligent context window handling
- Provider-Specific Templates: Optimized prompts for each model
# Interactive configuration wizard
cd sentinel_backend/scripts
./switch_llm.sh
# Quick presets
./switch_llm.sh claude # Use Claude Sonnet 4 (default)
./switch_llm.sh openai # Use OpenAI GPT-4 Turbo
./switch_llm.sh gemini # Use Google Gemini 2.5
./switch_llm.sh local # Use local Ollama
./switch_llm.sh none # Disable LLM
# Use default (Claude Sonnet 4)
export SENTINEL_APP_ANTHROPIC_API_KEY=your-key
# Switch to OpenAI
export SENTINEL_APP_LLM_PROVIDER=openai
export SENTINEL_APP_OPENAI_API_KEY=your-key
export SENTINEL_APP_LLM_MODEL=gpt-4-turbo
# Use local models with Ollama
export SENTINEL_APP_LLM_PROVIDER=ollama
export SENTINEL_APP_LLM_MODEL=llama3.3:70b
For detailed configuration options and scripts, see:
- CLAUDE.md - Complete LLM configuration guide
- Scripts README - Script documentation
-
Install dependencies:
cd sentinel_backend poetry install
-
Run individual services:
# Example: Run the API Gateway cd api_gateway poetry run uvicorn main:app --reload --port 8000
-
Navigate to frontend directory:
cd sentinel_frontend
-
Install dependencies:
npm install
-
Start the development server:
npm start
-
Access the frontend:
- Frontend Application: http://localhost:3000
- Default credentials:
[email protected]
/admin123
Note: The frontend requires the backend services to be running. You can either:
- Use Docker Compose to start all backend services:
docker-compose up
(from project root) - Run individual backend services manually as shown above
The platform uses a comprehensive centralized configuration system built with Pydantic BaseSettings for type-safe configuration management.
All configuration is managed through sentinel_backend/config/settings.py
with the following sections:
- Database Settings: Connection strings, pool configurations, migration settings
- Service Discovery: Inter-service URLs, ports, timeouts, health check intervals
- Security Configuration: JWT secrets, password policies, CORS settings, rate limiting
- Network Settings: Host bindings, port mappings, timeout configurations
- Application Settings: Feature flags, pagination limits, logging levels, agent parameters
The platform supports multiple deployment environments:
# Development (default)
SENTINEL_ENVIRONMENT=development
# Testing
SENTINEL_ENVIRONMENT=testing
# Production
SENTINEL_ENVIRONMENT=production
# Docker
SENTINEL_ENVIRONMENT=docker
Environment-specific configuration files are located in sentinel_backend/config/
:
development.env
- Local development settingstesting.env
- Test environment settingsproduction.env
- Production deployment settingsdocker.env
- Docker container settings
Services import configuration using centralized functions:
from config.settings import get_settings, get_service_settings, get_application_settings
# Get all settings
settings = get_settings()
# Get specific setting sections
service_settings = get_service_settings()
app_settings = get_application_settings()
# Use configuration
timeout = service_settings.service_timeout
log_level = app_settings.log_level
All configuration can be overridden using environment variables with the SENTINEL_
prefix:
# Database configuration
SENTINEL_DB_URL=postgresql+asyncpg://user:pass@host/db
SENTINEL_DB_POOL_SIZE=20
# Service URLs
SENTINEL_SERVICE_AUTH_SERVICE_URL=http://auth:8005
SENTINEL_SERVICE_SERVICE_TIMEOUT=60
# Security settings
SENTINEL_SECURITY_JWT_SECRET_KEY=your-secret-key
SENTINEL_SECURITY_JWT_EXPIRATION_HOURS=24
# Application settings
SENTINEL_APP_LOG_LEVEL=DEBUG
SENTINEL_APP_DEBUG=true
For Docker deployments, use the .env.docker
file:
# Copy and customize the Docker environment file
cp sentinel_backend/.env.docker sentinel_backend/.env.local
# Edit .env.local with your settings
docker-compose --env-file .env.local up
For production deployments:
- Change default secrets: Update JWT secret keys and database passwords
- Use environment variables: Never commit secrets to version control
- Validate configuration: The system validates configuration on startup
- Monitor configuration: Enable configuration audit logging
The platform includes comprehensive observability settings:
# Jaeger tracing configuration
SENTINEL_NETWORK_JAEGER_AGENT_HOST=localhost
SENTINEL_NETWORK_JAEGER_AGENT_PORT=6831
# Prometheus metrics
# Metrics are automatically exposed on /metrics endpoint for all services
# Structured logging
SENTINEL_APP_LOG_LEVEL=INFO
SENTINEL_APP_LOG_FORMAT=json # json or text
# Message Broker configuration
SENTINEL_BROKER_URL=amqp://guest:guest@message_broker:5672/
SENTINEL_BROKER_TASK_QUEUE_NAME=sentinel_task_queue
SENTINEL_BROKER_RESULT_QUEUE_NAME=sentinel_result_queue
The platform uses RabbitMQ for asynchronous task processing:
- Task Queue: The Orchestration Service publishes agent tasks to RabbitMQ
- Consumer: The Sentinel Rust Core consumes tasks from the queue
- Durability: Messages persist across service restarts
- Scalability: Multiple Rust Core instances can consume from the same queue
To test the message broker integration:
python3 test_rabbitmq_integration.py
This validates:
- โ RabbitMQ connection and queue management
- โ Task publishing from Python services
- โ Task consumption by Rust Core
- โ Message persistence and durability
For production deployments:
- Configure external Jaeger collector for trace aggregation
- Set up Prometheus scraping and alerting rules
- Use log aggregation tools (ELK, Splunk) for centralized logging
- Enable correlation ID propagation for distributed debugging
The platform includes a comprehensive testing infrastructure with 539+ tests covering all critical components across unit, integration, and end-to-end test levels:
- Total Tests: 540+ comprehensive tests
- Overall Pass Rate: 97.8%
- Test Distribution:
- Unit Tests: 456 tests (84%)
- Integration Tests: 20 tests (4%)
- Backend E2E Tests: 30 tests (6%)
- Frontend E2E Tests: 45+ tests (8%)
- AI Agents: 184 tests covering all 8 specialized agents with comprehensive unit testing (Phase 1 Complete)
- LLM Providers: 272 tests covering all provider implementations and utilities (Phase 2 Complete)
- Provider implementations: Google, Mistral, Ollama, vLLM (117+ tests)
- Supporting utilities: Model registry, cost tracker, response cache, token counter (155+ tests)
- Configuration Management: 4 comprehensive test files (Phase 5 Complete)
- Environment-specific configuration validation
- Security settings (JWT, CORS, authentication)
- Database configuration and connection validation
- LLM provider configuration and API key management
- Performance Testing: 5 comprehensive test files (Phase 5 Complete)
- Load testing with concurrent requests and sustained load
- Agent performance and scaling benchmarks
- Database query optimization and connection pooling
- Concurrent execution and race condition handling
- Memory usage profiling and leak detection
- Auth Service: 24 tests covering authentication, authorization, and user management
- API Gateway: 23 tests covering routing, middleware, and service communication
- Spec Service: 21 tests covering OpenAPI parsing and specification management
- Orchestration Service: 24 tests covering agent management and task delegation
- Data Service: 25 tests covering CRUD operations and analytics
- Execution Service: 22 tests covering test execution and result collection
- Rust Integration: 3 tests (conditionally run based on service availability)
- Unit Tests: 465+ tests across all services
- AI Agents: 184 tests (100% coverage)
- LLM Providers: 272+ tests (100% coverage)
- Configuration Management: 4 test files (970+ lines)
- Performance Testing: 5 test files (1,280+ lines)
- Service Components: Comprehensive coverage
- Integration Tests: 6 comprehensive test suites (2,342+ lines)
- Service-to-service communication
- Database operations & transactions
- Message broker (RabbitMQ) integration
- Security & authentication flows
- Agent-LLM integration
- API workflow orchestration
- E2E Tests: 4 comprehensive backend suites
test_spec_to_execution.py
: Complete API workflow testingtest_multi_agent_coordination.py
: Agent orchestration & collaborationtest_performance_pipeline.py
: Load, stress, spike, and endurance testingtest_security_pipeline.py
: Authentication, authorization, injection testing
- Real Browser E2E Tests: Chrome, Firefox, Safari, Mobile
- 9 Comprehensive Test Suites (45+ test scenarios):
auth.spec.ts
: Authentication flows & session managementspecifications.spec.ts
: API specification managementtest-generation.spec.ts
: AI-powered test generation workflowstest-execution.spec.ts
: Complete test execution pipelineresults-visualization.spec.ts
: Analytics and reportingmulti-agent.spec.ts
: Multi-agent coordination scenariosrbac.spec.ts
: Role-based access control enforcementapi-import.spec.ts
: OpenAPI/Swagger/Postman import workflows
# IMPORTANT: Always run tests in Docker for consistent environment
cd sentinel_backend
./run_tests.sh -d # Run all tests in Docker (RECOMMENDED)
./run_tests.sh -d -t unit # Unit tests only in Docker
./run_tests.sh -d -t integration # Integration tests in Docker
./run_tests.sh -d -t agents # AI agent tests in Docker
# Run AI Agent Tests
./run_agent_tests.sh # Run all agent tests with colored output
./run_agent_tests.sh -c # Run with coverage report
./run_agent_tests.sh base auth # Run specific agent tests
./run_agent_tests.sh -v -p # Verbose with parallel execution
# Smart test filtering based on environment
./run_tests_filtered.sh # Auto-detects Rust service availability
./run_tests_filtered.sh --with-rust # Force Rust tests with mocks
pytest -m "not rust" # Exclude Rust tests explicitly
# Rebuild test Docker image after dependency changes
docker-compose -f docker-compose.test.yml build test_runner
# Run tests for specific service
pytest tests/unit/test_auth_service.py -v
pytest tests/unit/test_llm_providers.py -v
pytest tests/unit/agents/ # Run all agent tests
# Run tests with coverage
pytest tests/unit/ --cov=. --cov-report=term-missing
# Run configuration tests
pytest tests/unit/test_config_validation.py -v
pytest tests/unit/test_security_config.py -v
pytest tests/unit/test_database_config.py -v
pytest tests/unit/test_llm_config.py -v
# Run performance tests
pytest tests/performance/ -v
pytest tests/performance/test_load_performance.py -v
pytest tests/performance/test_concurrent_execution.py -v
All services implement the factory pattern for enhanced testability:
- Dependency injection at app creation time
- Mock mode for isolated testing without external dependencies
- Configurable timeouts and connections
- Consistent testing approach across all services
tests/helpers/auth_helpers.py
: Authentication test utilitiestests/fixtures/
: Shared test data and mock responses- Docker test environment for consistent testing
The platform includes a comprehensive database initialization system that automatically creates all required tables and columns.
When you start the services, the database is automatically initialized with:
- All required tables (users, projects, test_cases, test_results, etc.)
- All necessary columns and indexes
- Default admin user ([email protected] / admin123)
- Proper foreign key relationships
# Initialize or repair database (safe to run anytime)
make init-db
# Reset database completely (WARNING: destroys all data)
make reset-db
# Backup database to timestamped file
make backup-db
# Restore from latest backup
make restore-db
If you encounter "column does not exist" or "table does not exist" errors:
- Quick Fix: Run
make init-db
to apply the schema - Complete Reset: If issues persist, run
make reset-db
(WARNING: data loss) - Manual Check: Verify database status:
docker-compose exec -T db psql -U sentinel sentinel_db -c "\dt"
sentinel_backend/init_db.sql
- Complete schema definitionsentinel_backend/init_database.py
- Automatic initialization scriptsentinel_backend/docker-entrypoint.sh
- Startup initializationdocs/DATABASE_SETUP.md
- Detailed database documentation
The database uses PostgreSQL with the pgvector extension for AI-powered features.
The platform includes comprehensive Role-Based Access Control (RBAC) with a modern React-based authentication system:
Frontend Authentication:
- Login Page: http://localhost:3000/login (automatically redirected when not authenticated)
- Demo Credentials Button: Quick-fill form with default admin credentials
- Route Protection: All dashboard pages require authentication
- User Menu: Access profile and logout functionality from the top-right corner
Default Admin Credentials:
- Email:
[email protected]
- Password:
admin123
User Roles:
- Admin: Full access including user management
- Manager: Most permissions except user management
- Tester: Testing-focused permissions (create/edit test cases, run tests)
- Viewer: Read-only access to all resources
Authentication Features:
- JWT-based authentication with secure token storage
- Redux state management for authentication across the application
- Automatic token handling in API requests
- Session persistence across browser refreshes
- Secure logout with token cleanup
Demo RBAC Features:
python demo_rbac.py
This script demonstrates authentication, authorization, and role-based permissions across different user types.
- Intelligent Test Generation: AI agents automatically generate comprehensive test suites
- Multi-Domain Testing: Covers functional, security, and performance testing
- Specification-Driven: Deep understanding of OpenAPI specifications
- Hybrid AI Approach: Combines deterministic algorithms with LLM creativity
- Real-time Analytics: Historical trend analysis and anomaly detection
- CI/CD Integration: Seamless integration with modern DevOps workflows
This project is licensed under the MIT License - see the LICENSE file for details.
We welcome contributions from the community! Whether you're a developer, a tester, or just an enthusiast, there are many ways to get involved.
Before you start, please read our Code of Conduct to understand our community standards.
For a detailed guide on how to contribute, set up your development environment, and follow our style guidelines, please see our Contributing Guide.
Here's a quick overview of the process:
- Find an issue to work on or propose a new feature. Check out issues labeled
good first issue
for a great place to start. - Fork the repository and create a new branch for your work.
- Make your changes, following the project's coding and style guidelines.
- Write tests to cover your changes and ensure existing tests pass.
- Submit a Pull Request with a clear description of your changes.
We use GitHub issues to track bugs and feature requests. Please use our issue templates when creating a new issue:
This project follows the patterns and preferences outlined in .clinerules
. Key principles include:
- Modularity: Develop within the microservices architecture.
- Agent Specialization: Create specialized agents for new testing types.
- Specification-Driven: All development is driven by API specifications.
- Hybrid AI: Combine deterministic algorithms with LLM capabilities.
The Sentinel platform now includes extensive documentation covering all aspects of usage, deployment, and development:
Your starting point for all Sentinel documentation.
-
User Guide - Complete guide for using Sentinel
- Quick Start Guide - Get up and running in minutes
- Managing API Specifications - Upload and manage OpenAPI specs
- Understanding Test Types - Learn about different testing approaches
- CI/CD Integration - Integrate with your DevOps pipeline
-
Technical Guide - In-depth technical documentation
- Architecture Overview - System design and components
- Service components and interactions
- Agent implementation details
- Database schema and models
-
API Reference - Complete API documentation
- REST API endpoints with examples
- Authentication and authorization
- Code examples in multiple languages
- SDK libraries and usage
-
Deployment Guide - Production deployment instructions
- Docker and Kubernetes deployment
- Cloud platform deployments (AWS, GCP, Azure)
- Scaling strategies
- Security hardening
-
Troubleshooting Guide - Diagnose and resolve issues
- Common problems and solutions
- Debugging techniques
- Performance optimization
- FAQ
Issue: All tests fail with "Request URL has an unsupported protocol" error
- Cause: Invalid target environment URL (e.g.,
ttp://
instead ofhttp://
) - Solution: Ensure URLs start with
http://
orhttps://
- Prevention: Frontend now validates URLs and provides default value
Issue: "column does not exist" or "table does not exist" errors
- Solution: Run
make init-db
to initialize/repair database - Alternative: Run
make reset-db
for complete reset (WARNING: data loss)
Issue: Services fail to start after restart
- Solution: Run
make setup
for complete initialization
Issue: Frontend shows blank page or connection errors
- Solution: Ensure backend services are running:
make status
- Alternative: Restart all services:
make restart
Issue: Test runs fail because target API is not available
- Solution: Start Petstore:
make start-petstore
- Default URL:
http://host.docker.internal:8080
Additional technical documentation is maintained in the memory-bank/
directory:
- Project Brief: Overall project scope and objectives
- System Patterns: Architectural decisions and patterns
- Agent Specifications: Detailed agent capabilities and workflows
- Database Schema: Complete data model design
- API Design: Internal REST API specifications
- Progress Tracking: Implementation roadmap and status
- Active Context: Current development focus
Sentinel aims to transform API testing from a manual, reactive process to an intelligent, proactive, and automated part of the development lifecycle. The platform will continuously evolve to incorporate the latest advances in AI and testing methodologies.
The Sentinel platform is production-ready and provides comprehensive API testing across all major domains:
๐ง Functional Testing: Positive, negative, and stateful workflow testing with advanced boundary value analysis and creative test generation.
๐ Security Testing: BOLA, function-level authorization, authentication bypass, and comprehensive injection vulnerability testing (SQL/NoSQL/Command/Prompt injection for LLM-backed APIs).
โก Performance Testing: Load, stress, and spike testing with intelligent API analysis and automated k6/JMeter script generation.
๐ Enhanced Reporting: React-based UI with detailed failure analysis, agent-specific insights, and interactive test case exploration.
The platform is enterprise-ready for comprehensive API testing across functional, security, and performance domains!