# Generated by Django 5.2.12 on 2026-03-11 19:35 import uuid import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ('gatekeeper', '0001_initial'), ] operations = [ migrations.CreateModel( name='Application', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.SlugField(max_length=64, unique=True)), ('display_name', models.CharField(max_length=128)), ('upstream', models.CharField(help_text='Upstream address, e.g.: http://10.188.18.27:3000', max_length=255)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), ], options={ 'ordering': ['name'], }, ), migrations.CreateModel( name='AccessPolicy', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.SlugField(max_length=64, unique=True)), ('policy_type', models.CharField(choices=[('bypass', 'Bypass (public)'), ('one_factor', 'One Factor'), ('two_factor', 'Two Factor'), ('deny', 'Deny')], max_length=32)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), ('groups', models.ManyToManyField(blank=True, related_name='policies', to='gatekeeper.gatekeepergroup')), ('methods', models.ManyToManyField(blank=True, related_name='policies', to='gatekeeper.authmethod')), ], options={ 'verbose_name': 'Access Policy', 'verbose_name_plural': 'Access Policies', 'ordering': ['name'], }, ), migrations.CreateModel( name='ApplicationHost', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('hostname', models.CharField(max_length=255, unique=True)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), ('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='hosts', to='app_gateway.application')), ], options={ 'ordering': ['hostname'], }, ), migrations.CreateModel( name='ApplicationPolicy', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), ('application', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='default_policy_config', to='app_gateway.application')), ('default_policy', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='application_defaults', to='app_gateway.accesspolicy')), ], options={ 'verbose_name': 'Application Policy', 'verbose_name_plural': 'Application Policies', }, ), migrations.CreateModel( name='ApplicationRoute', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.SlugField(help_text='Route identifier, used in export (e.g.: public_area)', max_length=64)), ('path_prefix', models.CharField(max_length=255)), ('order', models.PositiveIntegerField(default=0, help_text='Evaluation order — lower value means higher priority')), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('uuid', models.UUIDField(default=uuid.uuid4, editable=False, unique=True)), ('application', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='routes', to='app_gateway.application')), ('policy', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='routes', to='app_gateway.accesspolicy')), ], options={ 'verbose_name': 'Application Route', 'verbose_name_plural': 'Application Routes', 'ordering': ['application', 'order', 'path_prefix'], 'unique_together': {('application', 'name'), ('application', 'path_prefix')}, }, ), ]