authentik.providers.rac.migrations.0001_squashed_0003_alter_connectiontoken_options_and_more
1# Generated by Django 5.0.1 on 2024-02-11 19:04 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 14 replaces = [ 15 ("authentik_providers_rac", "0001_initial"), 16 ("authentik_providers_rac", "0002_endpoint_maximum_connections"), 17 ("authentik_providers_rac", "0003_alter_connectiontoken_options_and_more"), 18 ] 19 20 initial = True 21 22 dependencies = [ 23 ("authentik_core", "0032_group_roles"), 24 ("authentik_policies", "0011_policybinding_failure_result_and_more"), 25 ] 26 27 operations = [ 28 migrations.CreateModel( 29 name="RACPropertyMapping", 30 fields=[ 31 ( 32 "propertymapping_ptr", 33 models.OneToOneField( 34 auto_created=True, 35 on_delete=django.db.models.deletion.CASCADE, 36 parent_link=True, 37 primary_key=True, 38 serialize=False, 39 to="authentik_core.propertymapping", 40 ), 41 ), 42 ("static_settings", models.JSONField(default=dict)), 43 ], 44 options={ 45 "verbose_name": "RAC Property Mapping", 46 "verbose_name_plural": "RAC Property Mappings", 47 }, 48 bases=("authentik_core.propertymapping",), 49 ), 50 migrations.CreateModel( 51 name="RACProvider", 52 fields=[ 53 ( 54 "provider_ptr", 55 models.OneToOneField( 56 auto_created=True, 57 on_delete=django.db.models.deletion.CASCADE, 58 parent_link=True, 59 primary_key=True, 60 serialize=False, 61 to="authentik_core.provider", 62 ), 63 ), 64 ("settings", models.JSONField(default=dict)), 65 ( 66 "auth_mode", 67 models.TextField( 68 choices=[("static", "Static"), ("prompt", "Prompt")], default="prompt" 69 ), 70 ), 71 ( 72 "connection_expiry", 73 models.TextField( 74 default="hours=8", 75 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)", 76 validators=[authentik.lib.utils.time.timedelta_string_validator], 77 ), 78 ), 79 ( 80 "delete_token_on_disconnect", 81 models.BooleanField( 82 default=False, 83 help_text="When set to true, connection tokens will be deleted upon disconnect.", 84 ), 85 ), 86 ], 87 options={ 88 "verbose_name": "RAC Provider", 89 "verbose_name_plural": "RAC Providers", 90 }, 91 bases=("authentik_core.provider",), 92 ), 93 migrations.CreateModel( 94 name="Endpoint", 95 fields=[ 96 ( 97 "policybindingmodel_ptr", 98 models.OneToOneField( 99 auto_created=True, 100 on_delete=django.db.models.deletion.CASCADE, 101 parent_link=True, 102 primary_key=True, 103 serialize=False, 104 to="authentik_policies.policybindingmodel", 105 ), 106 ), 107 ("name", models.TextField()), 108 ("host", models.TextField()), 109 ( 110 "protocol", 111 models.TextField(choices=[("rdp", "Rdp"), ("vnc", "Vnc"), ("ssh", "Ssh")]), 112 ), 113 ("settings", models.JSONField(default=dict)), 114 ( 115 "auth_mode", 116 models.TextField(choices=[("static", "Static"), ("prompt", "Prompt")]), 117 ), 118 ( 119 "property_mappings", 120 models.ManyToManyField( 121 blank=True, default=None, to="authentik_core.propertymapping" 122 ), 123 ), 124 ( 125 "provider", 126 models.ForeignKey( 127 on_delete=django.db.models.deletion.CASCADE, 128 to="authentik_providers_rac.racprovider", 129 ), 130 ), 131 ("maximum_connections", models.IntegerField(default=1)), 132 ], 133 options={ 134 "verbose_name": "RAC Endpoint", 135 "verbose_name_plural": "RAC Endpoints", 136 }, 137 bases=("authentik_policies.policybindingmodel", models.Model), 138 ), 139 migrations.CreateModel( 140 name="ConnectionToken", 141 fields=[ 142 ( 143 "expires", 144 models.DateTimeField(default=authentik.core.models.default_token_duration), 145 ), 146 ("expiring", models.BooleanField(default=True)), 147 ( 148 "connection_token_uuid", 149 models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False), 150 ), 151 ("token", models.TextField(default=authentik.core.models.default_token_key)), 152 ("settings", models.JSONField(default=dict)), 153 ( 154 "endpoint", 155 models.ForeignKey( 156 on_delete=django.db.models.deletion.CASCADE, 157 to="authentik_providers_rac.endpoint", 158 ), 159 ), 160 ( 161 "provider", 162 models.ForeignKey( 163 on_delete=django.db.models.deletion.CASCADE, 164 to="authentik_providers_rac.racprovider", 165 ), 166 ), 167 ( 168 "session", 169 models.ForeignKey( 170 on_delete=django.db.models.deletion.CASCADE, 171 to="authentik_core.authenticatedsession", 172 ), 173 ), 174 ], 175 options={ 176 "abstract": False, 177 "verbose_name": "RAC Connection token", 178 "verbose_name_plural": "RAC Connection tokens", 179 }, 180 ), 181 ]
class
Migration(django.db.migrations.migration.Migration):
13class Migration(migrations.Migration): 14 15 replaces = [ 16 ("authentik_providers_rac", "0001_initial"), 17 ("authentik_providers_rac", "0002_endpoint_maximum_connections"), 18 ("authentik_providers_rac", "0003_alter_connectiontoken_options_and_more"), 19 ] 20 21 initial = True 22 23 dependencies = [ 24 ("authentik_core", "0032_group_roles"), 25 ("authentik_policies", "0011_policybinding_failure_result_and_more"), 26 ] 27 28 operations = [ 29 migrations.CreateModel( 30 name="RACPropertyMapping", 31 fields=[ 32 ( 33 "propertymapping_ptr", 34 models.OneToOneField( 35 auto_created=True, 36 on_delete=django.db.models.deletion.CASCADE, 37 parent_link=True, 38 primary_key=True, 39 serialize=False, 40 to="authentik_core.propertymapping", 41 ), 42 ), 43 ("static_settings", models.JSONField(default=dict)), 44 ], 45 options={ 46 "verbose_name": "RAC Property Mapping", 47 "verbose_name_plural": "RAC Property Mappings", 48 }, 49 bases=("authentik_core.propertymapping",), 50 ), 51 migrations.CreateModel( 52 name="RACProvider", 53 fields=[ 54 ( 55 "provider_ptr", 56 models.OneToOneField( 57 auto_created=True, 58 on_delete=django.db.models.deletion.CASCADE, 59 parent_link=True, 60 primary_key=True, 61 serialize=False, 62 to="authentik_core.provider", 63 ), 64 ), 65 ("settings", models.JSONField(default=dict)), 66 ( 67 "auth_mode", 68 models.TextField( 69 choices=[("static", "Static"), ("prompt", "Prompt")], default="prompt" 70 ), 71 ), 72 ( 73 "connection_expiry", 74 models.TextField( 75 default="hours=8", 76 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)", 77 validators=[authentik.lib.utils.time.timedelta_string_validator], 78 ), 79 ), 80 ( 81 "delete_token_on_disconnect", 82 models.BooleanField( 83 default=False, 84 help_text="When set to true, connection tokens will be deleted upon disconnect.", 85 ), 86 ), 87 ], 88 options={ 89 "verbose_name": "RAC Provider", 90 "verbose_name_plural": "RAC Providers", 91 }, 92 bases=("authentik_core.provider",), 93 ), 94 migrations.CreateModel( 95 name="Endpoint", 96 fields=[ 97 ( 98 "policybindingmodel_ptr", 99 models.OneToOneField( 100 auto_created=True, 101 on_delete=django.db.models.deletion.CASCADE, 102 parent_link=True, 103 primary_key=True, 104 serialize=False, 105 to="authentik_policies.policybindingmodel", 106 ), 107 ), 108 ("name", models.TextField()), 109 ("host", models.TextField()), 110 ( 111 "protocol", 112 models.TextField(choices=[("rdp", "Rdp"), ("vnc", "Vnc"), ("ssh", "Ssh")]), 113 ), 114 ("settings", models.JSONField(default=dict)), 115 ( 116 "auth_mode", 117 models.TextField(choices=[("static", "Static"), ("prompt", "Prompt")]), 118 ), 119 ( 120 "property_mappings", 121 models.ManyToManyField( 122 blank=True, default=None, to="authentik_core.propertymapping" 123 ), 124 ), 125 ( 126 "provider", 127 models.ForeignKey( 128 on_delete=django.db.models.deletion.CASCADE, 129 to="authentik_providers_rac.racprovider", 130 ), 131 ), 132 ("maximum_connections", models.IntegerField(default=1)), 133 ], 134 options={ 135 "verbose_name": "RAC Endpoint", 136 "verbose_name_plural": "RAC Endpoints", 137 }, 138 bases=("authentik_policies.policybindingmodel", models.Model), 139 ), 140 migrations.CreateModel( 141 name="ConnectionToken", 142 fields=[ 143 ( 144 "expires", 145 models.DateTimeField(default=authentik.core.models.default_token_duration), 146 ), 147 ("expiring", models.BooleanField(default=True)), 148 ( 149 "connection_token_uuid", 150 models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False), 151 ), 152 ("token", models.TextField(default=authentik.core.models.default_token_key)), 153 ("settings", models.JSONField(default=dict)), 154 ( 155 "endpoint", 156 models.ForeignKey( 157 on_delete=django.db.models.deletion.CASCADE, 158 to="authentik_providers_rac.endpoint", 159 ), 160 ), 161 ( 162 "provider", 163 models.ForeignKey( 164 on_delete=django.db.models.deletion.CASCADE, 165 to="authentik_providers_rac.racprovider", 166 ), 167 ), 168 ( 169 "session", 170 models.ForeignKey( 171 on_delete=django.db.models.deletion.CASCADE, 172 to="authentik_core.authenticatedsession", 173 ), 174 ), 175 ], 176 options={ 177 "abstract": False, 178 "verbose_name": "RAC Connection token", 179 "verbose_name_plural": "RAC Connection tokens", 180 }, 181 ), 182 ]
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.
replaces =
[('authentik_providers_rac', '0001_initial'), ('authentik_providers_rac', '0002_endpoint_maximum_connections'), ('authentik_providers_rac', '0003_alter_connectiontoken_options_and_more')]
dependencies =
[('authentik_core', '0032_group_roles'), ('authentik_policies', '0011_policybinding_failure_result_and_more')]
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>), ('delete_token_on_disconnect', <django.db.models.fields.BooleanField>)], 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>), ('maximum_connections', <django.db.models.fields.IntegerField>)], 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, 'verbose_name': 'RAC Connection token', 'verbose_name_plural': 'RAC Connection tokens'}>]