From d7938b6981a31fe6b733ee7edadd8cf8b252fb00 Mon Sep 17 00:00:00 2001 From: Cayo Puigdefabregas Date: Mon, 22 Jan 2024 16:00:05 +0100 Subject: [PATCH] add migrations --- idhub/migrations/0001_initial.py | 379 ++++++++++++++++++++++++++ idhub_auth/migrations/0001_initial.py | 59 ++++ oidc4vp/migrations/0001_initial.py | 137 ++++++++++ promotion/migrations/0001_initial.py | 45 +++ 4 files changed, 620 insertions(+) create mode 100644 idhub/migrations/0001_initial.py create mode 100644 idhub_auth/migrations/0001_initial.py create mode 100644 oidc4vp/migrations/0001_initial.py create mode 100644 promotion/migrations/0001_initial.py diff --git a/idhub/migrations/0001_initial.py b/idhub/migrations/0001_initial.py new file mode 100644 index 0000000..48d4e61 --- /dev/null +++ b/idhub/migrations/0001_initial.py @@ -0,0 +1,379 @@ +# Generated by Django 4.2.5 on 2024-01-22 14:59 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='DID', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ( + 'type', + models.PositiveSmallIntegerField( + choices=[(1, 'Key'), (2, 'Web')], verbose_name='Type' + ), + ), + ('created_at', models.DateTimeField(auto_now=True)), + ('label', models.CharField(max_length=50, verbose_name='Label')), + ('did', models.CharField(max_length=250)), + ('key_material', models.TextField()), + ('eidas1', models.BooleanField(default=False)), + ('didweb_document', models.TextField()), + ( + 'user', + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='dids', + to=settings.AUTH_USER_MODEL, + ), + ), + ], + ), + migrations.CreateModel( + name='File_datas', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('file_name', models.CharField(max_length=250)), + ('success', models.BooleanField(default=True)), + ('created_at', models.DateTimeField(auto_now=True)), + ], + ), + migrations.CreateModel( + name='Rol', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('name', models.CharField(max_length=250, verbose_name='name')), + ( + 'description', + models.CharField( + max_length=250, null=True, verbose_name='Description' + ), + ), + ], + ), + migrations.CreateModel( + name='Schemas', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('type', models.CharField(max_length=250)), + ('file_schema', models.CharField(max_length=250)), + ('data', models.TextField()), + ('created_at', models.DateTimeField(auto_now=True)), + ( + '_name', + models.CharField(db_column='name', max_length=250, null=True), + ), + ( + '_description', + models.CharField( + db_column='description', max_length=250, null=True + ), + ), + ('template_description', models.TextField(null=True)), + ], + ), + migrations.CreateModel( + name='Service', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('domain', models.CharField(max_length=250, verbose_name='Domain')), + ( + 'description', + models.CharField(max_length=250, verbose_name='Description'), + ), + ('rol', models.ManyToManyField(to='idhub.rol')), + ], + ), + migrations.CreateModel( + name='VCTemplate', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('wkit_template_id', models.CharField(max_length=250)), + ('data', models.TextField()), + ], + ), + migrations.CreateModel( + name='VerificableCredential', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('id_string', models.CharField(max_length=250)), + ('verified', models.BooleanField()), + ('created_on', models.DateTimeField(auto_now=True)), + ('issued_on', models.DateTimeField(null=True)), + ('data', models.TextField()), + ('csv_data', models.TextField()), + ('hash', models.CharField(max_length=260)), + ( + 'status', + models.PositiveSmallIntegerField( + choices=[ + (1, 'Enabled'), + (2, 'Issued'), + (3, 'Revoked'), + (4, 'Expired'), + ], + default=1, + ), + ), + ( + 'eidas1_did', + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + to='idhub.did', + ), + ), + ( + 'issuer_did', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='vcredentials', + to='idhub.did', + ), + ), + ( + 'schema', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='vcredentials', + to='idhub.schemas', + ), + ), + ( + 'subject_did', + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='subject_credentials', + to='idhub.did', + ), + ), + ( + 'user', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='vcredentials', + to=settings.AUTH_USER_MODEL, + ), + ), + ], + ), + migrations.CreateModel( + name='Membership', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ( + 'type', + models.PositiveSmallIntegerField( + choices=[(1, 'Beneficiary'), (2, 'Employee'), (3, 'Member')], + verbose_name='Type of membership', + ), + ), + ( + 'start_date', + models.DateField( + blank=True, + help_text='What date did the membership start?', + null=True, + verbose_name='Start date', + ), + ), + ( + 'end_date', + models.DateField( + blank=True, + help_text='What date will the membership end?', + null=True, + verbose_name='End date', + ), + ), + ( + 'user', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='memberships', + to=settings.AUTH_USER_MODEL, + ), + ), + ], + ), + migrations.CreateModel( + name='Event', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('created', models.DateTimeField(auto_now=True, verbose_name='Date')), + ( + 'message', + models.CharField(max_length=350, verbose_name='Description'), + ), + ( + 'type', + models.PositiveSmallIntegerField( + choices=[ + (1, 'User registered'), + (2, 'User welcomed'), + (3, 'Data update requested by user'), + ( + 4, + 'Data update requested. Pending approval by administrator', + ), + (5, "User's data updated by admin"), + (6, 'Your data updated by admin'), + (7, 'User deactivated by admin'), + (8, 'DID created by user'), + (9, 'DID created'), + (10, 'DID deleted'), + (11, 'Credential deleted by user'), + (12, 'Credential deleted'), + (13, 'Credential issued for user'), + (14, 'Credential issued'), + (15, 'Credential presented by user'), + (16, 'Credential presented'), + (17, 'Credential enabled'), + (18, 'Credential available'), + (19, 'Credential revoked by admin'), + (20, 'Credential revoked'), + (21, 'Role created by admin'), + (22, 'Role modified by admin'), + (23, 'Role deleted by admin'), + (24, 'Service created by admin'), + (25, 'Service modified by admin'), + (26, 'Service deleted by admin'), + (27, 'Organisational DID created by admin'), + (28, 'Organisational DID deleted by admin'), + (29, 'User deactivated'), + (30, 'User activated'), + (31, 'User send Verificable Presentation'), + ], + verbose_name='Event', + ), + ), + ( + 'user', + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='events', + to=settings.AUTH_USER_MODEL, + ), + ), + ], + ), + migrations.CreateModel( + name='UserRol', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ( + 'service', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='users', + to='idhub.service', + verbose_name='Service', + ), + ), + ( + 'user', + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name='roles', + to=settings.AUTH_USER_MODEL, + ), + ), + ], + options={ + 'unique_together': {('user', 'service')}, + }, + ), + ] diff --git a/idhub_auth/migrations/0001_initial.py b/idhub_auth/migrations/0001_initial.py new file mode 100644 index 0000000..d667e25 --- /dev/null +++ b/idhub_auth/migrations/0001_initial.py @@ -0,0 +1,59 @@ +# Generated by Django 4.2.5 on 2024-01-22 14:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + initial = True + + dependencies = [] + + operations = [ + migrations.CreateModel( + name='User', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('password', models.CharField(max_length=128, verbose_name='password')), + ( + 'last_login', + models.DateTimeField( + blank=True, null=True, verbose_name='last login' + ), + ), + ( + 'email', + models.EmailField( + max_length=255, unique=True, verbose_name='Email address' + ), + ), + ('is_active', models.BooleanField(default=True)), + ('is_admin', models.BooleanField(default=False)), + ( + 'first_name', + models.CharField( + blank=True, max_length=255, null=True, verbose_name='First name' + ), + ), + ( + 'last_name', + models.CharField( + blank=True, max_length=255, null=True, verbose_name='Last name' + ), + ), + ('encrypted_sensitive_data', models.CharField(max_length=255)), + ('salt', models.CharField(max_length=255)), + ('accept_gdpr', models.BooleanField(default=False)), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/oidc4vp/migrations/0001_initial.py b/oidc4vp/migrations/0001_initial.py new file mode 100644 index 0000000..d6db27d --- /dev/null +++ b/oidc4vp/migrations/0001_initial.py @@ -0,0 +1,137 @@ +# Generated by Django 4.2.5 on 2024-01-22 14:59 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import oidc4vp.models + + +class Migration(migrations.Migration): + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Authorization', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ( + 'code', + models.CharField(default=oidc4vp.models.set_code, max_length=24), + ), + ('code_used', models.BooleanField(default=False)), + ('created', models.DateTimeField(auto_now=True)), + ('presentation_definition', models.CharField(max_length=250)), + ], + ), + migrations.CreateModel( + name='Organization', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('name', models.CharField(max_length=250)), + ( + 'client_id', + models.CharField( + default=oidc4vp.models.set_client_id, max_length=24, unique=True + ), + ), + ( + 'client_secret', + models.CharField( + default=oidc4vp.models.set_client_secret, max_length=48 + ), + ), + ('my_client_id', models.CharField(max_length=24)), + ('my_client_secret', models.CharField(max_length=48)), + ( + 'response_uri', + models.URLField( + help_text='Url where to send the verificable presentation', + max_length=250, + ), + ), + ], + ), + migrations.CreateModel( + name='OAuth2VPToken', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('created', models.DateTimeField(auto_now=True)), + ('result_verify', models.CharField(max_length=255)), + ('vp_token', models.TextField()), + ( + 'authorization', + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name='vp_tokens', + to='oidc4vp.authorization', + ), + ), + ( + 'organization', + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='vp_tokens', + to='oidc4vp.organization', + ), + ), + ( + 'user', + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='vp_tokens', + to=settings.AUTH_USER_MODEL, + ), + ), + ], + ), + migrations.AddField( + model_name='authorization', + name='organization', + field=models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='authorizations', + to='oidc4vp.organization', + ), + ), + migrations.AddField( + model_name='authorization', + name='user', + field=models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL, + ), + ), + ] diff --git a/promotion/migrations/0001_initial.py b/promotion/migrations/0001_initial.py new file mode 100644 index 0000000..80f23eb --- /dev/null +++ b/promotion/migrations/0001_initial.py @@ -0,0 +1,45 @@ +# Generated by Django 4.2.5 on 2024-01-22 14:59 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + initial = True + + dependencies = [ + ('oidc4vp', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Promotion', + fields=[ + ( + 'id', + models.BigAutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name='ID', + ), + ), + ('name', models.CharField(max_length=250)), + ( + 'discount', + models.PositiveSmallIntegerField( + choices=[(1, 'Financial vulnerability')] + ), + ), + ( + 'authorize', + models.ForeignKey( + null=True, + on_delete=django.db.models.deletion.CASCADE, + related_name='promotions', + to='oidc4vp.authorization', + ), + ), + ], + ), + ]