Integrations
Tank Safe IMS provides several integration capabilities to connect your inspection workflows with existing operational systems. This page covers the current integration options and planned features for connecting Tank Safe with your wider operational stack.
Current Integration Capabilities
Admin API (Edge Functions)
Tank Safe currently provides admin-focused API endpoints via Supabase Edge Functions for user management operations:
- User Invitations: Programmatically invite new users to the system
- User Management: Update user profiles, roles, and permissions
- MFA Management: Check and manage multi-factor authentication status
- User Deletion: Remove users from the system
These functions are located in supabase/functions/ and are primarily used by administrators through the web interface.
Authentication
Admin API functions require authentication using service role keys or admin JWT tokens:
// Example: Using service role key for admin operations
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_SERVICE_ROLE_KEY
)
Data Export Scripts
Form Data Validation Script
A Node.js script (check_form_data.js) is available for validating and inspecting form data in the database:
# Run form data validation
npm run check-form-data
This script:
- Validates form data structure and integrity
- Checks inspection data relationships
- Provides debugging information for form submissions
- Can be used for data migration validation
Integration Use Cases
Current Capabilities
Automated User Onboarding
// Example: Bulk user invitation via admin functions
const { data, error } = await supabase.functions.invoke('admin-invite-user', {
body: {
email: 'new.inspector@company.com',
role: 'inspector',
metadata: {
department: 'Safety',
location: 'Facility A'
}
}
})
Data Validation and Auditing
// Example: Using the form validation script
import { checkFormData } from './check_form_data.js'
// Validate all form data in the system
await checkFormData()
Security Considerations
API Security
- Authentication: JWT tokens with role-based access
- Authorization: Function-level permissions
- Rate Limiting: Configurable request limits
- Audit Logging: All API calls logged for compliance
Data Protection
- Encryption: Data encrypted at rest and in transit
- PII Handling: Sensitive data masked in logs
- Retention: Configurable data retention policies
- Compliance: GDPR and industry-specific compliance
Implementation Guide
Setting Up Current Integrations
-
Configure Environment Variables
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key -
Deploy Edge Functions
supabase functions deploy -
Test Admin Functions
// Test user invitation
const result = await supabase.functions.invoke('admin-invite-user', {
body: { email: 'test@example.com', role: 'inspector' }
})
Troubleshooting
Common Integration Issues
Edge Function Errors
Issue: Function returns 401 Unauthorized
# Check service role key
supabase secrets list
supabase secrets set SERVICE_ROLE_KEY=your-key
Issue: Function timeout
- Increase function timeout in Supabase dashboard
- Optimize function logic for performance
Data Export Issues
Issue: Export script fails
- Check database permissions
- Verify environment variables
- Check available disk space
Monitoring and Logging
- Function Logs:
supabase functions logs - Database Logs: Supabase dashboard monitoring
- Application Logs: Check browser console and server logs
- Audit Trail: Review admin action logs
Support and Partnership
For integration planning and custom connector development:
- Documentation: Check this page for updates
- GitHub Issues: Report integration bugs and request features
This documentation reflects the current state of integrations as of October 2025.