authentik.enterprise.providers.microsoft_entra.migrations.0001_initial

  1# Generated by Django 5.0.6 on 2024-05-08 14:35
  2
  3import django.db.models.deletion
  4import uuid
  5from django.conf import settings
  6from django.db import migrations, models
  7
  8
  9class Migration(migrations.Migration):
 10
 11    initial = True
 12
 13    dependencies = [
 14        ("authentik_core", "0035_alter_group_options_and_more"),
 15        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
 16    ]
 17
 18    operations = [
 19        migrations.CreateModel(
 20            name="MicrosoftEntraProviderMapping",
 21            fields=[
 22                (
 23                    "propertymapping_ptr",
 24                    models.OneToOneField(
 25                        auto_created=True,
 26                        on_delete=django.db.models.deletion.CASCADE,
 27                        parent_link=True,
 28                        primary_key=True,
 29                        serialize=False,
 30                        to="authentik_core.propertymapping",
 31                    ),
 32                ),
 33            ],
 34            options={
 35                "verbose_name": "Microsoft Entra Provider Mapping",
 36                "verbose_name_plural": "Microsoft Entra Provider Mappings",
 37            },
 38            bases=("authentik_core.propertymapping",),
 39        ),
 40        migrations.CreateModel(
 41            name="MicrosoftEntraProvider",
 42            fields=[
 43                (
 44                    "provider_ptr",
 45                    models.OneToOneField(
 46                        auto_created=True,
 47                        on_delete=django.db.models.deletion.CASCADE,
 48                        parent_link=True,
 49                        primary_key=True,
 50                        serialize=False,
 51                        to="authentik_core.provider",
 52                    ),
 53                ),
 54                ("client_id", models.TextField()),
 55                ("client_secret", models.TextField()),
 56                ("tenant_id", models.TextField()),
 57                ("exclude_users_service_account", models.BooleanField(default=False)),
 58                (
 59                    "user_delete_action",
 60                    models.TextField(
 61                        choices=[
 62                            ("do_nothing", "Do Nothing"),
 63                            ("delete", "Delete"),
 64                            ("suspend", "Suspend"),
 65                        ],
 66                        default="delete",
 67                    ),
 68                ),
 69                (
 70                    "group_delete_action",
 71                    models.TextField(
 72                        choices=[
 73                            ("do_nothing", "Do Nothing"),
 74                            ("delete", "Delete"),
 75                            ("suspend", "Suspend"),
 76                        ],
 77                        default="delete",
 78                    ),
 79                ),
 80                (
 81                    "filter_group",
 82                    models.ForeignKey(
 83                        default=None,
 84                        null=True,
 85                        on_delete=django.db.models.deletion.SET_DEFAULT,
 86                        to="authentik_core.group",
 87                    ),
 88                ),
 89                (
 90                    "property_mappings_group",
 91                    models.ManyToManyField(
 92                        blank=True,
 93                        default=None,
 94                        help_text="Property mappings used for group creation/updating.",
 95                        to="authentik_core.propertymapping",
 96                    ),
 97                ),
 98            ],
 99            options={
100                "verbose_name": "Microsoft Entra Provider",
101                "verbose_name_plural": "Microsoft Entra Providers",
102            },
103            bases=("authentik_core.provider", models.Model),
104        ),
105        migrations.CreateModel(
106            name="MicrosoftEntraProviderGroup",
107            fields=[
108                (
109                    "id",
110                    models.UUIDField(
111                        default=uuid.uuid4, editable=False, primary_key=True, serialize=False
112                    ),
113                ),
114                ("microsoft_id", models.TextField()),
115                (
116                    "group",
117                    models.ForeignKey(
118                        on_delete=django.db.models.deletion.CASCADE, to="authentik_core.group"
119                    ),
120                ),
121                (
122                    "provider",
123                    models.ForeignKey(
124                        on_delete=django.db.models.deletion.CASCADE,
125                        to="authentik_providers_microsoft_entra.microsoftentraprovider",
126                    ),
127                ),
128            ],
129            options={
130                "verbose_name": "Microsoft Entra Provider Group",
131                "verbose_name_plural": "Microsoft Entra Provider Groups",
132                "unique_together": {("microsoft_id", "group", "provider")},
133            },
134        ),
135        migrations.CreateModel(
136            name="MicrosoftEntraProviderUser",
137            fields=[
138                (
139                    "id",
140                    models.UUIDField(
141                        default=uuid.uuid4, editable=False, primary_key=True, serialize=False
142                    ),
143                ),
144                ("microsoft_id", models.TextField()),
145                (
146                    "provider",
147                    models.ForeignKey(
148                        on_delete=django.db.models.deletion.CASCADE,
149                        to="authentik_providers_microsoft_entra.microsoftentraprovider",
150                    ),
151                ),
152                (
153                    "user",
154                    models.ForeignKey(
155                        on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
156                    ),
157                ),
158            ],
159            options={
160                "verbose_name": "Microsoft Entra Provider User",
161                "verbose_name_plural": "Microsoft Entra Provider User",
162                "unique_together": {("microsoft_id", "user", "provider")},
163            },
164        ),
165    ]
class Migration(django.db.migrations.migration.Migration):
 10class Migration(migrations.Migration):
 11
 12    initial = True
 13
 14    dependencies = [
 15        ("authentik_core", "0035_alter_group_options_and_more"),
 16        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
 17    ]
 18
 19    operations = [
 20        migrations.CreateModel(
 21            name="MicrosoftEntraProviderMapping",
 22            fields=[
 23                (
 24                    "propertymapping_ptr",
 25                    models.OneToOneField(
 26                        auto_created=True,
 27                        on_delete=django.db.models.deletion.CASCADE,
 28                        parent_link=True,
 29                        primary_key=True,
 30                        serialize=False,
 31                        to="authentik_core.propertymapping",
 32                    ),
 33                ),
 34            ],
 35            options={
 36                "verbose_name": "Microsoft Entra Provider Mapping",
 37                "verbose_name_plural": "Microsoft Entra Provider Mappings",
 38            },
 39            bases=("authentik_core.propertymapping",),
 40        ),
 41        migrations.CreateModel(
 42            name="MicrosoftEntraProvider",
 43            fields=[
 44                (
 45                    "provider_ptr",
 46                    models.OneToOneField(
 47                        auto_created=True,
 48                        on_delete=django.db.models.deletion.CASCADE,
 49                        parent_link=True,
 50                        primary_key=True,
 51                        serialize=False,
 52                        to="authentik_core.provider",
 53                    ),
 54                ),
 55                ("client_id", models.TextField()),
 56                ("client_secret", models.TextField()),
 57                ("tenant_id", models.TextField()),
 58                ("exclude_users_service_account", models.BooleanField(default=False)),
 59                (
 60                    "user_delete_action",
 61                    models.TextField(
 62                        choices=[
 63                            ("do_nothing", "Do Nothing"),
 64                            ("delete", "Delete"),
 65                            ("suspend", "Suspend"),
 66                        ],
 67                        default="delete",
 68                    ),
 69                ),
 70                (
 71                    "group_delete_action",
 72                    models.TextField(
 73                        choices=[
 74                            ("do_nothing", "Do Nothing"),
 75                            ("delete", "Delete"),
 76                            ("suspend", "Suspend"),
 77                        ],
 78                        default="delete",
 79                    ),
 80                ),
 81                (
 82                    "filter_group",
 83                    models.ForeignKey(
 84                        default=None,
 85                        null=True,
 86                        on_delete=django.db.models.deletion.SET_DEFAULT,
 87                        to="authentik_core.group",
 88                    ),
 89                ),
 90                (
 91                    "property_mappings_group",
 92                    models.ManyToManyField(
 93                        blank=True,
 94                        default=None,
 95                        help_text="Property mappings used for group creation/updating.",
 96                        to="authentik_core.propertymapping",
 97                    ),
 98                ),
 99            ],
100            options={
101                "verbose_name": "Microsoft Entra Provider",
102                "verbose_name_plural": "Microsoft Entra Providers",
103            },
104            bases=("authentik_core.provider", models.Model),
105        ),
106        migrations.CreateModel(
107            name="MicrosoftEntraProviderGroup",
108            fields=[
109                (
110                    "id",
111                    models.UUIDField(
112                        default=uuid.uuid4, editable=False, primary_key=True, serialize=False
113                    ),
114                ),
115                ("microsoft_id", models.TextField()),
116                (
117                    "group",
118                    models.ForeignKey(
119                        on_delete=django.db.models.deletion.CASCADE, to="authentik_core.group"
120                    ),
121                ),
122                (
123                    "provider",
124                    models.ForeignKey(
125                        on_delete=django.db.models.deletion.CASCADE,
126                        to="authentik_providers_microsoft_entra.microsoftentraprovider",
127                    ),
128                ),
129            ],
130            options={
131                "verbose_name": "Microsoft Entra Provider Group",
132                "verbose_name_plural": "Microsoft Entra Provider Groups",
133                "unique_together": {("microsoft_id", "group", "provider")},
134            },
135        ),
136        migrations.CreateModel(
137            name="MicrosoftEntraProviderUser",
138            fields=[
139                (
140                    "id",
141                    models.UUIDField(
142                        default=uuid.uuid4, editable=False, primary_key=True, serialize=False
143                    ),
144                ),
145                ("microsoft_id", models.TextField()),
146                (
147                    "provider",
148                    models.ForeignKey(
149                        on_delete=django.db.models.deletion.CASCADE,
150                        to="authentik_providers_microsoft_entra.microsoftentraprovider",
151                    ),
152                ),
153                (
154                    "user",
155                    models.ForeignKey(
156                        on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
157                    ),
158                ),
159            ],
160            options={
161                "verbose_name": "Microsoft Entra Provider User",
162                "verbose_name_plural": "Microsoft Entra Provider User",
163                "unique_together": {("microsoft_id", "user", "provider")},
164            },
165        ),
166    ]

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.

