fix(pd): PdSubjectRequest::$connection = pgsql_supplier (hole #4 prod fix)

crm_app_user (default pgsql connection) не имеет INSERT/UPDATE прав на
pd_subject_requests — это SaaS-уровневая таблица. На проде Eloquent
PdSubjectRequest::create() падал с Insufficient privilege.

Фикс: protected $connection = 'pgsql_supplier' (BYPASSRLS, crm_supplier_worker)
— симметрично существующему контроллеру и сервису. Альтернатива (GRANT для
crm_app_user) размывает границу tenant-уровня (db/00_create_roles.sql).

Smoke прод: create через tinker → row.id=1, deadline_at +30 дней auto-trigger
сработал. Cleanup row выполнен.

Tests: 12/12 passed (67 assertions, 2.5s).
This commit is contained in:
Дмитрий
2026-05-23 12:27:57 +03:00
parent 11822e3803
commit f5482f415c
+8
View File
@@ -32,6 +32,14 @@ use Illuminate\Support\Facades\DB;
*/
class PdSubjectRequest extends Model
{
/**
* SaaS-уровневая таблица crm_app_user (default) не имеет INSERT/UPDATE прав.
* Используем pgsql_supplier (BYPASSRLS / crm_supplier_worker), который имеет
* полный доступ. Альтернатива GRANT для crm_app_user, но это размывает
* границу tenant-уровня (см. db/00_create_roles.sql).
*/
protected $connection = 'pgsql_supplier';
protected $table = 'pd_subject_requests';
public $timestamps = false;