Skip to content

Commit 4fbe0c1

Browse files
authored
Merge branch 'main' into 1004-mandatory-service-types
2 parents 4af7a97 + 2472350 commit 4fbe0c1

7 files changed

Lines changed: 145 additions & 113 deletions

File tree

.zuul.d/secure.yaml

Lines changed: 90 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -458,96 +458,95 @@
458458
/Lt6+yMJMB7AUVpwXkI7cMmf+QXbDnnE6eX0UBosTM6MjdA/zhkjJ6PK9E0FnngW4HRDZ
459459
eAiVSQiN4CSa9bylrwLhvarAEhR+5avRv4yTurgAYe6I6Gh05pBPCgTXmCNxPU=
460460
scaleup_api_server: !encrypted/pkcs1-oaep
461-
- v63/tgLM+/LQM7oBUdNe+Hu5hOEookTlnlDgUJD6navX6kRDqFOGsu7dgPsP7mXPrZiTo
462-
jHNVHLMQ6T8w/wmgB3eqAtFCqiY9WJ9kcynOvVVXEOaVPgyi/mc19Rop0fba5042PfyuF
463-
66MsPHimxpnABDlyXq3/oAE/gh3RUWKLrjK4xtNHaaIDHQwRtnrBziQ6EQ7pqw06mT/1h
464-
37jkTciWH1QXiiu8U4kBsKvGs2S2cOm9WNiCosqOJiKWph5HMgffTOUXFlPKGbt+yxI2z
465-
03XPMwILIwlbnPCQLytX+MX2p73SL3RBftGuDjSdcR9gEgY5geUBOQQOQONMoshi0YSyU
466-
So24GOfCWsSeudAOXt95DPeSRER6Uj3Sz7HNnNFXUvHySZ5N3JBlj3mT7amwgoisyqiQt
467-
nfctHhNjJW2u2Yg3vjAWO9utydXV7yq2YW+Tdelx5XbGDbOQXeQ5jFkAbG8eYVIpS3B9f
468-
zXkFarM5tMQ+C9svjSayiawhqpbiddv0snAl48tX/U9mraM6lW6exLJKZ+ANmx7rtW++J
469-
K2xIz/U0fWRE7KWm7WyyBkgXif0iqak593ETYG9bZGtPOsviFZOPBKAdIzmKqYTdg+e9R
470-
6Rpqu63pFt5XAMqbfos3LRlEfAoYXoWLhjSj8JXnuIxONN/8w+7C7JpseKBCPw=
461+
- H4F/zi6Lp/CbkHPG4tEzhFVRprH6uxVqoOirUZNKOg1pDI33ilXG4K99O/CH9dCqbFiV0
462+
GnI4p8b0Csho6S63DEuMikjXBLfNWsd2BncQ4gu4bGhHef3bkCjEmybk3AmEyA789vRNS
463+
o6xjZUAJB0ZEQeuWudSo28fJDGxGOVcVW0Sda+OSk0K3qftucg047KZdJ5bWZmHTPvOha
464+
4R2+nsbnecAQJtMDWVERPYTD62pF4CAHD6XVf9mUuZNnLYibl5uQz0t6JZQANu83pFYDZ
465+
C5Z7T4/UJxKlyBpL2XtF/cHuKavEP41cheD/ihG1EI9Yf3InFCRllbIGzMj8fq8d4bZKV
466+
tC1iui2RrL3s38GrOyyGE7odyHlvl08zbrJTkWb5UcI20jPxBCxHAvlqIWjl+9Ite7OuM
467+
nXq62IgXUqVWWgrGWRINyJlvRgcQPxCVq7ty3OMB1Vp4R0ldDRWWR9+PozmK86fRXYatE
468+
cgRi579JMBvKjbP9hKcZOkb12PVyZTTOLmyepfMAqZVpBULtpNza26ysCl5Wu14+0o3bh
469+
d6Kst5qeZz4P8QjJe2UQU67B8JcX88zbpNYM1uxLhtXlAk0/8Hd8KWm+KiU/NfNzgr7jd
470+
jxRhMEdHUuMOKHaSR/hwJs7kWp1RVR6l7L+SXv02VrYgzysGCiGqXhV9FwrEQw=
471471
scaleup_ca_data: !encrypted/pkcs1-oaep
472-
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
522522
scaleup_token: !encrypted/pkcs1-oaep
523-
- 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
- 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
- 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
- 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
- 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
- tcY9Nn1/N/+WoJSXduloZ9b4OL5nPh5UfXZWtnz6BfV6hfdqt2AwsBK2D89QSVYZt21LS
544+
mPWO6+u2brMbOOBmP+I5OTejkoWZPozidbkDr8+QQ2ELw7k2oI5S0jx6lPKJQZUvN5pKS
545+
vIv79bLdrdMWHc1z9F0POA1UTNzvfDLvnkO31OXYlH0dO8Jr+d0DMeTr+POFNm+QYAJ20
546+
96MFwKgBoTlJbPskelg0Q0tQfTMI0PA7xl8PfojcvIE/dlzLvg3f5J0c0jOx8bQRguq5N
547+
/jSUn9lmk0xl9c6/xrRrCj4q21p0o4KfDYUSIU7XHRN1yTLTjsI3sQCiivQIbYmmOi3mi
548+
md6q/YNkwRmwGDuxB4l3Zq9PEN4UjLEUVeFLubryrw2m1bU5MlAIQqfAPIYcqK76CDoZS
549+
teb56lXqOj3+NHPim/+nHfHuU+8qc//JdKLkklGbMMgqodKq+7AZrC3aPZl5ddp1yhKbj
550+
E5livQmER4Tpzd4f566cFOqTB03g8aC77I+w4rlrCK/wVElQn5cVyWCcl3k4sSUbStS71
551+
lEzcKtyRvZUM1NIvFNXk6+frB9o+lY2/gxz9DtARZWQREuF38DHKcHvZ201hKUMtyILAR
552+
KNQUxVOw5pdkDRSuPV7IRrKWyqDRwWEKv5G/ReS03ldBw4nhJ27is4VSgq61EM=

