Skip to content

Commit

Permalink
Merge branch 'main' into tdb/gunicorn-workers
Browse files Browse the repository at this point in the history
  • Loading branch information
timoballard committed Feb 16, 2024
2 parents 2ae5638 + a3c9982 commit 0b58034
Show file tree
Hide file tree
Showing 8 changed files with 252 additions and 84 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/trivy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@ jobs:
run: docker build -t ${{ env.DOCKER_NAME }}:${{ steps.date.outputs.date }} .

- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.13.1
uses: aquasecurity/trivy-action@0.17.0
with:
image-ref: '${{ env.DOCKER_NAME }}:${{ steps.date.outputs.date }}'
scan-type: 'image'
hide-progress: false
format: 'sarif'
output: 'trivy-results.sarif'
exit-code: '1'
exit-code: 0 # Setting the exit-code to 1 will fail the action, without publishing to Github Security Tab (> aquasecurity/trivy-action@0.13.1)
severity: 'CRITICAL,HIGH'
timeout: 15m0s
ignore-unfixed: true
Expand Down Expand Up @@ -74,14 +74,14 @@ jobs:
run: docker pull ${{ matrix.image.name }}

- name: Run Trivy vulnerability scanner on Third Party Images
uses: aquasecurity/trivy-action@0.13.1
uses: aquasecurity/trivy-action@0.17.0
with:
image-ref: '${{ matrix.image.name }}'
scan-type: 'image'
hide-progress: false
format: 'sarif'
output: 'trivy-results.sarif'
exit-code: '1'
exit-code: 0 # Setting the exit-code to 1 will fail the action, without publishing to Github Security Tab (> aquasecurity/trivy-action@0.13.1)
severity: 'CRITICAL,HIGH'
timeout: 15m0s
ignore-unfixed: true
Expand Down
21 changes: 10 additions & 11 deletions backend/audit/intake_to_dissemination.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def load_finding_texts(self):
)
for entry in findings_text_entries:
finding_text_ = FindingText(
report_id=self.report_id,
report_id=self.loaded_objects["Generals"][0],
finding_ref_number=entry["reference_number"],
contains_chart_or_table=entry["contains_chart_or_table"],
finding_text=entry["text_of_finding"],
Expand Down Expand Up @@ -122,7 +122,7 @@ def load_findings(self):
is_repeat_finding=findings["repeat_prior_reference"],
is_significant_deficiency=entry["significant_deficiency"],
prior_finding_ref_numbers=findings.get("prior_references", ""),
report_id=self.report_id,
report_id=self.loaded_objects["Generals"][0],
type_requirement=program["compliance_requirement"],
)
findings_objects.append(finding)
Expand Down Expand Up @@ -163,7 +163,7 @@ def load_federal_award(self):
passthrough_amount=entry["subrecipients"].get(
"subrecipient_amount", None
),
report_id=self.single_audit_checklist.report_id,
report_id=self.loaded_objects["Generals"][0],
state_cluster_name=cluster.get("state_cluster_name", ""),
)
federal_awards_objects.append(federal_award)
Expand All @@ -184,7 +184,7 @@ def load_captext(self):
contains_chart_or_table=entry["contains_chart_or_table"],
finding_ref_number=entry["reference_number"],
planned_action=entry["planned_action"],
report_id=self.report_id,
report_id=self.loaded_objects["Generals"][0],
)
cap_text_objects.append(cap_text)

