Skip to content

Commit b737069

Browse files
Ibraheem OlasupoIbraheem Olasupo
authored andcommitted
Complete milestone 14 portfolio polish and final assurance
1 parent d09a9b9 commit b737069

174 files changed

Lines changed: 6683 additions & 887 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/repository-metadata.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Recommended Repository Metadata
2+
3+
Suggested description: `Portfolio-grade DevSecOps application security pipeline with deterministic evidence, release assurance and vulnerability governance.`
4+
5+
Suggested topics:
6+
7+
- application-security
8+
- devsecops
9+
- product-security
10+
- security-automation
11+
- threat-modeling
12+
- fastapi
13+
- terraform
14+
- sbom
15+
- sast
16+
- dast
17+
- vulnerability-management
18+
19+
This file is documentation only. Milestone 14 does not update GitHub repository settings.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Portfolio Readiness
2+
3+
on:
4+
pull_request:
5+
workflow_dispatch:
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
portfolio-readiness:
12+
runs-on: ubuntu-24.04
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
16+
- name: Set up Python
17+
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
18+
with:
19+
python-version: "3.12"
20+
- name: Install dependencies
21+
run: |
22+
python -m pip install --upgrade pip==25.1.1
23+
python -m pip install -e ".[dev]"
24+
- name: Portfolio validation
25+
run: |
26+
make quality
27+
make portfolio-full
28+
PYTHONPATH=src pytest tests/security/test_portfolio_readiness.py -q
29+
git diff --check
30+
- name: Upload portfolio artefacts
31+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
32+
with:
33+
name: portfolio-readiness
34+
path: |
35+
outputs/security/portfolio/
36+
outputs/portfolio/
37+
reports/portfolio/

.gitleaks.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
title = "Genomic Research Access API Gitleaks Configuration"
22

33
[allowlist]
4-
description = "Narrow allow-list for approved synthetic local JWT test key fixture only."
4+
description = "Narrow allow-list for approved synthetic local JWT test key fixture and one historical Milestone 13 test-marker false positive."
5+
commits = [
6+
"d09a9b93c14176b23908de97be3c3907e5d29ec2",
7+
]
58
paths = [
69
'''^tests/fixtures/keys/dev_private_key\.pem$''',
710
]

Makefile

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: setup install format format-check lint type-check test test-coverage auth-test api-security-test terraform-fmt terraform-fmt-check terraform-init terraform-validate terraform-test infrastructure-test infrastructure-evidence verify-infrastructure-evidence infrastructure-report security-tools secrets-scan sast sast-semgrep sast-bandit semgrep-test sca dependency-audit sbom verify-sbom iac-scan checkov-scan container-build-security container-scan appsec-fast appsec-full appsec-evidence verify-appsec-evidence appsec-report dynamic-tools dynamic-server-start dynamic-server-wait dynamic-server-stop schemathesis-test api-schema-security-test zap-baseline zap-api-scan auth-boundary-test authorisation-boundary-test object-access-test input-mutation-test security-header-test cors-test resource-consumption-test audit-dynamic-test dast dynamic-evidence verify-dynamic-evidence dynamic-report dynamic-fast dynamic-full findings-normalise findings-deduplicate findings-enrich findings-validate findings-evidence verify-findings-evidence findings-report findings-full release-policy-validate release-gate-evaluate release-gate-enforce release-evidence verify-release-evidence release-report release-full lifecycle-policy-validate lifecycle-initialise lifecycle-validate lifecycle-expiry lifecycle-evidence verify-lifecycle-evidence lifecycle-report lifecycle-full evidence-source-validate evidence-aggregate evidence-generate verify-consolidated-evidence evidence-report evidence-full integration-policy-validate integration-export integration-validate verify-integration-evidence integration-report integration-full security-assurance-full security-doctor developer-docs-validate developer-enablement-evidence verify-developer-enablement-evidence developer-enablement-report developer-enablement-full champions-policy-validate champions-metrics champions-evidence verify-champions-evidence champions-report champions-full pre-commit-install pre-commit-run quality run docker-build docker-run threat-model-validate threat-model-evidence verify-threat-model-evidence threat-model-report api-security-evidence verify-api-security-evidence api-security-report dev-token-researcher dev-token-approver dev-token-auditor clean
1+
.PHONY: help setup install format format-check lint type-check test test-coverage auth-test api-security-test terraform-fmt terraform-fmt-check terraform-init terraform-validate terraform-test infrastructure-test infrastructure-evidence verify-infrastructure-evidence infrastructure-report security-tools secrets-scan sast sast-semgrep sast-bandit semgrep-test sca dependency-audit sbom verify-sbom iac-scan checkov-scan container-build-security container-scan appsec-fast appsec-full appsec-evidence verify-appsec-evidence appsec-report dynamic-tools dynamic-server-start dynamic-server-wait dynamic-server-stop schemathesis-test api-schema-security-test zap-baseline zap-api-scan auth-boundary-test authorisation-boundary-test object-access-test input-mutation-test security-header-test cors-test resource-consumption-test audit-dynamic-test dast dynamic-evidence verify-dynamic-evidence dynamic-report dynamic-fast dynamic-full findings-normalise findings-deduplicate findings-enrich findings-validate findings-evidence verify-findings-evidence findings-report findings-full release-policy-validate release-gate-evaluate release-gate-enforce release-evidence verify-release-evidence release-report release-full lifecycle-policy-validate lifecycle-initialise lifecycle-validate lifecycle-expiry lifecycle-evidence verify-lifecycle-evidence lifecycle-report lifecycle-full evidence-source-validate evidence-aggregate evidence-generate verify-consolidated-evidence evidence-report evidence-full integration-policy-validate integration-export integration-validate verify-integration-evidence integration-report integration-full portfolio-evidence verify-portfolio-evidence portfolio-report portfolio-full final-validation security-assurance-full security-doctor developer-docs-validate developer-enablement-evidence verify-developer-enablement-evidence developer-enablement-report developer-enablement-full champions-policy-validate champions-metrics champions-evidence verify-champions-evidence champions-report champions-full pre-commit-install pre-commit-run quality run docker-build docker-run threat-model-validate threat-model-evidence verify-threat-model-evidence threat-model-report api-security-evidence verify-api-security-evidence api-security-report dev-token-researcher dev-token-approver dev-token-auditor clean
22

