0817c81e67
EnsureSaasAdmin fail-closed 503 вне dev/testing → вся админка на боевом liderra.ru недоступна (все /api/admin/* падали). Настоящий saas-admin SSO (Yandex 360) ещё не готов (Б-1 + DO-4), но держать зону наглухо закрытой нельзя — заказчику нужна админка. Стопгэп (выбор заказчика): защита /admin + /api/admin/* переносится на nginx (отдельный HTTP Basic Auth, /etc/nginx/.htpasswd-admin), middleware зону больше не закрывает. Тест production-кейса переведён с 503 на 200. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
30 lines
1.4 KiB
PHP
30 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
|
|
/**
|
|
* J2 (Sprint 3F) — гейт SaaS-admin зоны.
|
|
*
|
|
* EnsureSaasAdmin на /api/admin/*: пропускает запрос во ВСЕХ окружениях.
|
|
* Защита боевой админ-зоны (/admin + /api/admin/*) перенесена на nginx
|
|
* (HTTP Basic Auth, отдельный пароль — /etc/nginx/.htpasswd-admin), потому
|
|
* что настоящий saas-admin SSO (Yandex 360) ещё не готов (Б-1 + DO-4).
|
|
* Ранее middleware fail-closed 503 вне dev/testing — это закрывало всю
|
|
* админку на проде наглухо; стопгэп заменил замок на nginx-дверь.
|
|
*/
|
|
uses(DatabaseTransactions::class);
|
|
|
|
test('/api/admin/* пропускается на testing-окружении', function () {
|
|
$this->getJson('/api/admin/tenants')->assertStatus(200);
|
|
});
|
|
|
|
test('/api/admin/* пропускается и на production (замок 503 снят, дверь держит nginx)', function () {
|
|
$this->app->detectEnvironment(fn () => 'production');
|
|
|
|
// Раньше тут был 503. Теперь приложение зону не закрывает — её держит
|
|
// nginx basic-auth (стопгэп до реального Yandex 360 SSO).
|
|
$this->getJson('/api/admin/tenants')->assertStatus(200);
|
|
});
|