From 10cb1f128addaf4824f2b8826f68543db6594047 Mon Sep 17 00:00:00 2001 From: claude Date: Fri, 2 Oct 2026 08:27:42 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20sch=C3=A9ma=20d'architecture=20logique?= =?UTF-8?q?=20(Excalidraw)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 (1M context) --- docs/architecture.excalidraw | 2093 ++++++++++++++++++++++++++++++++++ 1 file changed, 2093 insertions(+) create mode 100644 docs/architecture.excalidraw diff --git a/docs/architecture.excalidraw b/docs/architecture.excalidraw new file mode 100644 index 0000000..4334c69 --- /dev/null +++ b/docs/architecture.excalidraw @@ -0,0 +1,2093 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "id": "text-1", + "type": "text", + "x": 596.0, + "y": 20, + "width": 528.0, + "height": 37.5, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1390851129, + "version": 1, + "versionNonce": 647892280, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Searchgit : architecture logique", + "originalText": "Searchgit : architecture logique", + "fontSize": 30, + "fontFamily": 1, + "textAlign": "center", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 27, + "autoResize": true + }, + { + "id": "rectangle-2", + "type": "rectangle", + "x": 40, + "y": 160, + "width": 320, + "height": 400, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#a5d8ff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1695753999, + "version": 1, + "versionNonce": 207388625, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-3", + "type": "text", + "x": 54, + "y": 170, + "width": 110.00000000000001, + "height": 25.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 311111476, + "version": 1, + "versionNonce": 404285458, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Navigateur", + "originalText": "Navigateur", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 18, + "autoResize": true + }, + { + "id": "text-4", + "type": "text", + "x": 54, + "y": 200.0, + "width": 299.20000000000005, + "height": 220.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1570621945, + "version": 1, + "versionNonce": 249103478, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "UI embarquée (go:embed web/)\nservie par GET /\n\nindex.html · app.js · style.css\n\nOnglets Recherche · Veille · Revue\nthème clair / sombre\ninterface FR / EN\n\nlocalStorage : préférences\n(searchgit.*)", + "originalText": "UI embarquée (go:embed web/)\nservie par GET /\n\nindex.html · app.js · style.css\n\nOnglets Recherche · Veille · Revue\nthème clair / sombre\ninterface FR / EN\n\nlocalStorage : préférences\n(searchgit.*)", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 214, + "autoResize": true + }, + { + "id": "rectangle-5", + "type": "rectangle", + "x": 420, + "y": 80, + "width": 880, + "height": 820, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 922121677, + "version": 1, + "versionNonce": 161042649, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-6", + "type": "text", + "x": 436, + "y": 90, + "width": 605.0, + "height": 25.0, + "angle": 0, + "strokeColor": "#1971c2", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 369140571, + "version": 1, + "versionNonce": 1862494043, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Conteneur Docker « searchgit » (alpine 3.24, port 8080)", + "originalText": "Conteneur Docker « searchgit » (alpine 3.24, port 8080)", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 18, + "autoResize": true + }, + { + "id": "rectangle-7", + "type": "rectangle", + "x": 460, + "y": 140, + "width": 400, + "height": 70, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffec99", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1796035740, + "version": 1, + "versionNonce": 300026768, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-8", + "type": "text", + "x": 474, + "y": 150, + "width": 198.00000000000003, + "height": 22.5, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1033639717, + "version": 1, + "versionNonce": 389609434, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Middleware basicAuth", + "originalText": "Middleware basicAuth", + "fontSize": 18, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 16, + "autoResize": true + }, + { + "id": "text-9", + "type": "text", + "x": 474, + "y": 177.4, + "width": 325.6, + "height": 20.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1823296039, + "version": 1, + "versionNonce": 253877687, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "AUTH_USER / AUTH_PASS (sauf /healthz)", + "originalText": "AUTH_USER / AUTH_PASS (sauf /healthz)", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 14, + "autoResize": true + }, + { + "id": "rectangle-10", + "type": "rectangle", + "x": 460, + "y": 240, + "width": 400, + "height": 260, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 531725348, + "version": 1, + "versionNonce": 958804058, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-11", + "type": "text", + "x": 474, + "y": 250, + "width": 465.3, + "height": 22.5, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 265695474, + "version": 1, + "versionNonce": 1703729685, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Serveur Go : routes HTTP (api.go, saved_api.go)", + "originalText": "Serveur Go : routes HTTP (api.go, saved_api.go)", + "fontSize": 18, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 16, + "autoResize": true + }, + { + "id": "text-12", + "type": "text", + "x": 474, + "y": 277.4, + "width": 343.20000000000005, + "height": 160.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 212984477, + "version": 1, + "versionNonce": 949539217, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "GET / fichiers statiques\nGET /healthz sonde de santé\nGET /api/search recherche directe\nGET /api/status jeton, quota, fuseau\nGET|POST /api/saved\nGET|PUT|DELETE /api/saved/{id}\nPOST /api/saved/{id}/run\nGET /api/saved/{id}/runs[/{run}]", + "originalText": "GET / fichiers statiques\nGET /healthz sonde de santé\nGET /api/search recherche directe\nGET /api/status jeton, quota, fuseau\nGET|POST /api/saved\nGET|PUT|DELETE /api/saved/{id}\nPOST /api/saved/{id}/run\nGET /api/saved/{id}/runs[/{run}]", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 154, + "autoResize": true + }, + { + "id": "rectangle-13", + "type": "rectangle", + "x": 460, + "y": 530, + "width": 400, + "height": 80, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 200071089, + "version": 1, + "versionNonce": 571981486, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-14", + "type": "text", + "x": 474, + "y": 540, + "width": 188.10000000000002, + "height": 22.5, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1243862423, + "version": 1, + "versionNonce": 1800188483, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Critères (query.go)", + "originalText": "Critères (query.go)", + "fontSize": 18, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 16, + "autoResize": true + }, + { + "id": "text-15", + "type": "text", + "x": 474, + "y": 567.4, + "width": 325.6, + "height": 20.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 619570853, + "version": 1, + "versionNonce": 505913793, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "ParseCriteria → requête GitHub « q= »", + "originalText": "ParseCriteria → requête GitHub « q= »", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 14, + "autoResize": true + }, + { + "id": "rectangle-16", + "type": "rectangle", + "x": 460, + "y": 660, + "width": 400, + "height": 110, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#b2f2bb", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1324919353, + "version": 1, + "versionNonce": 776213900, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-17", + "type": "text", + "x": 474, + "y": 670, + "width": 188.10000000000002, + "height": 22.5, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 442620899, + "version": 1, + "versionNonce": 806899910, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Stockage (store.go)", + "originalText": "Stockage (store.go)", + "fontSize": 18, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 16, + "autoResize": true + }, + { + "id": "text-18", + "type": "text", + "x": 474, + "y": 697.4, + "width": 281.6, + "height": 60.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1599435268, + "version": 1, + "versionNonce": 418461139, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "fichiers JSON, écriture atomique\n(fichier .tmp puis rename)\nmarque nouveaux / en hausse", + "originalText": "fichiers JSON, écriture atomique\n(fichier .tmp puis rename)\nmarque nouveaux / en hausse", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 54, + "autoResize": true + }, + { + "id": "rectangle-19", + "type": "rectangle", + "x": 920, + "y": 140, + "width": 350, + "height": 130, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#e9ecef", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 269676600, + "version": 1, + "versionNonce": 255985077, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-20", + "type": "text", + "x": 934, + "y": 150, + "width": 198.00000000000003, + "height": 22.5, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 884585952, + "version": 1, + "versionNonce": 2132084005, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Sandbox du conteneur", + "originalText": "Sandbox du conteneur", + "fontSize": 18, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 16, + "autoResize": true + }, + { + "id": "text-21", + "type": "text", + "x": 934, + "y": 177.4, + "width": 237.60000000000002, + "height": 80.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1836494975, + "version": 1, + "versionNonce": 1349251824, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "binaire Go statique (CGO=0)\nutilisateur non-root 10001\nseul /data est inscriptible\nHEALTHCHECK → /healthz", + "originalText": "binaire Go statique (CGO=0)\nutilisateur non-root 10001\nseul /data est inscriptible\nHEALTHCHECK → /healthz", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 74, + "autoResize": true + }, + { + "id": "rectangle-22", + "type": "rectangle", + "x": 920, + "y": 300, + "width": 350, + "height": 150, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#d0bfff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1999744785, + "version": 1, + "versionNonce": 1946412081, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-23", + "type": "text", + "x": 934, + "y": 310, + "width": 277.20000000000005, + "height": 22.5, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1552984409, + "version": 1, + "versionNonce": 1287489454, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Planificateur (scheduler.go)", + "originalText": "Planificateur (scheduler.go)", + "fontSize": 18, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 16, + "autoResize": true + }, + { + "id": "text-24", + "type": "text", + "x": 934, + "y": 337.4, + "width": 290.40000000000003, + "height": 80.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1066984056, + "version": 1, + "versionNonce": 772092315, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "tic toutes les 30 s (heure TZ)\nune exécution à la fois (mutex)\nheures / jour / semaine\nquota épuisé → nouvel essai 3 min", + "originalText": "tic toutes les 30 s (heure TZ)\nune exécution à la fois (mutex)\nheures / jour / semaine\nquota épuisé → nouvel essai 3 min", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 74, + "autoResize": true + }, + { + "id": "rectangle-25", + "type": "rectangle", + "x": 920, + "y": 530, + "width": 350, + "height": 130, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#d0bfff", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1048386556, + "version": 1, + "versionNonce": 351564608, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-26", + "type": "text", + "x": 934, + "y": 540, + "width": 247.50000000000003, + "height": 22.5, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1289560150, + "version": 1, + "versionNonce": 2126508551, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Client GitHub (github.go)", + "originalText": "Client GitHub (github.go)", + "fontSize": 18, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 16, + "autoResize": true + }, + { + "id": "text-27", + "type": "text", + "x": 934, + "y": 567.4, + "width": 299.20000000000005, + "height": 60.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1475216846, + "version": 1, + "versionNonce": 1927728187, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "cache mémoire CACHE_TTL (5 min)\nquota RateLimit mémorisé\nAuthorization: Bearer GITHUB_TOKEN", + "originalText": "cache mémoire CACHE_TTL (5 min)\nquota RateLimit mémorisé\nAuthorization: Bearer GITHUB_TOKEN", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 54, + "autoResize": true + }, + { + "id": "rectangle-28", + "type": "rectangle", + "x": 1380, + "y": 530, + "width": 320, + "height": 130, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffc9c9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1236683273, + "version": 1, + "versionNonce": 314395343, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-29", + "type": "text", + "x": 1394, + "y": 540, + "width": 187.00000000000003, + "height": 25.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 507088657, + "version": 1, + "versionNonce": 1795823849, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "API GitHub Search", + "originalText": "API GitHub Search", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 18, + "autoResize": true + }, + { + "id": "text-30", + "type": "text", + "x": 1394, + "y": 570.0, + "width": 264.0, + "height": 60.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 708506837, + "version": 1, + "versionNonce": 1469118511, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "api.github.com\n/search/repositories\n10 req/min sans jeton, 30 avec", + "originalText": "api.github.com\n/search/repositories\n10 req/min sans jeton, 30 avec", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 54, + "autoResize": true + }, + { + "id": "rectangle-31", + "type": "rectangle", + "x": 1380, + "y": 140, + "width": 320, + "height": 250, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#fff9db", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 652768598, + "version": 1, + "versionNonce": 2100080515, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-32", + "type": "text", + "x": 1394, + "y": 150, + "width": 209.00000000000003, + "height": 25.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1811180650, + "version": 1, + "versionNonce": 168393880, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Configuration (env)", + "originalText": "Configuration (env)", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 18, + "autoResize": true + }, + { + "id": "text-33", + "type": "text", + "x": 1394, + "y": 180.0, + "width": 184.8, + "height": 140.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 333377415, + "version": 1, + "versionNonce": 1347535309, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "GITHUB_TOKEN\nCACHE_TTL = 5m\nAUTH_USER / AUTH_PASS\nTZ = Europe/Paris\nHISTORY_KEEP = 100\nDATA_DIR = /data\nHTTP_PORT → 8080", + "originalText": "GITHUB_TOKEN\nCACHE_TTL = 5m\nAUTH_USER / AUTH_PASS\nTZ = Europe/Paris\nHISTORY_KEEP = 100\nDATA_DIR = /data\nHTTP_PORT → 8080", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 134, + "autoResize": true + }, + { + "id": "rectangle-34", + "type": "rectangle", + "x": 520, + "y": 960, + "width": 640, + "height": 140, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "#ffd8a8", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 3 + }, + "seed": 1460814403, + "version": 1, + "versionNonce": 1504004732, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false + }, + { + "id": "text-35", + "type": "text", + "x": 534, + "y": 970, + "width": 528.0, + "height": 25.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 2133201996, + "version": 1, + "versionNonce": 1959386987, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Volume Docker « searchgit-data » monté sur /data", + "originalText": "Volume Docker « searchgit-data » monté sur /data", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 18, + "autoResize": true + }, + { + "id": "text-36", + "type": "text", + "x": 534, + "y": 1000.0, + "width": 492.80000000000007, + "height": 80.0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 295334610, + "version": 1, + "versionNonce": 401991736, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "searches.json recherches programmées\nruns//index.json résumés des passages\nruns//seen.json première apparition\nruns//.json instantané (HISTORY_KEEP)", + "originalText": "searches.json recherches programmées\nruns//index.json résumés des passages\nruns//seen.json première apparition\nruns//.json instantané (HISTORY_KEEP)", + "fontSize": 16, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 74, + "autoResize": true + }, + { + "id": "arrow-37", + "type": "arrow", + "x": 360, + "y": 260, + "width": 100, + "height": 85, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1159380354, + "version": 1, + "versionNonce": 2036236842, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 100, + -85 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "text-38", + "type": "text", + "x": 370, + "y": 180, + "width": 123.75000000000001, + "height": 37.5, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 279172787, + "version": 1, + "versionNonce": 260573196, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "HTTP :8080\nJSON + fichiers", + "originalText": "HTTP :8080\nJSON + fichiers", + "fontSize": 15, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 31, + "autoResize": true + }, + { + "id": "arrow-39", + "type": "arrow", + "x": 660, + "y": 210, + "width": 0, + "height": 30, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1329753548, + "version": 1, + "versionNonce": 1914012529, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 30 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "arrow-40", + "type": "arrow", + "x": 660, + "y": 500, + "width": 0, + "height": 30, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1222328496, + "version": 1, + "versionNonce": 1656961616, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 30 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "text-41", + "type": "text", + "x": 670, + "y": 505, + "width": 90.75000000000001, + "height": 18.75, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1490376254, + "version": 1, + "versionNonce": 96907016, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "/api/search", + "originalText": "/api/search", + "fontSize": 15, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 13, + "autoResize": true + }, + { + "id": "arrow-42", + "type": "arrow", + "x": 860, + "y": 580, + "width": 60, + "height": 10, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1982966163, + "version": 1, + "versionNonce": 1526706730, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + 10 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "arrow-43", + "type": "arrow", + "x": 860, + "y": 390, + "width": 60, + "height": 10, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 721762279, + "version": 1, + "versionNonce": 502922617, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 60, + -10 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "text-44", + "type": "text", + "x": 866, + "y": 352, + "width": 41.25, + "height": 18.75, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 2120395275, + "version": 1, + "versionNonce": 253207297, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Run()", + "originalText": "Run()", + "fontSize": 15, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 13, + "autoResize": true + }, + { + "id": "arrow-45", + "type": "arrow", + "x": 460, + "y": 460, + "width": 25, + "height": 255, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 937195260, + "version": 1, + "versionNonce": 1234510746, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -25, + 0 + ], + [ + -25, + 255 + ], + [ + 0, + 255 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "text-46", + "type": "text", + "x": 330, + "y": 600, + "width": 82.5, + "height": 37.5, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 555512016, + "version": 1, + "versionNonce": 1063497604, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "CRUD\nhistorique", + "originalText": "CRUD\nhistorique", + "fontSize": 15, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 31, + "autoResize": true + }, + { + "id": "arrow-47", + "type": "arrow", + "x": 1095, + "y": 450, + "width": 0, + "height": 80, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1708957521, + "version": 1, + "versionNonce": 1679116189, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 80 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "text-48", + "type": "text", + "x": 1105, + "y": 475, + "width": 66.0, + "height": 18.75, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 2132480061, + "version": 1, + "versionNonce": 346094056, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "Search()", + "originalText": "Search()", + "fontSize": 15, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 13, + "autoResize": true + }, + { + "id": "arrow-49", + "type": "arrow", + "x": 920, + "y": 430, + "width": 60, + "height": 300, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 714537755, + "version": 1, + "versionNonce": 1929245187, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -30, + 0 + ], + [ + -30, + 300 + ], + [ + -60, + 300 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "text-50", + "type": "text", + "x": 898, + "y": 680, + "width": 49.50000000000001, + "height": 37.5, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1725048951, + "version": 1, + "versionNonce": 1193309984, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "AddRun\nUpdate", + "originalText": "AddRun\nUpdate", + "fontSize": 15, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 31, + "autoResize": true + }, + { + "id": "arrow-51", + "type": "arrow", + "x": 1270, + "y": 595, + "width": 110, + "height": 0, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 588093311, + "version": 1, + "versionNonce": 1849076401, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 110, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "text-52", + "type": "text", + "x": 1280, + "y": 565, + "width": 82.5, + "height": 18.75, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 1195809358, + "version": 1, + "versionNonce": 1783684942, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "REST HTTPS", + "originalText": "REST HTTPS", + "fontSize": 15, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 13, + "autoResize": true + }, + { + "id": "arrow-53", + "type": "arrow", + "x": 660, + "y": 770, + "width": 0, + "height": 190, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 1540910401, + "version": 1, + "versionNonce": 1633982922, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 190 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "text-54", + "type": "text", + "x": 672, + "y": 850, + "width": 189.75000000000003, + "height": 18.75, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 991070208, + "version": 1, + "versionNonce": 648200382, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "lecture / écriture JSON", + "originalText": "lecture / écriture JSON", + "fontSize": 15, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 13, + "autoResize": true + }, + { + "id": "arrow-55", + "type": "arrow", + "x": 1380, + "y": 265, + "width": 110, + "height": 55, + "angle": 0, + "strokeColor": "#1e1e1e", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "dashed", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": { + "type": 2 + }, + "seed": 356416555, + "version": 1, + "versionNonce": 756849393, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -110, + -55 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow", + "elbowed": false + }, + { + "id": "text-56", + "type": "text", + "x": 1290, + "y": 240, + "width": 74.25, + "height": 18.75, + "angle": 0, + "strokeColor": "#495057", + "backgroundColor": "transparent", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "frameId": null, + "roundness": null, + "seed": 649821630, + "version": 1, + "versionNonce": 996247159, + "isDeleted": false, + "boundElements": null, + "updated": 1759386000000, + "link": null, + "locked": false, + "text": "variables", + "originalText": "variables", + "fontSize": 15, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "containerId": null, + "lineHeight": 1.25, + "baseline": 13, + "autoResize": true + } + ], + "appState": { + "gridSize": 20, + "viewBackgroundColor": "#ffffff", + "currentItemFontFamily": 1 + }, + "files": {} +} \ No newline at end of file