authentik.sources.scim.migrations.0001_initial

 1# Generated by Django 5.0.4 on 2024-04-07 14:34
 2
 3import django.db.models.deletion
 4from django.conf import settings
 5from django.db import migrations, models
 6
 7
 8class Migration(migrations.Migration):
 9
10    initial = True
11
12    dependencies = [
13        ("authentik_core", "0033_alter_user_options"),
14        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15    ]
16
17    operations = [
18        migrations.CreateModel(
19            name="SCIMSource",
20            fields=[
21                (
22                    "source_ptr",
23                    models.OneToOneField(
24                        auto_created=True,
25                        on_delete=django.db.models.deletion.CASCADE,
26                        parent_link=True,
27                        primary_key=True,
28                        serialize=False,
29                        to="authentik_core.source",
30                    ),
31                ),
32                (
33                    "token",
34                    models.ForeignKey(
35                        default=None,
36                        null=True,
37                        on_delete=django.db.models.deletion.CASCADE,
38                        to="authentik_core.token",
39                    ),
40                ),
41            ],
42            options={
43                "verbose_name": "SCIM Source",
44                "verbose_name_plural": "SCIM Sources",
45            },
46            bases=("authentik_core.source",),
47        ),
48        migrations.CreateModel(
49            name="SCIMSourceGroup",
50            fields=[
51                ("id", models.TextField(primary_key=True, serialize=False)),
52                ("attributes", models.JSONField(default=dict)),
53                (
54                    "group",
55                    models.ForeignKey(
56                        on_delete=django.db.models.deletion.CASCADE, to="authentik_core.group"
57                    ),
58                ),
59                (
60                    "source",
61                    models.ForeignKey(
62                        on_delete=django.db.models.deletion.CASCADE,
63                        to="authentik_sources_scim.scimsource",
64                    ),
65                ),
66            ],
67            options={
68                "unique_together": {("id", "group", "source")},
69            },
70        ),
71        migrations.CreateModel(
72            name="SCIMSourceUser",
73            fields=[
74                ("id", models.TextField(primary_key=True, serialize=False)),
75                ("attributes", models.JSONField(default=dict)),
76                (
77                    "source",
78                    models.ForeignKey(
79                        on_delete=django.db.models.deletion.CASCADE,
80                        to="authentik_sources_scim.scimsource",
81                    ),
82                ),
83                (
84                    "user",
85                    models.ForeignKey(
86                        on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
87                    ),
88                ),
89            ],
90            options={
91                "unique_together": {("id", "user", "source")},
92            },
93        ),
94    ]
class Migration(django.db.migrations.migration.Migration):
 9class Migration(migrations.Migration):
10
11    initial = True
12
13    dependencies = [
14        ("authentik_core", "0033_alter_user_options"),
15        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
16    ]
17
18    operations = [
19        migrations.CreateModel(
20            name="SCIMSource",
21            fields=[
22                (
23                    "source_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.source",
31                    ),
32                ),
33                (
34                    "token",
35                    models.ForeignKey(
36                        default=None,
37                        null=True,
38                        on_delete=django.db.models.deletion.CASCADE,
39                        to="authentik_core.token",
40                    ),
41                ),
42            ],
43            options={
44                "verbose_name": "SCIM Source",
45                "verbose_name_plural": "SCIM Sources",
46            },
47            bases=("authentik_core.source",),
48        ),
49        migrations.CreateModel(
50            name="SCIMSourceGroup",
51            fields=[
52                ("id", models.TextField(primary_key=True, serialize=False)),
53                ("attributes", models.JSONField(default=dict)),
54                (
55                    "group",
56                    models.ForeignKey(
57                        on_delete=django.db.models.deletion.CASCADE, to="authentik_core.group"
58                    ),
59                ),
60                (
61                    "source",
62                    models.ForeignKey(
63                        on_delete=django.db.models.deletion.CASCADE,
64                        to="authentik_sources_scim.scimsource",
65                    ),
66                ),
67            ],
68            options={
69                "unique_together": {("id", "group", "source")},
70            },
71        ),
72        migrations.CreateModel(
73            name="SCIMSourceUser",
74            fields=[
75                ("id", models.TextField(primary_key=True, serialize=False)),
76                ("attributes", models.JSONField(default=dict)),
77                (
78                    "source",
79                    models.ForeignKey(
80                        on_delete=django.db.models.deletion.CASCADE,
81                        to="authentik_sources_scim.scimsource",
82                    ),
83                ),
84                (
85                    "user",
86                    models.ForeignKey(
87                        on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL
88                    ),
89                ),
90            ],
91            options={
92                "unique_together": {("id", "user", "source")},
93            },
94        ),
95    ]

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', '0033_alter_user_options'), ('authentik_core', '__first__')]
operations = [<CreateModel name='SCIMSource', fields=[('source_ptr', <django.db.models.fields.related.OneToOneField>), ('token', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'SCIM Source', 'verbose_name_plural': 'SCIM Sources'}, bases=('authentik_core.source',)>, <CreateModel name='SCIMSourceGroup', fields=[('id', <django.db.models.fields.TextField>), ('attributes', <django.db.models.fields.json.JSONField>), ('group', <django.db.models.fields.related.ForeignKey>), ('source', <django.db.models.fields.related.ForeignKey>)], options={'unique_together': {('id', 'group', 'source')}}>, <CreateModel name='SCIMSourceUser', fields=[('id', <django.db.models.fields.TextField>), ('attributes', <django.db.models.fields.json.JSONField>), ('source', <django.db.models.fields.related.ForeignKey>), ('user', <django.db.models.fields.related.ForeignKey>)], options={'unique_together': {('id', 'user', 'source')}}>]