127 lines
8.2 KiB
Python
127 lines
8.2 KiB
Python
|
|
import uuid
|
||
|
|
|
||
|
|
import django.db.models.deletion
|
||
|
|
from django.db import migrations, models
|
||
|
|
|
||
|
|
|
||
|
|
class Migration(migrations.Migration):
|
||
|
|
dependencies = [
|
||
|
|
("agents", "0007_replay_arena"),
|
||
|
|
("graph", "0004_unique_champion_graph_version"),
|
||
|
|
("projects", "0003_commitrecord_graph_run"),
|
||
|
|
]
|
||
|
|
|
||
|
|
operations = [
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="StewardPolicy",
|
||
|
|
fields=[
|
||
|
|
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
||
|
|
("updated_at", models.DateTimeField(auto_now=True)),
|
||
|
|
("name", models.CharField(max_length=200)),
|
||
|
|
("enabled_checks", models.JSONField(blank=True, default=list)),
|
||
|
|
("severity_thresholds", models.JSONField(blank=True, default=dict)),
|
||
|
|
("auto_route_thresholds", models.JSONField(blank=True, default=dict)),
|
||
|
|
("run_cadence", models.JSONField(blank=True, default=dict)),
|
||
|
|
("allowed_repair_scope", models.JSONField(blank=True, default=dict)),
|
||
|
|
("approval_requirements", models.JSONField(blank=True, default=dict)),
|
||
|
|
("ignored_paths", models.JSONField(blank=True, default=list)),
|
||
|
|
("budget_limits", models.JSONField(blank=True, default=dict)),
|
||
|
|
("metadata", models.JSONField(blank=True, default=dict)),
|
||
|
|
],
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="StewardEnrollment",
|
||
|
|
fields=[
|
||
|
|
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
||
|
|
("updated_at", models.DateTimeField(auto_now=True)),
|
||
|
|
("status", models.CharField(default="ACTIVE", max_length=32)),
|
||
|
|
("enrolled_at", models.DateTimeField(auto_now_add=True)),
|
||
|
|
("last_run_at", models.DateTimeField(blank=True, null=True)),
|
||
|
|
("next_run_at", models.DateTimeField(blank=True, null=True)),
|
||
|
|
("metadata", models.JSONField(blank=True, default=dict)),
|
||
|
|
("policy", models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name="enrollments", to="projects.stewardpolicy")),
|
||
|
|
("project", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="steward_enrollments", to="projects.project")),
|
||
|
|
],
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="StewardRun",
|
||
|
|
fields=[
|
||
|
|
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
||
|
|
("updated_at", models.DateTimeField(auto_now=True)),
|
||
|
|
("status", models.CharField(default="PENDING", max_length=32)),
|
||
|
|
("started_at", models.DateTimeField(blank=True, null=True)),
|
||
|
|
("completed_at", models.DateTimeField(blank=True, null=True)),
|
||
|
|
("summary", models.TextField(blank=True)),
|
||
|
|
("metadata", models.JSONField(blank=True, default=dict)),
|
||
|
|
("enrollment", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="runs", to="projects.stewardenrollment")),
|
||
|
|
("execution_graph_version", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="steward_runs", to="graph.executiongraphversion")),
|
||
|
|
("project", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="steward_runs", to="projects.project")),
|
||
|
|
],
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="StewardCheck",
|
||
|
|
fields=[
|
||
|
|
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
||
|
|
("updated_at", models.DateTimeField(auto_now=True)),
|
||
|
|
("check_type", models.CharField(max_length=80)),
|
||
|
|
("status", models.CharField(max_length=32)),
|
||
|
|
("evidence", models.JSONField(blank=True, default=dict)),
|
||
|
|
("severity", models.CharField(default="INFO", max_length=32)),
|
||
|
|
("metadata", models.JSONField(blank=True, default=dict)),
|
||
|
|
("steward_run", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="checks", to="projects.stewardrun")),
|
||
|
|
],
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="StewardFinding",
|
||
|
|
fields=[
|
||
|
|
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
||
|
|
("updated_at", models.DateTimeField(auto_now=True)),
|
||
|
|
("finding_type", models.CharField(max_length=80)),
|
||
|
|
("title", models.CharField(max_length=255)),
|
||
|
|
("summary", models.TextField(blank=True)),
|
||
|
|
("evidence", models.JSONField(blank=True, default=dict)),
|
||
|
|
("severity", models.CharField(default="INFO", max_length=32)),
|
||
|
|
("confidence", models.FloatField(default=0.0)),
|
||
|
|
("status", models.CharField(default="OPEN", max_length=32)),
|
||
|
|
("recommended_action", models.CharField(default="INVESTIGATE", max_length=32)),
|
||
|
|
("recommended_route", models.CharField(blank=True, max_length=120)),
|
||
|
|
("grouping_key", models.CharField(max_length=240)),
|
||
|
|
("first_seen", models.DateTimeField(blank=True, null=True)),
|
||
|
|
("last_seen", models.DateTimeField(blank=True, null=True)),
|
||
|
|
("occurrence_count", models.PositiveIntegerField(default=1)),
|
||
|
|
("metadata", models.JSONField(blank=True, default=dict)),
|
||
|
|
("project", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="steward_findings", to="projects.project")),
|
||
|
|
("source_check", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="findings", to="projects.stewardcheck")),
|
||
|
|
("steward_run", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="findings", to="projects.stewardrun")),
|
||
|
|
],
|
||
|
|
),
|
||
|
|
migrations.AddField(
|
||
|
|
model_name="commitrecord",
|
||
|
|
name="steward_finding",
|
||
|
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="commits", to="projects.stewardfinding"),
|
||
|
|
),
|
||
|
|
migrations.CreateModel(
|
||
|
|
name="StewardAction",
|
||
|
|
fields=[
|
||
|
|
("id", models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
|
||
|
|
("created_at", models.DateTimeField(auto_now_add=True)),
|
||
|
|
("updated_at", models.DateTimeField(auto_now=True)),
|
||
|
|
("action_type", models.CharField(max_length=32)),
|
||
|
|
("status", models.CharField(default="PENDING", max_length=32)),
|
||
|
|
("requires_approval", models.BooleanField(default=False)),
|
||
|
|
("approved_at", models.DateTimeField(blank=True, null=True)),
|
||
|
|
("metadata", models.JSONField(blank=True, default=dict)),
|
||
|
|
("finding", models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name="actions", to="projects.stewardfinding")),
|
||
|
|
("improvement_candidate", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="steward_actions", to="agents.improvementcandidate")),
|
||
|
|
("investigation", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="steward_actions", to="agents.progenyinvestigation")),
|
||
|
|
("roadmap_item", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="steward_actions", to="projects.roadmapitem")),
|
||
|
|
("task", models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="steward_actions", to="projects.task")),
|
||
|
|
],
|
||
|
|
),
|
||
|
|
]
|