59 lines
1.5 KiB
Bash
59 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# Direct Database Tenant Creation
|
|
# For when you need to create tenants via database
|
|
|
|
TENANT_NAME="${1:-Example Corp}"
|
|
TENANT_SLUG="${2:-example}"
|
|
|
|
echo "Creating tenant in database: $TENANT_NAME"
|
|
|
|
# Execute in backend container
|
|
docker exec -it drone-detection-backend node -e "
|
|
const { Tenant, User } = require('./models');
|
|
|
|
async function createTenant() {
|
|
try {
|
|
// Create the tenant
|
|
const tenant = await Tenant.create({
|
|
name: '$TENANT_NAME',
|
|
slug: '$TENANT_SLUG',
|
|
subscription_type: 'basic',
|
|
is_active: true,
|
|
auth_provider: 'local',
|
|
features: {
|
|
max_devices: 50,
|
|
max_users: 10,
|
|
api_rate_limit: 5000,
|
|
data_retention_days: 365,
|
|
features: ['basic_detection', 'alerts', 'dashboard', 'analytics']
|
|
},
|
|
admin_email: 'admin@$TENANT_SLUG.com'
|
|
});
|
|
|
|
console.log('✅ Tenant created:', tenant.toJSON());
|
|
|
|
// Create default admin user for this tenant
|
|
const adminUser = await User.create({
|
|
username: 'admin',
|
|
email: 'admin@$TENANT_SLUG.com',
|
|
password: 'admin123', // Will be hashed automatically
|
|
role: 'admin',
|
|
tenant_id: tenant.id,
|
|
is_active: true
|
|
});
|
|
|
|
console.log('✅ Admin user created for tenant');
|
|
console.log('🌐 Tenant URL: https://$TENANT_SLUG.dev.uggla.uamils.com');
|
|
console.log('🔑 Login: admin / admin123');
|
|
|
|
} catch (error) {
|
|
console.error('❌ Error creating tenant:', error.message);
|
|
} finally {
|
|
process.exit(0);
|
|
}
|
|
}
|
|
|
|
createTenant();
|
|
"
|