authentik.policies.migrations.0001_initial

  1# Generated by Django 3.0.6 on 2020-05-19 22:07
  2
  3import uuid
  4
  5import django.db.models.deletion
  6from django.db import migrations, models
  7
  8
  9class Migration(migrations.Migration):
 10    initial = True
 11
 12    dependencies = []
 13
 14    operations = [
 15        migrations.CreateModel(
 16            name="Policy",
 17            fields=[
 18                ("created", models.DateTimeField(auto_now_add=True)),
 19                ("last_updated", models.DateTimeField(auto_now=True)),
 20                (
 21                    "policy_uuid",
 22                    models.UUIDField(
 23                        default=uuid.uuid4,
 24                        editable=False,
 25                        primary_key=True,
 26                        serialize=False,
 27                    ),
 28                ),
 29                ("name", models.TextField(blank=True, null=True)),
 30                ("negate", models.BooleanField(default=False)),
 31                ("order", models.IntegerField(default=0)),
 32                ("timeout", models.IntegerField(default=30)),
 33            ],
 34            options={
 35                "abstract": False,
 36            },
 37        ),
 38        migrations.CreateModel(
 39            name="PolicyBinding",
 40            fields=[
 41                (
 42                    "policy_binding_uuid",
 43                    models.UUIDField(
 44                        default=uuid.uuid4,
 45                        editable=False,
 46                        primary_key=True,
 47                        serialize=False,
 48                    ),
 49                ),
 50                ("enabled", models.BooleanField(default=True)),
 51                ("order", models.IntegerField(default=0)),
 52                (
 53                    "policy",
 54                    models.ForeignKey(
 55                        on_delete=django.db.models.deletion.CASCADE,
 56                        related_name="+",
 57                        to="authentik_policies.Policy",
 58                    ),
 59                ),
 60            ],
 61            options={
 62                "verbose_name": "Policy Binding",
 63                "verbose_name_plural": "Policy Bindings",
 64            },
 65        ),
 66        migrations.CreateModel(
 67            name="PolicyBindingModel",
 68            fields=[
 69                (
 70                    "pbm_uuid",
 71                    models.UUIDField(
 72                        default=uuid.uuid4,
 73                        editable=False,
 74                        primary_key=True,
 75                        serialize=False,
 76                    ),
 77                ),
 78                (
 79                    "policies",
 80                    models.ManyToManyField(
 81                        blank=True,
 82                        related_name="bindings",
 83                        through="authentik_policies.PolicyBinding",
 84                        to="authentik_policies.Policy",
 85                    ),
 86                ),
 87            ],
 88            options={
 89                "verbose_name": "Policy Binding Model",
 90                "verbose_name_plural": "Policy Binding Models",
 91            },
 92        ),
 93        migrations.AddField(
 94            model_name="policybinding",
 95            name="target",
 96            field=models.ForeignKey(
 97                on_delete=django.db.models.deletion.CASCADE,
 98                related_name="+",
 99                to="authentik_policies.PolicyBindingModel",
100            ),
101        ),
102    ]
class Migration(django.db.migrations.migration.Migration):
 10class Migration(migrations.Migration):
 11    initial = True
 12
 13    dependencies = []
 14
 15    operations = [
 16        migrations.CreateModel(
 17            name="Policy",
 18            fields=[
 19                ("created", models.DateTimeField(auto_now_add=True)),
 20                ("last_updated", models.DateTimeField(auto_now=True)),
 21                (
 22                    "policy_uuid",
 23                    models.UUIDField(
 24                        default=uuid.uuid4,
 25                        editable=False,
 26                        primary_key=True,
 27                        serialize=False,
 28                    ),
 29                ),
 30                ("name", models.TextField(blank=True, null=True)),
 31                ("negate", models.BooleanField(default=False)),
 32                ("order", models.IntegerField(default=0)),
 33                ("timeout", models.IntegerField(default=30)),
 34            ],
 35            options={
 36                "abstract": False,
 37            },
 38        ),
 39        migrations.CreateModel(
 40            name="PolicyBinding",
 41            fields=[
 42                (
 43                    "policy_binding_uuid",
 44                    models.UUIDField(
 45                        default=uuid.uuid4,
 46                        editable=False,
 47                        primary_key=True,
 48                        serialize=False,
 49                    ),
 50                ),
 51                ("enabled", models.BooleanField(default=True)),
 52                ("order", models.IntegerField(default=0)),
 53                (
 54                    "policy",
 55                    models.ForeignKey(
 56                        on_delete=django.db.models.deletion.CASCADE,
 57                        related_name="+",
 58                        to="authentik_policies.Policy",
 59                    ),
 60                ),
 61            ],
 62            options={
 63                "verbose_name": "Policy Binding",
 64                "verbose_name_plural": "Policy Bindings",
 65            },
 66        ),
 67        migrations.CreateModel(
 68            name="PolicyBindingModel",
 69            fields=[
 70                (
 71                    "pbm_uuid",
 72                    models.UUIDField(
 73                        default=uuid.uuid4,
 74                        editable=False,
 75                        primary_key=True,
 76                        serialize=False,
 77                    ),
 78                ),
 79                (
 80                    "policies",
 81                    models.ManyToManyField(
 82                        blank=True,
 83                        related_name="bindings",
 84                        through="authentik_policies.PolicyBinding",
 85                        to="authentik_policies.Policy",
 86                    ),
 87                ),
 88            ],
 89            options={
 90                "verbose_name": "Policy Binding Model",
 91                "verbose_name_plural": "Policy Binding Models",
 92            },
 93        ),
 94        migrations.AddField(
 95            model_name="policybinding",
 96            name="target",
 97            field=models.ForeignKey(
 98                on_delete=django.db.models.deletion.CASCADE,
 99                related_name="+",
100                to="authentik_policies.PolicyBindingModel",
101            ),
102        ),
103    ]

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 = []
operations = [<CreateModel name='Policy', fields=[('created', <django.db.models.fields.DateTimeField>), ('last_updated', <django.db.models.fields.DateTimeField>), ('policy_uuid', <django.db.models.fields.UUIDField>), ('name', <django.db.models.fields.TextField>), ('negate', <django.db.models.fields.BooleanField>), ('order', <django.db.models.fields.IntegerField>), ('timeout', <django.db.models.fields.IntegerField>)], options={'abstract': False}>, <CreateModel name='PolicyBinding', fields=[('policy_binding_uuid', <django.db.models.fields.UUIDField>), ('enabled', <django.db.models.fields.BooleanField>), ('order', <django.db.models.fields.IntegerField>), ('policy', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'Policy Binding', 'verbose_name_plural': 'Policy Bindings'}>, <CreateModel name='PolicyBindingModel', fields=[('pbm_uuid', <django.db.models.fields.UUIDField>), ('policies', <django.db.models.fields.related.ManyToManyField>)], options={'verbose_name': 'Policy Binding Model', 'verbose_name_plural': 'Policy Binding Models'}>, <AddField model_name='policybinding', name='target', field=<django.db.models.fields.related.ForeignKey>>]