HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //tmp/360live-create-test-client.cjs
const fs=require('fs');
function loadEnv(p){if(!fs.existsSync(p)) return; for(const line of fs.readFileSync(p,'utf8').split(/\r?\n/)){const t=line.trim(); if(!t||t.startsWith('#')||!t.includes('=')) continue; const [k,...r]=t.split('='); if(process.env[k.trim()]===undefined) process.env[k.trim()]=r.join('=').trim().replace(/^['"]|['"]$/g,'')}}
loadEnv('/home/360live.stream/services/api/.env');
const apiUrl=process.env.HOSTBILL_API_URL, api_id=process.env.HOSTBILL_API_ID, api_key=process.env.HOSTBILL_API_SECRET;
const stamp=new Date().toISOString().replace(/[-:.TZ]/g,'').slice(0,14);
const email=`360live-entitlement-test-${stamp}@360live.stream`;
const password=`T-${stamp}-${Math.random().toString(36).slice(2,10)}aA1!`;
async function call(call, extra){const body=new URLSearchParams({api_id,api_key,call,...extra}); const r=await fetch(apiUrl,{method:'POST',headers:{'content-type':'application/x-www-form-urlencoded'},body}); const txt=await r.text(); let j=null; try{j=JSON.parse(txt)}catch{} return {status:r.status,json:j,text:txt};}
(async()=>{
 const out={generated_at:new Date().toISOString(), ok:false, call:'addClient', created:false, client_id:null, email_redacted:email.replace(/^[^@]+/,'[test-client]'), notifyclient:'no', revenue_claim:false, error:null};
 try{
  const res=await call('addClient',{email,password,password2:password,firstname:'360live',lastname:'Entitlement Test',companyname:'360live.stream entitlement test - no revenue',notifyclient:'no',type:'Company',country:'DE',status:'Active',brand:'Panomity GmbH'});
  out.status=res.status; out.success=Boolean(res.json?.success); out.client_id=res.json?.client_id?String(res.json.client_id):null; out.created=Boolean(out.client_id); out.ok=Boolean(out.client_id); if(!out.ok) out.error=String(res.json?.error||res.json?.info||res.text||'addClient_failed').slice(0,240);
 }catch(e){out.error=e.message||String(e)}
 fs.writeFileSync('/home/360live.stream/var/growth/latest-hostbill-test-client.json', JSON.stringify(out,null,2)+'\n','utf8');
 console.log(JSON.stringify({ok:out.ok,created:out.created,client_id:out.client_id,email_redacted:out.email_redacted,notifyclient:out.notifyclient,revenue_claim:out.revenue_claim,error:out.error},null,2));
 process.exit(out.ok?0:1);
})();