Goal: Functional monitoring system with local authentication and built-in checks only.
- Project structure and solution setup
- Database schema implementation (EF Core)
- Entity models (12 entities)
- PostgreSQL migrations
- Encryption infrastructure
- Authentication & Authorization
- ASP.NET Core Identity setup
- Role-based access control
- User management UI
- Core Domain Logic
- Workspace management
- Check configuration models
- Alert configuration models
- Check execution engine
- Alert processing engine
- Service layer implementations
- Built-in Check Implementations (SAMA.Shared)
- HTTP/HTTPS check
- TCP port check
- ICMP ping check
- DNS resolution check
- SSL certificate check
- Script execution check
- Notification Channel Implementations (SAMA.Shared)
- Email (SMTP)
- Slack webhook
- Microsoft Teams webhook
- Discord webhook
- Script invocation
- Azure Event Grid (bonus)
- Background Services
- Quartz.NET setup
- Check scheduler job
- Check executor job
- Alert processor job
- Data retention cleanup job
- Web UI (Razor Pages + HTMX)
- Dashboard (status grid, active alerts)
- Workspace management pages
- Notification channel management pages
- Check CRUD pages
- Alert CRUD pages
- Historical data views
- Response time charts (Chart.js)
- User management pages
- Event subscription pages (bonus)
- Observability
- Serilog structured logging
- Health check endpoint
- Configuration
- appsettings.json structure
- Environment variable support
- Data encryption setup
- Testing
- Unit tests (MSTest) - core logic
- Integration tests - database operations
- Documentation
- README with setup instructions
Goal: Add agent support for geo-distributed monitoring, advanced checks, and enterprise SSO.
Note, these are all subject to change.
- Agent Infrastructure
- Agent registration in database
- API key generation and management
- Agent management UI
- Agent health monitoring
- Heartbeat mechanism
- Agent API (REST)
- Check assignment endpoint
- Result submission endpoint
- Bulk result submission
- Heartbeat endpoint
- Configuration endpoint
- API key authentication middleware
- SAMA.Agent Application
- Agent console application
- Check polling service
- Result reporter service
- API key-based authentication
- Configuration management
- Advanced Check Types
- Playwright-based web navigation
- Database connectivity checks
- Check Routing Logic
- Assign checks to specific agents/regions
- Fallback to local execution
- Multi-region support
- Agent Monitoring
- Agent health dashboard
- LastSeenAt tracking
- Alert on agent disconnection
- LDAP/Active Directory Integration
- LDAP authentication handler
- LDAP server configuration UI
- Group membership queries
- Testing with Active Directory and OpenLDAP
- OIDC Integration
- OIDC authentication handler
- OIDC provider configuration UI
- User claim mapping
- Testing with common providers (Azure AD/Entra, Okta, Auth0)
- Enhanced Authorization (LDAP)
- WorkspaceGroupMappings table and UI
- External group-to-workspace role mapping
- Just-in-time user provisioning on login
- Auto-sync workspace access based on IdP groups
- Account Management (LDAP)
- Local vs external account handling
- Account linking
- Profile management
- Docker Support
- Dockerfile for main app
- Dockerfile for agent
- Docker Compose configuration
- GHCR publishing workflow
- Testing
- System tests - end-to-end scenarios (SAMA.Tests.System)
- Agent API integration tests
- Agent application tests
- Multi-region scenario tests
- LDAP/AD authentication tests
- OIDC flow tests
- Multi-provider tests
- Documentation
- Agent deployment guide
- Agent API documentation
- API key setup guide
- LDAP/AD setup guide
- OIDC setup guide
- Common IdP configurations
Note, these are all subject to change.
- Maintenance Windows: Pause checks during scheduled maintenance
- Alert Suppression: Throttle repeated alerts for flapping services
- REST API: Full REST API for external integrations
- Mobile PWA: Progressive Web App for mobile devices
- Advanced Reporting: Scheduled reports via email
- Export Capabilities: CSV/JSON export of historical data
- Check Dependencies: Don't alert if dependent check is down
- Custom Dashboards: User-configurable dashboard views
- Grafana Integration: Export metrics to Grafana
- Incident Management: Enhanced incident tracking and notes
- DNS-over-HTTPS/TLS: Add support for custom servers, including DoH and DoT in DNS checks, maybe using the
DnsClientXpackage
- Alert Acknowledgment: Workflow for acknowledging and resolving alerts
- Multi-Tenancy: Support multiple isolated tenants
- API Versioning: Versioned REST API
- Webhook Receivers: Trigger checks from external events
- Configuration Import/Export: Export/import workspaces with checks, channels, and alerts
- Advanced Analytics: ML-based anomaly detection
- Mobile Apps: Native iOS/Android apps
- Internationalization: Multi-language UI support