compliance-monitor/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# syntax=docker/dockerfile:1
2-
FROM python:3.10
2+
FROM python:3.12
33
RUN useradd -g users -u 1001 -m -s /bin/bash runuser
44
USER 1001
55
WORKDIR /code

compliance-monitor/docker-compose.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
version: '3'
2-
31
services:
42
reverse-proxy:
53
image: traefik:v2.11
@@ -30,10 +28,10 @@ services:
3028
- SCM_DB_HOST=postgres
3129
- SCM_DB_PORT=5432
3230
- SCM_DB_PASSWORD_FILE=/run/secrets/db_password
33-
# pass the following two from the shell or put them into .env
31+
# pass the following from the shell or put them into .env
3432
- SCM_HC_USER
3533
- SCM_HC_PASSWORD
36-
- SCM_BASE_URL=https://compliance.sovereignit.cloud/
34+
- SCM_BASE_URL
3735
volumes:
3836
- ../Tests:/Tests
3937
- ./bootstrap.yaml:/code/bootstrap.yaml

compliance-monitor/monitor.py

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from fastapi import Depends, FastAPI, HTTPException, Request, Response, status
2929
from fastapi.responses import RedirectResponse
3030
from fastapi.security import HTTPBasic, HTTPBasicCredentials
31-
from jinja2 import Environment
31+
from jinja2 import Environment, pass_context
3232
from markdown import markdown
3333
from passlib.context import CryptContext
3434
import psycopg2
@@ -42,7 +42,7 @@
4242
db_get_keys, db_insert_report, db_get_recent_results2, db_patch_approval2, db_get_report,
4343
db_ensure_schema, db_get_apikeys, db_update_apikey, db_filter_apikeys, db_clear_delegates,
4444
db_find_subjects, db_insert_result2, db_get_relevant_results2, db_add_delegate, db_get_group,
45-
db_filter_accounts,
45+
db_filter_accounts, db_get_groups,
4646
)
4747

4848

@@ -94,6 +94,10 @@ def __init__(self):
9494
# to achieve this!
9595
SEP = "-----END SSH SIGNATURE-----\n&"
9696
ASTERISK_LOOKUP = {'effective': '', 'draft': '*', 'warn': '†', 'deprecated': '††'}
97+
SCOPE_ALIASES = {
98+
'scs-compatible-iaas': '50393e6f-2ae1-4c5c-a62c-3b75f2abef3f',
99+
'scs-compatible-kaas': '1fffebe6-fd4b-44d3-a36c-fc58b4bb0180',
100+
}
97101

