privacy: Löschfristen für Aktivitätsverlauf (395 Tage) und API-Zugriffsprotokoll (90 Tage)
Beide Tabellen hatten keine Frist; activity_events trägt Namen und Adressen im Klartext, api_usage_logs IP und User-Agent. MassPrunable, täglich 04:05 über model:prune, Fristen in config/monitoring.php (Roadmap 4.2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
d1b9ffdcf1
commit
002dc08b5c
5 changed files with 127 additions and 4 deletions
|
|
@ -3,6 +3,8 @@
|
|||
namespace App\Models;
|
||||
|
||||
use App\Enums\ActivityType;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\MassPrunable;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphTo;
|
||||
|
|
@ -13,6 +15,8 @@ use Illuminate\Database\Eloquent\Relations\MorphTo;
|
|||
*/
|
||||
class ActivityEvent extends Model
|
||||
{
|
||||
use MassPrunable;
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
|
|
@ -50,4 +54,14 @@ class ActivityEvent extends Model
|
|||
{
|
||||
return $this->morphTo();
|
||||
}
|
||||
|
||||
/**
|
||||
* Einträge nach der Löschfrist (config monitoring.retention, 395 Tage).
|
||||
*
|
||||
* @return Builder<static>
|
||||
*/
|
||||
public function prunable(): Builder
|
||||
{
|
||||
return static::query()->where('occurred_at', '<', now()->subDays((int) config('monitoring.retention.activity_events_days')));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,16 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\MassPrunable;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Laravel\Sanctum\PersonalAccessToken;
|
||||
|
||||
class ApiUsageLog extends Model
|
||||
{
|
||||
use MassPrunable;
|
||||
|
||||
public $timestamps = false;
|
||||
|
||||
protected $fillable = [
|
||||
|
|
@ -45,4 +49,14 @@ class ApiUsageLog extends Model
|
|||
{
|
||||
return $this->belongsTo(PersonalAccessToken::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Zugriffe nach der Löschfrist (config monitoring.retention, 90 Tage).
|
||||
*
|
||||
* @return Builder<static>
|
||||
*/
|
||||
public function prunable(): Builder
|
||||
{
|
||||
return static::query()->where('requested_at', '<', now()->subDays((int) config('monitoring.retention.api_usage_logs_days')));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue