/** * 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'); } };