Files
drone-detector/server/migrations/20250914-add-allow-registration.js
2025-09-17 06:41:05 +02:00

43 lines
1.7 KiB
JavaScript

/**
* Migration: Add allow_registration field to tenants table
* This field controls whether self-registration is allowed for local auth tenants
*/
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
try {
// Check if tenants table exists first
const tables = await queryInterface.showAllTables();
if (!tables.includes('tenants')) {
console.log('⚠️ Tenants table does not exist yet, skipping allow_registration migration...');
return;
}
await queryInterface.addColumn('tenants', 'allow_registration', {
type: Sequelize.BOOLEAN,
defaultValue: false, // Default to false for security
allowNull: false,
comment: 'Whether self-registration is allowed for local auth'
});
// For existing tenants, you might want to enable registration for specific tenants
// Uncomment the line below to enable registration for all existing tenants (NOT RECOMMENDED for production)
// await queryInterface.sequelize.query("UPDATE tenants SET allow_registration = true WHERE auth_provider = 'local'");
console.log('✅ Added allow_registration field to tenants table');
console.log('⚠️ Registration is disabled by default for all tenants for security');
console.log('💡 To enable registration for a tenant, update the allow_registration field to true');
} catch (error) {
console.log('⚠️ Migration skipped - tables may not exist yet:', error.message);
// Don't throw error, just skip this migration if tables don't exist
}
},
down: async (queryInterface, Sequelize) => {
await queryInterface.removeColumn('tenants', 'allow_registration');
console.log('✅ Removed allow_registration field from tenants table');
}
};