Expand All @@ -206,7 +206,7 @@ def load_notes(self):
entries = n2sefa.get("notes_to_sefa_entries", [])
if len(entries) == 0:
note = Note(
report_id=self.report_id,
report_id=self.loaded_objects["Generals"][0],
accounting_policies=accounting_policies,
is_minimis_rate_used=is_minimis_rate_used,
rate_explained=rate_explained,
Expand All @@ -215,7 +215,7 @@ def load_notes(self):
else:
for entry in entries:
note = Note(
report_id=self.report_id,
report_id=self.loaded_objects["Generals"][0],
accounting_policies=accounting_policies,
is_minimis_rate_used=is_minimis_rate_used,
rate_explained=rate_explained,
Expand All @@ -238,7 +238,7 @@ def load_passthrough(self):
for entity in entities:
passthrough = Passthrough(
award_reference=entry["award_reference"],
report_id=self.report_id,
report_id=self.loaded_objects["Generals"][0],
passthrough_id=entity.get("passthrough_identifying_number", ""),
passthrough_name=entity["passthrough_name"],
)
Expand Down Expand Up @@ -421,7 +421,6 @@ def load_secondary_auditor(self):
secondary_auditors_entries = secondary_auditors.get(
"SecondaryAuditors", {}
).get("secondary_auditors_entries", [])

for secondary_auditor in secondary_auditors_entries:
sec_auditor = SecondaryAuditor(
address_city=secondary_auditor["secondary_auditor_address_city"],
Expand All @@ -438,7 +437,7 @@ def load_secondary_auditor(self):
contact_name=secondary_auditor["secondary_auditor_contact_name"],
contact_phone=secondary_auditor["secondary_auditor_contact_phone"],
contact_title=secondary_auditor["secondary_auditor_contact_title"],
report_id=self.single_audit_checklist.report_id,
report_id=self.loaded_objects["Generals"][0],
)
sec_objs.append(sec_auditor)

Expand All @@ -455,7 +454,7 @@ def load_additional_ueis(self):
):
for entry in addls["AdditionalUEIs"]["additional_ueis_entries"]:
uei = AdditionalUei(
report_id=self.single_audit_checklist.report_id,
report_id=self.loaded_objects["Generals"][0],
additional_uei=entry["additional_uei"],
)
uei_objs.append(uei)
Expand All @@ -472,7 +471,7 @@ def load_additional_eins(self):
):
for entry in addls["AdditionalEINs"]["additional_eins_entries"]:
ein = AdditionalEin(
report_id=self.single_audit_checklist.report_id,
report_id=self.loaded_objects["Generals"][0],
additional_ein=entry["additional_ein"],
)
ein_objs.append(ein)
Expand Down
23 changes: 16 additions & 7 deletions backend/audit/test_intake_to_dissemination.py
Original file line number Diff line number Diff line change
Expand Up @@ -493,12 +493,13 @@ def test_tribal_data_is_private_when_not_authorized(self):
self._setup_and_test_privacy_flag(False)

def test_load_federal_award(self):
self.intake_to_dissemination.load_general()
self.intake_to_dissemination.load_federal_award()
self.intake_to_dissemination.save_dissemination_objects()
federal_awards = FederalAward.objects.all()
self.assertEqual(len(federal_awards), 1)
federal_award = federal_awards.first()
self.assertEqual(self.report_id, federal_award.report_id)
self.assertEqual(self.report_id, federal_award.report_id.report_id)
self.assertEqual(
federal_award.federal_program_total,
self.sac.federal_awards["FederalAwards"]["federal_awards"][0]["program"][
Expand All @@ -507,54 +508,61 @@ def test_load_federal_award(self):
)

def test_load_findings(self):
self.intake_to_dissemination.load_general()
self.intake_to_dissemination.load_findings()
self.intake_to_dissemination.save_dissemination_objects()
findings = Finding.objects.all()
self.assertEqual(len(findings), 4)
finding = findings.first()
self.assertEqual(self.report_id, finding.report_id)
self.assertEqual(self.report_id, finding.report_id.report_id)

def test_load_passthrough(self):
self.intake_to_dissemination.load_general()
self.intake_to_dissemination.load_passthrough()
self.intake_to_dissemination.save_dissemination_objects()
passthroughs = Passthrough.objects.all()
self.assertEqual(len(passthroughs), 1)
passthrough = passthroughs.first()
self.assertEqual(self.report_id, passthrough.report_id)
self.assertEqual(self.report_id, passthrough.report_id.report_id)

def test_load_notes(self):
self.intake_to_dissemination.load_general()
self.intake_to_dissemination.load_notes()
self.intake_to_dissemination.save_dissemination_objects()
notes = Note.objects.all()
self.assertEqual(len(notes), 1)
note = notes.first()
self.assertEqual(self.report_id, note.report_id)
self.assertEqual(self.report_id, note.report_id.report_id)

def test_load_finding_texts(self):
self.intake_to_dissemination.load_general()
self.intake_to_dissemination.load_finding_texts()
self.intake_to_dissemination.save_dissemination_objects()
finding_texts = FindingText.objects.all()
self.assertEqual(len(finding_texts), 1)
finding_text = finding_texts.first()
self.assertEqual(self.report_id, finding_text.report_id)
self.assertEqual(self.report_id, finding_text.report_id.report_id)

def test_load_captext(self):
self.intake_to_dissemination.load_general()
self.intake_to_dissemination.load_captext()
self.intake_to_dissemination.save_dissemination_objects()
cap_texts = CapText.objects.all()
self.assertEqual(len(cap_texts), 1)
cap_text = cap_texts.first()
self.assertEqual(self.report_id, cap_text.report_id)
self.assertEqual(self.report_id, cap_text.report_id.report_id)

def test_load_sec_auditor(self):
self.intake_to_dissemination.load_general()
self.intake_to_dissemination.load_secondary_auditor()
self.intake_to_dissemination.save_dissemination_objects()
sec_auditor = SecondaryAuditor.objects.first()
print(self.sac.report_id)
print(sec_auditor.report_id)
self.assertEquals(self.sac.report_id, sec_auditor.report_id)
self.assertEquals(self.sac.report_id, sec_auditor.report_id.report_id)

def test_load_additional_ueis(self):
self.intake_to_dissemination.load_general()
self.intake_to_dissemination.load_additional_ueis()
self.intake_to_dissemination.save_dissemination_objects()
dissem_ueis = [obj.additional_uei for obj in AdditionalUei.objects.all()]
Expand All @@ -567,6 +575,7 @@ def test_load_additional_ueis(self):
self.assertEqual(set(dissem_ueis), set(intake_ueis))

def test_load_additional_eins(self):
self.intake_to_dissemination.load_general()
self.intake_to_dissemination.load_additional_eins()
self.intake_to_dissemination.save_dissemination_objects()
dissem_eins = [obj.additional_ein for obj in AdditionalEin.objects.all()]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# Generated by Django 5.0.2 on 2024-02-15 19:48

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("dissemination", "0012_alter_additionalein_report_id_and_more"),
]