initial = True
dependencies = [('authentik_core', '0035_alter_group_options_and_more'), ('authentik_core', '__first__')]
operations = [<CreateModel name='MicrosoftEntraProviderMapping', fields=[('propertymapping_ptr', <django.db.models.fields.related.OneToOneField>)], options={'verbose_name': 'Microsoft Entra Provider Mapping', 'verbose_name_plural': 'Microsoft Entra Provider Mappings'}, bases=('authentik_core.propertymapping',)>, <CreateModel name='MicrosoftEntraProvider', fields=[('provider_ptr', <django.db.models.fields.related.OneToOneField>), ('client_id', <django.db.models.fields.TextField>), ('client_secret', <django.db.models.fields.TextField>), ('tenant_id', <django.db.models.fields.TextField>), ('exclude_users_service_account', <django.db.models.fields.BooleanField>), ('user_delete_action', <django.db.models.fields.TextField>), ('group_delete_action', <django.db.models.fields.TextField>), ('filter_group', <django.db.models.fields.related.ForeignKey>), ('property_mappings_group', <django.db.models.fields.related.ManyToManyField>)], options={'verbose_name': 'Microsoft Entra Provider', 'verbose_name_plural': 'Microsoft Entra Providers'}, bases=('authentik_core.provider', <class 'django.db.models.base.Model'>)>, <CreateModel name='MicrosoftEntraProviderGroup', fields=[('id', <django.db.models.fields.UUIDField>), ('microsoft_id', <django.db.models.fields.TextField>), ('group', <django.db.models.fields.related.ForeignKey>), ('provider', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'Microsoft Entra Provider Group', 'verbose_name_plural': 'Microsoft Entra Provider Groups', 'unique_together': {('microsoft_id', 'group', 'provider')}}>, <CreateModel name='MicrosoftEntraProviderUser', fields=[('id', <django.db.models.fields.UUIDField>), ('microsoft_id', <django.db.models.fields.TextField>), ('provider', <django.db.models.fields.related.ForeignKey>), ('user', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'Microsoft Entra Provider User', 'verbose_name_plural': 'Microsoft Entra Provider User', 'unique_together': {('microsoft_id', 'user', 'provider')}}>]