From 3a69eb3c7331516940c97a92249f545105311648 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Gr=C3=B8ndahl?= Date: Mon, 16 Mar 2026 21:59:52 +0100 Subject: [PATCH] feat: add Kosli Learning Labs section Surfaces the kosli-dev/labs training series inside the docs site as a dedicated Labs tab with five progressive labs (account setup through runtime compliance). Includes repositioning of the existing local demo tutorial and cross-references throughout. --- docs.json | 24 ++- getting_started/flows.md | 2 +- getting_started/install.md | 4 + images/labs/first-trail.png | Bin 0 -> 168816 bytes images/labs/pipeline.png | Bin 0 -> 18909 bytes index.mdx | 23 ++- labs/index.mdx | 41 ++++ labs/lab-01-get-ready.mdx | 160 ++++++++++++++++ labs/lab-02-flows-and-trails.mdx | 195 +++++++++++++++++++ labs/lab-03-build-controls.mdx | 189 ++++++++++++++++++ labs/lab-04-release-controls.mdx | 144 ++++++++++++++ labs/lab-05-runtime-controls.mdx | 240 +++++++++++++++++++++++ tutorials/get_familiar_with_Kosli.md | 275 --------------------------- tutorials/try_kosli_locally.mdx | 230 ++++++++++++++++++++++ understand_kosli/what_is_kosli.md | 4 + 15 files changed, 1241 insertions(+), 290 deletions(-) create mode 100644 images/labs/first-trail.png create mode 100644 images/labs/pipeline.png create mode 100644 labs/index.mdx create mode 100644 labs/lab-01-get-ready.mdx create mode 100644 labs/lab-02-flows-and-trails.mdx create mode 100644 labs/lab-03-build-controls.mdx create mode 100644 labs/lab-04-release-controls.mdx create mode 100644 labs/lab-05-runtime-controls.mdx delete mode 100644 tutorials/get_familiar_with_Kosli.md create mode 100644 tutorials/try_kosli_locally.mdx diff --git a/docs.json b/docs.json index d0254bbb..759e19b1 100644 --- a/docs.json +++ b/docs.json @@ -39,6 +39,10 @@ { "source": "/ci-defaults", "destination": "/integrations/ci_cd" + }, + { + "source": "/tutorials/get_familiar_with_kosli", + "destination": "/tutorials/try_kosli_locally" } ], "navigation": { @@ -100,7 +104,7 @@ { "group": "Getting started", "pages": [ - "tutorials/get_familiar_with_Kosli", + "tutorials/try_kosli_locally", "tutorials/cli_and_http_proxy" ] }, @@ -154,6 +158,22 @@ } ] }, + { + "tab": "Labs", + "groups": [ + { + "group": "Kosli Learning Labs", + "pages": [ + "labs/index", + "labs/lab-01-get-ready", + "labs/lab-02-flows-and-trails", + "labs/lab-03-build-controls", + "labs/lab-04-release-controls", + "labs/lab-05-runtime-controls" + ] + } + ] + }, { "tab": "Implementation Guide", "groups": [ @@ -513,7 +533,7 @@ "items": [ { "label": "Labs", - "href": "https://github.com/kosli-dev/labs" + "href": "/labs" }, { "label": "Blog", diff --git a/getting_started/flows.md b/getting_started/flows.md index 6b1990ee..91f914af 100644 --- a/getting_started/flows.md +++ b/getting_started/flows.md @@ -27,7 +27,7 @@ A Flow template is a YAML file following the syntax outlined in the [flow templa Here is an example: -```yml sw-delivery-template.yml +```yaml sw-delivery-template.yml version: 1 trail: attestations: diff --git a/getting_started/install.md b/getting_started/install.md index f8a02041..17be5d91 100644 --- a/getting_started/install.md +++ b/getting_started/install.md @@ -116,6 +116,10 @@ icon: "download" + + New to Kosli? The [Kosli Learning Labs](/labs) provide a guided, project-based introduction covering Flows, Trails, attestations, and runtime compliance. + + ## Using the CLI The [CLI Reference](/client_reference/) section contains all the information you may need to run the Kosli CLI. The CLI flags offer flexibility for configuration and can be assigned in three distinct manners: diff --git a/images/labs/first-trail.png b/images/labs/first-trail.png new file mode 100644 index 0000000000000000000000000000000000000000..f80acd00216e96c446dcac9e8e97ee7ab42ac52a GIT binary patch literal 168816 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 literal 0 HcmV?d00001 diff --git a/images/labs/pipeline.png b/images/labs/pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..6846b502abcb1e4706720572cb310e19b79cb12d GIT binary patch literal 18909 zcmeHvXIN8RxMdU-v4CPhx=K?KP-y}JDo7PjdJl^9Dpf)Wh>C)UhTf&O0AdI|fS{oC z8afe`00|ue5(t?cEZ;YG?#!=ypP3(%=ixCN&N+LZz2Ech^{%zHFYah6A3nf#00My= zR#j2dhCuc%Kp?wh_wNHo5ZUn#;GbRY+R8T}MI9V7;Fmo%H#BZQASDq8x9;r)zcaY1 z7`a0rjE%IPUCl1J4VP+#9BM8+mZueGIrTik53L)*h)IXXkQ`IWRqk!;~#bfnBj?{hp>SiAfZX`Qq-Q2fwc(tG|$HdH<{?BDP7Jd^H zw2?7~2)b^&n7oXGD>E%@c)Ndm=|ho$=a0zyhtz7jHOwX$vrtu`LyPCfwr!~D#fkoZ zZg4wj>FK)Q$@3aLlPO-PzxTcU=5^y{HFe?yXVp3dk$EfCuip5W{~)Pbe)(O1+w=)e za>ynfn*f0T+u)}D94K9gkM*4H5`=BYuMuTTu;=Yu`(6*+E7YS3kbgp{cRFiULm4?? zMj~6Amcxjt1A|m;|7rJ#nY`4E^-biOKU$@Ax6&SVAIi3n4?J&SYx64wvTa#ci+SkO z6|*8=s)yT%rFMmdn0Kc^YjWu}xv<=aecv7?kK{nR(-h=;C}DI7EG`4<0ZXBbvK!)s z(NUX2A*47sJj5J(FiXBKIJFXXnynI!IWhAgu*`o%-qJtj zPe8?=aC-z@>JfzzNYbj>n=hz+I$E+BEO47w2}%qD4kNMH{F&HJ;*7z#o_pI(|F50f zN^oBrizD*7Tl7>@xTiu`OThADM$B0DxdD61P*L9`C3w9e!vm zB2RjmLjGiDx1mfjz->2ujerED7z{0p@Cx;Ydz)f*xioQ`70<>6V0?eDaz;iOxMpax z1!Sbkfy-bMW}aCW2e`NT`z^_ZgFmIrpeEU=F_@fJ=W_I2#`EFiHB437_kjyO6HkoO zlUlYTMW*2${W6QYe~nB1#baPtHokGmK1|m@cx*HjlRh5vUG2H--Y2FuuRrukzJFjl zAfk5N8`_sjeXDKGXFJ!PDxtjZp;v8Q$o8xtdHxu#yT}Qi#$7uZjd1f=$>9~+))}Le z+#>iA&r>!GY6}HY1~V1{HlQS!^2;8V4Z3iV+V%YV3(#pnc%3qiGVC>1Oo+XIg;dL= z-gAMnUhSd}gJuQ%oEljj6Ih#mQ73|3hc4)rZU&RvF44nC@sfIi=Vho~Rw@X6yT%ax zbL8a_*d(q9Nu;(7$ma+_H%$CREZ_zaK6=y=Z71KKGUV|_coEzWqobX05{=2NBe#^3 zKH^x2)EfMosPq$+l6zhD{|=M5qh~_ad)wCSab^$ zhfT%mnu~`gN(pnv#~h(BP(wY|<0RGc>J5jaW4BhJB{j=gH706S7uJ>1q@Ck!?#$sg znj7g^h~Q9DiOGzxZ%1F&_A9FW*;}x%wxV3&et@_uXCIsLhsqP=G9WO&hTX|C$B z$ugJ7z(F&EXCDhIb(prt zC8CO8#%D2>{mBB>2&aZkl(Kmj2z7Uo3(}6Fo~#y=`O3@e(xy_0$98n|*ocXJR)y^? z^<@r=E?S4*T^!XaB}3sW@D=Y z4VRjqKcY`>^WeJHy|yL&?^{KU`^;I*;Z}0D7rIZn3-AzTs;>BQ|L%>2d?e!n96EAQ z)tFoxu5Z%R;*quICBv<;ZaDUs)@&tt{af*4`im7x-1{pkiSI|;N)@$D=Ik8yZMgQt z6f;z8%o-P(L<;9=pary4>ZA(TRPCe+(2JM>&u@xfahK8i=IpMF_sp=V9xUpoKbdmn z)k@Vk`x*BI7+Hg}`eI?lJ=8qLDqeRpJH>~jhEtZS)t|ZCGt!C6F{4%}%lpi%t7&*9 zRR0;ewws{0)d9ZxXhahC2E25t0NM@pBW=RA<{dvJ&!j7{1A>*m2RdZqH;|grXFrsw&KyQ&JpoYkk}VDFRu@r4T4Y`b^be(+ zYS!)I#PBD`G5nn4#6hOjb*h``VgD~J8$WV9n@O=G6g)tI%YF2LcwHKNd&A0%s?5Hs zELr(ukz=54?q~K|vMBw&6^@M;0a*X!`JcU71b%O%FlFAzpAxh{Xt5RmDZnf>wiAl zTXc;|5Ov9y;8*IV*m(TFMHtTsY|qeNkR8tsT4gU?(xMu2S8cgd7VD&Um+kreFm3vG zi`r&)p}NiI2jn@1k>ardd7RWa7gE)bETXzDM`67d8f)&OOPyOVm+-ZTKtp>Yag@xH z7?PzEIW?F#_6KI*OTTp1G?$V;bK~Cf5xPq3LJ^1|C?Tw7~(gbxu} zUwpsGuSRr=Cn)?0829577>%r2Y9l!~(R4Z4--t?d*?#C69`O5w>%4J$9sXjPBSvvP z|0P(*ou{U=Mq#83mv$S)`Maq=BU|TxAXD3!f4&dijuI60t#{C974Z-KkS9 z-LF1a=8}XcEAy!{4X^#td0Wa<0}=E6SGoR-2TE~TbU}2XtE|(C_#>h=D>=eXU50z( z>1w>ljF&^&h84NZQ=n)SEV-jp zHZSUJeL3!T#qjO$DC!auy$cO8(?0bVkHQ|MzTv0fhXRLYU8d#XJcTs@t|x0cX7*BV zZ!8~^mXX(RR=q%7>M~jnD0G>LXX!Na@td%bhFQn!PbCKLPS(K)+}cQG=l{VpIPesg zs_kG*9+dz46c!3;A?p%LBRRAONa`Yl)TVKcD8!BZnLDt4!X81V-pD;NsJ|k`jct}c zm%K&!+P3lL2N@1nRc%^fG-B&?NcG)so z(8BlE13@78=Ut7P2jzP$MZ^TD?zpa3v?iJSjbZl?l24tSunpnCo13O(n%mRONvSUlBYEbnBd(zrI_NopHKE!Sy|;3 z<8tPUgh?>p_A`)6S>HGws@+!8cD!9`Z*T8WnbXWcLzXe^ATpji8W|Z8W|r~`v!cIp zT{m2X`SxRb@>95q-@kv~<_u0dbe0xP&+p94A0m-9`}&9MK=Y+U!mKW|P754F(IRyx zd%bC$xvlSQ5Ib}Ta<6x+pD#yr$dOhh(_;4ekI*ppce;#$to_8fNu?ohnCJBWjWCTr zXJEY+ICM3}!~0oM$AeFwq}qfb?zdfv4d&)J?Q@GotIzHxF+S&bW4NGiR&Gr4Bw33> zo~=B=$j*IG-hUIEgHDL=l2AqxaWF9&Ss78 zf;0rLs6%KcJ_q$@#Z~&)wOvPx21eMAN@76=o=3sxA^Vv+M0U9bFj$@8 zx#c`*=DShc6S9Fz2h<;NM;0j=EmR_@-U3ALa~(7b5Wnfk@|a z=|m=;nKZ94WO%g)jYh|t9aF;4;Ux%Tec(=~4wKd{5cn>6gGo45Y{#^a@jX3iW#b}W zW^bserEqAuetm!6cA^tP;_q5VduvW{^Tl#h>3+V!iQ6RuWcW@cu% z&7+Y6Ye%Q|tWG5y_fD(AwL12YYx`h1$82 zWqma{=jMWW(n~+1?}$&~biBR2yUM(xn1qB6p^3P8-_N&+VmW^h(+jJ5ZCwQz4249+m$z=#nuvwv=B_r&2)LGkY= zIu5tAv>-d!vOCAg{S z2D60&2PF$iO73Q5ZAPc2x-g=%IAyrLg|YL0LVB}0mk*DO6edUxeGQnEzK%&eFp(Pz zPR#n?E=z^-9wgPBpv~#rNO^qwcL}}C4r z+t49sgzuCJe6Jzv#3yBnW0K}hCBmz5=G9AmcUe7*{k zGy)H{xi$ypX6QBd!S<KgZ5YLSSX>mRgEF z&7C`Ujx33mTZnuz2}4gU$ztU-wvFhvk41twv}`XsFu7b8G43_;4l2!?hnwmZiTJ7Y zDE&u=ilow@iN9H}xaft|b*UQg3IsF?&73f-7Hf06kLT-o`ZO`5Pnmj(T9zo`q}!&y7|~b;->TI>0--pm_|8I6LJJt=UNe!9f)_ljh5F=J z{ndet_wTRFjZ+M}B&_|V9xc8F@1sjUD@rL|ysb_P4uz4Usn89gyG0%R_Sdx_(hxFd zn{A4EZA;07k>{P#g|{6M`qU6#4W2pr2~kswZoN+$PO+0oKyX$1_z=kpys`Wb1EfqT z_O`aCw1anVDw9(R17Q-Q#Ct=xo-{s_k(}=PqLYtAa+G*+$@x9#At9{XAuk6OZJ2d< z`Fv-Mn9(5#eXgZOc?H4E(gv?Eh0q%}g4ER43raoe*x1=~99cQ2u@cnDU5I<0rb&8YT9VudR-;lp1CPvX`-mNwILAXveX`FE5&soUd+Q{|L83$*Zgn6w#i4 zqb@I(Yi^WHd?$7QNoS_bzf@DKecI&75cMaCIAG#$-Of1MYjF-tnH8zpRM=^_^s?=tS%*xR0Z2Oi zrH#d$*ro;zW>N<>yV|_Su*8%rqS=w_KGOKSDsiB=obZO~*DF8%ed&~6A`>;B2$|%UK zAcXa<8n$}R!8|^GHAl?XQNw7-OfI(m>o|P0o}8MR%DtMRrlzJe%G6+!35%cbau`~k zRKQl|m=6zl477G1@(y5qlybr__4r~&MjdX_?Qq_kfQ)_|=*}5jwY!_!>MW{rFM5~G zd5~~craHM%+jm8FwLP&ryzpK7{^Jx$z0$m#ya8CiQa^t`w^IxeuPd~nxLD=)BJA7a zlnDMs`K`l;4=dC@()gII!9Kb4=yAaQpWEy3BVzmFREgNJ>=-=$sMe{Jt))n;V-R@F zcvP$U26K@}SHwg0}3p;y8ZLM5?znLy72Q1_MH!NkOr9H@f=aV08RtRm^ zm>1u-EXL;E!A+?&=q)sTD>e&4Mbln-J3G6U&Q61XfLb>D()*v>9Q?i#<-kFGLvj7~4sai1W8*Gg zS@04qFE1mf-W8V+lA%^sSs;B!Pk3qhVpd=n1wyD9HM?qDBZiYOX^8IWgeq^5&b?#Q z*V8i+ouq)dK-L%3)R^}7_g9gyCcLU(R!bV3>HrXbE3Ip0=G0$8N1wu&9|Vqfe+Z^8 zEUEUEKk2bo@9X9gx9=AOpFUObsWz1okz>F6Fu!vttg^(l_ucy5coj?%vfG}96J+|- z!(CJK^!2U#B@bgoR<5-knmBQjLgH?uHfF=G$?v{jTLd@auZJyN&hW4b~V#;vm-?|Cm^-cQNOM; z2W8V~)XBNDWWQi*pze+$5Jd<-su!kbheYkGJXFWcixH8Lo=#q6SFT(+e(c!Rtq1%b zUY;#S;Uqj1tTad4uVYqL2CBgv9Ce75hp;&)*&7=t95`^`SzDV&rRfa=spyz_+Fadv z$8}C#Uf$O6oFp^Tp&F(4cD+gtsX?vRU#`|twu(g;#ZR0#@h~FF=xiU1#kPuQW@BK} zbxJ02nU+OOMLLtD*h?R@x+>+f;+dWWfo!B_V&WhXk)M|K0hSaKlPzlVc;Iw#Vd3FQ z#;mNYyxiP#xv%V)r)t1*&0JdiW=+(XA|fI(P-GTC_(0En2dq0q*6)Mf5GLo!scEDN zfPuuFK|15t6%i2ZlRmyg@=731+P1Bv8N7a_I@ow&2@kRb=wp$o*7HDq9!Zp;e|jFT){0 zRAJd0kJ9pjZ-wQ3eIBY5xm2>hoVd7|_9qjUybO%Lt8Ns?p#50pnj&j0?{Y9c9{9fV zATDg{r*sI9#ms!?)cAOL_kP@+bb%b*cC9`Q8YR0W)u7)Y*^%vjCfp zBu>%3<<5(wkedPF;o&!8)i$Y0305=E>lrx$W=>=anxw?cl2;Ao48%~2JE^#ptW!Ig0EGXILdyk8EX^^!Q=7!(21gllzO_yi&`wB z$&+t*Xg~Sa^jTM*^6-7iD_fKB^!BEAnv%S9>20=ptOsHBJi5GGkY7TnHKyjcIJUKlFkK&%6CD$Cva~6e`q0Ox@`U}~jwg}> zJY$&6k~6ykZr!@|ndDv-CyL(fPz`5Deq&!otz*FZewrxrUT9p?Uufq*a4P;=*URR{;B-@{4<`VU=ai_;teOBy!?DNx8gUhrwX@S zz^a-%|H{jXW!52`o5#ULhh;3~qR1w46{`ca{=UI6 zbGx&9&c><(xeRusu0DKS~ zZTe<-DyJV_se8Bkd-VgCddaunt2@7pu+>Tvq34y|b4rTbv?^3Z5K zPc+MM?K27c1}>UqPv_c#s!u)g(Fsw#1+YpyOAbGNs>b(P${Eo%(1JsI{rdW*P1$BM zIburw8Pz&0AZQan$YQf6+a14tBpNvtBZo{ilwgF*=as|$$9k|r0nn!I$JtN2Jw zxa)WxrPB@Sv2E6nvLji8gQujveJ?g`86D3ihq1KZuuPB?F^V@b3VroT z-`l&~-oB#%SMkNEqJl+4KUDOVnc3K~c`dTGcALS!JAHhp)%D)VOL96o3$qXM31bi1 zKf&zw%|V)iVKRuJJ0c+mrv$=QuD0m`f~(2FIJW&wW&(>yUQRbi_PMBRWdKn@HzX!H zRANOx<<)MR_b0(!8lXsN85xhYSymEh?L6Qr)QgSsb90y4FC<(bv54g3w|oi2g=o=F z=e?UgOXAoLlRC@+s?r6hQG)JFVm{19Ku2$ZKMclj`UuJE!5d={Wn(XTNT7=7+ythR z*efHCyi1fxwl;Vj6tqj+z-#(PU7!71mn~6d$dk?)9RWS~(znck(yPU@^XVE z1_on9ycHuu;{3dGKalZzb2Jmo&SZ?YBYS!%H{kf?Q}v3s^)RT&yj<_dTbMl->Enzd zJ%mY6nj20%H2ty%a{W|HJHro^@czeW%`D_??fbBreSUO=qG}{I(#$^3-oVAAu95+g z82_qui(_fYxYqA!dPc^i-EwYPS_cQSexD2^Asc2RsdIPd$pT^QY=E`cymb>pcM09V zHcl5u$tFJFu^Yc;CR*Xq@oCr?6o_#O4bNco*Lw{YW}m?5>lt&)A!l##f?Mf049B+b z3cTat>6M>0(Za&E{_Rs}c$jDi;1y|~qrr<@flgw+*9f!IcRX~XMxD!t4*&X-;vqnT zmuVY#-=(9YbCcGIdL3u$^;<(a8U!vYTwPnsuN>l0ZE>}U8~b(9bwxl{TFAt*vG)z& za-MutWC!GoIg#q`GBx-%)=BaAi#Qf-|IIM?{5Bi z!XFTh4_{qHv0mTv!u?}j`GA9jR#-}kGl@jHAR!?_SFiYl zW4yfF``wz@kqJOA_KgQvDfwM3MWa;_hz5>vodw8~YCz-RCH}?Hu@i_i8Zy&o1+bh) zPlM6@)TCIDR@*U~AR#*@i^#kh(m0y{Cg=3~c12oaPN1USVfnR=; zah9syHlG1AY-;+*rg8WFI)LJaM`WxYJPT|*TI_&A_4oD`qHH?i#_rv~(4B3*jjfJ< zPpIn8FD{Tw+;tlHCl6e+c?dYuSHCz@{^R3x*RLunD-$VF1${VNu{SPHqIwr3QV~oA z<5?jZv%J5*0#Mw6uFD&Kh|IXSQ#(X8n9jJ~|F<=fwo}bphFQ3(>w*jIeZ%znwsUlX ztF=P$Za74KMUnFSE4sAuvGq92=4GF2DGc<@pcs^P$0LUh4eA5NpdVn zNe@tu7Ubt&IC1>A;mGVrxdA;B7mXs~&8w<1mhrlFyfn4m-*LFKo2}r3Aj8&z&E}eu znwC~9uY=Fq`hdeIkJnV$giTH-*0=SOj~~=fOXL(lEqR4gmRxXjJ$U9WsK@{fXi4df zn(!j(z<=7wZhRNuQ(bqgRMyPVLC~laz|M%3#hG7B1o`pOHEWtOe%ev{{Zzb$LLZmC zc4N17RuLl?(Nt=!tZ@j?QUFJv7%etJ@!P5<12DkAmYR}M1SX8U99!%7w5QrjmhJec zq=ba==DG9d84l#|88z=elotjF4ku8B>jFZWMtRVto>l}Ci)0E*e0+RvY%(2c5kEC- zpsTxwv{`&{u`acKJvZ>HoNL|s*!t7AlzkUOM7Y-|5o@gTqZ=w+h+6}d97qs%K-NEMPY{;|HNUv?`h4@V(b2Ubo796a zT4f0Z5k+Iu3+4d!qj3hHzAO-0JQV9Z_mQ1laJ|6YuYwj0%jYG~Vv-T3>TN2hmA3sUg9R{r*P z7q6>^zPMtdbo}b3jBBESwfO;bo#eIqT!6)s?UgNC9k*G(h9giHQy*uvl7HAN>__HK1@EQvauL z<*TUU(~EE1yN;+y`RXLl@O{a4ph&sU0!NkXsagQlcgMa$Pww2ZGOT055vuV@P_c+^ z2Bx;DNhvxi>X6R@J>xYeA*b)ugGrSxY(&vfFjFT0x2C6eVpl-iMr`d8bz_7;Ad)5$ z<qj1Qm4=w;V`k zWsx67G!^yq`g4gj5m|uP0p**mHThSCBWk7oF%C6F7yF&H)wS3Kyt+MKd#(jZ79{6( z%Qe=2*X)mAjbj6}+5jL7u}DAa#m&)CQ{o0Kv95H=x;O)OMIh_VU%9PvRX-7cu^UcH zc8rtTqys{%d==b_hjVAjovc?X0L2>zDsTn!v({IE`f{t%RM^3ns$r26N>zqXw?TZh zoyoWY#etB{{6L9`j^2w|zhm7L8y!6ZxQTa7uSl%>0)&IqPsVS4SY7F?jm;E*Z~b^3 zzY!fBO`~tGnC#@)BaI>8*U@BZ-WNFSzptRd)PcIWLv;0p?(eTP^)+DVSIb|L>Ae(3)ogzmHhTKz9_ zTmSdm-GsQXu8K&{IB)Q)yU#iPK^&jZ0~h4vZscesBL;kjW>dU?gFq_z3or-7nL+Sz zzp!E79jJ|0yHP=rNg=rkhGK;@v?NbpUzA4xJr`j62pUKiGON;6T|tn>E8PhMf>?Eq zhTqM{AoukREa(6a0t|z}9|5|45|8E!Rn^e&7y3XS5?)`8Q^0e8oal9(_U2r=hE0Q5 zIAHw!X(-kZS`0jkJ}Fu%zB&txF}9P_VD)nGILuZ@$%FA%;}y^-S+{SbFh&q z-1~jf^bK$4!bsM`(L6g`EoS)rB$v~;X>NPsK~M6komtJJZVrh;0CyZL>T|v~<0PsB z?c6(Kd{?_4M-Z|Towc>^r*|aFu=LT$V97C$Nav~bYV zU;FlrL+$o$U3gr~`}n*|2LmyRH{--~NX|2<6_ah6R}z(fsJzhgFfAR{dg`U83zitl zYL0w=BNJR5@U7DRH*}V;_hkV>rEa8B?GnG5AJwM03HToaL2A(4*CCA8E`Z?oNwFD}gMmi8J6dUT z9dCC!Q`R}G)Ee8*jg1XNCLrg_hJi#7oI>Yr1h{`vMRvB*P6Dd(EYDjWyxiYEK>rdL zVgi$IRbD|gKiqW%()QA-)!-bU2)MK&*|Im(r}ByV1+~twh+XyDe+!=+z`nKC_`m6K zQ4>!Lsc_9zEfkPO!-(1ig=^93`P9j1ZjV1|KF_|j-%29M4=jm#=H||_zobDR*Z-2= zZ_(%+u!xuXu3KU&0Jz4Mjg-6Sz+hFT!m&L)J*7a{s#>TOng04An1+hE{1$gP$V4<} z04mF#LMByFw?&NSwg>bKD~9Yv0T?Rh0&9g)u>c^{r%!Fmtzh;!qg-(2oYx+?_I2(? znSjBa^YM$|wF7XhuV)kqM1iai7F3|f$L@MXA;kwutjMb&_{R{arl}X-q!_Kvl}Y6I6kW01H^H(sA136dDexKpHdIFp>w?lzW`&zEX=N=)M6U0eBaa^o@} z*J&V>#?JU#U!PA+26A4pMxun8cGoPqzS%ObsEBI-Ndmne^BhRVt|TRK&|v@D%h{`| z9>fwV8V3$v5EMKpT}Jg>7+mUly%Z#WDk>_^%DeS}j_*8wiz914Fjf@2b47vJD|5l|tGZR1UibyG zi6TNm8iM*42M~PfeS@cJ6Ro*q$%2zVey9W+?Ah~-8dU58l92ZGBiw`8AJ%`QK6L?t z9@8+(+17~xMnS-e^8zNde>R2}ymuy|tL^V-Fhw+Mk*glr4H$zkv^av-Tj?1B|Fq0+ zH>6(f{|qt}XrgYrp^KxVuBz$_wC+pl0)X~F_7NQT+AiCewuA4KY44u7c?yjzt*sw8 zSs}drijyhN)m4fc9*7$p%;i&$F|^#;YMt3Lf6zUVwFVal&(KW1#-}Rnxg6!(R@Y5v zHLKR|7sxN13Sr`AIIs!Q(4`exuw3Be7}OD6qCEx^UZ5T<#)9pRwyOJ`@f_0VRa5lRV&t%yv3?BBAN?prQa;I6<>9|8je z7HMROrWgJs%DT-yP-R+l)a4zK7e?Fkqv+bQFL|3w^dz zr@A&)7V>g(luI6#(3n)9dbZy?L-VWwOVtGle$6?jx%}el_ocfb7O=jWN2;>n<|rS< zWO3Pi*}ex7oeVUc(Idkc1UzK%FAlH{-j%9VSXc-a);oTFHA&~svn_7)jg2`ma(0WW z$DS9K&}?rP0>;vosg-yI{*RaC^$*Hlg@(yj-ic2&=UrE3vE6R*2~A|-adAlXi_O7b zg=A~FxxJ?$hs3F0$U(XtZztI${}zuc7d$hT_T(ueYUBz~nqu-blg}6SUSAlkGW6)p z4u}1m2sy#YSy;DCERGwyuK40#1E8tmT^$`$b_W5>rfEP`^TA|@WPJa(|Lx?zU2~Pp zN}ki0REf`$%?;-)gkLiq5YjNesy)$H z;$}VUf$vGp%yqIU;2-;26SgtzRhV|i6e{X9my6fo0-y~n$UVG4M@fsG_$7-pzGi20 z1|$&8t5LNv@#v?^ozJk={UM;NE8HBECT;-gY7a@P4}b+b;KYC}H)|!B9XrWz55Wll z>+^q&PseoSXvSKZmlQKI2(l<(wA*{|z^t&H++spS`c^xJmOa1u- zXc(j>_Buv;`1f!qaY~-*b7#aB8PGYqI1rKP$oBIaTtyLINPi28Y@ ztAXQNq(s6z0n0tU9YP*k2(V#1X!LBPPzWAST!X==si?&D)!u&d?q%a`AwVnz{h0(w z( z$(Hgq0lOWT6zi2E48kENP35=Q@xs4tY@(NJIOY64!u;|cF5l2F^T*KEWS6Z0;*M(? z0znOTWgdXw17E%JN|y3Bw&_f{tD_THgE9Z~@uTex!fvYv7xf(-kz{g_aL#w=1)HlG zqz$1hi%_6jw&BkRbJ+JRHRDhz%FRj+6ZB2oWO|yh5fFC{JE%*-X*ib#u%Ljd6suU( z1O}$xJQr9fqB7rJ&T!&>bO@dbM@sEG)e6)}@OJimJw&FN8$F56G*~)@n&eW|247CN z2w{O~>Xb>uT#C@T;m8yopYTh87zCAZpj2T_wMqD4lC=MFW=FDAhI)9oy_4PL5DjCs zwa=2dqypK#%x4+xYG$0*u$6AJPR#{CTcr`KzsWX$m{bs6vyW83$_|`D`u8TRIj=63 zR_2Mdtg#)M2Sg-to92sg3c3TrwdyVF3LpvDOzG=@TKU@(H@xzb3tWA^agK2i<^f=X zy^|BVtQc^JzhoH;2T1nEko$gW@nVOms6cQ4e z&aMQ!=mXh(H{SpTY43_B$-pIMczoPhsGt|%PTzV07Nm^O_0BXBNUb^TqFyWvfLYah>nvPSK2l5Q0M|Ly z%a$VLmMj3R#5RkrMX=VZ0KgZGxne?NSiLmPQ;mPJnZiOqJwf}R4(~LG?MctfR8%#1 zyz*+zORt6$laL?`%!4|h+3alf{6|C~&nK6@4~)2Z#$b30YkW(1XFiUv7(CuI(T{8jalC50a# zb<2iX0X{#T(|#^Q=sg4ARr~)8C%o`b9ykC4`XgrEW2~2UpGxkXDRn+eq_TG!uca-E zwCe!4NR%rRM#`VsY4_3zuvjW0fi64AzIdLG?^8mM{N31b``$p8)44)&?P;TR=4pHx zd)Db{cZpNV+8w#>{_^;lz=O`fa%ny-DJiK7K+FcV5C$`N2lSS|=S~(1JTGx|+0hH7fDSoW1+yyuOHW90DVBpaFD&%n! z#Qg?u+n(gx7`nhb=6~=>{iPH4VtB;$4`QXG-(OLEF|))5=)mgv_r_XYd0F{p7$*vz zAL7W*+>i+bU&tk+H#_!u{>NZf(4i+rkmG0WF_RbrITdeWz<*&7w;%i8vQy&_2BcZ3 zZ$Lml$_tc5!2SGU`mPTGFMD7b*xdrC8yYS|#6@MUtuX>32z&zH(Y7}!DEKGew@i-~ zb4eN6dwMr-dt%ODoUM4@K)jhdqXFBlI6KoBu>0`R6|i=mQUcr$Gc$*pYO>b5y^7Dl z_6%+9DZw)z(!ll%l&|JDH6Dm)xL`84xzb4xBwUx+cR>vPz1=3x66TAscUgG;oOM0u zy+M(#R)m3Bax%ytw+n!_8uj{XS6-yR&dc^|A5PhSvM=O+w-0BBqJJ(J4ta7n(|o7X z<~y1M?O`EAX&&9`J(i^7|7^~?zQ-6*sXIPy?&;y7Y2+%R3fdq{Pe*|&Nc~D| z!WfV7yZWr@I9nk7YnZsokL~l517FWe^BW&LSpoX`cQ+rcKr-~RYVv=M`X-Q`Q>`qQ zsx|-ell8z6O&dZq>pBG`S}I9e-#mVdT`)(qfA#?D-`#?WaX%j9z+l3O?K(v{Q}4lu z0kHJq#S21e7HUqpXJG}{RJt7*|9wG4#o&3f3pTuX%vhkio z$jiSQ2rp%%w>^`(e`P`N?`E}~vBekZ4HW9@=%9u!s#eWc>9tTTYVmx0st6!PklI8$ z_l6Js9O|@x&VVF9#fC5$@Vydv9Dp#e5->654wkCS0G83|Z_u z;@i*M+tH0_ZPdH1v`ZEgqV*>0HVRwdD<*onTOAzfp`ix~>Iw@r%15`3x_?eW#IElW zGJQ1J9P0XaEFp&9zTF3tn;xKJUWAK^C9ckh;*TUt`wtU}F|K!)mX`3ZrL4wleAL)# zn9rDkW$ahHK>oE?Ffc1GPc_9lV(3~r9&c?{E+km+y`iUUtZpjW6H_@^`T>k@~)VqFJHh^0c0=z@Y|DXDQ|FzjT5Ix zhCbXC<|{X4^*zzoGIGA^`3GMFBFQJ5LpcSt7R3u+=zSf08i^uP- ziR(YAvz<5#+$;OgLT0dVV2%g0lr{P(?Bd@Gud7&_Jd%%YIRTw`T+{kLKRc=-Qt0Xt`$*_lN4)IZzrElll2Y6O%`lMs<>K|03d2Sf%JmL8+m< zii$jjMPJ{|zV2?Wo|l^wSCjK-ls&RB?HsDNY2Utq`GxuUl)jg~@_$1M;%MzR*(7)BKEo$H!VU~9lI=r;jRc~o37TvUX{67E;tv6)= literal 0 HcmV?d00001 diff --git a/index.mdx b/index.mdx index 27da103d..7a275cb7 100644 --- a/index.mdx +++ b/index.mdx @@ -32,11 +32,18 @@ Get your documentation site up and running in minutes. - Learn how to use Kosli with simple examples. + A 10-minute Docker-based demo, no GitHub account required. + + + A hands-on five-lab series from setup to runtime compliance. All Kosli commands in one place. - - Join the Kosli Slack Community. - diff --git a/labs/index.mdx b/labs/index.mdx new file mode 100644 index 00000000..685d1dac --- /dev/null +++ b/labs/index.mdx @@ -0,0 +1,41 @@ +--- +title: Kosli Learning Labs +description: "A hands-on five-lab series taking you from your first Kosli account to full supply chain compliance enforcement." +icon: flask +--- + +These labs provide a progressive, practical introduction to Kosli's core features. You'll learn how to track your software delivery process from build through deployment, establish compliance requirements, and maintain complete visibility into your software supply chain. + +Each lab builds on the previous one — complete them in order. + + + Want something shorter first? [Try Kosli locally](/tutorials/get_familiar_with_Kosli) is a 10-minute Docker-based demo that requires no GitHub account or CI pipeline. + + + + **Prerequisites**: A GitHub account, basic familiarity with Git and CI/CD concepts. No prior Kosli experience required. + + + + + Create a Kosli account, fork the sample repository, and verify the CI/CD pipeline runs successfully. + + + Install the Kosli CLI, create Flows and Trails, and integrate them into your GitHub Actions workflow. + + + Attest artifacts, attach JUnit test results, and generate and attest a Software Bill of Materials. + + + Define compliance requirements with Flow Templates and gate deployments with `kosli assert artifact`. + + + Create environments, snapshot what's running in production, and enforce compliance policies. + + + + + The labs use a sample Java application with a pre-built GitHub Actions pipeline. You'll progressively add Kosli integration to that pipeline across Labs 2–5. + + +The standalone lab repository is also available at [github.com/kosli-dev/labs](https://github.com/kosli-dev/labs). diff --git a/labs/lab-01-get-ready.mdx b/labs/lab-01-get-ready.mdx new file mode 100644 index 00000000..887cf0e1 --- /dev/null +++ b/labs/lab-01-get-ready.mdx @@ -0,0 +1,160 @@ +--- +title: "Lab 1: Get Ready" +description: "Create a Kosli account, fork the sample repository, verify the CI/CD pipeline, and install the Kosli CLI." +icon: rocket +--- + +## Learning goals + +- Create a Kosli account and organization +- Create a copy of the sample application repository +- Verify the CI/CD pipeline runs successfully +- Install the Kosli CLI and create an API key +- Understand the basic structure of the application and its deployment process + +## Introduction + +Before diving into Kosli's features, you need to set up your account and verify that your sample application builds and deploys correctly. + +This lab uses a simple Java application with a complete CI/CD pipeline already configured in GitHub Actions. The pipeline builds the application, creates a Docker image, runs tests, and deploys it. In subsequent labs, you'll integrate Kosli to track all these activities. + +## Exercise + + + + - Navigate to [app.kosli.com/sign-up](https://app.kosli.com/sign-up) + - Choose to sign up with GitHub + - Complete the registration process and verify your email if required + - Log in to [app.kosli.com](https://app.kosli.com) + + + + - Navigate to [github.com/kosli-dev/labs](https://github.com/kosli-dev/labs) + - Click the **Use this template** button in the top-right corner + - Select **Create a new repository** + - Set your personal GitHub account as the **Owner** and name the repository `labs` + - Click **Create repository from template** + + + From now on, "your repository" refers to your copy of the labs repository at `https://github.com/YOUR-GITHUB-USERNAME/labs`. + + + + + 1. Go to your repository on GitHub + 2. Click the **Actions** tab + 3. If prompted, click **I understand my workflows, go ahead and enable them** + 4. If the workflow doesn't start automatically, trigger it manually: + - Click **Main workflow** in the left sidebar + - Click **Run workflow**, select `main`, and click **Run workflow** + + + + In the **Actions** tab, click the most recent workflow run and observe the jobs: + + | Job | What it does | + |-----|-------------| + | Build | Compiles the Java application using Gradle | + | Linting | Checks code quality (warnings are expected) | + | Docker-image | Builds and pushes a Docker container image | + | Security-scan | Scans the Docker image for vulnerabilities | + | Component-test | Runs integration tests | + | Performance-test | Runs basic performance checks | + | Deploy | Starts and stops the application container | + + Wait for all jobs to show green checkmarks. + + + GitHub Actions pipeline showing all jobs completing successfully + + + + The pipeline may take 3–6 minutes on the first run. GitHub Actions provides free minutes for public repositories. + + + + - **Docker-image job fails with permission error**: Make sure your repository has package write permissions enabled. + - **Linting shows warnings**: This is expected and won't fail the build (`DISABLE_ERRORS` is set to `true`). + + + + + Run the one-line install script: + + ```bash + curl -fL https://raw.githubusercontent.com/kosli-dev/cli/refs/heads/main/install-cli.sh | sh + + # Verify installation + kosli version + ``` + + + If this method fails, see [Install Kosli CLI](/getting_started/install) for alternative installation options (Homebrew, APT, Docker, etc.). + + + + + - Log in to [app.kosli.com/settings/profile](https://app.kosli.com/settings/profile) + - Navigate to the **API Keys** section + - Click **Add API Key**, give it a name (e.g., "CLI Access"), and copy the key immediately — it won't be shown again + + Configure it for local use: + + ```bash + export KOSLI_API_TOKEN="your-api-key-here" + export KOSLI_ORG="your-gh-username" + ``` + + Verify the CLI can reach Kosli: + + ```bash + kosli list flows + ``` + + You should see "No flows were found" — which confirms authentication is working. + + + Never commit API keys to your repository. You'll add this key to GitHub Secrets in Lab 2. + + + See [Service Accounts](/getting_started/service-accounts) for more on API key management. + + + + In your repository, navigate to `.github/workflows/full-pipeline.yaml` and review the structure: + + - Notice how it triggers on every push + - Observe the environment variables at the top + - See how artifacts are shared between jobs using `upload-artifact` and `download-artifact` + - Note the dependencies between jobs (e.g., Docker-image requires Build to complete first) + + In later labs, you'll add Kosli integration to this file. + + + + 1. Go to your GitHub profile page + 2. Click the **Packages** tab + 3. You should see the `labs` package + 4. Click it to view the Docker image details — note the image tag (`latest`) and SHA digest + + + The Docker image is automatically published to GitHub Container Registry (`ghcr.io`) by the pipeline. + + + + +## Verification checklist + +Before moving to the next lab, confirm: + +- [ ] Kosli account created at app.kosli.com +- [ ] Copy of the labs repository under your GitHub account +- [ ] GitHub Actions completed all jobs successfully +- [ ] Docker image published to your GitHub Container Registry +- [ ] Kosli CLI installed (`kosli version` works) +- [ ] API key created and `kosli list flows` returns successfully +- [ ] You understand the basic pipeline structure + +## Next steps + +Continue to [Lab 2: Flows and Trails](/labs/lab-02-flows-and-trails) to create your first Flow and Trail and integrate them into your pipeline. diff --git a/labs/lab-02-flows-and-trails.mdx b/labs/lab-02-flows-and-trails.mdx new file mode 100644 index 00000000..f537718d --- /dev/null +++ b/labs/lab-02-flows-and-trails.mdx @@ -0,0 +1,195 @@ +--- +title: "Lab 2: Flows and Trails" +description: "Create Flows and Trails using the Kosli CLI, and integrate them into your GitHub Actions workflow." +icon: code-branch +--- + + + **Prerequisites**: Complete [Lab 1: Get Ready](/labs/lab-01-get-ready) before starting this lab. You should have the Kosli CLI installed and an API key configured. + + +## Learning goals + +- Understand the concepts of Flows and Trails +- Create your first Flow using the CLI +- Begin a Trail manually to track a process execution +- Integrate Flow and Trail creation into your CI/CD workflow + +## Introduction + +Kosli uses **Flows** and **Trails** to organize and track your software delivery processes: + +- A **Flow** represents a repeatable business or software process (like your CI/CD pipeline). It defines what you want to track and what compliance requirements must be met. +- A **Trail** represents a single execution instance of that Flow. For example, each git commit creates a new Trail that tracks all activities for that specific change. + +Think of a Flow as the template for your process, and Trails as individual instances that record what actually happened. + +## Exercise + + + + ```bash + kosli create flow labs-pipeline \ + --description "CI/CD pipeline for labs application" \ + --use-empty-template + + # Verify it was created + kosli get flow labs-pipeline + ``` + + You should see output like: + + ``` + Name: labs-pipeline + Description: CI/CD pipeline for labs application + Visibility: private + Template: + version: 1 + Last Deployment At: N/A + Tags: None + ``` + + Visit [app.kosli.com](https://app.kosli.com) and navigate to **Flows** to see your newly created Flow. + + + The `--use-empty-template` flag creates a Flow without compliance requirements. In Lab 4, you'll add a template with specific attestation requirements. + + + See [`kosli create flow`](/client_reference/kosli_create_flow) for full flag reference. + + + + A Trail represents one execution of your process. Create one using your latest git commit SHA: + + ```bash + # Run this inside your copy of the labs repository + kosli begin trail $(git rev-parse HEAD) \ + --flow labs-pipeline \ + --description "Manual trail for testing" + + # Verify it was created + kosli get trail $(git rev-parse HEAD) \ + --flow labs-pipeline + ``` + + + Make sure you run this inside your copy of the labs repository, not the original. + + + The Trail name is the git commit SHA, which uniquely identifies this execution and lets Kosli connect all activities (builds, tests, deployments) for that specific commit. + + + You can use any naming scheme for Trails (commit SHA, PR number, Jira ticket, etc.). Git commits are common because they're unique and tied to your source code. + + + + Kosli web interface showing the first trail under labs-pipeline + + + See [`kosli begin trail`](/client_reference/kosli_begin_trail) for full flag reference. + + + + Everything in a Kosli trail is immutable — updates are append-only. This is critical for compliance: if data could be changed, it could be tampered with. + + Run `begin trail` again on the same commit with a slightly different description: + + ```bash + kosli begin trail $(git rev-parse HEAD) \ + --flow labs-pipeline \ + --description "Manual trail for testing." + ``` + + Now get the trail again: + + ```bash + kosli get trail $(git rev-parse HEAD) \ + --flow labs-pipeline + ``` + + Notice the **Events** section shows both the original `trail started` event and a new `trail updated` event — the history is preserved, not overwritten. + + + + 1. In your repository, go to **Settings → Secrets and variables → Actions** + 2. Click **New repository secret**, name it `KOSLI_API_TOKEN`, and paste your API key + 3. Click **Variables → New repository variable**, name it `KOSLI_ORG`, and enter your GitHub username + + + Never commit API keys to your repository. Always use GitHub Secrets. + + + + + Open `.github/workflows/full-pipeline.yaml` and make the following changes: + + **1. Add global environment variables** at the top of the file: + + ```yaml + env: + KOSLI_API_TOKEN: ${{ secrets.KOSLI_API_TOKEN }} + KOSLI_ORG: ${{ vars.KOSLI_ORG }} + # ... other existing env vars ... + ``` + + **2. Add Kosli steps** just after the `actions/checkout` step: + + ```yaml + - name: Clone down repository + uses: actions/checkout@v4 + + - name: Setup Kosli CLI + uses: kosli-dev/setup-cli-action@v2 + with: + version: 2.11.32 + + - name: Create/Update Flow + run: | + kosli create flow ${APP_NAME}-pipeline \ + --description "CI/CD pipeline for ${APP_NAME} application" \ + --use-empty-template + + - name: Begin Trail + run: | + kosli begin trail ${GIT_COMMIT} \ + --flow ${APP_NAME}-pipeline \ + --description "Build ${BUILD_NUMBER}: ${GIT_BRANCH}" + ``` + + + The `kosli-dev/setup-cli-action` installs the CLI in CI. The global `env` variables authenticate all subsequent CLI calls automatically. + + + + + ```bash + git add .github/workflows/full-pipeline.yaml + git commit -m "Add Kosli Flow and Trail steps" + git push origin main + ``` + + In GitHub Actions, watch the workflow run and confirm the **Setup Kosli CLI**, **Create/Update Flow**, and **Begin Trail** steps complete successfully. + + Then visit [app.kosli.com](https://app.kosli.com) → your Flow → you should see a new Trail corresponding to your commit. + + + +## Verification checklist + +- [ ] `KOSLI_API_TOKEN` and `KOSLI_ORG` added to GitHub Secrets/Variables +- [ ] Flow created manually via CLI +- [ ] Trail created manually using a git commit SHA +- [ ] Workflow updated with Kosli steps and runs successfully +- [ ] Flow and Trails visible in the Kosli web interface + + + If anything didn't go to plan, refer to the reference solution at `pipelines/02-complete.yaml` in the [labs repository](https://github.com/kosli-dev/labs). + + +## Next steps + +Continue to [Lab 3: Build Controls](/labs/lab-03-build-controls) to attest artifacts and attach evidence to your Trails. + +**Further reading:** +- [Flows](/getting_started/flows) +- [Trails](/getting_started/trails) diff --git a/labs/lab-03-build-controls.mdx b/labs/lab-03-build-controls.mdx new file mode 100644 index 00000000..4fdf84ac --- /dev/null +++ b/labs/lab-03-build-controls.mdx @@ -0,0 +1,189 @@ +--- +title: "Lab 3: Build Controls" +description: "Attest artifacts, attach JUnit test results, and generate and attest a Software Bill of Materials." +icon: shield-check +--- + + + **Prerequisites**: Complete [Lab 2: Flows and Trails](/labs/lab-02-flows-and-trails) before starting this lab. + + +## Learning goals + +- Understand what attestations are and why they matter for compliance +- Attest a JAR file and Docker image as artifacts +- Attach JUnit test results as attestations +- Attach a Software Bill of Materials (SBOM) as an attestation +- Integrate all attestation commands into your CI/CD pipeline + +## Introduction + +**Attestations** are how you record facts about your software supply chain in Kosli. They are immutable pieces of evidence that prove certain activities occurred — like tests passing, security scans completing, or artifacts being built. + +Kosli supports several attestation types: +- **Built-in**: `artifact`, `generic`, `junit`, `snyk`, `sonar`, `pull_request`, `jira` +- **Custom**: Types you define yourself with [`kosli create attestation-type`](/client_reference/kosli_create_attestation-type) + +Each attestation is linked to a Trail and optionally to a specific artifact, creating an auditable chain of evidence. + +### Artifact fingerprints + +Kosli identifies artifacts by their **SHA256 fingerprint**. This uniquely identifies the artifact regardless of where it's stored or what it's named. The CLI can calculate fingerprints for: + +- `--artifact-type file` — JAR files, binaries +- `--artifact-type dir` — source code, build outputs +- `--artifact-type docker` — images from local Docker daemon +- `--artifact-type oci` — images from container registries + + + Using fingerprints ensures you're tracking the exact artifact, not just its name or tag. See [Artifacts](/getting_started/artifacts) for more. + + +## Exercise + + + + In `.github/workflows/full-pipeline.yaml`, find the `Build` job and add this step after the "Build application" step: + + ```yaml + - name: Attest application artifact + run: | + JAR_FILE=$(ls app/build/libs/app-*.jar) + kosli attest artifact ${JAR_FILE} \ + --artifact-type file \ + --flow ${APP_NAME}-pipeline \ + --trail ${GIT_COMMIT} \ + --name application \ + --build-url ${BUILD_URL} \ + --commit-url ${COMMIT_URL} + ``` + + The `--name application` gives this artifact a logical name in your Flow. This name is used to attach further attestations (like tests) to this specific artifact. + + See [`kosli attest artifact`](/client_reference/kosli_attest_artifact) for full flag reference. + + + + Still in the `Build` job, add this step after the test step: + + ```yaml + - name: Attest JUnit test results + run: | + kosli attest junit \ + --flow ${APP_NAME}-pipeline \ + --trail ${GIT_COMMIT} \ + --name application.unit-tests \ + --results-dir app/build/test-results/test/ + ``` + + + The dot notation (`application.unit-tests`) tells Kosli this attestation belongs to the `application` artifact. Attestations without a dot belong to the Trail itself. + + + Kosli automatically parses the JUnit XML to determine pass/fail status. See [`kosli attest junit`](/client_reference/kosli_attest_junit). + + + + In the `Docker-image` job, add these steps after the "push docker" step: + + ```yaml + - name: Setup Kosli CLI + uses: kosli-dev/setup-cli-action@v2 + with: + version: 2.11.32 + + - name: Attest Docker image + run: | + IMAGE_NAME="ghcr.io/${IMAGE}:latest" + kosli attest artifact ${IMAGE_NAME} \ + --artifact-type oci \ + --flow ${APP_NAME}-pipeline \ + --trail ${GIT_COMMIT} \ + --name docker-image \ + --build-url ${BUILD_URL} \ + --commit-url ${COMMIT_URL} \ + --registry-username ${{ github.actor }} \ + --registry-password ${{ secrets.GITHUB_TOKEN }} + ``` + + Using `--artifact-type oci` tells Kosli to fetch the image manifest directly from the registry, without needing Docker installed locally. This is more reliable in CI. + + + + Your workflow already generates an SBOM using Anchore. Add this step to the `Docker-image` job after the "Generate SBOM" step: + + ```yaml + - name: Attest SBOM + run: | + IMAGE_NAME="ghcr.io/${IMAGE}:latest" + kosli attest generic \ + --flow ${APP_NAME}-pipeline \ + --trail ${GIT_COMMIT} \ + --name docker-image.sbom \ + --artifact-type oci ${IMAGE_NAME} \ + --attachments sbom.spdx.json \ + --registry-username ${{ github.actor }} \ + --registry-password ${{ secrets.GITHUB_TOKEN }} + ``` + + The SBOM attestation is linked to the `docker-image` artifact via the `docker-image.sbom` name. Kosli stores the SBOM file in its Evidence Vault. + + + An SBOM (Software Bill of Materials) lists all components and dependencies in your software — crucial for tracking vulnerabilities and license compliance. + + + + + ```bash + git add .github/workflows/full-pipeline.yaml + git commit -m "Add Kosli attestation steps" + git push origin main + ``` + + Watch the workflow run and confirm all attestation steps complete successfully. Then in [app.kosli.com](https://app.kosli.com), navigate to your Flow → latest Trail and verify: + + - **Artifacts**: JAR file and Docker image with fingerprints + - **Attestations**: Unit tests attached to `application`, SBOM attached to `docker-image` + - **Timeline**: When each attestation was recorded + + Click individual attestations to view JUnit test counts and SBOM component details. + + + + + Your workflow already runs Trivy security scans. You can extend this lab by attesting the scan results as a generic attestation: + + ```bash + export DOCKER_IMAGE="/labs" + + kosli attest generic \ + --flow labs-pipeline \ + --trail $(git rev-parse HEAD) \ + --name docker-image.security-scan \ + --artifact-type oci ghcr.io/${DOCKER_IMAGE}:latest \ + --compliant=true \ + --description "Trivy scan completed" + ``` + + In production you'd parse Trivy results and set `--compliant` based on severity thresholds. + + +## Verification checklist + +- [ ] Workflow updated with attestation steps +- [ ] All attestation steps pass in the workflow +- [ ] Artifacts visible in the Kosli Trail with fingerprints +- [ ] JUnit test results attached to the `application` artifact +- [ ] SBOM attached to the `docker-image` artifact + + + If anything didn't go to plan, refer to the reference solution at `pipelines/03-complete.yaml` in the [labs repository](https://github.com/kosli-dev/labs). + + +## Next steps + +Continue to [Lab 4: Release Controls](/labs/lab-04-release-controls) to define compliance requirements and gate deployments. + +**Further reading:** +- [Attestations](/getting_started/attestations) +- [Artifacts](/getting_started/artifacts) diff --git a/labs/lab-04-release-controls.mdx b/labs/lab-04-release-controls.mdx new file mode 100644 index 00000000..f4c7e080 --- /dev/null +++ b/labs/lab-04-release-controls.mdx @@ -0,0 +1,144 @@ +--- +title: "Lab 4: Release Controls" +description: "Define compliance requirements with Flow Templates and gate deployments with kosli assert artifact." +icon: lock +--- + + + **Prerequisites**: Complete [Lab 3: Build Controls](/labs/lab-03-build-controls) before starting this lab. + + +## Learning goals + +- Understand Flow Templates and how they define compliance requirements +- Update an existing Flow to enforce specific attestations +- Understand the difference between compliant and non-compliant Trails +- Use `kosli assert artifact` to gate deployments based on compliance status + +## Introduction + +In the previous labs, you've been recording evidence (attestations) for your builds. However, recording evidence is only half the picture — you also need to ensure the *required* evidence is actually present before allowing a release. + +**Flow Templates** define the "shape" of a compliant release. They specify: + +- Which artifacts are expected in the Trail +- Which attestations are required for each artifact +- Which attestations are required at the Trail level + +When a Trail is evaluated against its Flow Template, Kosli determines if it is Compliant or Non-compliant. By adding `kosli assert artifact` to your pipeline, you can automatically block deployments that don't meet your compliance standards. + +See [Flow Templates](/template-reference/flow_template) for the full template specification. + +## Exercise + + + + Create a file named `flow-template.yaml` in the root of your repository: + + ```yaml + # yaml-language-server: $schema=https://kosli.mintlify.app/schemas/flow-template.json + version: 1 + trail: + artifacts: + - name: application + attestations: + - name: unit-tests + type: junit + - name: docker-image + attestations: + - name: sbom + type: generic + ``` + + This template matches the attestations you set up in Lab 3: + 1. An `application` artifact that must have `unit-tests` + 2. A `docker-image` artifact that must have an `sbom` + + + + In `.github/workflows/full-pipeline.yaml`, find the `Create/Update Flow` step (added in Lab 2) and replace `--use-empty-template` with `--template-file`: + + ```yaml + - name: Create/Update Flow + run: | + kosli create flow ${APP_NAME}-pipeline \ + --description "CI/CD pipeline for ${APP_NAME} application" \ + --template-file flow-template.yaml + ``` + + + + In the `Deploy` job, add the following steps **before** the "Deploy to production" step: + + ```yaml + - name: Setup Kosli CLI + uses: kosli-dev/setup-cli-action@v2 + with: + version: 2.11.32 + + - name: Assert compliance + run: | + IMAGE_NAME="ghcr.io/${IMAGE}:latest" + kosli assert artifact ${IMAGE_NAME} \ + --artifact-type oci \ + --flow ${APP_NAME}-pipeline + ``` + + This command asks Kosli: *"Is this artifact and its Trail compliant?"* + - Compliant (all required attestations present and none failing): exits `0` — pipeline continues to deploy + - Non-compliant (missing or failing attestations): exits `1` — pipeline fails, deployment is blocked + + See [`kosli assert artifact`](/client_reference/kosli_assert_artifact) for full flag reference. + + + + ```bash + git add flow-template.yaml .github/workflows/full-pipeline.yaml + git commit -m "Add Flow Template and Release Gate" + git push origin main + ``` + + Watch the workflow run. Since you're providing all required attestations from Lab 3, the `Assert compliance` step should pass (green). + + Then in [app.kosli.com](https://app.kosli.com), navigate to your Flow → latest Trail. The **Compliance** status should show Compliant with all template requirements checked off. + + + + + To see the gate in action, add a non-existent attestation requirement to `flow-template.yaml`: + + ```yaml + - name: docker-image + attestations: + - name: sbom + type: generic + - name: performance-test # We haven't implemented this yet! + type: generic + ``` + + Commit and push. The `Assert compliance` step should **fail**, preventing the deploy step from running. The Trail in Kosli will be marked Non-compliant. + + + Remember to revert this change to make your pipeline green again. + + + +## Verification checklist + +- [ ] `flow-template.yaml` created in repository root +- [ ] Workflow updated to apply the template +- [ ] `kosli assert artifact` added to the Deploy job +- [ ] A fully attested build passes the compliance gate +- [ ] Trail shows as Compliant in the Kosli web interface + + + If anything didn't go to plan, refer to the reference solution at `pipelines/04-complete.yaml` in the [labs repository](https://github.com/kosli-dev/labs). + + +## Next steps + +Continue to [Lab 5: Runtime Controls](/labs/lab-05-runtime-controls) to track what's running in production and enforce compliance policies. + +**Further reading:** +- [Flows](/getting_started/flows) +- [Flow Template reference](/template-reference/flow_template) diff --git a/labs/lab-05-runtime-controls.mdx b/labs/lab-05-runtime-controls.mdx new file mode 100644 index 00000000..509dc824 --- /dev/null +++ b/labs/lab-05-runtime-controls.mdx @@ -0,0 +1,240 @@ +--- +title: "Lab 5: Runtime Controls" +description: "Create environments, snapshot what's running in production, and enforce compliance policies." +icon: server +--- + + + **Prerequisites**: Complete [Lab 4: Release Controls](/labs/lab-04-release-controls) before starting this lab. + + +## Learning goals + +- Understand Kosli Environments and how they track runtime state +- Create a Kosli Environment representing your deployment target +- Snapshot a Docker environment to report what's running +- Create and configure compliance Policies +- Attach Policies to Environments for enforcement +- Integrate environment snapshotting into your CI/CD pipeline + +## Introduction + +**Kosli Environments** allow you to track what's actually running in your runtime environments (dev, staging, production). By taking regular **snapshots**, Kosli creates an immutable record of: + +- What artifacts are running, identified by their SHA256 digest +- When they started and stopped +- Whether they comply with your policies +- The complete change history over time + +**Policies** define compliance requirements for environments — rules like "all artifacts must have provenance", "all artifacts must have passed unit tests", or "all artifacts must have an SBOM". + +Together, Environments and Policies give you runtime visibility and enforcement for your software supply chain. + +### Environment types + +Kosli supports several environment types: + +| Type | Tracks | +|------|--------| +| `docker` | Docker containers on a host | +| `k8s` | Kubernetes pods in namespaces | +| `ecs` | AWS ECS tasks | +| `lambda` | AWS Lambda functions | +| `s3` | Files in S3 buckets | +| `server` | Files on a server filesystem | + +See [Environments](/getting_started/environments) for more. + +## Exercise + + + + Your application deploys as a Docker container, so create a `docker` type environment: + + ```bash + kosli create environment labs-prod \ + --type docker \ + --description "Production environment for labs application" + + # Verify it was created + kosli get environment labs-prod + ``` + + Visit [app.kosli.com](https://app.kosli.com) → **Environments** and you should see `labs-prod` listed (with no snapshots yet). + + See [`kosli create environment`](/client_reference/kosli_create_environment) for full flag reference. + + + + To see a real-world example, navigate to the [Cyber-Dojo AWS Beta environment](https://app.kosli.com/cyber-dojo/environments/aws-beta/snapshots/). + + Here you can see a history of snapshots taken from a production AWS environment. Each snapshot shows: + + - **Running artifacts**: Container images currently running + - **Compliance status**: Whether they meet policy requirements + - **Events**: What started or stopped since the last snapshot + - **Duration**: How long the application has been running + + + Each snapshot is immutable. If nothing changed since the last snapshot, Kosli won't create a new one — only real changes produce new snapshots. + + + + + In `.github/workflows/full-pipeline.yaml`, add this step to the `Deploy` job **after** the "Deploy to production" step: + + ```yaml + - name: Snapshot environment + run: kosli snapshot docker labs-prod + ``` + + This captures what's running immediately after deployment. + + + + Create `.kosli-policy.yml` in the root of your repository: + + ```yaml + _schema: https://kosli.com/schemas/policy/environment/v1 + + artifacts: + provenance: + required: true # All artifacts must be part of a Flow + + attestations: + - name: unit-tests + type: junit + - name: sbom + type: "*" # Any attestation type + ``` + + This policy requires: + 1. All running artifacts must have been attested to Kosli (provenance) + 2. All artifacts must have JUnit test results + 3. All artifacts must have an SBOM + + Then create the policy in Kosli: + + ```bash + kosli create policy labs-prod-requirements .kosli-policy.yml + + # View it + kosli get policy labs-prod-requirements + ``` + + See [`kosli create policy`](/client_reference/kosli_create_policy) and [Policies](/getting_started/policies) for more details. + + + + ```bash + kosli attach-policy labs-prod-requirements --environment labs-prod + + # Verify attachment + kosli get environment labs-prod + ``` + + + Attaching a policy automatically triggers a new snapshot evaluation. Kosli immediately checks if currently running artifacts meet the requirements. + + + See [`kosli attach-policy`](/client_reference/kosli_attach-policy) for full flag reference. + + + + In the `Deploy` job, add these steps **before** the "Assert compliance" step: + + ```yaml + - name: Update policy + run: kosli create policy labs-prod-requirements .kosli-policy.yml + - name: Attach policy to environment + run: kosli attach-policy labs-prod-requirements --environment labs-prod + ``` + + + + ```bash + git add .kosli-policy.yml .github/workflows/full-pipeline.yaml + git commit -m "Add Kosli environment and policy management" + git push origin main + ``` + + Watch the workflow execute. After it completes, in [app.kosli.com](https://app.kosli.com): + - Navigate to **Environments → labs-prod** → latest snapshot + - Check the compliance status — it should be Compliant, since you've been attesting unit tests and SBOM since Lab 3 + - Click on the running artifact to see which attestations are present + + + - Verify the attestation names in your workflow match the names in `.kosli-policy.yml` exactly + - Check that all attestation steps completed successfully in the previous workflow run + - Confirm the artifact fingerprint matches what was attested + + + + + + You can also use policies as deployment gates, preventing non-compliant artifacts from deploying: + + ```bash + # Assert against specific policies before deployment + kosli assert artifact ghcr.io/${IMAGE}:latest \ + --policy labs-prod-requirements + ``` + + If the artifact is non-compliant, this command exits with a non-zero status, failing the deployment step. + + See [`kosli assert artifact`](/client_reference/kosli_assert_artifact) for more details. + + + + Policies support conditional logic for sophisticated compliance rules: + + ```yaml + artifacts: + attestations: + # Only require security scans for production flow + - if: ${{ flow.name == "production" }} + name: security-scan + type: snyk + + # Exceptions for specific artifacts + - name: unit-tests + type: junit + exceptions: + - if: ${{ artifact.name == "legacy-component" }} + ``` + + See [Policy expressions](/getting_started/policies) for more. + + +## Verification checklist + +- [ ] `labs-prod` environment of type `docker` created +- [ ] Explored the Cyber-Dojo environment in Kosli +- [ ] `.kosli-policy.yml` created with compliance requirements +- [ ] Policy created in Kosli and attached to the environment +- [ ] Workflow updated with policy update and snapshot steps +- [ ] Workflow runs successfully +- [ ] Environment snapshots visible in Kosli +- [ ] Running artifact shows as Compliant + +## Congratulations! + +You've completed all five Kosli Learning Labs. You now know how to: + +1. Set up Kosli and integrate it with a CI/CD pipeline +2. Create Flows and Trails to track your software delivery process +3. Attest artifacts and attach evidence (tests, SBOMs, scans) +4. Define compliance requirements and gate releases +5. Create environments, track what's running, and enforce policies + +You have full visibility and control over your software supply chain, from build to deployment. + +## Explore further + +- [Custom attestation types](/getting_started/attestations) for your specific tools +- [Kubernetes environment reporting](/tutorials/report_k8s_envs) if you use K8s +- [Approvals](/getting_started/approvals) for production deployment workflows + +**Further reading:** +- [Environments](/getting_started/environments) +- [Policies](/getting_started/policies) diff --git a/tutorials/get_familiar_with_Kosli.md b/tutorials/get_familiar_with_Kosli.md deleted file mode 100644 index 6ced0bf7..00000000 --- a/tutorials/get_familiar_with_Kosli.md +++ /dev/null @@ -1,275 +0,0 @@ ---- -title: Get familiar with Kosli -description: "The following guide is the easiest and quickest way to try Kosli out and understand its features. It is made to run from your local machine, but the same concepts and steps apply to using Kosli in a production setup." ---- - -In this tutorial, you'll learn how Kosli allows you to track a source code change from runtime environments. -You'll set up a `docker` environment, use Kosli to record build and deployment events, and track what -artifacts are running in your runtime environment. - -This tutorial uses the `docker` Kosli environment type, but the same steps can be applied to -other supported environment types. - - -As you go through the guide you can also check your progress from -[your browser](https://app.kosli.com). - -In the upper left corner there is a house icon. Next to it you can select -which organization you want to view. Your personal organization -has the same name as your GitHub login name, and is the organization you will -be using in this guide. - - - -[Playground](https://github.com/kosli-dev/playground?tab=readme-ov-file#kosli-playground) is an alternative version of this tutorial in which you -embed the Kosli commands in a GitHub CI Workflow (in a clone of the playground repo) rather than running them -directly from your terminal. - - - -## Prerequisites - -To follow the tutorial, you will need to: - -- Install `Docker`. -- [Create a Kosli account](https://app.kosli.com/sign-up) if you have not got one already. -- [Install Kosli CLI](/getting_started/install). -- [Get a Kosli API token](/getting_started/service-accounts). - -## Steps - -### Step 1: Setup - -Set the `KOSLI_ORG` and `KOSLI_API_TOKEN` environment variables: - -```shell -export KOSLI_ORG= -export KOSLI_API_TOKEN= -``` - -You can check your Kosli set up by running: - -```shell -kosli list flows -``` - -which should return a list of flows or the message "No flows were found". - -Clone our quickstart-docker repository: - -```shell -git clone https://github.com/kosli-dev/quickstart-docker-example.git -cd quickstart-docker-example -``` - -Export the head commit in a variable (will be used in several of the commands below): - -```shell -export GIT_COMMIT=$(git rev-parse HEAD) -``` - -### Step 2: Create a Kosli Flow - -The Flow's yml template-file exists in the git repository. -Confirm this yml file exists by catting it: - -```shell -cat kosli.yml -``` - -You will see the following output, specifying the existence of an Artifact named `nginx`: - -```plaintext -trail: - artifacts: - - name: nginx -``` - -Create a Kosli *Flow* called `quickstart-nginx` using this yml template-file: - -```shell -kosli create flow quickstart-nginx \ - --description "Flow for quickstart nginx image" \ - --template-file kosli.yml -``` - -Confirm the Kosli Flow called `quickstart-nginx` was created: - -```shell -kosli list flows -``` - -which will produce the following output: - -```plaintext -NAME DESCRIPTION VISIBILITY -quickstart-nginx Flow for quickstart nginx image private -``` - - -In the web interface you can select *Flows* on the left. -It will show you that you have a *quickstart-nginx* Flow. -If you select the Flow it will show that no Artifacts have -been reported yet. - - -### Step 3: Create a Kosli Trail - -Create a Kosli *Trail*, in the `quickstart-nginx` Flow, whose -name is the repository's current git-commit: - -```shell -kosli begin trail ${GIT_COMMIT} \ - --flow quickstart-nginx -``` - -### Step 4: Attest an Artifact to Kosli - -Typically, you would build an Artifact in your CI system, in response to a git-commit being pushed. -The quickstart-docker repository contains a `docker-compose.yml` file that uses a public [nginx](https://nginx.org/) -docker image which you will be using as your Artifact in this tutorial instead. - -Now report the artifact to Kosli using the `kosli attest artifact` command. - -Note: -- The `--name` flag has the value `nginx` which is the (only) artifact -name defined in the `kosli.yml` file from step 2. -- The `--build-url` and `--commit-url` flags have dummy values; -in a real call these would be the CI and git hosting provider URLs respectively. - -```shell -kosli attest artifact nginx:1.21 \ - --name nginx \ - --flow quickstart-nginx \ - --trail ${GIT_COMMIT} \ - --artifact-type oci \ - --build-url https://example.com \ - --commit-url https://github.com/kosli-dev/quickstart-docker-example/commit/9f14efa0c91807da9a8b1d1d6332c5b3aa24a310 \ - --commit $(git rev-parse HEAD) -``` - -You can verify that you have reported the Artifact in your *quickstart-nginx* flow: - -```shell -kosli list artifacts --flow quickstart-nginx -``` - -```plaintext -COMMIT ARTIFACT STATE CREATED_AT -9f14efa Name: nginx:1.21 COMPLIANT Tue, 01 Nov 2022 15:46:59 CET - Fingerprint: 2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514 -``` - -### Step 5: Create a Kosli environment - -Create a Kosli *Environment* called `quickstart` whose type is `docker`: - -```shell -kosli create environment quickstart \ - --type docker \ - --description "quickstart environment for tutorial" -``` - -You can verify that the Kosli *Environment* was created: - -```shell -kosli list environments -``` - -```plaintext -NAME TYPE LAST REPORT LAST MODIFIED -quickstart docker 2022-11-01T15:30:56+01:00 -``` - - -If you refresh the *Environments* web page in your Kosli account, -it will show you that you have a *quickstart* environment and that -no snapshot reports have been received yet. - - -### Step 6: Report what is running in your environment - -First, run the artifact: -```shell -docker compose up -d -``` - -Confirm the container is running: - -```shell -docker ps -``` -The output should include an entry similar to this: - -```plaintext -CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -6330e545b532 nginx:1.21 "/docker-entrypoint.…" 35 seconds ago Up 34 seconds 0.0.0.0:8080->80/tcp quickstart-nginx -``` - -Report all the docker containers running on your machine to Kosli: - -```shell -kosli snapshot docker quickstart -``` - -You can confirm this has created an environment snapshot: - -```shell -kosli list snapshots quickstart -``` -```plaintext -SNAPSHOT FROM TO DURATION -1 Tue, 01 Nov 2022 15:55:49 CET now 11 seconds -``` - -You can get a detailed view of all the docker containers included in the snapshot report: - -```shell -kosli get snapshot quickstart -``` - -```plaintext -COMMIT ARTIFACT FLOW RUNNING_SINCE REPLICAS -N/A Name: nginx:1.21 N/A 3 minutes ago 1 - Fingerprint: 8f05d73835934b8220e1abd2f157ea4e2260b9c26f6f63a8e3975e7affa46724 -``` - -The `kosli snapshot docker` command reports *all* the -docker containers running in your environment, equivalent to the output from -`docker ps`. This tutorial only shows the `nginx` container -in the examples. - - -If you refresh the *Environments* web page in your Kosli account, you will see -that there is now a timestamp for *Last Change At* column. -Select the *quickstart* link on left for a detailed view of what is currently running. - - -### Step 7: Search Kosli - -Now that you have reported your Artifact and what's running in your runtime environment, -you can use the `kosli search` command to find everything Kosli knows about an Artifact or a git-commit. - -For example, you can give Kosli search the git-commit whose CI run built and deployed the Artifact: - -```shell -kosli search ${GIT_COMMIT} -``` - -```plaintext -Search result resolved to commit 9f14efa0c91807da9a8b1d1d6332c5b3aa24a310 -Name: nginx:1.21 -Fingerprint: 2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514 -Has provenance: true -Flow: quickstart-nginx -Git commit: 9f14efa0c91807da9a8b1d1d6332c5b3aa24a310 -Commit URL: https://github.com/kosli-dev/quickstart-docker-example/commit/9f14efa0c91807da9a8b1d1d6332c5b3aa24a310 -Build URL: https://example.com -Compliance state: COMPLIANT -History: - Artifact created Tue, 01 Nov 2022 15:46:59 CET - Deployment #1 to quickstart environment Tue, 01 Nov 2022 15:48:47 CET - Started running in quickstart#1 environment Tue, 01 Nov 2022 15:55:49 CET -``` - -Visit the [Kosli Querying](/tutorials/querying_kosli) guide to learn more about the search command. diff --git a/tutorials/try_kosli_locally.mdx b/tutorials/try_kosli_locally.mdx new file mode 100644 index 00000000..111a700b --- /dev/null +++ b/tutorials/try_kosli_locally.mdx @@ -0,0 +1,230 @@ +--- +title: Try Kosli locally +description: "A quick local demo of Kosli's core features using Docker — no GitHub account or CI pipeline required. Runs entirely from your terminal in about 10 minutes." +--- + + + This tutorial runs entirely on your local machine using Docker — no GitHub account or CI pipeline required. If you'd prefer a full hands-on introduction using a real CI/CD pipeline, see the [Kosli Learning Labs](/labs) instead. + + +In this tutorial, you'll learn how Kosli allows you to track a source code change from runtime environments. +You'll set up a `docker` environment, use Kosli to record build and deployment events, and track what +artifacts are running in your runtime environment. + + + As you go through the steps you can also check your progress in [your browser](https://app.kosli.com). In the upper left corner, select the organization you want to view — your personal organization has the same name as your GitHub login. + + +## Prerequisites + +- Install Docker. +- [Create a Kosli account](https://app.kosli.com/sign-up) if you haven't already. +- [Install Kosli CLI](/getting_started/install). +- [Get a Kosli API token](/getting_started/service-accounts). + +## Steps + + + + Set the `KOSLI_ORG` and `KOSLI_API_TOKEN` environment variables: + + ```shell + export KOSLI_ORG= + export KOSLI_API_TOKEN= + ``` + + Check your Kosli setup: + + ```shell + kosli list flows + ``` + + This should return a list of flows or "No flows were found". + + Clone the quickstart repository and export the current commit SHA: + + ```shell + git clone https://github.com/kosli-dev/quickstart-docker-example.git + cd quickstart-docker-example + export GIT_COMMIT=$(git rev-parse HEAD) + ``` + + + + The repository includes a `kosli.yml` template file. Inspect it: + + ```shell + cat kosli.yml + ``` + + ```plaintext + trail: + artifacts: + - name: nginx + ``` + + Create a Flow called `quickstart-nginx` using this template: + + ```shell + kosli create flow quickstart-nginx \ + --description "Flow for quickstart nginx image" \ + --template-file kosli.yml + ``` + + Confirm it was created: + + ```shell + kosli list flows + ``` + + ```plaintext + NAME DESCRIPTION VISIBILITY + quickstart-nginx Flow for quickstart nginx image private + ``` + + + In the web interface, select **Flows** in the left sidebar. You should see `quickstart-nginx` listed. No artifacts have been reported yet. + + + + + Create a Trail in the `quickstart-nginx` Flow, named after the current git commit: + + ```shell + kosli begin trail ${GIT_COMMIT} \ + --flow quickstart-nginx + ``` + + + + The repository's `docker-compose.yml` uses a public [nginx](https://nginx.org/) image as the artifact for this tutorial. + + Attest it to Kosli: + + ```shell + kosli attest artifact nginx:1.21 \ + --name nginx \ + --flow quickstart-nginx \ + --trail ${GIT_COMMIT} \ + --artifact-type oci \ + --build-url https://example.com \ + --commit-url https://github.com/kosli-dev/quickstart-docker-example/commit/9f14efa0c91807da9a8b1d1d6332c5b3aa24a310 \ + --commit $(git rev-parse HEAD) + ``` + + Verify the artifact was recorded: + + ```shell + kosli list artifacts --flow quickstart-nginx + ``` + + ```plaintext + COMMIT ARTIFACT STATE CREATED_AT + 9f14efa Name: nginx:1.21 COMPLIANT Tue, 01 Nov 2022 15:46:59 CET + Fingerprint: 2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514 + ``` + + + + Create an environment called `quickstart` of type `docker`: + + ```shell + kosli create environment quickstart \ + --type docker \ + --description "quickstart environment for tutorial" + ``` + + Verify it was created: + + ```shell + kosli list environments + ``` + + ```plaintext + NAME TYPE LAST REPORT LAST MODIFIED + quickstart docker 2022-11-01T15:30:56+01:00 + ``` + + + In the web interface, select **Environments**. You should see `quickstart` listed with no snapshots yet. + + + + + Run the artifact: + + ```shell + docker compose up -d + ``` + + Confirm the container is running: + + ```shell + docker ps + ``` + + ```plaintext + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES + 6330e545b532 nginx:1.21 "/docker-entrypoint.…" 35 seconds ago Up 34 seconds 0.0.0.0:8080->80/tcp quickstart-nginx + ``` + + Snapshot the environment to report all running containers to Kosli: + + ```shell + kosli snapshot docker quickstart + ``` + + Confirm the snapshot was created: + + ```shell + kosli list snapshots quickstart + ``` + + ```plaintext + SNAPSHOT FROM TO DURATION + 1 Tue, 01 Nov 2022 15:55:49 CET now 11 seconds + ``` + + Get a detailed view of the snapshot: + + ```shell + kosli get snapshot quickstart + ``` + + ```plaintext + COMMIT ARTIFACT FLOW RUNNING_SINCE REPLICAS + N/A Name: nginx:1.21 N/A 3 minutes ago 1 + Fingerprint: 8f05d73835934b8220e1abd2f157ea4e2260b9c26f6f63a8e3975e7affa46724 + ``` + + + In the web interface, the **Environments** page will now show a timestamp in the **Last Change At** column. Select `quickstart` to see the full snapshot. + + + + + Use `kosli search` to find everything Kosli knows about an artifact or git commit: + + ```shell + kosli search ${GIT_COMMIT} + ``` + + ```plaintext + Search result resolved to commit 9f14efa0c91807da9a8b1d1d6332c5b3aa24a310 + Name: nginx:1.21 + Fingerprint: 2bcabc23b45489fb0885d69a06ba1d648aeda973fae7bb981bafbb884165e514 + Has provenance: true + Flow: quickstart-nginx + Git commit: 9f14efa0c91807da9a8b1d1d6332c5b3aa24a310 + Commit URL: https://github.com/kosli-dev/quickstart-docker-example/commit/9f14efa0c91807da9a8b1d1d6332c5b3aa24a310 + Build URL: https://example.com + Compliance state: COMPLIANT + History: + Artifact created Tue, 01 Nov 2022 15:46:59 CET + Deployment #1 to quickstart environment Tue, 01 Nov 2022 15:48:47 CET + Started running in quickstart#1 environment Tue, 01 Nov 2022 15:55:49 CET + ``` + + Visit the [Kosli Querying](/tutorials/querying_kosli) guide to learn more about the search command. + + diff --git a/understand_kosli/what_is_kosli.md b/understand_kosli/what_is_kosli.md index 7e727d4c..b12527b2 100644 --- a/understand_kosli/what_is_kosli.md +++ b/understand_kosli/what_is_kosli.md @@ -50,3 +50,7 @@ Notably, change sources can originate from diverse environments, including build style={{width: "1000px"}} className="rounded-lg" /> + + + Ready to try Kosli hands-on? The [Kosli Learning Labs](/labs) walk you from account creation to runtime compliance enforcement in five progressive labs. +