2026-06-21 08:11:02 +03:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
|
|
return [
|
|
|
|
|
|
// Логины nginx HTTP Basic Auth (.htpasswd-admin), допущенные в saas-admin зону.
|
|
|
|
|
|
// CSV из env; дефолт совпадает с прод-.htpasswd (единственный логин — admin).
|
|
|
|
|
|
'basic_auth_allowlist' => array_values(array_filter(array_map(
|
|
|
|
|
|
'trim',
|
|
|
|
|
|
explode(',', (string) env('ADMIN_ALLOWED_USERS', 'admin')),
|
|
|
|
|
|
))),
|
|
|
|
|
|
|
|
|
|
|
|
// Включение fail-closed гейта. В local/testing — выкл (nginx нет, тесты
|
|
|
|
|
|
// аутентифицируются иначе); на проде/staging — вкл. Только env() — config
|
|
|
|
|
|
// грузится до готовности контейнера, app()->environment() здесь падает.
|
|
|
|
|
|
'basic_auth_gate' => (bool) env(
|
|
|
|
|
|
'ADMIN_GATE_ENFORCED',
|
|
|
|
|
|
! in_array(env('APP_ENV', 'production'), ['local', 'testing'], true),
|
|
|
|
|
|
),
|
2026-06-21 11:32:53 +03:00
|
|
|
|
|
|
|
|
|
|
// Системный saas_admin_users.id для audit-trail admin-действий (FK
|
|
|
|
|
|
// saas_admin_audit_log.admin_user_id). На проде рантайм-роль crm_app_user НЕ
|
|
|
|
|
|
// имеет прав на saas_admin_users (админ-креды изолированы) → задаём id здесь,
|
|
|
|
|
|
// чтобы не обращаться к таблице. null (dev/test, суперюзер) → fallback на
|
|
|
|
|
|
// авто-создание стаба. На проде — ADMIN_AUDIT_SYSTEM_USER_ID=1 (сид-стаб).
|
|
|
|
|
|
'audit_system_user_id' => env('ADMIN_AUDIT_SYSTEM_USER_ID') !== null
|
|
|
|
|
|
? (int) env('ADMIN_AUDIT_SYSTEM_USER_ID')
|
|
|
|
|
|
: null,
|
2026-06-21 08:11:02 +03:00
|
|
|
|
];
|