diff --git a/specification/assets/images/life-cycle.excalidraw b/specification/assets/images/life-cycle.excalidraw deleted file mode 100644 index 73b703bb..00000000 --- a/specification/assets/images/life-cycle.excalidraw +++ /dev/null @@ -1,613 +0,0 @@ -{ - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "type": "text", - "version": 441, - "versionNonce": 630753906, - "isDeleted": false, - "id": "fWR53sO5RGQE_NukjZPMN", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "dashed", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 890, - "y": 1000, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 260, - "height": 25, - "seed": 1929169548, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [], - "updated": 1657721892932, - "link": null, - "locked": false, - "fontSize": 20, - "fontFamily": 1, - "text": "Flag Evaluation Life Cycle", - "baseline": 18, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Flag Evaluation Life Cycle" - }, - { - "type": "arrow", - "version": 209, - "versionNonce": 98635182, - "isDeleted": false, - "id": "comxMv7YbRFpt1dbYHSw9", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 756.7414572451423, - "y": 849, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 0.7414572451423282, - "height": 132, - "seed": 2005717004, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1657721892932, - "link": null, - "locked": false, - "startBinding": { - "elementId": "0SyqzRLd6i14ANI4cp-V3", - "focus": 0.010928467393289114, - "gap": 3.5 - }, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - -0.7414572451423282, - -132 - ] - ] - }, - { - "type": "arrow", - "version": 285, - "versionNonce": 247622706, - "isDeleted": false, - "id": "f6SHZ953dRbLcslg-oHpV", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "dashed", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 428, - "y": 700, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 1188, - "height": 136, - "seed": 482789300, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1657721892932, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - 328, - 0 - ], - [ - 592, - -126 - ], - [ - 840, - 4 - ], - [ - 1188, - 10 - ] - ] - }, - { - "type": "arrow", - "version": 170, - "versionNonce": 101656558, - "isDeleted": false, - "id": "hOQcNNx7KUdARzsDabH3G", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "dotted", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 764, - "y": 709, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 488, - "height": 122, - "seed": 1987572492, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1657721892932, - "link": null, - "locked": false, - "startBinding": null, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - 236, - 120 - ], - [ - 488, - -2 - ] - ] - }, - { - "type": "text", - "version": 480, - "versionNonce": 63575538, - "isDeleted": false, - "id": "0SyqzRLd6i14ANI4cp-V3", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "dashed", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 680, - "y": 852.5, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 152, - "height": 25, - "seed": 1635894540, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "id": "comxMv7YbRFpt1dbYHSw9", - "type": "arrow" - } - ], - "updated": 1657721892932, - "link": null, - "locked": false, - "fontSize": 20, - "fontFamily": 1, - "text": "Flag evaluation", - "baseline": 18, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Flag evaluation" - }, - { - "type": "text", - "version": 659, - "versionNonce": 100661806, - "isDeleted": false, - "id": "DeLSf4xf9PqFaF3jbukNq", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "dashed", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 510, - "y": 582.25, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 146, - "height": 25, - "seed": 1876044300, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "id": "F3WMEgn3efPIVfvbnc7Ip", - "type": "arrow" - } - ], - "updated": 1657721892932, - "link": null, - "locked": false, - "fontSize": 20, - "fontFamily": 1, - "text": "\"Before\" stage", - "baseline": 18, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "\"Before\" stage" - }, - { - "type": "text", - "version": 60, - "versionNonce": 1438025650, - "isDeleted": false, - "id": "yEi8T8PClIvN-AkBfLMYy", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "dashed", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 940, - "y": 926, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 131, - "height": 25, - "seed": 397093556, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "id": "rldjo9Bs_0OE8EKg7WDAB", - "type": "arrow" - } - ], - "updated": 1657721892932, - "link": null, - "locked": false, - "fontSize": 20, - "fontFamily": 1, - "text": "\"Error\" stage", - "baseline": 18, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "\"Error\" stage" - }, - { - "type": "text", - "version": 91, - "versionNonce": 1822196846, - "isDeleted": false, - "id": "5wDUlPd8B_jixs5NBT90L", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "dashed", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 942, - "y": 450, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 134, - "height": 25, - "seed": 1807170996, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "id": "mApSEU77V3z0-ar-pavXA", - "type": "arrow" - } - ], - "updated": 1657721892932, - "link": null, - "locked": false, - "fontSize": 20, - "fontFamily": 1, - "text": "\"After\" stage", - "baseline": 18, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "\"After\" stage" - }, - { - "type": "text", - "version": 64, - "versionNonce": 481214834, - "isDeleted": false, - "id": "ODtqRP1bT-9qVF3QdR4Zz", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "dashed", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1374, - "y": 590, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 139, - "height": 25, - "seed": 1331492620, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "id": "JLdSBG-06gcICnQFbizDD", - "type": "arrow" - } - ], - "updated": 1657721892932, - "link": null, - "locked": false, - "fontSize": 20, - "fontFamily": 1, - "text": "\"Finally\" stage", - "baseline": 18, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "\"Finally\" stage" - }, - { - "type": "arrow", - "version": 58, - "versionNonce": 1538115246, - "isDeleted": false, - "id": "JLdSBG-06gcICnQFbizDD", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1444, - "y": 627, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 0, - "height": 82, - "seed": 1045076748, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1657721892932, - "link": null, - "locked": false, - "startBinding": { - "elementId": "ODtqRP1bT-9qVF3QdR4Zz", - "focus": -0.007194244604316547, - "gap": 12 - }, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - 0, - 82 - ] - ] - }, - { - "type": "arrow", - "version": 54, - "versionNonce": 1408877362, - "isDeleted": false, - "id": "mApSEU77V3z0-ar-pavXA", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1016, - "y": 483, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 2, - "height": 80, - "seed": 1589915700, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1657721892932, - "link": null, - "locked": false, - "startBinding": { - "elementId": "5wDUlPd8B_jixs5NBT90L", - "focus": -0.09637883008356547, - "gap": 8 - }, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - 2, - 80 - ] - ] - }, - { - "type": "arrow", - "version": 51, - "versionNonce": 1406976238, - "isDeleted": false, - "id": "rldjo9Bs_0OE8EKg7WDAB", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 1008, - "y": 915, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 2, - "height": 78, - "seed": 1974872460, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1657721892932, - "link": null, - "locked": false, - "startBinding": { - "elementId": "yEi8T8PClIvN-AkBfLMYy", - "focus": 0.047136735488897546, - "gap": 11 - }, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - -2, - -78 - ] - ] - }, - { - "type": "arrow", - "version": 61, - "versionNonce": 1979616498, - "isDeleted": false, - "id": "F3WMEgn3efPIVfvbnc7Ip", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "angle": 0, - "x": 584, - "y": 623, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 0, - "height": 78, - "seed": 939203124, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1657721892932, - "link": null, - "locked": false, - "startBinding": { - "elementId": "DeLSf4xf9PqFaF3jbukNq", - "focus": -0.0136986301369863, - "gap": 15.75 - }, - "endBinding": null, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - 0, - 78 - ] - ] - }, - { - "id": "NkDXWchoeeUIU--BNVMhT", - "type": "line", - "x": 581.5249175743113, - "y": 716.6987736687283, - "width": 410, - "height": 114, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "dotted", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 407117490, - "version": 212, - "versionNonce": 140528046, - "isDeleted": false, - "boundElements": null, - "updated": 1657721903964, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 106, - 60 - ], - [ - 276, - 112 - ], - [ - 410, - 114 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null - } - ], - "appState": { - "gridSize": null, - "viewBackgroundColor": "#ffffff" - }, - "files": {} -} \ No newline at end of file diff --git a/specification/assets/images/life-cycle.png b/specification/assets/images/life-cycle.png deleted file mode 100644 index 7e432b0b..00000000 Binary files a/specification/assets/images/life-cycle.png and /dev/null differ diff --git a/specification/assets/images/provider.excalidraw b/specification/assets/images/provider.excalidraw deleted file mode 100644 index df5c5784..00000000 --- a/specification/assets/images/provider.excalidraw +++ /dev/null @@ -1,431 +0,0 @@ -{ - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "id": "sFzbmoq8x0HyykU9HhKbf", - "type": "rectangle", - "x": 946, - "y": 235, - "width": 40, - "height": 360, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 97747724, - "version": 143, - "versionNonce": 1741772596, - "isDeleted": false, - "boundElements": [ - { - "id": "GjpO8NH8C2w3d6tgZEw0a", - "type": "arrow" - }, - { - "id": "YNZgdJRPYhxEAG9UTiiaX", - "type": "arrow" - } - ], - "updated": 1656091357618, - "link": null, - "locked": false - }, - { - "id": "AyfB6rhs9QP8dDml-jTtM", - "type": "diamond", - "x": 1104, - "y": 301, - "width": 230, - "height": 218, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 1169897996, - "version": 109, - "versionNonce": 1736986804, - "isDeleted": false, - "boundElements": [ - { - "id": "2X5Ue2aHSLNyoaJiVed-6", - "type": "arrow" - }, - { - "id": "GjpO8NH8C2w3d6tgZEw0a", - "type": "arrow" - } - ], - "updated": 1656091357618, - "link": null, - "locked": false - }, - { - "id": "ACCE9Pv-d-jAR2g3-eEcn", - "type": "text", - "x": 890, - "y": 400, - "width": 152, - "height": 25, - "angle": 1.55517259817442, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 398017588, - "version": 157, - "versionNonce": 1160434484, - "isDeleted": false, - "boundElements": null, - "updated": 1656092204660, - "link": null, - "locked": false, - "text": "Evaluation API", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "baseline": 18, - "containerId": null, - "originalText": "Evaluation API" - }, - { - "id": "XTsFx3AIH7HTI_Sd1EtQQ", - "type": "text", - "x": 1180, - "y": 398, - "width": 80, - "height": 25, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 468363700, - "version": 111, - "versionNonce": 72997556, - "isDeleted": false, - "boundElements": null, - "updated": 1656092173540, - "link": null, - "locked": false, - "text": "Provider", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "baseline": 18, - "containerId": null, - "originalText": "Provider" - }, - { - "id": "hk-L4sS1BEfbVBOgFS7g1", - "type": "text", - "x": 1478, - "y": 390, - "width": 164, - "height": 50, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 735367860, - "version": 227, - "versionNonce": 523408436, - "isDeleted": false, - "boundElements": null, - "updated": 1656092191304, - "link": null, - "locked": false, - "text": "Flag management\n system", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "center", - "verticalAlign": "top", - "baseline": 43, - "containerId": null, - "originalText": "Flag management\n system" - }, - { - "id": "GjpO8NH8C2w3d6tgZEw0a", - "type": "arrow", - "x": 994, - "y": 413, - "width": 100, - "height": 2, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "round", - "seed": 2119779508, - "version": 144, - "versionNonce": 1893866804, - "isDeleted": false, - "boundElements": null, - "updated": 1656091357618, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 100, - -2 - ] - ], - "lastCommittedPoint": null, - "startBinding": { - "elementId": "sFzbmoq8x0HyykU9HhKbf", - "focus": -0.007982261640798228, - "gap": 8 - }, - "endBinding": { - "elementId": "AyfB6rhs9QP8dDml-jTtM", - "focus": 0.013761467889908258, - "gap": 7.6049836494533025 - }, - "startArrowhead": null, - "endArrowhead": "arrow" - }, - { - "type": "arrow", - "version": 247, - "versionNonce": 1119338804, - "isDeleted": false, - "id": "2X5Ue2aHSLNyoaJiVed-6", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1342, - "y": 412, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 100, - "height": 2, - "seed": 1010136244, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1656091362726, - "link": null, - "locked": false, - "startBinding": { - "elementId": "AyfB6rhs9QP8dDml-jTtM", - "focus": 0.04091743119266055, - "gap": 6.954931105143189 - }, - "endBinding": { - "elementId": "OVJNNaVaqA4rfwXZ4m26c", - "focus": 0.043664558253417675, - "gap": 13 - }, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - 100, - -2 - ] - ] - }, - { - "type": "text", - "version": 315, - "versionNonce": 165520820, - "isDeleted": false, - "id": "j3MxwuU4vlV0o75SwNm6-", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 681.5, - "y": 400.5, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 103, - "height": 25, - "seed": 1401550644, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [], - "updated": 1656092169786, - "link": null, - "locked": false, - "fontSize": 20, - "fontFamily": 1, - "text": "Application", - "baseline": 18, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "Application" - }, - { - "type": "arrow", - "version": 202, - "versionNonce": 1322315020, - "isDeleted": false, - "id": "YNZgdJRPYhxEAG9UTiiaX", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 838, - "y": 413, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 100, - "height": 2, - "seed": 873715764, - "groupIds": [], - "strokeSharpness": "round", - "boundElements": [], - "updated": 1656091357618, - "link": null, - "locked": false, - "startBinding": { - "elementId": "FkWpwmnzGSQRmo6WPzc-b", - "focus": 0.01163027953478882, - "gap": 6 - }, - "endBinding": { - "elementId": "sFzbmoq8x0HyykU9HhKbf", - "focus": 0.025277161862527722, - "gap": 8 - }, - "lastCommittedPoint": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "points": [ - [ - 0, - 0 - ], - [ - 100, - -2 - ] - ] - }, - { - "id": "FkWpwmnzGSQRmo6WPzc-b", - "type": "rectangle", - "x": 630, - "y": 318, - "width": 202, - "height": 192, - "angle": 0, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "groupIds": [], - "strokeSharpness": "sharp", - "seed": 694797236, - "version": 157, - "versionNonce": 46623628, - "isDeleted": false, - "boundElements": [ - { - "id": "YNZgdJRPYhxEAG9UTiiaX", - "type": "arrow" - } - ], - "updated": 1656091357619, - "link": null, - "locked": false - }, - { - "type": "rectangle", - "version": 234, - "versionNonce": 914824204, - "isDeleted": false, - "id": "OVJNNaVaqA4rfwXZ4m26c", - "fillStyle": "hachure", - "strokeWidth": 1, - "strokeStyle": "solid", - "roughness": 1, - "opacity": 100, - "angle": 0, - "x": 1455, - "y": 316, - "strokeColor": "#000000", - "backgroundColor": "transparent", - "width": 202, - "height": 192, - "seed": 1478245516, - "groupIds": [], - "strokeSharpness": "sharp", - "boundElements": [ - { - "id": "YNZgdJRPYhxEAG9UTiiaX", - "type": "arrow" - }, - { - "id": "2X5Ue2aHSLNyoaJiVed-6", - "type": "arrow" - } - ], - "updated": 1656091362726, - "link": null, - "locked": false - } - ], - "appState": { - "gridSize": null, - "viewBackgroundColor": "#ffffff" - }, - "files": {} -} \ No newline at end of file diff --git a/specification/assets/images/provider.png b/specification/assets/images/provider.png deleted file mode 100644 index 5e9e030b..00000000 Binary files a/specification/assets/images/provider.png and /dev/null differ diff --git a/specification/sections/02-providers.md b/specification/sections/02-providers.md index b540cdb3..581c8579 100644 --- a/specification/sections/02-providers.md +++ b/specification/sections/02-providers.md @@ -14,7 +14,12 @@ The `provider` API defines interfaces that Provider Authors can use to abstract Providers are the "translator" between the flag evaluation calls made in application code, and the flag management system that stores flags and in some cases evaluates flags. At a minimum, providers should implement some basic evaluation methods which return flag values of the expected type. In addition, providers may transform the [evaluation context](./03-evaluation-context.md) appropriately in order to be used in dynamic evaluation of their associated flag management system, provide insight into why evaluation proceeded the way it did, and expose configuration options for their associated flag management system. Hypothetical provider implementations might wrap a vendor SDK, embed an REST client, or read flags from a local file. -![Provider](../assets/images/provider.png) +```mermaid +flowchart LR + A[Application] --> API(Evaluation API) + API --> P[Provider] + P --> FMS[(Flag Management System)] +``` ### 2.1. Feature Provider Interface diff --git a/specification/sections/04-hooks.md b/specification/sections/04-hooks.md index 9f58d343..af7bbaa6 100644 --- a/specification/sections/04-hooks.md +++ b/specification/sections/04-hooks.md @@ -17,7 +17,15 @@ Hooks add their logic at any of four specific stages of flag evaluation: - `error`, immediately after an unsuccessful during flag evaluation - `finally` unconditionally after flag evaluation -![Flag evaluation life cycle](../assets/images/life-cycle.png) +```mermaid +flowchart LR + B(('Before' stage)) ---> FE[Flag Evaluation] + B -..->|Error| E + FE ---> A(('After' stage)) + FE -..->|Error| E(('Error' stage)) + A ---> F(('Finally' stage)) + E -..-> F +``` Hooks can be configured to run globally (impacting all flag evaluations), per client, or per flag evaluation invocation. Some example use-cases for hook include adding additional data to the [evaluation context](./03-evaluation-context.md), performing validation on the received flag value, providing data to telemetric tools, and logging errors.