operations = [
migrations.AlterField(
model_name="additionalein",
name="report_id",
field=models.ForeignKey(
db_column="report_id",
help_text="GSAFAC generated identifier",
on_delete=django.db.models.deletion.CASCADE,
to="dissemination.general",
to_field="report_id",
),
),
migrations.AlterField(
model_name="additionaluei",
name="report_id",
field=models.ForeignKey(
db_column="report_id",
help_text="GSAFAC generated identifier",
on_delete=django.db.models.deletion.CASCADE,
to="dissemination.general",
to_field="report_id",
),
),
migrations.AlterField(
model_name="captext",
name="report_id",
field=models.ForeignKey(
db_column="report_id",
help_text="GSAFAC generated identifier",
on_delete=django.db.models.deletion.CASCADE,
to="dissemination.general",
to_field="report_id",
),
),
migrations.AlterField(
model_name="federalaward",
name="report_id",
field=models.ForeignKey(
db_column="report_id",
help_text="GSAFAC generated identifier",
on_delete=django.db.models.deletion.CASCADE,
to="dissemination.general",
to_field="report_id",
),
),
migrations.AlterField(
model_name="finding",
name="report_id",
field=models.ForeignKey(
db_column="report_id",
help_text="GSAFAC generated identifier",
on_delete=django.db.models.deletion.CASCADE,
to="dissemination.general",
to_field="report_id",
),
),
migrations.AlterField(
model_name="findingtext",
name="report_id",
field=models.ForeignKey(
db_column="report_id",
help_text="GSAFAC generated identifier",
on_delete=django.db.models.deletion.CASCADE,
to="dissemination.general",
to_field="report_id",
),
),
migrations.AlterField(
model_name="note",
name="report_id",
field=models.ForeignKey(
db_column="report_id",
help_text="GSAFAC generated identifier",
on_delete=django.db.models.deletion.CASCADE,
to="dissemination.general",
to_field="report_id",
),
),
migrations.AlterField(
model_name="passthrough",
name="report_id",
field=models.ForeignKey(
db_column="report_id",
help_text="GSAFAC generated identifier",
on_delete=django.db.models.deletion.CASCADE,
to="dissemination.general",
to_field="report_id",
),
),
migrations.AlterField(
model_name="secondaryauditor",
name="report_id",
field=models.ForeignKey(
db_column="report_id",
help_text="GSAFAC generated identifier",
on_delete=django.db.models.deletion.CASCADE,
to="dissemination.general",
to_field="report_id",
),
),
]

0 comments on commit 0b58034

Please sign in to comment.