authentik.core.migrations.0001_initial
1# Generated by Django 3.0.6 on 2020-05-19 22:07 2 3import uuid 4 5import django.contrib.auth.models 6import django.contrib.auth.validators 7import django.db.models.deletion 8import django.utils.timezone 9from django.conf import settings 10from django.db import migrations, models 11 12import authentik.core.models 13 14 15class Migration(migrations.Migration): 16 initial = True 17 18 dependencies = [ 19 ("authentik_policies", "0001_initial"), 20 ("auth", "0011_update_proxy_permissions"), 21 ] 22 23 operations = [ 24 migrations.CreateModel( 25 name="User", 26 fields=[ 27 ( 28 "id", 29 models.AutoField( 30 auto_created=True, 31 primary_key=True, 32 serialize=False, 33 verbose_name="ID", 34 ), 35 ), 36 ("password", models.CharField(max_length=128, verbose_name="password")), 37 ( 38 "last_login", 39 models.DateTimeField(blank=True, null=True, verbose_name="last login"), 40 ), 41 ( 42 "is_superuser", 43 models.BooleanField( 44 default=False, 45 help_text=( 46 "Designates that this user has all permissions without explicitly" 47 " assigning them." 48 ), 49 verbose_name="superuser status", 50 ), 51 ), 52 ( 53 "username", 54 models.CharField( 55 error_messages={"unique": "A user with that username already exists."}, 56 help_text=( 57 "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only." 58 ), 59 max_length=150, 60 unique=True, 61 validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], 62 verbose_name="username", 63 ), 64 ), 65 ( 66 "first_name", 67 models.CharField(blank=True, max_length=30, verbose_name="first name"), 68 ), 69 ( 70 "last_name", 71 models.CharField(blank=True, max_length=150, verbose_name="last name"), 72 ), 73 ( 74 "email", 75 models.EmailField(blank=True, max_length=254, verbose_name="email address"), 76 ), 77 ( 78 "is_staff", 79 models.BooleanField( 80 default=False, 81 help_text="Designates whether the user can log into this admin site.", 82 verbose_name="staff status", 83 ), 84 ), 85 ( 86 "is_active", 87 models.BooleanField( 88 default=True, 89 help_text=( 90 "Designates whether this user should be treated as active. Unselect" 91 " this instead of deleting accounts." 92 ), 93 verbose_name="active", 94 ), 95 ), 96 ( 97 "date_joined", 98 models.DateTimeField( 99 default=django.utils.timezone.now, verbose_name="date joined" 100 ), 101 ), 102 ("uuid", models.UUIDField(default=uuid.uuid4, editable=False)), 103 ("name", models.TextField(help_text="User's display name.")), 104 ("password_change_date", models.DateTimeField(auto_now_add=True)), 105 ( 106 "attributes", 107 models.JSONField(blank=True, default=dict), 108 ), 109 ], 110 options={ 111 "permissions": (("reset_user_password", "Reset Password"),), 112 }, 113 bases=(models.Model,), 114 managers=[ 115 ("objects", django.contrib.auth.models.UserManager()), 116 ], 117 ), 118 migrations.CreateModel( 119 name="PropertyMapping", 120 fields=[ 121 ( 122 "pm_uuid", 123 models.UUIDField( 124 default=uuid.uuid4, 125 editable=False, 126 primary_key=True, 127 serialize=False, 128 ), 129 ), 130 ("name", models.TextField()), 131 ("expression", models.TextField()), 132 ], 133 options={ 134 "verbose_name": "Property Mapping", 135 "verbose_name_plural": "Property Mappings", 136 }, 137 ), 138 migrations.CreateModel( 139 name="Source", 140 fields=[ 141 ( 142 "policybindingmodel_ptr", 143 models.OneToOneField( 144 auto_created=True, 145 on_delete=django.db.models.deletion.CASCADE, 146 parent_link=True, 147 primary_key=True, 148 serialize=False, 149 to="authentik_policies.PolicyBindingModel", 150 ), 151 ), 152 ("name", models.TextField(help_text="Source's display Name.")), 153 ( 154 "slug", 155 models.SlugField(help_text="Internal source name, used in URLs."), 156 ), 157 ("enabled", models.BooleanField(default=True)), 158 ( 159 "property_mappings", 160 models.ManyToManyField( 161 blank=True, default=None, to="authentik_core.PropertyMapping" 162 ), 163 ), 164 ], 165 bases=("authentik_policies.policybindingmodel",), 166 ), 167 migrations.CreateModel( 168 name="UserSourceConnection", 169 fields=[ 170 ( 171 "id", 172 models.AutoField( 173 auto_created=True, 174 primary_key=True, 175 serialize=False, 176 verbose_name="ID", 177 ), 178 ), 179 ("created", models.DateTimeField(auto_now_add=True)), 180 ("last_updated", models.DateTimeField(auto_now=True)), 181 ( 182 "source", 183 models.ForeignKey( 184 on_delete=django.db.models.deletion.CASCADE, 185 to="authentik_core.Source", 186 ), 187 ), 188 ( 189 "user", 190 models.ForeignKey( 191 on_delete=django.db.models.deletion.CASCADE, 192 to=settings.AUTH_USER_MODEL, 193 ), 194 ), 195 ], 196 options={ 197 "unique_together": {("user", "source")}, 198 }, 199 ), 200 migrations.CreateModel( 201 name="Token", 202 fields=[ 203 ( 204 "token_uuid", 205 models.UUIDField( 206 default=uuid.uuid4, 207 editable=False, 208 primary_key=True, 209 serialize=False, 210 ), 211 ), 212 ( 213 "expires", 214 models.DateTimeField(default=authentik.core.models.default_token_duration), 215 ), 216 ("expiring", models.BooleanField(default=True)), 217 ("description", models.TextField(blank=True, default="")), 218 ( 219 "user", 220 models.ForeignKey( 221 on_delete=django.db.models.deletion.CASCADE, 222 related_name="+", 223 to=settings.AUTH_USER_MODEL, 224 ), 225 ), 226 ], 227 options={ 228 "verbose_name": "Token", 229 "verbose_name_plural": "Tokens", 230 }, 231 ), 232 migrations.CreateModel( 233 name="Provider", 234 fields=[ 235 ( 236 "id", 237 models.AutoField( 238 auto_created=True, 239 primary_key=True, 240 serialize=False, 241 verbose_name="ID", 242 ), 243 ), 244 ( 245 "property_mappings", 246 models.ManyToManyField( 247 blank=True, default=None, to="authentik_core.PropertyMapping" 248 ), 249 ), 250 ], 251 ), 252 migrations.CreateModel( 253 name="Group", 254 fields=[ 255 ( 256 "group_uuid", 257 models.UUIDField( 258 default=uuid.uuid4, 259 editable=False, 260 primary_key=True, 261 serialize=False, 262 ), 263 ), 264 ("name", models.CharField(max_length=80, verbose_name="name")), 265 ( 266 "attributes", 267 models.JSONField(blank=True, default=dict), 268 ), 269 ( 270 "parent", 271 models.ForeignKey( 272 blank=True, 273 null=True, 274 on_delete=django.db.models.deletion.SET_NULL, 275 related_name="children", 276 to="authentik_core.Group", 277 ), 278 ), 279 ], 280 options={ 281 "unique_together": {("name", "parent")}, 282 }, 283 ), 284 migrations.CreateModel( 285 name="Application", 286 fields=[ 287 ( 288 "policybindingmodel_ptr", 289 models.OneToOneField( 290 auto_created=True, 291 on_delete=django.db.models.deletion.CASCADE, 292 parent_link=True, 293 primary_key=True, 294 serialize=False, 295 to="authentik_policies.PolicyBindingModel", 296 ), 297 ), 298 ("name", models.TextField(help_text="Application's display Name.")), 299 ( 300 "slug", 301 models.SlugField(help_text="Internal application name, used in URLs."), 302 ), 303 ("skip_authorization", models.BooleanField(default=False)), 304 ("meta_launch_url", models.URLField(blank=True, default="")), 305 ("meta_icon_url", models.TextField(blank=True, default="")), 306 ("meta_description", models.TextField(blank=True, default="")), 307 ("meta_publisher", models.TextField(blank=True, default="")), 308 ( 309 "provider", 310 models.OneToOneField( 311 blank=True, 312 default=None, 313 null=True, 314 on_delete=django.db.models.deletion.SET_DEFAULT, 315 to="authentik_core.Provider", 316 ), 317 ), 318 ], 319 bases=("authentik_policies.policybindingmodel",), 320 ), 321 migrations.AddField( 322 model_name="user", 323 name="groups", 324 field=models.ManyToManyField(to="authentik_core.Group"), 325 ), 326 migrations.AddField( 327 model_name="user", 328 name="sources", 329 field=models.ManyToManyField( 330 through="authentik_core.UserSourceConnection", 331 to="authentik_core.Source", 332 ), 333 ), 334 migrations.AddField( 335 model_name="user", 336 name="user_permissions", 337 field=models.ManyToManyField( 338 blank=True, 339 help_text="Specific permissions for this user.", 340 related_name="user_set", 341 related_query_name="user", 342 to="auth.Permission", 343 verbose_name="user permissions", 344 ), 345 ), 346 ]
class
Migration(django.db.migrations.migration.Migration):
16class Migration(migrations.Migration): 17 initial = True 18 19 dependencies = [ 20 ("authentik_policies", "0001_initial"), 21 ("auth", "0011_update_proxy_permissions"), 22 ] 23 24 operations = [ 25 migrations.CreateModel( 26 name="User", 27 fields=[ 28 ( 29 "id", 30 models.AutoField( 31 auto_created=True, 32 primary_key=True, 33 serialize=False, 34 verbose_name="ID", 35 ), 36 ), 37 ("password", models.CharField(max_length=128, verbose_name="password")), 38 ( 39 "last_login", 40 models.DateTimeField(blank=True, null=True, verbose_name="last login"), 41 ), 42 ( 43 "is_superuser", 44 models.BooleanField( 45 default=False, 46 help_text=( 47 "Designates that this user has all permissions without explicitly" 48 " assigning them." 49 ), 50 verbose_name="superuser status", 51 ), 52 ), 53 ( 54 "username", 55 models.CharField( 56 error_messages={"unique": "A user with that username already exists."}, 57 help_text=( 58 "Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only." 59 ), 60 max_length=150, 61 unique=True, 62 validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], 63 verbose_name="username", 64 ), 65 ), 66 ( 67 "first_name", 68 models.CharField(blank=True, max_length=30, verbose_name="first name"), 69 ), 70 ( 71 "last_name", 72 models.CharField(blank=True, max_length=150, verbose_name="last name"), 73 ), 74 ( 75 "email", 76 models.EmailField(blank=True, max_length=254, verbose_name="email address"), 77 ), 78 ( 79 "is_staff", 80 models.BooleanField( 81 default=False, 82 help_text="Designates whether the user can log into this admin site.", 83 verbose_name="staff status", 84 ), 85 ), 86 ( 87 "is_active", 88 models.BooleanField( 89 default=True, 90 help_text=( 91 "Designates whether this user should be treated as active. Unselect" 92 " this instead of deleting accounts." 93 ), 94 verbose_name="active", 95 ), 96 ), 97 ( 98 "date_joined", 99 models.DateTimeField( 100 default=django.utils.timezone.now, verbose_name="date joined" 101 ), 102 ), 103 ("uuid", models.UUIDField(default=uuid.uuid4, editable=False)), 104 ("name", models.TextField(help_text="User's display name.")), 105 ("password_change_date", models.DateTimeField(auto_now_add=True)), 106 ( 107 "attributes", 108 models.JSONField(blank=True, default=dict), 109 ), 110 ], 111 options={ 112 "permissions": (("reset_user_password", "Reset Password"),), 113 }, 114 bases=(models.Model,), 115 managers=[ 116 ("objects", django.contrib.auth.models.UserManager()), 117 ], 118 ), 119 migrations.CreateModel( 120 name="PropertyMapping", 121 fields=[ 122 ( 123 "pm_uuid", 124 models.UUIDField( 125 default=uuid.uuid4, 126 editable=False, 127 primary_key=True, 128 serialize=False, 129 ), 130 ), 131 ("name", models.TextField()), 132 ("expression", models.TextField()), 133 ], 134 options={ 135 "verbose_name": "Property Mapping", 136 "verbose_name_plural": "Property Mappings", 137 }, 138 ), 139 migrations.CreateModel( 140 name="Source", 141 fields=[ 142 ( 143 "policybindingmodel_ptr", 144 models.OneToOneField( 145 auto_created=True, 146 on_delete=django.db.models.deletion.CASCADE, 147 parent_link=True, 148 primary_key=True, 149 serialize=False, 150 to="authentik_policies.PolicyBindingModel", 151 ), 152 ), 153 ("name", models.TextField(help_text="Source's display Name.")), 154 ( 155 "slug", 156 models.SlugField(help_text="Internal source name, used in URLs."), 157 ), 158 ("enabled", models.BooleanField(default=True)), 159 ( 160 "property_mappings", 161 models.ManyToManyField( 162 blank=True, default=None, to="authentik_core.PropertyMapping" 163 ), 164 ), 165 ], 166 bases=("authentik_policies.policybindingmodel",), 167 ), 168 migrations.CreateModel( 169 name="UserSourceConnection", 170 fields=[ 171 ( 172 "id", 173 models.AutoField( 174 auto_created=True, 175 primary_key=True, 176 serialize=False, 177 verbose_name="ID", 178 ), 179 ), 180 ("created", models.DateTimeField(auto_now_add=True)), 181 ("last_updated", models.DateTimeField(auto_now=True)), 182 ( 183 "source", 184 models.ForeignKey( 185 on_delete=django.db.models.deletion.CASCADE, 186 to="authentik_core.Source", 187 ), 188 ), 189 ( 190 "user", 191 models.ForeignKey( 192 on_delete=django.db.models.deletion.CASCADE, 193 to=settings.AUTH_USER_MODEL, 194 ), 195 ), 196 ], 197 options={ 198 "unique_together": {("user", "source")}, 199 }, 200 ), 201 migrations.CreateModel( 202 name="Token", 203 fields=[ 204 ( 205 "token_uuid", 206 models.UUIDField( 207 default=uuid.uuid4, 208 editable=False, 209 primary_key=True, 210 serialize=False, 211 ), 212 ), 213 ( 214 "expires", 215 models.DateTimeField(default=authentik.core.models.default_token_duration), 216 ), 217 ("expiring", models.BooleanField(default=True)), 218 ("description", models.TextField(blank=True, default="")), 219 ( 220 "user", 221 models.ForeignKey( 222 on_delete=django.db.models.deletion.CASCADE, 223 related_name="+", 224 to=settings.AUTH_USER_MODEL, 225 ), 226 ), 227 ], 228 options={ 229 "verbose_name": "Token", 230 "verbose_name_plural": "Tokens", 231 }, 232 ), 233 migrations.CreateModel( 234 name="Provider", 235 fields=[ 236 ( 237 "id", 238 models.AutoField( 239 auto_created=True, 240 primary_key=True, 241 serialize=False, 242 verbose_name="ID", 243 ), 244 ), 245 ( 246 "property_mappings", 247 models.ManyToManyField( 248 blank=True, default=None, to="authentik_core.PropertyMapping" 249 ), 250 ), 251 ], 252 ), 253 migrations.CreateModel( 254 name="Group", 255 fields=[ 256 ( 257 "group_uuid", 258 models.UUIDField( 259 default=uuid.uuid4, 260 editable=False, 261 primary_key=True, 262 serialize=False, 263 ), 264 ), 265 ("name", models.CharField(max_length=80, verbose_name="name")), 266 ( 267 "attributes", 268 models.JSONField(blank=True, default=dict), 269 ), 270 ( 271 "parent", 272 models.ForeignKey( 273 blank=True, 274 null=True, 275 on_delete=django.db.models.deletion.SET_NULL, 276 related_name="children", 277 to="authentik_core.Group", 278 ), 279 ), 280 ], 281 options={ 282 "unique_together": {("name", "parent")}, 283 }, 284 ), 285 migrations.CreateModel( 286 name="Application", 287 fields=[ 288 ( 289 "policybindingmodel_ptr", 290 models.OneToOneField( 291 auto_created=True, 292 on_delete=django.db.models.deletion.CASCADE, 293 parent_link=True, 294 primary_key=True, 295 serialize=False, 296 to="authentik_policies.PolicyBindingModel", 297 ), 298 ), 299 ("name", models.TextField(help_text="Application's display Name.")), 300 ( 301 "slug", 302 models.SlugField(help_text="Internal application name, used in URLs."), 303 ), 304 ("skip_authorization", models.BooleanField(default=False)), 305 ("meta_launch_url", models.URLField(blank=True, default="")), 306 ("meta_icon_url", models.TextField(blank=True, default="")), 307 ("meta_description", models.TextField(blank=True, default="")), 308 ("meta_publisher", models.TextField(blank=True, default="")), 309 ( 310 "provider", 311 models.OneToOneField( 312 blank=True, 313 default=None, 314 null=True, 315 on_delete=django.db.models.deletion.SET_DEFAULT, 316 to="authentik_core.Provider", 317 ), 318 ), 319 ], 320 bases=("authentik_policies.policybindingmodel",), 321 ), 322 migrations.AddField( 323 model_name="user", 324 name="groups", 325 field=models.ManyToManyField(to="authentik_core.Group"), 326 ), 327 migrations.AddField( 328 model_name="user", 329 name="sources", 330 field=models.ManyToManyField( 331 through="authentik_core.UserSourceConnection", 332 to="authentik_core.Source", 333 ), 334 ), 335 migrations.AddField( 336 model_name="user", 337 name="user_permissions", 338 field=models.ManyToManyField( 339 blank=True, 340 help_text="Specific permissions for this user.", 341 related_name="user_set", 342 related_query_name="user", 343 to="auth.Permission", 344 verbose_name="user permissions", 345 ), 346 ), 347 ]
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.
operations =
[<CreateModel name='User', fields=[('id', <django.db.models.fields.AutoField>), ('password', <django.db.models.fields.CharField>), ('last_login', <django.db.models.fields.DateTimeField>), ('is_superuser', <django.db.models.fields.BooleanField>), ('username', <django.db.models.fields.CharField>), ('first_name', <django.db.models.fields.CharField>), ('last_name', <django.db.models.fields.CharField>), ('email', <django.db.models.fields.EmailField>), ('is_staff', <django.db.models.fields.BooleanField>), ('is_active', <django.db.models.fields.BooleanField>), ('date_joined', <django.db.models.fields.DateTimeField>), ('uuid', <django.db.models.fields.UUIDField>), ('name', <django.db.models.fields.TextField>), ('password_change_date', <django.db.models.fields.DateTimeField>), ('attributes', <django.db.models.fields.json.JSONField>)], options={'permissions': (('reset_user_password', 'Reset Password'),)}, bases=(<class 'django.db.models.base.Model'>,), managers=[('objects', <django.contrib.auth.models.UserManager object>)]>, <CreateModel name='PropertyMapping', fields=[('pm_uuid', <django.db.models.fields.UUIDField>), ('name', <django.db.models.fields.TextField>), ('expression', <django.db.models.fields.TextField>)], options={'verbose_name': 'Property Mapping', 'verbose_name_plural': 'Property Mappings'}>, <CreateModel name='Source', fields=[('policybindingmodel_ptr', <django.db.models.fields.related.OneToOneField>), ('name', <django.db.models.fields.TextField>), ('slug', <django.db.models.fields.SlugField>), ('enabled', <django.db.models.fields.BooleanField>), ('property_mappings', <django.db.models.fields.related.ManyToManyField>)], bases=('authentik_policies.policybindingmodel',)>, <CreateModel name='UserSourceConnection', fields=[('id', <django.db.models.fields.AutoField>), ('created', <django.db.models.fields.DateTimeField>), ('last_updated', <django.db.models.fields.DateTimeField>), ('source', <django.db.models.fields.related.ForeignKey>), ('user', <django.db.models.fields.related.ForeignKey>)], options={'unique_together': {('user', 'source')}}>, <CreateModel name='Token', fields=[('token_uuid', <django.db.models.fields.UUIDField>), ('expires', <django.db.models.fields.DateTimeField>), ('expiring', <django.db.models.fields.BooleanField>), ('description', <django.db.models.fields.TextField>), ('user', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'Token', 'verbose_name_plural': 'Tokens'}>, <CreateModel name='Provider', fields=[('id', <django.db.models.fields.AutoField>), ('property_mappings', <django.db.models.fields.related.ManyToManyField>)]>, <CreateModel name='Group', fields=[('group_uuid', <django.db.models.fields.UUIDField>), ('name', <django.db.models.fields.CharField>), ('attributes', <django.db.models.fields.json.JSONField>), ('parent', <django.db.models.fields.related.ForeignKey>)], options={'unique_together': {('name', 'parent')}}>, <CreateModel name='Application', fields=[('policybindingmodel_ptr', <django.db.models.fields.related.OneToOneField>), ('name', <django.db.models.fields.TextField>), ('slug', <django.db.models.fields.SlugField>), ('skip_authorization', <django.db.models.fields.BooleanField>), ('meta_launch_url', <django.db.models.fields.URLField>), ('meta_icon_url', <django.db.models.fields.TextField>), ('meta_description', <django.db.models.fields.TextField>), ('meta_publisher', <django.db.models.fields.TextField>), ('provider', <django.db.models.fields.related.OneToOneField>)], bases=('authentik_policies.policybindingmodel',)>, <AddField model_name='user', name='groups', field=<django.db.models.fields.related.ManyToManyField>>, <AddField model_name='user', name='sources', field=<django.db.models.fields.related.ManyToManyField>>, <AddField model_name='user', name='user_permissions', field=<django.db.models.fields.related.ManyToManyField>>]