Added gateway and cron authentication
pip-audit / audit (push) Successful in 39s
pip-audit / notify (push) Skipped

This commit is contained in:
florian committed 2026-11-01 18:43:10 +01:00
1 parent 992f9bdf44
commit 5900ef9432
8 files changed
+762 -24

No files matched your search

+2 -1
View File
@@ -9,8 +9,9 @@ fastapi==0.143.5
h11==0.16.0
idna==3.20
lib-db-module==0.4.0
lib-secret-manager==0.3.1
lib-secret-manager==0.3.6
lib-send-notifications==0.1.0
lib-service-auth==0.1.0
mysql-connector-python==26.10.0
opentelemetry-api==1.45.1
prometheus_client==0.26.0
+1
View File
@@ -0,0 +1 @@
{"count":40,"next":"https://hub.docker.com/v2/repositories/library/mysql/tags?name=8.4.\u0026page=2\u0026page_size=10","previous":null,"results":[{"creator":1156886,"id":1359745752,"images":[{"architecture":"amd64","features":"","variant":null,"digest":"sha256:5cf1e1293ea42e077e6a22114e6773b9aae3bb8f9933a2acd5a9721518ff8f5b","os":"linux","os_features":"","os_version":null,"size":238252878,"status":"active","last_pulled":"2026-11-01T17:02:33.81918026Z","last_pushed":"2026-10-28T02:02:38.141242078Z"},{"architecture":"arm64","features":"","variant":"v8","digest":"sha256:8ab2115abe8ca3d2745962f4e75f2f86fb8182ae19908773cd4cce811f3c106e","os":"linux","os_features":"","os_version":null,"size":232911891,"status":"active","last_pulled":"2026-11-01T17:06:12.746749221Z","last_pushed":"2026-10-28T02:02:39.007768511Z"},{"architecture":"unknown","features":"","variant":null,"digest":"sha256:720bd91371e732633312953fbc3cc8004a11ebc5a101b42eaf6ea869b7a1a986","os":"unknown","os_features":"","os_version":null,"size":15725397,"status":"active","last_pulled":"2026-11-01T17:04:36.016226618Z","last_pushed":"2026-10-28T02:02:39.362276069Z"},{"architecture":"unknown","features":"","variant":null,"digest":"sha256:b4cbb134db78c0c4507c478bfda0ee704db240efc6cf3702604046cc565c94d2","os":"unknown","os_features":"","os_version":null,"size":15726728,"status":"active","last_pulled":"2026-11-01T16:59:38.91554001Z","last_pushed":"2026-10-28T02:02:38.551885087Z"}],"last_updated":"2026-10-28T02:02:55.733839Z","last_updater":1156886,"last_updater_username":"doijanky","name":"8.4.13-oraclelinux9","repository":21179,"full_size":238252878,"v2":true,"tag_status":"active","tag_last_pulled":"2026-11-01T17:06:12.746749221Z","tag_last_pushed":"2026-10-28T02:02:55.733839Z","media_type":"application/vnd.oci.image.index.v1+json","content_type":"image","digest":"sha256:a0225d1ea6631c8bc2385dc4c2faba17bbf1834ecf369e1659a9a382bd8d5dd7"},{"creator":1156886,"id":1359745720,"images":[{"architecture":"amd64","features":"","variant":null,"digest":"sha256:5cf1e1293ea42e077e6a22114e6773b9aae3bb8f9933a2acd5a9721518ff8f5b","os":"linux","os_features":"","os_version":null,"size":238252878,"status":"active","last_pulled":"2026-11-01T17:02:33.81918026Z","last_pushed":"2026-10-28T02:02:38.141242078Z"},{"architecture":"arm64","features":"","variant":"v8","digest":"sha256:8ab2115abe8ca3d2745962f4e75f2f86fb8182ae19908773cd4cce811f3c106e","os":"linux","os_features":"","os_version":null,"size":232911891,"status":"active","last_pulled":"2026-11-01T17:06:12.746749221Z","last_pushed":"2026-10-28T02:02:39.007768511Z"},{"architecture":"unknown","features":"","variant":null,"digest":"sha256:b4cbb134db78c0c4507c478bfda0ee704db240efc6cf3702604046cc565c94d2","os":"unknown","os_features":"","os_version":null,"size":15726728,"status":"active","last_pulled":"2026-11-01T16:59:38.91554001Z","last_pushed":"2026-10-28T02:02:38.551885087Z"},{"architecture":"unknown","features":"","variant":null,"digest":"sha256:720bd91371e732633312953fbc3cc8004a11ebc5a101b42eaf6ea869b7a1a986","os":"unknown","os_features":"","os_version":null,"size":15725397,"status":"active","last_pulled":"2026-11-01T17:04:36.016226618Z","last_pushed":"2026-10-28T02:02:39.362276069Z"}],"last_updated":"2026-10-28T02:02:53.825244Z","last_updater":1156886,"last_updater_username":"doijanky","name":"8.4.13-oracle","repository":21179,"full_size":238252878,"v2":true,"tag_status":"active","tag_last_pulled":"2026-11-01T17:06:12.746749221Z","tag_last_pushed":"2026-10-28T02:02:53.825244Z","media_type":"application/vnd.oci.image.index.v1+json","content_type":"image","digest":"sha256:a0225d1ea6631c8bc2385dc4c2faba17bbf1834ecf369e1659a9a382bd8d5dd7"},{"creator":1156886,"id":1359745688,"images":[{"architecture":"amd64","features":"","variant":null,"digest":"sha256:5cf1e1293ea42e077e6a22114e6773b9aae3bb8f9933a2acd5a9721518ff8f5b","os":"linux","os_features":"","os_version":null,"size":238252878,"status":"active","last_pulled":"2026-11-01T17:02:33.81918026Z","last_pushed":"2026-10-28T02:02:38.141242078Z"},{"architecture":"arm64","features":"","variant":"v8","digest":"sha256:8ab2115abe8ca3d2745962f4e75f2f86fb8182ae19908773cd4cce811f3c106e","os":"linux","os_features":"","os_version":null,"size":232911891,"status":"active","last_pulled":"2026-11-01T17:06:12.746749221Z","last_pushed":"2026-10-28T02:02:39.007768511Z"},{"architecture":"unknown","features":"","variant":null,"digest":"sha256:b4cbb134db78c0c4507c478bfda0ee704db240efc6cf3702604046cc565c94d2","os":"unknown","os_features":"","os_version":null,"size":15726728,"status":"active","last_pulled":"2026-11-01T16:59:38.91554001Z","last_pushed":"2026-10-28T02:02:38.551885087Z"},{"architecture":"unknown","features":"","variant":null,"digest":"sha256:720bd91371e732633312953fbc3cc8004a11ebc5a101b42eaf6ea869b7a1a986","os":"unknown","os_features":"","os_version":null,"size":15725397,"status":"active","last_pulled":"2026-11-01T17:04:36.016226618Z","last_pushed":"2026-10-28T02:02:39.362276069Z"}],"last_updLine truncated
+717
View File
@@ -0,0 +1,717 @@
{
"count": 40,
"next": "https://hub.docker.com/v2/repositories/library/mysql/tags?name=8.4.&page=2&page_size=10",
"previous": null,
"results": [
{
"creator": 1156886,
"id": 1359745752,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:5cf1e1293ea42e077e6a22114e6773b9aae3bb8f9933a2acd5a9721518ff8f5b",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238252878,
"status": "active",
"last_pulled": "2026-11-01T17:02:33.81918026Z",
"last_pushed": "2026-10-28T02:02:38.141242078Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:8ab2115abe8ca3d2745962f4e75f2f86fb8182ae19908773cd4cce811f3c106e",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 232911891,
"status": "active",
"last_pulled": "2026-11-01T17:06:12.746749221Z",
"last_pushed": "2026-10-28T02:02:39.007768511Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:720bd91371e732633312953fbc3cc8004a11ebc5a101b42eaf6ea869b7a1a986",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15725397,
"status": "active",
"last_pulled": "2026-11-01T17:04:36.016226618Z",
"last_pushed": "2026-10-28T02:02:39.362276069Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:b4cbb134db78c0c4507c478bfda0ee704db240efc6cf3702604046cc565c94d2",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15726728,
"status": "active",
"last_pulled": "2026-11-01T16:59:38.91554001Z",
"last_pushed": "2026-10-28T02:02:38.551885087Z"
}
],
"last_updated": "2026-10-28T02:02:55.733839Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.13-oraclelinux9",
"repository": 21179,
"full_size": 238252878,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:06:12.746749221Z",
"tag_last_pushed": "2026-10-28T02:02:55.733839Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:a0225d1ea6631c8bc2385dc4c2faba17bbf1834ecf369e1659a9a382bd8d5dd7"
},
{
"creator": 1156886,
"id": 1359745720,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:5cf1e1293ea42e077e6a22114e6773b9aae3bb8f9933a2acd5a9721518ff8f5b",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238252878,
"status": "active",
"last_pulled": "2026-11-01T17:02:33.81918026Z",
"last_pushed": "2026-10-28T02:02:38.141242078Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:8ab2115abe8ca3d2745962f4e75f2f86fb8182ae19908773cd4cce811f3c106e",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 232911891,
"status": "active",
"last_pulled": "2026-11-01T17:06:12.746749221Z",
"last_pushed": "2026-10-28T02:02:39.007768511Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:b4cbb134db78c0c4507c478bfda0ee704db240efc6cf3702604046cc565c94d2",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15726728,
"status": "active",
"last_pulled": "2026-11-01T16:59:38.91554001Z",
"last_pushed": "2026-10-28T02:02:38.551885087Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:720bd91371e732633312953fbc3cc8004a11ebc5a101b42eaf6ea869b7a1a986",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15725397,
"status": "active",
"last_pulled": "2026-11-01T17:04:36.016226618Z",
"last_pushed": "2026-10-28T02:02:39.362276069Z"
}
],
"last_updated": "2026-10-28T02:02:53.825244Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.13-oracle",
"repository": 21179,
"full_size": 238252878,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:06:12.746749221Z",
"tag_last_pushed": "2026-10-28T02:02:53.825244Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:a0225d1ea6631c8bc2385dc4c2faba17bbf1834ecf369e1659a9a382bd8d5dd7"
},
{
"creator": 1156886,
"id": 1359745688,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:5cf1e1293ea42e077e6a22114e6773b9aae3bb8f9933a2acd5a9721518ff8f5b",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238252878,
"status": "active",
"last_pulled": "2026-11-01T17:02:33.81918026Z",
"last_pushed": "2026-10-28T02:02:38.141242078Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:8ab2115abe8ca3d2745962f4e75f2f86fb8182ae19908773cd4cce811f3c106e",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 232911891,
"status": "active",
"last_pulled": "2026-11-01T17:06:12.746749221Z",
"last_pushed": "2026-10-28T02:02:39.007768511Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:b4cbb134db78c0c4507c478bfda0ee704db240efc6cf3702604046cc565c94d2",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15726728,
"status": "active",
"last_pulled": "2026-11-01T16:59:38.91554001Z",
"last_pushed": "2026-10-28T02:02:38.551885087Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:720bd91371e732633312953fbc3cc8004a11ebc5a101b42eaf6ea869b7a1a986",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15725397,
"status": "active",
"last_pulled": "2026-11-01T17:04:36.016226618Z",
"last_pushed": "2026-10-28T02:02:39.362276069Z"
}
],
"last_updated": "2026-10-28T02:02:51.883725Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.13",
"repository": 21179,
"full_size": 238252878,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:06:12.746749221Z",
"tag_last_pushed": "2026-10-28T02:02:51.883725Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:a0225d1ea6631c8bc2385dc4c2faba17bbf1834ecf369e1659a9a382bd8d5dd7"
},
{
"creator": 1156886,
"id": 1247452568,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:6f3a50835c54d61ffdcf78d71381ba268c27804cd96755231d2fd6f180f822f0",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238271081,
"status": "active",
"last_pulled": "2026-11-01T16:56:46.914769819Z",
"last_pushed": "2026-10-19T23:02:39.703021023Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:4452d4257b94692c09df0f6011a3275744746001150f3cdbdc9278bacfa385bb",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 232973493,
"status": "active",
"last_pulled": "2026-11-01T16:52:52.3057922Z",
"last_pushed": "2026-10-19T23:02:40.475561016Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:8ec1027552b88b4d8f861929c4c74c3d47de3ec1e0467c08a4a576eb86aa31c2",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15745255,
"status": "active",
"last_pulled": "2026-11-01T16:56:47.06501431Z",
"last_pushed": "2026-10-19T23:02:40.077895267Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:60e6667c26513621f2c4d9e31a4580344a8b8102c419b1afe07ce3f158cf6ad4",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15743924,
"status": "active",
"last_pulled": "2026-11-01T16:52:52.301221184Z",
"last_pushed": "2026-10-19T23:02:40.885988361Z"
}
],
"last_updated": "2026-10-19T23:02:57.151798Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.11-oraclelinux9",
"repository": 21179,
"full_size": 238271081,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:02:37.436469971Z",
"tag_last_pushed": "2026-10-19T23:02:57.151798Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:0f51e63e537a1f176423fa03ef559aabe6fa4372a53160a44bc7e75da7d15364"
},
{
"creator": 1156886,
"id": 1247452544,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:6f3a50835c54d61ffdcf78d71381ba268c27804cd96755231d2fd6f180f822f0",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238271081,
"status": "active",
"last_pulled": "2026-11-01T16:56:46.914769819Z",
"last_pushed": "2026-10-19T23:02:39.703021023Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:4452d4257b94692c09df0f6011a3275744746001150f3cdbdc9278bacfa385bb",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 232973493,
"status": "active",
"last_pulled": "2026-11-01T16:52:52.3057922Z",
"last_pushed": "2026-10-19T23:02:40.475561016Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:8ec1027552b88b4d8f861929c4c74c3d47de3ec1e0467c08a4a576eb86aa31c2",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15745255,
"status": "active",
"last_pulled": "2026-11-01T16:56:47.06501431Z",
"last_pushed": "2026-10-19T23:02:40.077895267Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:60e6667c26513621f2c4d9e31a4580344a8b8102c419b1afe07ce3f158cf6ad4",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15743924,
"status": "active",
"last_pulled": "2026-11-01T16:52:52.301221184Z",
"last_pushed": "2026-10-19T23:02:40.885988361Z"
}
],
"last_updated": "2026-10-19T23:02:55.25967Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.11-oracle",
"repository": 21179,
"full_size": 238271081,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:02:37.436469971Z",
"tag_last_pushed": "2026-10-19T23:02:55.25967Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:0f51e63e537a1f176423fa03ef559aabe6fa4372a53160a44bc7e75da7d15364"
},
{
"creator": 1156886,
"id": 1247452527,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:6f3a50835c54d61ffdcf78d71381ba268c27804cd96755231d2fd6f180f822f0",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238271081,
"status": "active",
"last_pulled": "2026-11-01T16:56:46.914769819Z",
"last_pushed": "2026-10-19T23:02:39.703021023Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:4452d4257b94692c09df0f6011a3275744746001150f3cdbdc9278bacfa385bb",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 232973493,
"status": "active",
"last_pulled": "2026-11-01T16:52:52.3057922Z",
"last_pushed": "2026-10-19T23:02:40.475561016Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:8ec1027552b88b4d8f861929c4c74c3d47de3ec1e0467c08a4a576eb86aa31c2",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15745255,
"status": "active",
"last_pulled": "2026-11-01T16:56:47.06501431Z",
"last_pushed": "2026-10-19T23:02:40.077895267Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:60e6667c26513621f2c4d9e31a4580344a8b8102c419b1afe07ce3f158cf6ad4",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15743924,
"status": "active",
"last_pulled": "2026-11-01T16:52:52.301221184Z",
"last_pushed": "2026-10-19T23:02:40.885988361Z"
}
],
"last_updated": "2026-10-19T23:02:53.335134Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.11",
"repository": 21179,
"full_size": 238271081,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:02:37.436469971Z",
"tag_last_pushed": "2026-10-19T23:02:53.335134Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:0f51e63e537a1f176423fa03ef559aabe6fa4372a53160a44bc7e75da7d15364"
},
{
"creator": 1156886,
"id": 1202082870,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:870634c634aae968ea1a93e5c094a14e00c692da2ee9bed956b3dfcc7bd08cb0",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238952505,
"status": "active",
"last_pulled": "2026-11-01T17:06:38.202113527Z",
"last_pushed": "2026-07-24T02:02:14.148236516Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:3f616910ccd923d5089d7889d491cefa65e24fcfa79d74db4084729f48c9cab1",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 233690249,
"status": "active",
"last_pulled": "2026-11-01T17:04:39.076590516Z",
"last_pushed": "2026-07-24T02:02:15.002681174Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:0a072fb65ce1b42890e106c9fabe32eac11154fe065498a929611d93ec427d79",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15745154,
"status": "active",
"last_pulled": "2026-11-01T17:04:38.36326766Z",
"last_pushed": "2026-07-24T02:02:14.545992024Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:00e8366ebe0b03dd22a95b763d2c36b7349b2b5b67b50df1a2918cd762f1a8b3",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15743822,
"status": "active",
"last_pulled": "2026-11-01T17:04:39.77928493Z",
"last_pushed": "2026-07-24T02:02:15.481948571Z"
}
],
"last_updated": "2026-07-24T02:02:32.585078Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.10-oraclelinux9",
"repository": 21179,
"full_size": 238952505,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:06:38.202113527Z",
"tag_last_pushed": "2026-07-24T02:02:32.585078Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:8dbcf531a03aade657e181b9cf2f1d1803ce621a1d55610cb44cb531ab7d7db6"
},
{
"creator": 1156886,
"id": 1202082851,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:870634c634aae968ea1a93e5c094a14e00c692da2ee9bed956b3dfcc7bd08cb0",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238952505,
"status": "active",
"last_pulled": "2026-11-01T17:06:38.202113527Z",
"last_pushed": "2026-07-24T02:02:14.148236516Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:3f616910ccd923d5089d7889d491cefa65e24fcfa79d74db4084729f48c9cab1",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 233690249,
"status": "active",
"last_pulled": "2026-11-01T17:04:39.076590516Z",
"last_pushed": "2026-07-24T02:02:15.002681174Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:0a072fb65ce1b42890e106c9fabe32eac11154fe065498a929611d93ec427d79",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15745154,
"status": "active",
"last_pulled": "2026-11-01T17:04:38.36326766Z",
"last_pushed": "2026-07-24T02:02:14.545992024Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:00e8366ebe0b03dd22a95b763d2c36b7349b2b5b67b50df1a2918cd762f1a8b3",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15743822,
"status": "active",
"last_pulled": "2026-11-01T17:04:39.77928493Z",
"last_pushed": "2026-07-24T02:02:15.481948571Z"
}
],
"last_updated": "2026-07-24T02:02:30.563858Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.10-oracle",
"repository": 21179,
"full_size": 238952505,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:06:38.202113527Z",
"tag_last_pushed": "2026-07-24T02:02:30.563858Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:8dbcf531a03aade657e181b9cf2f1d1803ce621a1d55610cb44cb531ab7d7db6"
},
{
"creator": 1156886,
"id": 1202082837,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:870634c634aae968ea1a93e5c094a14e00c692da2ee9bed956b3dfcc7bd08cb0",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238952505,
"status": "active",
"last_pulled": "2026-11-01T17:06:38.202113527Z",
"last_pushed": "2026-07-24T02:02:14.148236516Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:3f616910ccd923d5089d7889d491cefa65e24fcfa79d74db4084729f48c9cab1",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 233690249,
"status": "active",
"last_pulled": "2026-11-01T17:04:39.076590516Z",
"last_pushed": "2026-07-24T02:02:15.002681174Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:0a072fb65ce1b42890e106c9fabe32eac11154fe065498a929611d93ec427d79",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15745154,
"status": "active",
"last_pulled": "2026-11-01T17:04:38.36326766Z",
"last_pushed": "2026-07-24T02:02:14.545992024Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:00e8366ebe0b03dd22a95b763d2c36b7349b2b5b67b50df1a2918cd762f1a8b3",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15743822,
"status": "active",
"last_pulled": "2026-11-01T17:04:39.77928493Z",
"last_pushed": "2026-07-24T02:02:15.481948571Z"
}
],
"last_updated": "2026-07-24T02:02:28.61532Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.10",
"repository": 21179,
"full_size": 238952505,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:06:38.202113527Z",
"tag_last_pushed": "2026-07-24T02:02:28.61532Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:8dbcf531a03aade657e181b9cf2f1d1803ce621a1d55610cb44cb531ab7d7db6"
},
{
"creator": 1156886,
"id": 1137225404,
"images": [
{
"architecture": "amd64",
"features": "",
"variant": null,
"digest": "sha256:14690274f4967ba207939c97dd79a8d6604f1d532218ea6be69c0001ddd2d45f",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 238253989,
"status": "active",
"last_pulled": "2026-11-01T17:00:06.955142656Z",
"last_pushed": "2026-05-12T23:02:17.064230694Z"
},
{
"architecture": "arm64",
"features": "",
"variant": "v8",
"digest": "sha256:c3d0492f593ef24dad1d77ff63bc287041d1d07de5fbc38ae095de0170421d1d",
"os": "linux",
"os_features": "",
"os_version": null,
"size": 233039323,
"status": "active",
"last_pulled": "2026-11-01T16:57:44.238522871Z",
"last_pushed": "2026-05-12T23:02:18.50246065Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:ad2658b0203b3293805fa34fdfd24f6bcc5a0948e3d9bb03f01a60b42470c0ff",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15743304,
"status": "active",
"last_pulled": "2026-11-01T17:01:02.543558018Z",
"last_pushed": "2026-05-12T23:02:17.668723557Z"
},
{
"architecture": "unknown",
"features": "",
"variant": null,
"digest": "sha256:96d3713d71ba400559341758e67f9aaf6de60b4ad080c1ee2839f6a95f3ac13e",
"os": "unknown",
"os_features": "",
"os_version": null,
"size": 15741957,
"status": "active",
"last_pulled": "2026-11-01T16:57:44.463314321Z",
"last_pushed": "2026-05-12T23:02:19.619834051Z"
}
],
"last_updated": "2026-05-12T23:02:36.636944Z",
"last_updater": 1156886,
"last_updater_username": "doijanky",
"name": "8.4.9-oraclelinux9",
"repository": 21179,
"full_size": 238253989,
"v2": true,
"tag_status": "active",
"tag_last_pulled": "2026-11-01T17:01:02.543558018Z",
"tag_last_pushed": "2026-05-12T23:02:36.636944Z",
"media_type": "application/vnd.oci.image.index.v1+json",
"content_type": "image",
"digest": "sha256:c36050afdca850f23cef85703f84c7531a5ae155a11b5ee1c60acb09937c4084"
}
]
}
+1
View File
@@ -12,6 +12,7 @@ SKIP = {
"lib-secret-manager",
"lib-send-notifications",
"simple-logger-handler",
"lib-service-auth",
}
NAME_RE = re.compile(r"^\s*([A-Za-z0-9][A-Za-z0-9._-]*)")
+13
View File
@@ -0,0 +1,13 @@
from enum import StrEnum
from service_auth import KeySource, ServiceAuth
class Caller(StrEnum):
GATEWAY = "gateway"
SCHEDULER = "scheduler"
auth = ServiceAuth({
Caller.GATEWAY: KeySource("GATEWAY_KEY", "/etc/secrets/gateway_key"),
Caller.SCHEDULER: KeySource("SCHEDULER_KEY", "/etc/secrets/scheduler_key"),
})
+4 -4
View File
@@ -1,12 +1,11 @@
import os
import requests
from secret_manager import get_secret
from simple_logger_handler import setup_logger
dockerhub_token = get_secret(os.getenv("DOCKERHUB_TOKEN",""),"/etc/secrets/dockerhub_token")
dockerhub_username = get_secret(os.getenv("DOCKERHUB_USERNAME",""),"/etc/secrets/dockerhub_username")
dockerhub_token = get_secret("DOCKERHUB_TOKEN","/etc/secrets/dockerhub_token")
dockerhub_username = get_secret("DOCKERHUB_USERNAME","/etc/secrets/dockerhub_username")
logger = setup_logger(__name__)
@@ -68,4 +67,5 @@ def find_package_version_with_tag(repo: str, tag: str) -> str:
if __name__ == "__main__":
print(find_package_version_with_tag("pihole/pihole", "latest"))
#print(find_package_version_with_tag("pihole/pihole", "latest"))
print(find_package_version_with_tag("library/mysql","8.4"))
+1 -2
View File
@@ -1,11 +1,10 @@
import os
import requests
from secret_manager import get_secret
from simple_logger_handler import setup_logger
github_token = get_secret(os.getenv("GITHUB_TOKEN",""),"/etc/secrets/github_token")
github_token = get_secret("GITHUB_TOKEN","/etc/secrets/github_token")
logger = setup_logger(__name__)
def find_package_version_with_tag(org: str, package: str, target_tag: str) -> str:
+23 -17
View File
@@ -1,14 +1,15 @@
import asyncio
from contextlib import asynccontextmanager
import os
from contextlib import asynccontextmanager
import uvicorn
from fastapi import Depends, FastAPI, HTTPException, Request, Response
from fastapi import APIRouter, Depends, FastAPI, HTTPException, Request, Response
from auth_config import Caller, auth
from db_module import close_connection_pool, create_connection_pool, get_db, start_healthcheck_thread
from dockerhub_api import find_package_version_with_tag as find_package_version_with_tag_dockerhub
from github_api import find_package_version_with_tag as find_package_version_with_tag_github
from metrics_server import REQUEST_COUNTER
from metrics_server import REQUEST_COUNTER, metrics_api
from secret_manager import cleanup_secret_files
from send_notifications import NotificationClient
from simple_logger_handler import LOG_LEVEL, setup_logger
@@ -46,7 +47,8 @@ api = FastAPI(
title="Docker Repository Query",
description="Queries Dockerhub and GHCR for new docker images",
version="1.0.0",
lifespan=lifespan
lifespan=lifespan,
dependencies=[Depends(auth.authenticate)],
)
@api.middleware("http")
@@ -65,14 +67,10 @@ async def prometheus_middleware(request: Request, call_next):
logger.debug(f"[FastAPI] Counter incremented for {request.method} {request.url.path} [{status}]")
return response
user_router = APIRouter(dependencies=[Depends(auth.require(Caller.GATEWAY))])
scheduler_router = APIRouter(dependencies=[Depends(auth.require(Caller.SCHEDULER))])
@api.get("/health")
def return_health():
return Response(status_code=200)
@api.get("/suwayomi")
@scheduler_router.post("/suwayomi")
def handle_suwayomi(
request: Request,
db = Depends(get_db)
@@ -98,7 +96,8 @@ def handle_suwayomi(
request.app.state.notifier.send(
title="New Suwayomi version has been found",
body=f"Version {online_version}",
category="utility"
category="utility",
user_id=1,
)
logger.debug("[FastAPI] Notification sent for Suwayomi update")
return Response(status_code=200)
@@ -112,7 +111,7 @@ def handle_suwayomi(
@api.get("/pihole")
@scheduler_router.post("/pihole")
def handle_pihole(
request: Request,
db = Depends(get_db)
@@ -137,7 +136,8 @@ def handle_pihole(
request.app.state.notifier.send(
title="New Pi-hole version has been found",
body=f"Version {online_version}",
category="utility"
category="utility",
user_id=1,
)
logger.debug("[FastAPI] Notification sent for Pi-hole update")
return Response(status_code=200)
@@ -149,12 +149,18 @@ def handle_pihole(
logger.error(f"[FastAPI] Error in Pi-hole handler: {e}", exc_info=True)
raise HTTPException(status_code=500, detail=str(e)) from e
api.include_router(user_router)
api.include_router(scheduler_router)
async def start_servers():
logger.info("[Server] Starting main and metrics servers")
logger.info("[Server] Starting main API (port 5000) and metrics server (port 9000)...")
logger.info(f"[Server] Build commit id={os.getenv("COMMIT_ID","unknown")}")
config_main = uvicorn.Config("main:api", host="0.0.0.0", port=5000, log_level=LOG_LEVEL.lower(), log_config=None)
config_metrics = uvicorn.Config("metrics_server:metrics_api", host="0.0.0.0", port=9000, log_level=LOG_LEVEL.lower(), log_config=None)
auth.load_keys(api, Caller.GATEWAY, Caller.SCHEDULER)
cleanup_secret_files(auth.key_paths(Caller.GATEWAY, Caller.SCHEDULER))
config_main = uvicorn.Config(api, host="0.0.0.0", port=5000, log_level=LOG_LEVEL.lower(), log_config=None)
config_metrics = uvicorn.Config(metrics_api, host="0.0.0.0", port=9000, log_level=LOG_LEVEL.lower(), log_config=None)
server_main = uvicorn.Server(config_main)
server_metrics = uvicorn.Server(config_metrics)