diff --git a/src/backend/core/migrations/0015_alter_accountservice_api_key.py b/src/backend/core/migrations/0015_alter_accountservice_api_key.py new file mode 100644 index 0000000..3c7997e --- /dev/null +++ b/src/backend/core/migrations/0015_alter_accountservice_api_key.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.8 on 2025-04-10 07:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0014_accountservice'), + ] + + operations = [ + migrations.AlterField( + model_name='accountservice', + name='api_key', + field=models.CharField(max_length=255, verbose_name='api key'), + ), + ] diff --git a/src/backend/core/models.py b/src/backend/core/models.py index 377c380..d89fc95 100644 --- a/src/backend/core/models.py +++ b/src/backend/core/models.py @@ -1107,7 +1107,6 @@ class AccountService(BaseModel): api_key = models.CharField( _("api key"), max_length=255, - default=secrets.token_urlsafe(32), ) scopes = ArrayField( models.CharField(max_length=255, validators=[validate_account_service_scope]), @@ -1123,6 +1122,14 @@ class AccountService(BaseModel): def __str__(self): return self.name + def save(self, *args, **kwargs): + """ + Override save method to generate a new api_key if it is not set. + """ + if not self.api_key: + self.api_key = secrets.token_urlsafe(32) + return super().save(*args, **kwargs) + @property def is_authenticated(self): """Indicate if the account service is authenticated."""