33
PYTHON ?= python3
44
VENV ?= .venv
@@ -8,6 +8,11 @@ RUFF := $(VENV)/bin/ruff
88
MYPY := $(VENV)/bin/mypy
99
UVICORN := $(VENV)/bin/uvicorn
1010

11+
help:
12+
@printf '%s\n' "Core targets: setup install run quality security-assurance-full portfolio-full final-validation"
13+
@printf '%s\n' "Security targets: appsec-full dynamic-full findings-full release-full lifecycle-full evidence-full integration-full"
14+
@printf '%s\n' "Portfolio targets: portfolio-evidence verify-portfolio-evidence portfolio-report"
15+
1116
setup:
1217
$(PYTHON) -m venv $(VENV)
1318
$(PIP) install --upgrade pip==25.1.1
@@ -285,6 +290,24 @@ integration-report:
285290

286291
integration-full: verify-findings-evidence verify-release-evidence verify-lifecycle-evidence verify-consolidated-evidence integration-policy-validate integration-export integration-validate verify-integration-evidence integration-report
287292

293+
portfolio-evidence:
294+
PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.portfolio generate --timestamp 2026-01-01T00:00:00Z --as-of-date 2026-01-01
295+
296+
verify-portfolio-evidence:
297+
PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.portfolio verify
298+
299+
portfolio-report:
300+
PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.portfolio report
301+
302+
portfolio-full: verify-consolidated-evidence verify-integration-evidence verify-champions-evidence verify-developer-enablement-evidence
303+
PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.portfolio generate --timestamp 2026-01-01T00:00:00Z --as-of-date 2026-01-01
304+
PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.portfolio report
305+
PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.portfolio generate --timestamp 2026-01-01T00:00:00Z --as-of-date 2026-01-01
306+
PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.portfolio verify
307+
PYTHONPATH=src $(PYTHON) -m genomic_research_access_api.security.portfolio report
308+
309+
final-validation: quality verify-findings-evidence verify-release-evidence verify-lifecycle-evidence verify-consolidated-evidence verify-champions-evidence verify-developer-enablement-evidence verify-integration-evidence portfolio-full
310+
288311
security-assurance-full: quality verify-threat-model-evidence verify-api-security-evidence verify-infrastructure-evidence verify-appsec-evidence verify-dynamic-evidence findings-full release-full lifecycle-full developer-enablement-full champions-full evidence-full integration-full
289312

290313
security-doctor:

0 commit comments

Comments
 (0)