Added gateway and cron authentication
This commit is contained in:
1 parent
992f9bdf44
commit
5900ef9432
8 files changed
+762
-24
No files matched your search
+2
-1
@@ -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
|
||||
|
||||
@@ -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
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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._-]*)")
|
||||
|
||||
@@ -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"),
|
||||
})
|
||||
@@ -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
@@ -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
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user