authentik.providers.rac.migrations.0001_initial

  1# Generated by Django 4.2.8 on 2023-12-29 15:58
  2
  3import uuid
  4
  5import django.db.models.deletion
  6from django.db import migrations, models
  7
  8import authentik.core.models
  9import authentik.lib.utils.time
 10
 11
 12class Migration(migrations.Migration):
 13    initial = True
 14
 15    dependencies = [
 16        ("authentik_policies", "0011_policybinding_failure_result_and_more"),
 17        ("authentik_core", "0032_group_roles"),
 18    ]
 19
 20    operations = [
 21        migrations.CreateModel(
 22            name="RACPropertyMapping",
 23            fields=[
 24                (
 25                    "propertymapping_ptr",
 26                    models.OneToOneField(
 27                        auto_created=True,
 28                        on_delete=django.db.models.deletion.CASCADE,
 29                        parent_link=True,
 30                        primary_key=True,
 31                        serialize=False,
 32                        to="authentik_core.propertymapping",
 33                    ),
 34                ),
 35                ("static_settings", models.JSONField(default=dict)),
 36            ],
 37            options={
 38                "verbose_name": "RAC Property Mapping",
 39                "verbose_name_plural": "RAC Property Mappings",
 40            },
 41            bases=("authentik_core.propertymapping",),
 42        ),
 43        migrations.CreateModel(
 44            name="RACProvider",
 45            fields=[
 46                (
 47                    "provider_ptr",
 48                    models.OneToOneField(
 49                        auto_created=True,
 50                        on_delete=django.db.models.deletion.CASCADE,
 51                        parent_link=True,
 52                        primary_key=True,
 53                        serialize=False,
 54                        to="authentik_core.provider",
 55                    ),
 56                ),
 57                ("settings", models.JSONField(default=dict)),
 58                (
 59                    "auth_mode",
 60                    models.TextField(
 61                        choices=[("static", "Static"), ("prompt", "Prompt")], default="prompt"
 62                    ),
 63                ),
 64                (
 65                    "connection_expiry",
 66                    models.TextField(
 67                        default="hours=8",
 68                        help_text="Determines how long a session lasts. Default of 0 means that the sessions lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)",
 69                        validators=[authentik.lib.utils.time.timedelta_string_validator],
 70                    ),
 71                ),
 72            ],
 73            options={
 74                "verbose_name": "RAC Provider",
 75                "verbose_name_plural": "RAC Providers",
 76            },
 77            bases=("authentik_core.provider",),
 78        ),
 79        migrations.CreateModel(
 80            name="Endpoint",
 81            fields=[
 82                (
 83                    "policybindingmodel_ptr",
 84                    models.OneToOneField(
 85                        auto_created=True,
 86                        on_delete=django.db.models.deletion.CASCADE,
 87                        parent_link=True,
 88                        primary_key=True,
 89                        serialize=False,
 90                        to="authentik_policies.policybindingmodel",
 91                    ),
 92                ),
 93                ("name", models.TextField()),
 94                ("host", models.TextField()),
 95                (
 96                    "protocol",
 97                    models.TextField(choices=[("rdp", "Rdp"), ("vnc", "Vnc"), ("ssh", "Ssh")]),
 98                ),
 99                ("settings", models.JSONField(default=dict)),
100                (
101                    "auth_mode",
102                    models.TextField(choices=[("static", "Static"), ("prompt", "Prompt")]),
103                ),
104                (
105                    "property_mappings",
106                    models.ManyToManyField(
107                        blank=True, default=None, to="authentik_core.propertymapping"
108                    ),
109                ),
110                (
111                    "provider",
112                    models.ForeignKey(
113                        on_delete=django.db.models.deletion.CASCADE,
114                        to="authentik_providers_rac.racprovider",
115                    ),
116                ),
117            ],
118            options={
119                "verbose_name": "RAC Endpoint",
120                "verbose_name_plural": "RAC Endpoints",
121            },
122            bases=("authentik_policies.policybindingmodel", models.Model),
123        ),
124        migrations.CreateModel(
125            name="ConnectionToken",
126            fields=[
127                (
128                    "expires",
129                    models.DateTimeField(default=authentik.core.models.default_token_duration),
130                ),
131                ("expiring", models.BooleanField(default=True)),
132                (
133                    "connection_token_uuid",
134                    models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False),
135                ),
136                ("token", models.TextField(default=authentik.core.models.default_token_key)),
137                ("settings", models.JSONField(default=dict)),
138                (
139                    "endpoint",
140                    models.ForeignKey(
141                        on_delete=django.db.models.deletion.CASCADE,
142                        to="authentik_providers_rac.endpoint",
143                    ),
144                ),
145                (
146                    "provider",
147                    models.ForeignKey(
148                        on_delete=django.db.models.deletion.CASCADE,
149                        to="authentik_providers_rac.racprovider",
150                    ),
151                ),
152                (
153                    "session",
154                    models.ForeignKey(
155                        on_delete=django.db.models.deletion.CASCADE,
156                        to="authentik_core.authenticatedsession",
157                    ),
158                ),
159            ],
160            options={
161                "abstract": False,
162            },
163        ),
164    ]
class Migration(django.db.migrations.migration.Migration):
 13class Migration(migrations.Migration):
 14    initial = True
 15
 16    dependencies = [
 17        ("authentik_policies", "0011_policybinding_failure_result_and_more"),
 18        ("authentik_core", "0032_group_roles"),
 19    ]
 20
 21    operations = [
 22        migrations.CreateModel(
 23            name="RACPropertyMapping",
 24            fields=[
 25                (
 26                    "propertymapping_ptr",
 27                    models.OneToOneField(
 28                        auto_created=True,
 29                        on_delete=django.db.models.deletion.CASCADE,
 30                        parent_link=True,
 31                        primary_key=True,
 32                        serialize=False,
 33                        to="authentik_core.propertymapping",
 34                    ),
 35                ),
 36                ("static_settings", models.JSONField(default=dict)),
 37            ],
 38            options={
 39                "verbose_name": "RAC Property Mapping",
 40                "verbose_name_plural": "RAC Property Mappings",
 41            },
 42            bases=("authentik_core.propertymapping",),
 43        ),
 44        migrations.CreateModel(
 45            name="RACProvider",
 46            fields=[
 47                (
 48                    "provider_ptr",
 49                    models.OneToOneField(
 50                        auto_created=True,
 51                        on_delete=django.db.models.deletion.CASCADE,
 52                        parent_link=True,
 53                        primary_key=True,
 54                        serialize=False,
 55                        to="authentik_core.provider",
 56                    ),
 57                ),
 58                ("settings", models.JSONField(default=dict)),
 59                (
 60                    "auth_mode",
 61                    models.TextField(
 62                        choices=[("static", "Static"), ("prompt", "Prompt")], default="prompt"
 63                    ),
 64                ),
 65                (
 66                    "connection_expiry",
 67                    models.TextField(
 68                        default="hours=8",
 69                        help_text="Determines how long a session lasts. Default of 0 means that the sessions lasts until the browser is closed. (Format: hours=-1;minutes=-2;seconds=-3)",
 70                        validators=[authentik.lib.utils.time.timedelta_string_validator],
 71                    ),
 72                ),
 73            ],
 74            options={
 75                "verbose_name": "RAC Provider",
 76                "verbose_name_plural": "RAC Providers",
 77            },
 78            bases=("authentik_core.provider",),
 79        ),
 80        migrations.CreateModel(
 81            name="Endpoint",
 82            fields=[
 83                (
 84                    "policybindingmodel_ptr",
 85                    models.OneToOneField(
 86                        auto_created=True,
 87                        on_delete=django.db.models.deletion.CASCADE,
 88                        parent_link=True,
 89                        primary_key=True,
 90                        serialize=False,
 91                        to="authentik_policies.policybindingmodel",
 92                    ),
 93                ),
 94                ("name", models.TextField()),
 95                ("host", models.TextField()),
 96                (
 97                    "protocol",
 98                    models.TextField(choices=[("rdp", "Rdp"), ("vnc", "Vnc"), ("ssh", "Ssh")]),
 99                ),
100                ("settings", models.JSONField(default=dict)),
101                (
102                    "auth_mode",
103                    models.TextField(choices=[("static", "Static"), ("prompt", "Prompt")]),
104                ),
105                (
106                    "property_mappings",
107                    models.ManyToManyField(
108                        blank=True, default=None, to="authentik_core.propertymapping"
109                    ),
110                ),
111                (
112                    "provider",
113                    models.ForeignKey(
114                        on_delete=django.db.models.deletion.CASCADE,
115                        to="authentik_providers_rac.racprovider",
116                    ),
117                ),
118            ],
119            options={
120                "verbose_name": "RAC Endpoint",
121                "verbose_name_plural": "RAC Endpoints",
122            },
123            bases=("authentik_policies.policybindingmodel", models.Model),
124        ),
125        migrations.CreateModel(
126            name="ConnectionToken",
127            fields=[
128                (
129                    "expires",
130                    models.DateTimeField(default=authentik.core.models.default_token_duration),
131                ),
132                ("expiring", models.BooleanField(default=True)),
133                (
134                    "connection_token_uuid",
135                    models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False),
136                ),
137                ("token", models.TextField(default=authentik.core.models.default_token_key)),
138                ("settings", models.JSONField(default=dict)),
139                (
140                    "endpoint",
141                    models.ForeignKey(
142                        on_delete=django.db.models.deletion.CASCADE,
143                        to="authentik_providers_rac.endpoint",
144                    ),
145                ),
146                (
147                    "provider",
148                    models.ForeignKey(
149                        on_delete=django.db.models.deletion.CASCADE,
150                        to="authentik_providers_rac.racprovider",
151                    ),
152                ),
153                (
154                    "session",
155                    models.ForeignKey(
156                        on_delete=django.db.models.deletion.CASCADE,
157                        to="authentik_core.authenticatedsession",
158                    ),
159                ),
160            ],
161            options={
162                "abstract": False,
163            },
164        ),
165    ]

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_policies', '0011_policybinding_failure_result_and_more'), ('authentik_core', '0032_group_roles')]
operations = [<CreateModel name='RACPropertyMapping', fields=[('propertymapping_ptr', <django.db.models.fields.related.OneToOneField>), ('static_settings', <django.db.models.fields.json.JSONField>)], options={'verbose_name': 'RAC Property Mapping', 'verbose_name_plural': 'RAC Property Mappings'}, bases=('authentik_core.propertymapping',)>, <CreateModel name='RACProvider', fields=[('provider_ptr', <django.db.models.fields.related.OneToOneField>), ('settings', <django.db.models.fields.json.JSONField>), ('auth_mode', <django.db.models.fields.TextField>), ('connection_expiry', <django.db.models.fields.TextField>)], options={'verbose_name': 'RAC Provider', 'verbose_name_plural': 'RAC Providers'}, bases=('authentik_core.provider',)>, <CreateModel name='Endpoint', fields=[('policybindingmodel_ptr', <django.db.models.fields.related.OneToOneField>), ('name', <django.db.models.fields.TextField>), ('host', <django.db.models.fields.TextField>), ('protocol', <django.db.models.fields.TextField>), ('settings', <django.db.models.fields.json.JSONField>), ('auth_mode', <django.db.models.fields.TextField>), ('property_mappings', <django.db.models.fields.related.ManyToManyField>), ('provider', <django.db.models.fields.related.ForeignKey>)], options={'verbose_name': 'RAC Endpoint', 'verbose_name_plural': 'RAC Endpoints'}, bases=('authentik_policies.policybindingmodel', <class 'django.db.models.base.Model'>)>, <CreateModel name='ConnectionToken', fields=[('expires', <django.db.models.fields.DateTimeField>), ('expiring', <django.db.models.fields.BooleanField>), ('connection_token_uuid', <django.db.models.fields.UUIDField>), ('token', <django.db.models.fields.TextField>), ('settings', <django.db.models.fields.json.JSONField>), ('endpoint', <django.db.models.fields.related.ForeignKey>), ('provider', <django.db.models.fields.related.ForeignKey>), ('session', <django.db.models.fields.related.ForeignKey>)], options={'abstract': False}>]