feat: enhance API and middleware functionality: add public API routes, implement program and course member checks, and improve rate limiting for invite acceptance. Update OpenAPI spec generation to focus on public API endpoints and add new middleware for automation key scopes. Include new documentation for lesson AI features and public API tests.
@@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" fill="none">
|
||||
<rect width="1600" height="900" fill="#F8FAFC"/>
|
||||
<rect x="48" y="48" width="1504" height="804" rx="28" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="4"/>
|
||||
<rect x="96" y="96" width="300" height="28" rx="14" fill="#0F172A"/>
|
||||
<rect x="96" y="170" width="1040" height="56" rx="18" fill="#E2E8F0"/>
|
||||
<rect x="96" y="280" width="1360" height="420" rx="24" fill="#FFFFFF" stroke="#94A3B8" stroke-dasharray="14 10" stroke-width="4"/>
|
||||
<text x="776" y="490" text-anchor="middle" font-family="Arial, sans-serif" font-size="42" font-weight="700" fill="#0F172A">LMS Programs Placeholder</text>
|
||||
<text x="776" y="548" text-anchor="middle" font-family="Arial, sans-serif" font-size="28" fill="#475569">Replace with the learner programs list or learner program entry view.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 885 B |
@@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" fill="none">
|
||||
<rect width="1600" height="900" fill="#F8FAFC"/>
|
||||
<rect x="48" y="48" width="1504" height="804" rx="28" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="4"/>
|
||||
<rect x="96" y="96" width="340" height="28" rx="14" fill="#0F172A"/>
|
||||
<rect x="1220" y="88" width="236" height="52" rx="16" fill="#0F172A"/>
|
||||
<text x="1338" y="122" text-anchor="middle" font-family="Arial, sans-serif" font-size="24" font-weight="700" fill="#FFFFFF">Add Course</text>
|
||||
<rect x="96" y="172" width="1360" height="60" rx="18" fill="#E2E8F0"/>
|
||||
<rect x="96" y="276" width="1360" height="440" rx="24" fill="#FFFFFF" stroke="#94A3B8" stroke-dasharray="14 10" stroke-width="4"/>
|
||||
<text x="776" y="492" text-anchor="middle" font-family="Arial, sans-serif" font-size="42" font-weight="700" fill="#0F172A">Program Courses Placeholder</text>
|
||||
<text x="776" y="550" text-anchor="middle" font-family="Arial, sans-serif" font-size="28" fill="#475569">Replace with the Courses page in either list or grid view.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" fill="none">
|
||||
<rect width="1600" height="900" fill="#F8FAFC"/>
|
||||
<rect x="48" y="48" width="1504" height="804" rx="28" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="4"/>
|
||||
<rect x="96" y="96" width="360" height="28" rx="14" fill="#0F172A"/>
|
||||
<rect x="1256" y="88" width="200" height="52" rx="16" fill="#0F172A"/>
|
||||
<text x="1356" y="122" text-anchor="middle" font-family="Arial, sans-serif" font-size="24" font-weight="700" fill="#FFFFFF">New Post</text>
|
||||
<rect x="240" y="190" width="1072" height="500" rx="24" fill="#FFFFFF" stroke="#94A3B8" stroke-dasharray="14 10" stroke-width="4"/>
|
||||
<text x="776" y="426" text-anchor="middle" font-family="Arial, sans-serif" font-size="42" font-weight="700" fill="#0F172A">Program Newsfeed Placeholder</text>
|
||||
<text x="776" y="484" text-anchor="middle" font-family="Arial, sans-serif" font-size="28" fill="#475569">Replace with a screenshot of posts, reactions, and comments.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1023 B |
@@ -0,0 +1,12 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" fill="none">
|
||||
<rect width="1600" height="900" fill="#F8FAFC"/>
|
||||
<rect x="48" y="48" width="1504" height="804" rx="28" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="4"/>
|
||||
<rect x="96" y="96" width="320" height="28" rx="14" fill="#0F172A"/>
|
||||
<rect x="1234" y="88" width="222" height="52" rx="16" fill="#0F172A"/>
|
||||
<text x="1345" y="122" text-anchor="middle" font-family="Arial, sans-serif" font-size="24" font-weight="700" fill="#FFFFFF">Invite People</text>
|
||||
<rect x="96" y="182" width="760" height="52" rx="16" fill="#E2E8F0"/>
|
||||
<rect x="884" y="182" width="180" height="52" rx="16" fill="#E2E8F0"/>
|
||||
<rect x="96" y="286" width="1360" height="430" rx="24" fill="#FFFFFF" stroke="#94A3B8" stroke-dasharray="14 10" stroke-width="4"/>
|
||||
<text x="776" y="500" text-anchor="middle" font-family="Arial, sans-serif" font-size="42" font-weight="700" fill="#0F172A">Program People Placeholder</text>
|
||||
<text x="776" y="558" text-anchor="middle" font-family="Arial, sans-serif" font-size="28" fill="#475569">Replace with the People page and membership table.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" fill="none">
|
||||
<rect width="1600" height="900" fill="#F8FAFC"/>
|
||||
<rect x="48" y="48" width="1504" height="804" rx="28" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="4"/>
|
||||
<rect x="96" y="96" width="340" height="28" rx="14" fill="#0F172A"/>
|
||||
<rect x="1220" y="88" width="236" height="52" rx="16" fill="#0F172A"/>
|
||||
<text x="1338" y="122" text-anchor="middle" font-family="Arial, sans-serif" font-size="24" font-weight="700" fill="#FFFFFF">Save Changes</text>
|
||||
<rect x="248" y="198" width="1104" height="470" rx="24" fill="#FFFFFF" stroke="#94A3B8" stroke-dasharray="14 10" stroke-width="4"/>
|
||||
<text x="800" y="432" text-anchor="middle" font-family="Arial, sans-serif" font-size="42" font-weight="700" fill="#0F172A">Program Settings Placeholder</text>
|
||||
<text x="800" y="490" text-anchor="middle" font-family="Arial, sans-serif" font-size="28" fill="#475569">Replace with the Settings page showing status and general fields.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" fill="none">
|
||||
<rect width="1600" height="900" fill="#F8FAFC"/>
|
||||
<rect x="48" y="48" width="1504" height="804" rx="28" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="4"/>
|
||||
<rect x="96" y="96" width="280" height="660" rx="24" fill="#E2E8F0"/>
|
||||
<rect x="136" y="150" width="200" height="22" rx="11" fill="#0F172A"/>
|
||||
<rect x="136" y="224" width="200" height="56" rx="16" fill="#FFFFFF"/>
|
||||
<rect x="136" y="300" width="200" height="56" rx="16" fill="#FFFFFF"/>
|
||||
<rect x="136" y="376" width="200" height="56" rx="16" fill="#FFFFFF"/>
|
||||
<rect x="136" y="452" width="200" height="56" rx="16" fill="#FFFFFF"/>
|
||||
<rect x="424" y="96" width="1032" height="92" rx="24" fill="#E2E8F0"/>
|
||||
<rect x="424" y="224" width="1032" height="532" rx="24" fill="#FFFFFF" stroke="#94A3B8" stroke-dasharray="14 10" stroke-width="4"/>
|
||||
<text x="940" y="470" text-anchor="middle" font-family="Arial, sans-serif" font-size="42" font-weight="700" fill="#0F172A">Program Shell Placeholder</text>
|
||||
<text x="940" y="528" text-anchor="middle" font-family="Arial, sans-serif" font-size="28" fill="#475569">Replace with a screenshot showing the sidebar and header layout.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" fill="none">
|
||||
<rect width="1600" height="900" fill="#F8FAFC"/>
|
||||
<rect x="48" y="48" width="1504" height="804" rx="28" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="4"/>
|
||||
<rect x="96" y="96" width="360" height="28" rx="14" fill="#0F172A"/>
|
||||
<rect x="96" y="146" width="520" height="18" rx="9" fill="#94A3B8"/>
|
||||
<rect x="1200" y="92" width="256" height="52" rx="16" fill="#0F172A"/>
|
||||
<text x="1328" y="126" text-anchor="middle" font-family="Arial, sans-serif" font-size="24" font-weight="700" fill="#FFFFFF">Create Program</text>
|
||||
<rect x="96" y="206" width="960" height="52" rx="16" fill="#E2E8F0"/>
|
||||
<rect x="1080" y="206" width="180" height="52" rx="16" fill="#E2E8F0"/>
|
||||
<rect x="1280" y="206" width="176" height="52" rx="16" fill="#E2E8F0"/>
|
||||
<rect x="96" y="296" width="1360" height="420" rx="24" fill="#FFFFFF" stroke="#94A3B8" stroke-dasharray="14 10" stroke-width="4"/>
|
||||
<text x="776" y="500" text-anchor="middle" font-family="Arial, sans-serif" font-size="42" font-weight="700" fill="#0F172A">Programs List Placeholder</text>
|
||||
<text x="776" y="558" text-anchor="middle" font-family="Arial, sans-serif" font-size="28" fill="#475569">Replace with the org dashboard programs index page.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1600" height="900" viewBox="0 0 1600 900" fill="none">
|
||||
<rect width="1600" height="900" fill="#F8FAFC"/>
|
||||
<rect x="48" y="48" width="1504" height="804" rx="28" fill="#FFFFFF" stroke="#CBD5E1" stroke-width="4"/>
|
||||
<rect x="96" y="96" width="420" height="28" rx="14" fill="#0F172A"/>
|
||||
<rect x="96" y="144" width="760" height="18" rx="9" fill="#94A3B8"/>
|
||||
<rect x="96" y="210" width="1408" height="560" rx="24" fill="#E2E8F0"/>
|
||||
<rect x="144" y="274" width="1312" height="96" rx="20" fill="#FFFFFF" stroke="#94A3B8" stroke-dasharray="14 10" stroke-width="4"/>
|
||||
<text x="800" y="330" text-anchor="middle" font-family="Arial, sans-serif" font-size="42" font-weight="700" fill="#0F172A">Programs Overview Placeholder</text>
|
||||
<text x="800" y="388" text-anchor="middle" font-family="Arial, sans-serif" font-size="28" fill="#475569">Replace with a broad screenshot that explains the Programs feature at a glance.</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 972 B |