Files
SGF/scripts/budget-demo-status.php
2026-10-29 18:43:29 +02:00

14 lines
1.3 KiB
PHP

<?php
$settings=json_decode(file_get_contents('C:/laragon/data/sgf-tempo/secrets/budget-demo.json'),true,32,JSON_THROW_ON_ERROR);
foreach($settings as $k=>$v){putenv($k.'='.$v);$_ENV[$k]=$_SERVER[$k]=$v;}
require __DIR__.'/../vendor/autoload.php';$app=require __DIR__.'/../bootstrap/app.php';$app->make(\Illuminate\Contracts\Console\Kernel::class)->bootstrap();
\App\Modules\Purchasing\BudgetAdapter::guard();
$db=\Illuminate\Support\Facades\DB::connection();
$role=$db->selectOne('select rolsuper,rolcreatedb,rolcreaterole from pg_roles where rolname=current_user');
if($role->rolsuper||$role->rolcreatedb||$role->rolcreaterole)throw new RuntimeException('Restricted test role required.');
$tables=[];foreach(['users','cb_budgets','cb_budget_entries','cb_budget_consumptions','cb_ui_commands'] as $t)$tables[$t]=$db->table($t)->count();
$report=['version'=>'SGF-BUDGET-WORKSPACE-SIM-v1','url'=>'http://127.0.0.1:8003','isolated_database'=>$db->getDatabaseName(),'restricted_role'=>true,'synthetic_only'=>true,'counts'=>$tables,'core_sha256'=>hash_file('sha256',__DIR__.'/../packages/budget-control/src/BudgetControl.php'),'checked_at'=>gmdate('c')];
file_put_contents(__DIR__.'/../docs/proofs/budget-demo-availability.json',json_encode($report,JSON_PRETTY_PRINT|JSON_THROW_ON_ERROR).PHP_EOL);
echo json_encode($report,JSON_PRETTY_PRINT|JSON_THROW_ON_ERROR).PHP_EOL;