/** * 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) => { // Check if the column already exists const tableDescription = await queryInterface.describeTable('tenants'); if (!tableDescription.allow_registration) { 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'); } else { console.log('⚠️ Column allow_registration already exists, skipping...'); } }, down: async (queryInterface, Sequelize) => { await queryInterface.removeColumn('tenants', 'allow_registration'); console.log('✅ Removed allow_registration field from tenants table'); } };