authentik.providers.oauth2.migrations.0014_alter_refreshtoken_options_and_more
1# Generated by Django 4.1.6 on 2023-02-09 13:01 2 3import django.db.models.deletion 4from django.conf import settings 5from django.db import migrations, models 6 7import authentik.core.models 8import authentik.lib.generators 9import authentik.lib.utils.time 10 11 12class Migration(migrations.Migration): 13 dependencies = [ 14 migrations.swappable_dependency(settings.AUTH_USER_MODEL), 15 ("authentik_providers_oauth2", "0013_devicetoken"), 16 ] 17 18 operations = [ 19 migrations.AlterModelOptions( 20 name="refreshtoken", 21 options={ 22 "verbose_name": "OAuth2 Refresh Token", 23 "verbose_name_plural": "OAuth2 Refresh Tokens", 24 }, 25 ), 26 migrations.RenameField( 27 model_name="oauth2provider", 28 old_name="token_validity", 29 new_name="refresh_token_validity", 30 ), 31 migrations.RemoveField( 32 model_name="authorizationcode", 33 name="is_open_id", 34 ), 35 migrations.RemoveField( 36 model_name="refreshtoken", 37 name="access_token", 38 ), 39 migrations.RemoveField( 40 model_name="refreshtoken", 41 name="refresh_token", 42 ), 43 migrations.AddField( 44 model_name="oauth2provider", 45 name="access_token_validity", 46 field=models.TextField( 47 default="hours=1", 48 help_text="Tokens not valid on or after current time + this value (Format: hours=1;minutes=2;seconds=3).", 49 validators=[authentik.lib.utils.time.timedelta_string_validator], 50 ), 51 ), 52 migrations.AddField( 53 model_name="refreshtoken", 54 name="token", 55 field=models.TextField(default=authentik.lib.generators.generate_key), 56 ), 57 migrations.AlterField( 58 model_name="oauth2provider", 59 name="sub_mode", 60 field=models.TextField( 61 choices=[ 62 ("hashed_user_id", "Based on the Hashed User ID"), 63 ("user_id", "Based on user ID"), 64 ("user_username", "Based on the username"), 65 ( 66 "user_email", 67 "Based on the User's Email. This is recommended over the UPN method.", 68 ), 69 ( 70 "user_upn", 71 "Based on the User's UPN, only works if user has a 'upn' attribute set. Use this method only if you have different UPN and Mail domains.", 72 ), 73 ], 74 default="hashed_user_id", 75 help_text="Configure what data should be used as unique User Identifier. For most cases, the default should be fine.", 76 ), 77 ), 78 migrations.CreateModel( 79 name="AccessToken", 80 fields=[ 81 ( 82 "id", 83 models.AutoField( 84 auto_created=True, primary_key=True, serialize=False, verbose_name="ID" 85 ), 86 ), 87 ( 88 "expires", 89 models.DateTimeField(default=authentik.core.models.default_token_duration), 90 ), 91 ("expiring", models.BooleanField(default=True)), 92 ("revoked", models.BooleanField(default=False)), 93 ("_scope", models.TextField(default="", verbose_name="Scopes")), 94 ("token", models.TextField()), 95 ("_id_token", models.TextField()), 96 ( 97 "provider", 98 models.ForeignKey( 99 on_delete=django.db.models.deletion.CASCADE, 100 to="authentik_providers_oauth2.oauth2provider", 101 ), 102 ), 103 ( 104 "user", 105 models.ForeignKey( 106 on_delete=django.db.models.deletion.CASCADE, 107 to=settings.AUTH_USER_MODEL, 108 verbose_name="User", 109 ), 110 ), 111 ], 112 options={ 113 "verbose_name": "OAuth2 Access Token", 114 "verbose_name_plural": "OAuth2 Access Tokens", 115 }, 116 ), 117 ]
class
Migration(django.db.migrations.migration.Migration):
13class Migration(migrations.Migration): 14 dependencies = [ 15 migrations.swappable_dependency(settings.AUTH_USER_MODEL), 16 ("authentik_providers_oauth2", "0013_devicetoken"), 17 ] 18 19 operations = [ 20 migrations.AlterModelOptions( 21 name="refreshtoken", 22 options={ 23 "verbose_name": "OAuth2 Refresh Token", 24 "verbose_name_plural": "OAuth2 Refresh Tokens", 25 }, 26 ), 27 migrations.RenameField( 28 model_name="oauth2provider", 29 old_name="token_validity", 30 new_name="refresh_token_validity", 31 ), 32 migrations.RemoveField( 33 model_name="authorizationcode", 34 name="is_open_id", 35 ), 36 migrations.RemoveField( 37 model_name="refreshtoken", 38 name="access_token", 39 ), 40 migrations.RemoveField( 41 model_name="refreshtoken", 42 name="refresh_token", 43 ), 44 migrations.AddField( 45 model_name="oauth2provider", 46 name="access_token_validity", 47 field=models.TextField( 48 default="hours=1", 49 help_text="Tokens not valid on or after current time + this value (Format: hours=1;minutes=2;seconds=3).", 50 validators=[authentik.lib.utils.time.timedelta_string_validator], 51 ), 52 ), 53 migrations.AddField( 54 model_name="refreshtoken", 55 name="token", 56 field=models.TextField(default=authentik.lib.generators.generate_key), 57 ), 58 migrations.AlterField( 59 model_name="oauth2provider", 60 name="sub_mode", 61 field=models.TextField( 62 choices=[ 63 ("hashed_user_id", "Based on the Hashed User ID"), 64 ("user_id", "Based on user ID"), 65 ("user_username", "Based on the username"), 66 ( 67 "user_email", 68 "Based on the User's Email. This is recommended over the UPN method.", 69 ), 70 ( 71 "user_upn", 72 "Based on the User's UPN, only works if user has a 'upn' attribute set. Use this method only if you have different UPN and Mail domains.", 73 ), 74 ], 75 default="hashed_user_id", 76 help_text="Configure what data should be used as unique User Identifier. For most cases, the default should be fine.", 77 ), 78 ), 79 migrations.CreateModel( 80 name="AccessToken", 81 fields=[ 82 ( 83 "id", 84 models.AutoField( 85 auto_created=True, primary_key=True, serialize=False, verbose_name="ID" 86 ), 87 ), 88 ( 89 "expires", 90 models.DateTimeField(default=authentik.core.models.default_token_duration), 91 ), 92 ("expiring", models.BooleanField(default=True)), 93 ("revoked", models.BooleanField(default=False)), 94 ("_scope", models.TextField(default="", verbose_name="Scopes")), 95 ("token", models.TextField()), 96 ("_id_token", models.TextField()), 97 ( 98 "provider", 99 models.ForeignKey( 100 on_delete=django.db.models.deletion.CASCADE, 101 to="authentik_providers_oauth2.oauth2provider", 102 ), 103 ), 104 ( 105 "user", 106 models.ForeignKey( 107 on_delete=django.db.models.deletion.CASCADE, 108 to=settings.AUTH_USER_MODEL, 109 verbose_name="User", 110 ), 111 ), 112 ], 113 options={ 114 "verbose_name": "OAuth2 Access Token", 115 "verbose_name_plural": "OAuth2 Access Tokens", 116 }, 117 ), 118 ]
The base class for all migrations.
Migration files will import this from django.db.migrations.Migration and subclass it as a class called Migration. It will have one or more of the following attributes:
- operations: A list of Operation instances, probably from django.db.migrations.operations
- dependencies: A list of tuples of (app_path, migration_name)
- run_before: A list of tuples of (app_path, migration_name)
- replaces: A list of migration_names
Note that all migrations come out of migrations and into the Loader or Graph as instances, having been initialized with their app label and name.
dependencies =
[('authentik_core', '__first__'), ('authentik_providers_oauth2', '0013_devicetoken')]
operations =
[<AlterModelOptions name='refreshtoken', options={'verbose_name': 'OAuth2 Refresh Token', 'verbose_name_plural': 'OAuth2 Refresh Tokens'}>, <RenameField model_name='oauth2provider', old_name='token_validity', new_name='refresh_token_validity'>, <RemoveField model_name='authorizationcode', name='is_open_id'>, <RemoveField model_name='refreshtoken', name='access_token'>, <RemoveField model_name='refreshtoken', name='refresh_token'>, <AddField model_name='oauth2provider', name='access_token_validity', field=<django.db.models.fields.TextField>>, <AddField model_name='refreshtoken', name='token', field=<django.db.models.fields.TextField>>, <AlterField model_name='oauth2provider', name='sub_mode', field=<django.db.models.fields.TextField>>, <CreateModel name='AccessToken', fields=[('id', <django.db.models.fields.AutoField>), ('expires', <django.db.models.fields.DateTimeField>), ('expiring', <django.db.models.fields.BooleanField>), ('revoked', <django.db.models.fields.BooleanField>), ('_scope', <django.db.models.fields.TextField>), ('token', <django.db.models.fields.TextField>), ('_id_token', <django.db.models.fields.TextField>), ('provider', <django.db.models.fields.related.ForeignKey>), ('user', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'OAuth2 Access Token', 'verbose_name_plural': 'OAuth2 Access Tokens'}>]