98102

99103
class ViewType(Enum):
@@ -651,6 +655,17 @@ def _resolve_group(cur, subject, prefix=GROUP_PREFIX):
651655
return None, [subject]
652656

653657

658+
def _resolve_group_locally(groups, subject, prefix=GROUP_PREFIX):
659+
group = subject.removeprefix(prefix)
660+
if subject != group:
661+
return group, list(groups[group])
662+
return None, [subject]
663+
664+
665+
def _resolve_scope(scopeuuid):
666+
return SCOPE_ALIASES.get(scopeuuid, scopeuuid)
667+
668+
654669
@app.get("/{view_type}/detail/{subject}/{scopeuuid}")
655670
async def get_detail(
656671
request: Request,
@@ -659,6 +674,7 @@ async def get_detail(
659674
subject: str,
660675
scopeuuid: str,
661676
):
677+
scopeuuid = _resolve_scope(scopeuuid)
662678
with conn.cursor() as cur:
663679
group, subjects = _resolve_group(cur, subject)
664680
rows2 = []
@@ -683,6 +699,7 @@ async def get_detail_full(
683699
subject: str,
684700
scopeuuid: str,
685701
):
702+
scopeuuid = _resolve_scope(scopeuuid)
686703
with conn.cursor() as cur:
687704
group, subjects = _resolve_group(cur, subject)
688705
rows2 = []
@@ -706,11 +723,12 @@ async def get_table(
706723
view_type: ViewType,
707724
):
708725
with conn.cursor() as cur:
726+
groups = db_get_groups(cur)
709727
rows2 = db_get_relevant_results2(cur, approved_only=True)
710728
results2 = convert_result_rows_to_dict2(rows2, get_scopes(), grace_period_days=GRACE_PERIOD_DAYS)
711729
return render_view(
712730
VIEW_TABLE, view_type, results=results2, base_url=settings.base_url, detail_page='detail',
713-
title="SCS compliance overview",
731+
title="SCS compliance overview", groups=groups,
714732
)
715733

716734

@@ -721,11 +739,12 @@ async def get_table_full(
721739
view_type: ViewType,
722740
):
723741
with conn.cursor() as cur:
742+
groups = db_get_groups(cur)
724743
rows2 = db_get_relevant_results2(cur, approved_only=False)
725744
results2 = convert_result_rows_to_dict2(rows2, get_scopes(), include_drafts=True)
726745
return render_view(
727746
VIEW_TABLE, view_type, results=results2, base_url=settings.base_url, detail_page='detail_full',
728-
title="SCS compliance overview (incl. unverified results)", unverified=True,
747+
title="SCS compliance overview (incl. unverified results)", unverified=True, groups=groups,
729748
)
730749

731750

@@ -736,6 +755,7 @@ async def get_scope(
736755
view_type: ViewType,
737756
scopeuuid: str,
738757
):
758+
scopeuuid = _resolve_scope(scopeuuid)
739759
spec = get_scopes()[scopeuuid]
740760
versions = spec['versions']
741761
# sort by name, and all drafts after all non-drafts
@@ -814,14 +834,18 @@ async def get_healthz(request: Request):
814834
return Response() # empty response with status 200
815835

816836

817-
def pick_filter(results, scope, *subjects):
837+
@pass_context
838+
def pick_filter(ctx, results, scopeuuid, *subjects):
818839
"""Jinja filter to pick scope results from `results` for given `subject` and `scope`"""
840+
scopeuuid = _resolve_scope(scopeuuid)
819841
# simple case (backwards compatible): precisely one subject
820842
if len(subjects) == 1:
821-
return results.get(subjects[0], {}).get(scope, {})
843+
group, subjects = _resolve_group_locally(ctx['groups'], subjects[0])
844+
if not group:
845+
return results.get(subjects[0], {}).get(scopeuuid, {})
822846
# generalized case: multiple subjects
823847
# in this case, drop None
824-
rs = [results.get(subject, {}).get(scope, {}) for subject in subjects]
848+
rs = [results.get(subject, {}).get(scopeuuid, {}) for subject in subjects]
825849
return [r for r in rs if r is not None]
826850

827851

0 commit comments

Comments
 (0)