Playbooks
Operational procedures and common tasks for managing the Mind Measure Core platform.
User Management
Onboard a University
-
Create Institution Record
INSERT INTO institutions (name, slug) VALUES ('University Name', 'university-slug'); -
Configure Allowed Domains
INSERT INTO allowed_domains (institution_id, domain) VALUES (institution_id, 'university.edu'); -
Set Up Admin User
INSERT INTO memberships (user_id, institution_id, role) VALUES (admin_user_id, institution_id, 'admin'); -
Configure Institution Settings
- Upload institution branding
- Set up mental health resources
- Configure assessment parameters
- Set up notification preferences
Promote a User to Admin
-
Verify User Identity
SELECT id, email FROM auth.users WHERE email = 'user@university.edu'; -
Update Membership Role
UPDATE memberships SET role = 'admin' WHERE user_id = user_id AND institution_id = institution_id; -
Grant Additional Permissions
- Access to user management
- Resource management capabilities
- Reporting and analytics access
- System configuration rights
-
Notify User
- Send email confirmation
- Provide admin dashboard access
- Share admin documentation
- Schedule training if needed
Promote a User to Superadmin
-
Verify Superuser Authority
- Confirm authorization from system administrator
- Document promotion reason
- Update audit logs
-
Execute Promotion Function
SELECT make_superuser_by_email('admin@mindmeasure.co.uk'); -
Verify Permissions
SELECT * FROM memberships WHERE user_id = user_id AND role = 'superadmin'; -
Update Documentation
- Record in admin user list
- Update contact information
- Notify other superadmins
System Administration
Rotate Keys
-
Generate New Keys
# Generate new JWT secret openssl rand -base64 32 # Generate new service role key supabase gen keys -
Update Environment Variables
# Update production environment SUPABASE_JWT_SECRET=new_jwt_secret SUPABASE_SERVICE_ROLE_KEY=new_service_key -
Restart Services
# Restart Supabase services supabase restart # Restart application servers npm run restart:prod -
Verify Functionality
- Test authentication
- Verify API access
- Check admin dashboard
- Monitor error logs
Database Maintenance
-
Run Database Vacuum
VACUUM ANALYZE; -
Check Index Usage
SELECT schemaname, tablename, attname, n_distinct, correlation FROM pg_stats WHERE schemaname = 'public' ORDER BY tablename, attname; -
Monitor Query Performance
SELECT query, calls, total_time, mean_time FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10; -
Update Statistics
ANALYZE;
Backup and Recovery
-
Create Manual Backup
# Create database dump pg_dump -h db_host -U postgres -d mind_measure > backup_$(date +%Y%m%d).sql -
Verify Backup Integrity
# Test backup restoration psql -h test_host -U postgres -d test_db < backup_file.sql -
Test Recovery Procedure
- Simulate data loss scenario
- Restore from backup
- Verify data integrity
- Update recovery documentation
Security Operations
Incident Response
-
Initial Assessment
- Identify security incident type
- Assess potential impact
- Document initial findings
- Notify relevant stakeholders
-
Containment
- Isolate affected systems
- Preserve evidence
- Prevent further damage
- Implement temporary fixes
-
Investigation
- Analyze logs and data
- Identify attack vectors
- Determine scope of compromise
- Document findings
-
Recovery
- Restore systems from clean backups
- Implement security patches
- Update security configurations
- Monitor for recurring issues
-
Post-Incident
- Conduct lessons learned review
- Update security procedures
- Implement additional safeguards
- Report to relevant authorities
Access Review
-
User Access Audit
SELECT u.email, m.role, i.name as institution FROM auth.users u JOIN memberships m ON u.id = m.user_id JOIN institutions i ON m.institution_id = i.id ORDER BY i.name, m.role; -
Permission Validation
- Review user roles and permissions
- Verify access appropriateness
- Document access decisions
- Update access controls
-
Clean Up
- Remove inactive users
- Revoke unnecessary permissions
- Update role assignments
- Document changes
Monitoring and Alerting
Health Checks
-
Database Health
SELECT pg_database_size('mind_measure') as db_size, (SELECT count(*) FROM pg_stat_activity) as active_connections, (SELECT count(*) FROM pg_stat_activity WHERE state = 'active') as active_queries; -
Application Health
- Check API response times
- Monitor error rates
- Verify authentication flows
- Test critical user journeys
-
Infrastructure Health
- Server resource utilization
- Network connectivity
- Storage capacity
- Backup status
Alert Configuration
-
Critical Alerts
- Database connection failures
- Authentication system down
- High error rates
- Security incidents
-
Warning Alerts
- High resource utilization
- Slow query performance
- Backup failures
- Unusual access patterns
-
Info Alerts
- Successful deployments
- Scheduled maintenance
- User activity summaries
- System updates
Deployment Procedures
Production Deployment
-
Pre-Deployment
- Run full test suite
- Verify staging environment
- Review change documentation
- Notify stakeholders
-
Deployment
- Deploy to production
- Monitor deployment logs
- Verify functionality
- Check error rates
-
Post-Deployment
- Monitor system health
- Verify user functionality
- Check performance metrics
- Document any issues
Rollback Procedures
-
Identify Rollback Need
- Monitor error rates
- Check user reports
- Review system logs
- Assess impact
-
Execute Rollback
- Revert to previous version
- Restore database if needed
- Verify system stability
- Notify users if necessary
-
Post-Rollback
- Investigate root cause
- Plan fix for next deployment
- Update procedures
- Document lessons learned
Compliance and Auditing
Data Privacy Compliance
-
GDPR Compliance
- Data subject access requests
- Right to deletion
- Data portability
- Consent management
-
HIPAA Compliance
- Protected health information handling
- Access controls
- Audit trails
- Breach notification
-
Institutional Privacy
- Student data protection
- FERPA compliance
- Institutional policies
- Data retention policies
Audit Procedures
-
Regular Audits
- User access reviews
- Data usage audits
- Security configuration reviews
- Compliance assessments
-
Audit Documentation
- Audit findings
- Remediation plans
- Compliance status
- Improvement recommendations
-
Audit Follow-up
- Implement recommendations
- Monitor compliance
- Update procedures
- Schedule next audit