diff --git a/authentik/events/migrations/0011_alter_systemtask_options.py b/authentik/events/migrations/0011_alter_systemtask_options.py new file mode 100644 index 0000000000..1784ef7ea5 --- /dev/null +++ b/authentik/events/migrations/0011_alter_systemtask_options.py @@ -0,0 +1,22 @@ +# Generated by Django 5.1.11 on 2025-06-24 15:36 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("authentik_events", "0010_rename_group_notificationrule_destination_group_and_more"), + ] + + operations = [ + migrations.AlterModelOptions( + name="systemtask", + options={ + "default_permissions": (), + "permissions": (), + "verbose_name": "System Task", + "verbose_name_plural": "System Tasks", + }, + ), + ] diff --git a/authentik/events/migrations/0011_delete_systemtask.py b/authentik/events/migrations/0011_delete_systemtask.py deleted file mode 100644 index 34993eb83e..0000000000 --- a/authentik/events/migrations/0011_delete_systemtask.py +++ /dev/null @@ -1,16 +0,0 @@ -# Generated by Django 5.1.11 on 2025-06-18 12:43 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("authentik_events", "0010_rename_group_notificationrule_destination_group_and_more"), - ] - - operations = [ - migrations.DeleteModel( - name="SystemTask", - ), - ] diff --git a/authentik/events/models.py b/authentik/events/models.py index 12ae297ed8..b1c369dcfa 100644 --- a/authentik/events/models.py +++ b/authentik/events/models.py @@ -611,3 +611,45 @@ class NotificationWebhookMapping(PropertyMapping): class Meta: verbose_name = _("Webhook Mapping") verbose_name_plural = _("Webhook Mappings") + + +class TaskStatus(models.TextChoices): + """DEPRECATED do not use""" + + UNKNOWN = "unknown" + SUCCESSFUL = "successful" + WARNING = "warning" + ERROR = "error" + + +class SystemTask(ExpiringModel): + """DEPRECATED do not use""" + + uuid = models.UUIDField(primary_key=True, editable=False, default=uuid4) + name = models.TextField() + uid = models.TextField(null=True) + + start_timestamp = models.DateTimeField(default=now) + finish_timestamp = models.DateTimeField(default=now) + duration = models.FloatField(default=0) + + status = models.TextField(choices=TaskStatus.choices) + + description = models.TextField(null=True) + messages = models.JSONField() + + task_call_module = models.TextField() + task_call_func = models.TextField() + task_call_args = models.JSONField(default=list) + task_call_kwargs = models.JSONField(default=dict) + + def __str__(self) -> str: + return f"System Task {self.name}" + + class Meta: + unique_together = (("name", "uid"),) + default_permissions = () + permissions = () + verbose_name = _("System Task") + verbose_name_plural = _("System Tasks") + indexes = ExpiringModel.Meta.indexes