68 lines
2.1 KiB
Python
68 lines
2.1 KiB
Python
import paramiko
|
|
|
|
c = paramiko.SSHClient()
|
|
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c.connect('160.187.143.253', username='root', password=';ur7n)LC1BQ;')
|
|
|
|
script = """
|
|
import { db } from './drizzle/db';
|
|
import { tenants, users } from './drizzle/schema';
|
|
import { eq } from 'drizzle-orm';
|
|
import { QuantumOrchestrator } from './lib/quantum-orchestrator';
|
|
|
|
async function test() {
|
|
const userData = await db.select().from(users).where(eq(users.email, 'keanu@pc24.id')).limit(1);
|
|
const user = userData[0];
|
|
const tenantData = await db.select().from(tenants).where(eq(tenants.id, user.tenantId)).limit(1);
|
|
const tenant = tenantData[0];
|
|
|
|
const rawLicenses = tenant.licenses || '{}';
|
|
const tenantLicParsed = JSON.parse(rawLicenses);
|
|
|
|
let tenantLicNormalized: Record<string, string> = {};
|
|
if (Array.isArray(tenantLicParsed)) {
|
|
tenantLicParsed.forEach((k: string) => tenantLicNormalized[k] = 'GRANTED');
|
|
} else {
|
|
tenantLicNormalized = tenantLicParsed || {};
|
|
}
|
|
|
|
const userLicParsed = JSON.parse(user.licenses || '{}');
|
|
let userLicNormalized: Record<string, string> = {};
|
|
if (Array.isArray(userLicParsed)) {
|
|
userLicParsed.forEach((k: string) => userLicNormalized[k] = 'GRANTED');
|
|
} else {
|
|
userLicNormalized = userLicParsed || {};
|
|
}
|
|
|
|
const capabilities = QuantumOrchestrator.resolve(
|
|
tenantLicNormalized,
|
|
userLicNormalized,
|
|
!!tenant.isActive
|
|
);
|
|
|
|
console.log("UI MATRIX FOR KEANU:");
|
|
console.log(JSON.stringify(capabilities.ui, null, 2));
|
|
process.exit(0);
|
|
}
|
|
test();
|
|
"""
|
|
|
|
def r(cmd):
|
|
print(f"Executing: {cmd}")
|
|
_, so, se = c.exec_command(cmd)
|
|
stdout = so.read().decode('utf-8', 'replace').strip()
|
|
stderr = se.read().decode('utf-8', 'replace').strip()
|
|
if stdout: print(f"STDOUT:\n{stdout}")
|
|
if stderr: print(f"STDERR:\n{stderr}")
|
|
return stdout
|
|
|
|
# Upload script to VPS
|
|
sftp = c.open_sftp()
|
|
with sftp.file('/var/www/iam/test_quantum.ts', 'w') as f:
|
|
f.write(script)
|
|
sftp.close()
|
|
|
|
r("cd /var/www/iam && npx tsx test_quantum.ts")
|
|
|
|
c.close()
|