From bd374a351406621aec0c042418795b5ab37cbe1d Mon Sep 17 00:00:00 2001 From: Pedro Brochado Date: Fri, 14 Jun 2024 10:46:23 -0300 Subject: [PATCH] Remove placeholders and numbered files and fix images MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add unchanged 'Start Here' from pulpproject.org * Update 'Start Here' page * Remove 'docs/sections', which is now provided by pulp-docs * Remove the 'triage-needed' tmp dirs. We'll handle this later * Fix images on admin/learn/rbac and user/learn/concepts * Move settings and tech-preview to Reference * Revert asset dir rename and rename learn/index * Use new _SUMMARY.md file for ordering and clean numbered filenames * Fix some wording * Fix some wrong rst conversion link Co-authored-by: Ľuboš Mjachky [noissue] --- docs/diagrams_src/concept-add-repo.dot | 2 +- staging_docs/admin/guides/_SUMMARY.md | 7 ++ .../02-basic.md => auth/basic.md} | 0 .../03-webserver.md => auth/external.md} | 0 .../01-overview.md => auth/index.md} | 0 .../05-json_header.md => auth/json_header.md} | 0 .../04-keycloak.md => auth/keycloak.md} | 0 staging_docs/admin/learn/architecture.md | 7 +- .../admin/{learn => reference}/settings.md | 0 .../{learn => reference}/tech-preview.md | 0 .../assets/{static => images}/.gitkeep | 0 .../{static => images}/architecture.png | Bin .../assets/images/concept-add-repo.png | Bin 0 -> 17129 bytes .../assets/images/concept-content.png | Bin 0 -> 12279 bytes .../assets/images/concept-publish.png | Bin 0 -> 8208 bytes staging_docs/assets/images/concept-remote.png | Bin 0 -> 19890 bytes .../assets/images/concept-repository.png | Bin 0 -> 9297 bytes .../deferred_download_sequence.png | Bin .../{static => images}/lazy_component.png | Bin .../{static => images}/node-anatomy.png | Bin .../{static => images}/node-topology.png | Bin .../assets/{static => images}/pulp-exp1.png | Bin .../{static => images}/rbac_architecture.png | Bin .../dev/guides/{triage-needed! => }/git.md | 0 .../plugin-walkthrough.md | 0 .../pull-request-walkthrough.md | 0 .../{triage-needed! => }/release_process.md | 0 .../domains/domains_compatibility.md | 0 .../topics => other}/content-protection.md | 0 .../topics => other}/documentation.md | 0 .../topics => other}/error-handling.md | 0 .../topics => other}/how-plugins-work.md | 0 .../topics => other}/how-to-doc-api.md | 0 .../topics => other}/metadata-signing.md | 0 .../topics => other}/object-relationships.md | 0 .../topics => other}/on-demand-support.md | 0 .../topics => other}/planning-guide.md | 0 .../topics => other}/releasing.md | 0 .../topics => other}/task-scheduling.md | 0 .../concepts/index.md => plugin-concepts.md} | 0 .../concepts => }/rbac/access_policy.md | 2 +- .../rbac/adding_automatic_permissions.md | 0 .../rbac/overview.md => rbac/index.md} | 31 +++---- .../concepts => }/rbac/permissions.md | 0 .../concepts => }/rbac/queryset_scoping.md | 0 .../concepts => }/rbac/users_groups.md | 0 .../subclassing/import-export.md | 0 .../concepts => }/subclassing/models.md | 0 .../concepts => }/subclassing/pull-through.md | 0 .../concepts => }/subclassing/replication.md | 0 .../concepts => }/subclassing/serializers.md | 0 .../concepts => }/subclassing/viewsets.md | 0 .../sync_pipeline/sync_pipeline.md | 0 .../concepts => }/tasks/add-remove.md | 0 .../concepts => }/tasks/diagnostics.md | 0 .../concepts => }/tasks/publish.md | 0 staging_docs/dev/tutorials/_SUMMARY.md | 2 + ...-quickstart-docs.md => quickstart-docs.md} | 0 .../{01-quickstart.md => quickstart.md} | 0 staging_docs/sections/admin/index.md | 13 --- staging_docs/sections/development/index.md | 12 --- staging_docs/sections/help/bugs-features.md | 17 ---- staging_docs/sections/help/index.md | 4 - .../sections/reference/01-repository-map.md | 3 - .../sections/reference/02-glossary.md | 87 ------------------ staging_docs/sections/reference/index.md | 13 --- staging_docs/sections/usage/index.md | 14 --- staging_docs/user/learn/concepts.md | 39 ++++---- staging_docs/user/tutorials/01-overview.md | 3 - staging_docs/user/tutorials/02-setup.md | 3 - .../user/tutorials/03-installation.md | 3 - .../user/tutorials/04-configuration.md | 3 - staging_docs/user/tutorials/05-deployment.md | 3 - staging_docs/user/tutorials/06-conclusion.md | 3 - staging_docs/user/tutorials/index.md | 42 +++++++++ 75 files changed, 92 insertions(+), 221 deletions(-) create mode 100644 staging_docs/admin/guides/_SUMMARY.md rename staging_docs/admin/guides/{authentication/02-basic.md => auth/basic.md} (100%) rename staging_docs/admin/guides/{authentication/03-webserver.md => auth/external.md} (100%) rename staging_docs/admin/guides/{authentication/01-overview.md => auth/index.md} (100%) rename staging_docs/admin/guides/{authentication/05-json_header.md => auth/json_header.md} (100%) rename staging_docs/admin/guides/{authentication/04-keycloak.md => auth/keycloak.md} (100%) rename staging_docs/admin/{learn => reference}/settings.md (100%) rename staging_docs/admin/{learn => reference}/tech-preview.md (100%) rename staging_docs/assets/{static => images}/.gitkeep (100%) rename staging_docs/assets/{static => images}/architecture.png (100%) create mode 100644 staging_docs/assets/images/concept-add-repo.png create mode 100644 staging_docs/assets/images/concept-content.png create mode 100644 staging_docs/assets/images/concept-publish.png create mode 100644 staging_docs/assets/images/concept-remote.png create mode 100644 staging_docs/assets/images/concept-repository.png rename staging_docs/assets/{static => images}/deferred_download_sequence.png (100%) rename staging_docs/assets/{static => images}/lazy_component.png (100%) rename staging_docs/assets/{static => images}/node-anatomy.png (100%) rename staging_docs/assets/{static => images}/node-topology.png (100%) rename staging_docs/assets/{static => images}/pulp-exp1.png (100%) rename staging_docs/assets/{static => images}/rbac_architecture.png (100%) rename staging_docs/dev/guides/{triage-needed! => }/git.md (100%) rename staging_docs/dev/guides/{triage-needed! => }/plugin-walkthrough.md (100%) rename staging_docs/dev/guides/{triage-needed! => }/pull-request-walkthrough.md (100%) rename staging_docs/dev/guides/{triage-needed! => }/release_process.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/domains/domains_compatibility.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/content-protection.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/documentation.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/error-handling.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/how-plugins-work.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/how-to-doc-api.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/metadata-signing.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/object-relationships.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/on-demand-support.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/planning-guide.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/releasing.md (100%) rename staging_docs/dev/learn/{triage-needed!/topics => other}/task-scheduling.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts/index.md => plugin-concepts.md} (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/rbac/access_policy.md (98%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/rbac/adding_automatic_permissions.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts/rbac/overview.md => rbac/index.md} (69%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/rbac/permissions.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/rbac/queryset_scoping.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/rbac/users_groups.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/subclassing/import-export.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/subclassing/models.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/subclassing/pull-through.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/subclassing/replication.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/subclassing/serializers.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/subclassing/viewsets.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/sync_pipeline/sync_pipeline.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/tasks/add-remove.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/tasks/diagnostics.md (100%) rename staging_docs/dev/learn/{triage-needed!/concepts => }/tasks/publish.md (100%) create mode 100644 staging_docs/dev/tutorials/_SUMMARY.md rename staging_docs/dev/tutorials/{00-quickstart-docs.md => quickstart-docs.md} (100%) rename staging_docs/dev/tutorials/{01-quickstart.md => quickstart.md} (100%) delete mode 100644 staging_docs/sections/admin/index.md delete mode 100644 staging_docs/sections/development/index.md delete mode 100644 staging_docs/sections/help/bugs-features.md delete mode 100644 staging_docs/sections/help/index.md delete mode 100644 staging_docs/sections/reference/01-repository-map.md delete mode 100644 staging_docs/sections/reference/02-glossary.md delete mode 100644 staging_docs/sections/reference/index.md delete mode 100644 staging_docs/sections/usage/index.md delete mode 100644 staging_docs/user/tutorials/01-overview.md delete mode 100644 staging_docs/user/tutorials/02-setup.md delete mode 100644 staging_docs/user/tutorials/03-installation.md delete mode 100644 staging_docs/user/tutorials/04-configuration.md delete mode 100644 staging_docs/user/tutorials/05-deployment.md delete mode 100644 staging_docs/user/tutorials/06-conclusion.md create mode 100644 staging_docs/user/tutorials/index.md diff --git a/docs/diagrams_src/concept-add-repo.dot b/docs/diagrams_src/concept-add-repo.dot index 889b13825b..0199d81a22 100644 --- a/docs/diagrams_src/concept-add-repo.dot +++ b/docs/diagrams_src/concept-add-repo.dot @@ -18,4 +18,4 @@ rectangle "Add content to repository" { (RV1) -right-> N N -right-> (RV2) } -@enduml \ No newline at end of file +@enduml diff --git a/staging_docs/admin/guides/_SUMMARY.md b/staging_docs/admin/guides/_SUMMARY.md new file mode 100644 index 0000000000..1ba0ee87a6 --- /dev/null +++ b/staging_docs/admin/guides/_SUMMARY.md @@ -0,0 +1,7 @@ +* Authentication + * [Using Basic Auth](auth/basic.md) + * [Using external service](auth/external.md) + * [Using Keycloak](auth/keycloak.md) + * [Using JSON Header](auth/json_header.md) +* *.md + diff --git a/staging_docs/admin/guides/authentication/02-basic.md b/staging_docs/admin/guides/auth/basic.md similarity index 100% rename from staging_docs/admin/guides/authentication/02-basic.md rename to staging_docs/admin/guides/auth/basic.md diff --git a/staging_docs/admin/guides/authentication/03-webserver.md b/staging_docs/admin/guides/auth/external.md similarity index 100% rename from staging_docs/admin/guides/authentication/03-webserver.md rename to staging_docs/admin/guides/auth/external.md diff --git a/staging_docs/admin/guides/authentication/01-overview.md b/staging_docs/admin/guides/auth/index.md similarity index 100% rename from staging_docs/admin/guides/authentication/01-overview.md rename to staging_docs/admin/guides/auth/index.md diff --git a/staging_docs/admin/guides/authentication/05-json_header.md b/staging_docs/admin/guides/auth/json_header.md similarity index 100% rename from staging_docs/admin/guides/authentication/05-json_header.md rename to staging_docs/admin/guides/auth/json_header.md diff --git a/staging_docs/admin/guides/authentication/04-keycloak.md b/staging_docs/admin/guides/auth/keycloak.md similarity index 100% rename from staging_docs/admin/guides/authentication/04-keycloak.md rename to staging_docs/admin/guides/auth/keycloak.md diff --git a/staging_docs/admin/learn/architecture.md b/staging_docs/admin/learn/architecture.md index ab44c4b2f0..bfa81f5caa 100644 --- a/staging_docs/admin/learn/architecture.md +++ b/staging_docs/admin/learn/architecture.md @@ -4,9 +4,10 @@ Pulp's architecture has three components to it: a REST API, a content serving ap tasking system. Each component can be horizontally scaled for both high availability and/or additional capacity for that part of the architecture. -``` -/static/architecture.png -``` +
+ ![Pulp Architecture](site:pulpcore/docs/assets/images/architecture.png) + +
## REST API diff --git a/staging_docs/admin/learn/settings.md b/staging_docs/admin/reference/settings.md similarity index 100% rename from staging_docs/admin/learn/settings.md rename to staging_docs/admin/reference/settings.md diff --git a/staging_docs/admin/learn/tech-preview.md b/staging_docs/admin/reference/tech-preview.md similarity index 100% rename from staging_docs/admin/learn/tech-preview.md rename to staging_docs/admin/reference/tech-preview.md diff --git a/staging_docs/assets/static/.gitkeep b/staging_docs/assets/images/.gitkeep similarity index 100% rename from staging_docs/assets/static/.gitkeep rename to staging_docs/assets/images/.gitkeep diff --git a/staging_docs/assets/static/architecture.png b/staging_docs/assets/images/architecture.png similarity index 100% rename from staging_docs/assets/static/architecture.png rename to staging_docs/assets/images/architecture.png diff --git a/staging_docs/assets/images/concept-add-repo.png b/staging_docs/assets/images/concept-add-repo.png new file mode 100644 index 0000000000000000000000000000000000000000..806eac6d25a8df1fecb0e704f86fbfbb685f0974 GIT binary patch literal 17129 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 NMp6-x_wd>4{{s$<@__&V literal 0 HcmV?d00001 diff --git a/staging_docs/assets/images/concept-content.png b/staging_docs/assets/images/concept-content.png new file mode 100644 index 0000000000000000000000000000000000000000..d162c5e8ef2a3cf1e14cab6a11723454f7e97b07 GIT binary patch literal 12279 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 literal 0 HcmV?d00001 diff --git a/staging_docs/assets/images/concept-publish.png b/staging_docs/assets/images/concept-publish.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d1852ccd8b0b77431f1fd769416774ec3d8fcc GIT binary patch literal 8208 zcmc(EWl+>%+b;_XEZx0yhb+w!5(1I}BHay2t(0^u-H0G5-61I=NGu2<(jXlRC@n1@ zdH&A(K4;E5XXbo8U*MXZ*?aH&)fK0!txAMXkB@AaP-Ddb#Qm^wDESZXR-BXarX8`cuB)x2v-|-Zyz^TK|2pO-_apv zU>Kt3`o`Y>`5XfTjN_MQkgVy^D?}Q3ct_=>MWRRwDwfi(9FO67N|v(pqzUhBnz-i- z%Uv*IQT4A@8Bv+*5t#|?pv6jOO{Yb=#)IfQb0-0LR^M_t^&6z~MoJQI%UM&v9O=c~ zr1$#p#41*N9VvY^xV1M_2UKv5Kf?K*+Y{Ufzi?Yte@c3-Bu?^dtW+Y&QOe%M{6LwO zD9uKMNvrssll@h+ef*l2bWZ6TI^t{W02z!B*O~3wSJ*{CEM_|i12fH8Z}ox-;*7r6 zTY)@+ghxF!1zu!0g@*6IL&TAcpA?X?&orxBJUGlLTgA*P)~*9(pSg^DnDyD_G9+LK zSbpFq^9O4;^A$dQ5oRg|22-rMvZB7SBbxrm*cd5Jb!fXs;RH58_0wn44S9eX_#U|BEcXK11C@HOT{N* z!r!mucgrlxGBJ0sbMEdcvr-MORaQ~quN(4!k&6?hfs?t5;?t!*Q~)VI6qk;^LCh6=##A&o}b@JJz$H04h>aQgU+4 zC8&&VZDC>Ir%!)#J-S#6Qz1}3pTm_-udPvFA3k+-^aUe4J(06LSuV7Q#6~71a&uO& z49iB5Qj7wHQ2*>K&FiPi%E|@?RODgR)6MG9kmLj!7#A0pG#tLa@PXhMI}ZY;6c-nN z$ngW|ft>@szz-)`X9T;%ddITo`1r_3OPiXSYG`VDd3kMYY}kykv9otdo$SVZ4z1hX z-oCU9KJKS+aBwhsZ@#m;%Z506(4rp@(4LTx(AoJ=E&M$RjFABk_eC+d4*x4yIJuyJ z87c;TwHkcEm=ww+SU3y9r~O7dc7(`&IjR*Bc!obwY%H)jn!xI+f2!5kYz-X2Ae|Gw z6On`PFOk!;%P-Vfk?HB_%}!%0Z7=&2P~oCrQ!Hx8LtrDdBg!|~)it8-lH_7=RIR`{ zV|h}izdx?h3$RPe$bcYc3InRvpM<__tR5V=x23d6QVvoM z0fGIiKYLdYf-Ii4mN4v%$zGp|siAg`BVoGOp7=gL5)}l7Yb?_mPM;LV{Uhcisz=U# zv3gbdFu#d~g@Ci|r~0(X0l;5eQt`fuGd3W=d6-3O!TtPZG&OVnyEBvVb zI{bV$C5ujiPgK-vkd2+6|NHzr-Ds5D%8n#uc{?J0BJ4;ppC^7o2+l!{mpXC(48BhD z@M6j9-?4o1;!d_F#m#^F7`U_krlvVd1Jl#fA6Ei2VLe~-X3ERUi~15eULE$zu`==U z^3s`$xqLn)jHj!qu6|^PAN8nqj}m%uxEfOu%ksk7&HHq7Bt9PB#bs|KSCT}2is&O^ zx!uQ;VYc3inUb;;R*pB?t;T^*KyZC`eTYj#xBVOh0y$5Hf1))v6L%WT>kPc`_3 z8g2dFRw`{16O;KgPEEP%ebJ;ayE)~d?RG787aFKl@Slu#@0NSYODIv{tf-KOKD(6T zVLEeQ?|CYIL%6hblgwzAFcvZK0FzvWP66>)!C!R&YP(Wafv<>u?ipe0xl~kN-^T8b znoC|uNg86}?g{iaeBMk!i-6;GmD+mK4}2UPk;?>*f8XfHy_T8mzWwcSaB#411cSk5 zKCa7awWi-q7j*YJIy%n9QY*=LECG)-nh0yp0AeNhte|CR}WNTG@ zn#`s{zY==tZE2ZLjRFyT`|$BaG@rBX`K-hDw^TGVUSr4KVco-S@N@1gfh=Oj;E7_D z%OS=aLqo&itJ5+06s@a6w-fuQbYKS@XB6MhS_Tq5l{}>q=Y_#C`7w(w_v*VxL*7Yx zFfrtvG6QE6x;tiNLu-7_Jx9?dizVYSGBN`24}HN#&`w#Vg0weA+3C&1#6(n76n)C$ zYZ78$8I7ks6nWAN#g?cfhn&n=uD+m3$i+nIFz0Ujd z6R_I87?Qr7-xN?;6IM>^uXpw~HX!zhjP~~S{sfwu9JVO4@C+mp^Pq+2-o{gNr}^%N zs>^FDxm?yB>KYu}IWQ0Ezz<9&!^Gs`fAT(RF>$Q4n(VJhZ21 zNSD`_363c&EPV3=;~66B20flcho-^6Wqx*w4*OpBx*5X!p|TR9_ISGQ4qqolM)s%g zzC3)cfW;WY$Y}P1%Pd=VMa9+|WWaWM+F}Z62I5u_j zo01!}?vGVU8IoSQvimXci!~iO1_n_obPjG=)b23h5oAKc*|~BPg*vxLx=f-GG{=Ci zWeHoMX2ZfT3}l8(FlI(0rjCz~mkNxvy|8C7j*HC2A16coug~4wD~tK~KjpA>ql}A@qtmKU*P%v#IGoW$F$j4 zShyj2_{4BtG$oS#jMP}eU{mA5G0X~hF-o%=*4SqF--m1aWK=ZqqIv<60ld*F3#x+F(ZJrdoM)JY)Uy=g&$JqX=6Z{i==*hSwi9 zQQ=t6wsd&nRdaK4UbwrDzRO4PJW7b@0_Hw8JglGhOF~>cO0s_h984cfyrtwWNU!8Q z-{i3IHAPZH1UWUhvN*)(H%KJM(V=2s7%v{9B<#M__Vz7x{>B4dUQ}}Yg}^bi9BTWY z*_TyR*rmGU(Z@bPw-s$7qye@MOltl7Ij>-l9`rSuh(W@ADYk*kSb5yu(QzOO$){8X zA?C=EaHA(p5q$deDadTl)vCc7R7=3d?pSV~@oBP?4ox;tGAX0+0~=T5Ap#wCa8EA; z_8`~M(z@9$NeLiSU}R*}ST+)`3O~kD?ORxomXtIS4lgMwd3^V!XUYqGyhcdRz`%~v z($eyU#~?t;a8#E!2`;pm&ESO*8ygF8v@daIeio z!MhqHVibi6XKEKtjH+B&Tr|_vN#E@bqa`6p0puHK)mKfAb1no<4`I3b*%p1zNU*wz zMn!l(j>!h(ku}o#cg$$ForB0c%JTW{i-hpKp$vW$3f0xs_29vSh*MeOhN0C}W~Y{t zl8Dimu9~K%$+0n*tgQL7l)R~0^j)F5prD|?zyH}$KB&MJo;F+%hI5Z+U8!troRyhL zgAEJVZDJF8`RbL9h6a7kVCpkiWm?Ei!4DcL)V*QUy|_K)a1`n#VK)SrrxBTDrczt?rh?MQ*64d@z_33nVr&GLn*- znttI|79iUFsE4O|kMUr7BTkfi^w1?b(g7B9VsZ1N&j-{8dA8SsfHqPhu+xG)BKNU% z3d5Qq2qwW15E3Gdg*uKYI9b+_Gc%`PdHeWa^C~0_3_Nyg*(&V(M&wBJ?#JqCfj5r4(ryNEL$txC zj=ZVF3{#Vn7+s388A``)e~z;E_V!+$Bs0qR{v0Ip<1~(`Dvf(D#~5E-&DZizcC2&; zzS^H#+uqK~&ky-~;=qP1UuR6kwrDIZ1+QrM`L%h}(+)MH1yVdby#aknlIx~c0z(=U zM)j&F%@s@{LOR~bg)8kWy#UBnSC`a_J}fOYmDF#6mOEPg&E}>f?ZZZ60a8d9o|BW) z02^!9!_d2%)ZcD6{9$%kj1!QDb&{XSzjz+;3G1V?VwH>0mW;A~ss4*_q(X2v2B9>X z2Tdz_0SEM5U&;=bN3x#nrXh5VTx3bG+BDf2VfDa9H>vd4R_!3v3Ei$PI!W*-4Xw=g#cg(EPmj`1$mwkJxs zwexuR`TH#UHpqFyBYK3PosDrzCQmAV1XmMS&?pR6Ivks?OPG$u;>dPUGne<0RG?*C~LuK}DmKq6)6%G%n*xH#5-EAszl-}Lu%t9joV_0-t7%^HQw&u99#biLw# zE_6h4)qV~Y#?Hyv54aQ*%7zxo2yDS*{QCNO4*}qL8?g8bqvPVfo$XAmCH~u&G>wsL z(X9`&mRK?v$#lY<}CyXLJ6d~FBs47gkXOaK@?IXU^oijsnY9X)tByYR_t3ot87%gfpIWMpLj z3m>c%pzIcPMB8_TnVR8xR#8?fm>1kW|3|zkdH_1VRS}hTP0d zBR##zY5r0VH@Dww2EM)$WA$^4*(^1{t{{;}U@0XKAx>#&`Vjm}awaAwYU=1AYfX1| zL2?pl6X0fIQ9TwI4g_)o1VU&Wy|eQT0eX86>>!|+A1dhpQ9)I0t=5w#4}&fdYHG0! zMm-vyo+5dLfRQ5Pf`c(hOr23D$6rGOE|1n4SfjMKz7Gu{mwmmwl+b`#&&ke?JDyoy zUM|_f)CJ5o5J;>sgF+E{Uu<6jYWBR`E+ec@$NFMwEc1DhL-+5QKYOz~Fd6IcwYh6R zH4S0#k_PJ=82q7)4kQ2aOf`i`B@wHhgOwEoA`XwBwh-9HV`QYd>L&)@lgEMOunA!| z{#E(`Kmf!PK?6@qOGCyIj*wGPmEB<}LZB^2;aCL$C}KDbV${OIf-DZ;4RT(;>4}Ng z>FHn{@SU29N`Fr;9VYIB;4nL$W~|R)X5m8M6+a~4Tb-B*vaXaJ?g%)B~A&PrToHj)Eigq%)#5!)}2 zr2Y4fa`eOY7yx71yEE;a4jmvca7|5WcK+;DUi*9Bs+Z4E;AAoauKAU>x0a3$^PH}| znB#C3ov7pI`@8GcuV249T={)({7a{h3;y$*UH~D4`Fdl09X)<5yPn!3?21B#W?^A{ zWoat;{CVm7cbA?_wYefcz??@%1O@{P*OSwzjq>-isG6Ws3IQ$Ng$;5NGka1Y~Iw4(}R3s=ja%n#8X*S^?YL> zi9y13JbLe`xq0HF517d@Df9qQ%KGf4(^!cO;CI<>1L;h?>;R*Kf(TY*U&SIshPS^#Q;h& z-$8>$_ZyX(q4OAKGxKHNksR^h$*@k42Dxh2*G&n8r{U z?>F9Jb~bqrk3jkGgn}Le76b)E_H(C2R4@9=7kE`mOV^#|*$H=N5kZNO=2Q~!LXHT2 zlFQ!ToF*kD-DXF_gRffjzzuc`$dVTOZ)udCDwibf#jx;%fapVyZfzlDAD^uD2yuywW5x5H-mn!-HmRZqOPy|?|#^RIxh zwV^KU#mGmR!=<|AuG=?ba*JO!yWN+&zb|MA!QWZ<3R>PsG%tVK>3+Io#8{ENPPsQ= z)l%(>jVu4L^={e0;5Fur^EM_#w_WBi;=In%t%3E#i#Vvly$*jMH^K7o6}@D z6bjfSVPSt(Ua9@X7$TyizoA!CFYa1@40zrv-u^g0@qF&-Xc!3>9M?gkxe@!n5=2R- zzSCTM`QjYMQPXa^up$_Ew$0Eg*~{A&dfz38vaz$Xv$t>gFJEuf?j45}rBR(dxhjrm~%&J9q^eQgvGhWC|RmPKgJ~|yQUN`1`i}dm}5N>FIZ`qYOP9A}>Sbdi?zYKSpycr|R zYPGtqdi04JVayaOsUJRA4l~?JOH0eafzyj0)fIdV5M0aJ%cZX1ML_uV_eVKR|M>Ca zNtRH!3A2hd`_CK)-pH?YvP?`FI0kG_{|)z}+& z23%FE&|8PLgJ7nPYWtf73G?dq@*Mfasvpx++AH0lal%&KP{6TCCXuxq2VMD?`%ccf2?%D03)(dD2u%>+q66^?5-5j9G{8 zuTQ7hM;aK!6mMv}F^Kbqq6c7}p8YYAT`Mcvo$n(*>iY2jvFGif`n>^mg+g#e#2->X zCnT+1#K_-(A{2Lstm)|JzQ29IARqGi_3H^BCtdSyu$!BnraWj^r+Q|PY4=)AOf3D$ z)XdEJgeo(TMD-;!wzPmT+ro4+{1p^>_UD_|(s(SBe-Od>`1pEW)tMV8R@}^X%lRLx z*a;ZhSZtq)XS1uyd6jg;X9s=_c;fcfR?cLeOlSk3Ic2f%q7`oVIPCs7C52ljAEFte zwq4%hF8kkjuiKtIpVw&j_2&HJ>C|Kj&%ew5iVS)a1T-Up0q8Qw0L%`$?e6cGe6x`y zy2#kXq_FmrmsMOc*`S5NQ?2^B0AB8>%}p;d8x!MUexAfBI9%|%#tG*-J6rckw)QIz zkB_OT3dYk{S64u%qcT*Ax{xeRdGH7@erFZr7Q1)1*A?3D^h$AVjZ{(&LmAJa;s8}w zpPtUKDMwJZf@NrGy1TWdN-{g14P=z){jk|HZb{4-E}BozeV1>Hux&IwJ)4#s)Y2TI zQZ;xe*KdeV@2g4SgkWeQpjw}L1FrD4$Z~^^m$$L8@%ZRSC^q!#q^&O6y5OlGc^n{q z$$H0^VshGjf14^Re*tC%D48p%2P)`76&MONnu`gojH{@qFcz2@WMsxEHv8yKMM>!w z7$_qn6B8MEWKPD77#CUUK^X)F25M;~W@culq@*abt*ww~+ZvdeF;G)Gy0~2b-74Vb z;=*J;Yp^vXq=%YID)VLF;NXamqTq_#D-#noS?(%8V=O4>b3{Z$ZfYAEgmYf9sf8zbuy!7K**070shfR!rJ zLAnY^2PvVKH^bih+;i@|@4fx`eOn<}>tBBvbIdWvToGCtN>s<_kCBm)QK=})qsYh( zT_7Vn;Cl2R{G@~v$qWDE_Ea$Rv~Y3tbF{MdBvZ0-wsODYX=TZL*N@rO)6>;MoS)y- z@s6{nmy;u(g^QE-w8IUfq1cEb!xOyq@nH{v&8v7Cm? zZoBuKY)6ixPKwuS(d;0nc4IqsG@DLa-U-X_e)pVnH+0gy6jgHIV{enRR#2*RNB<ywIHgFo81*srGaCu$^SJ6xr3Ze1Sydu*%c;KHAqIH0Evt9zxZWJc8Fgm##dr zPk$?BUAmPA}_1!+dnsS-0-Z| z-rk-NRlAU;T_R^!UWw3^=0je&zP&qyd9|5o*WU7_o*J)sMoDbW#j(J%2V`Z1sIwpY z9waCKazjg(eEDJ8J+6mGxPFfF?*5NHk08{YQulYT>3O-vX{NJ>iD`08LS zEs+wiOGQR@kD?-60T%oQ8g>!0GOYb69Q^Yr?5@B5DP)Ik`ucTyI=3Kx)jAA00o974_>2IfzLKl3omz58|7_O!=TiwzQV?KP3`SAPH z2VGwi1g+KuTO~avzA;Y4PPC^hHKUD+t-HN9r+<8Spp&UKHCW*h&u3cqoQa8nA$Jk+ z^XJdex~Q41oEU*P0oVFxjQln0cgvlJDt#8Dy{5aWt0lV)rKP2p!pfWmkO|A}N=&hF zaXoanW5QJfVKJ3l9Ji)Z__I(HXc%*!5K8WYcZil zx1R{we5>AB9S{guax2PXVP*9)qVKn%A(K6Jul-2QK)K8Fi()7dvJGarDwUKzyhYufSheXOpo#E8jUaV)DK4g_Bpe2VX zE-qf#9p?|xR`2}q;pc2$@lu3C@0-|o>8;sf@dwzaeEbUX@(tS)V`F*dwPr+W`UrJQ zBO9e@O`w>JjJY_@AU4A?PsFL;mKsIB95Va;8l~mV*4jvINQjY9-`YqBf3$LZ#%n8% z1F-NH%+dHoHXUzoZ&Xfr{<;%PxdpMn|v)!R3cWRYT~SPaH}ZQe90ogGk->ACO0Ac zBqPR5RaLcHXo0Y1HYba;*v-$&vrOGI;$n;si%TGfy?8rN7GGvi?lizrfQ-aUBuV(# z)8$&!KkGh}z@5lNsNLHQAU@xnD<8p{shpdRA$U%8ymYBSWT+36ImQ0$(4LS~y^1o6 z-SC^v$@={@!DGDX+&H_3hX);>oB9+lFK?_FU3LJv<3-5$m63OD>6?zW=Jdwa`ztp^ zj&N~t@hf#1sacvGAJ?-%bMx`_?C6vjsQUkWM2nMPW=>5@lcP~18tRN5Id}H#*H>c2 zA$z;{^)&Gb+-V&4%x!@Iyd6F?5$$U*!O3mD@w??^>EWFIxPP9FMV6bDb+l${K4y+k zSg2K`yR|yk+1VKz-(O;vey!(o#F^N{(amG1CSn2XA=S0U7*4MfC~nxmut8(W8$Gd? z>El;%H>Ex_h{g_^2X81$sjI5yE}!AlOy)V1o|c9Wsa*YMNngmJxvyMd5ckZkE^!-G zoT8$ligl(-+xF5BQ}UW06zkriW)x>L`uy?ZugUgw8l|G5BK-oho!R16k?YD)j1u~l z;~r0*JlWgqt)0GrtBYcwy>uyfsv~10c+06ZS!$^ap_9qQkBDty*BGCepgnt5Io#jM zBSSyt<;$0Wi#k~vh!E|r-H0W13D3!^u0P&?{``4q$z3JDrFt=pPxWTA+CkEZuVL0B z6m0}75VG7FRVsQoK4k>#Y!V3pYdw!?r>3Slvosgl)59%~M%)s#{(9Ye*6_gtEUsj6 zwEks60@a19%vY~!)iZmIHAMRi`zd{ldiuRKWDg+1v^Ln3hD#Wt;cyu41|7BT|;A1Lj?xqFqA z6i&rpZEfB2`sNWMBuB{j6BgRPu$!IHXJMG&KHijPRE%32@);3MV=i_5DMuI7jn^x8 z8QJ|A&IG_K61?r(Lr$9F7Fyg{nVprG74MlIb>Xr9z;w3M&vkY7PZ{Xx#qWMT3i!gA z5{NSMa&w!4qXEbcXBl>3uK)5dA;9YK2~knel&g0_SMZwh3h}MoZGdugZ*e$WnP}H) zyRh|j;$@_dukSiQuDI7Ujy@Q$p?oCRB>3b;Ppjmznx&=XA?ugShfm?Y;}7T@N6GB2 zr>}S~44Y1=Ba!yKZ-$=m*SvW7G613rAg8$*6(yxMlh5YL6iqFg6BnVNcDK?pv9R#! zRNVIKNCBsTve@C~c>alr3DxiwdrJhdqGPv$-hXBCa)I>X=QGF8^E{4>?0Cm#G@(>( z*QpqQ#$)}t+MwLe3H1bSL}ZUKE5Fq{#6g4W zGBPy8#>ZbN@P^R1$)MYKb4qWhA33!{8Y?FapzRdjl`A^_0QDIL6g}s0B_YmUORp&@ zDfhN&_Xa9FY{pv(s+S_4F`3$+Q9-OkzbXJIVqf-x;~5<6R1@Lb$7GS>+}zyHm}I1_ zzh0Q4I(7`DNdW|-zdpa%fVD+Ae5L7g>5-g%X@e&)X``?@Xt#yhytOw5BL)HNOx&sH>EUDq}ndTXJ?`T$!;6rR$m zt?9{BXNam!+wmy9fE3gVPfnH&+FZFL<*zJ%LELllDV^Xm z!1xhn;)2YA>}@lv?e#_Y4LE zyi7^)@uDz<`JpPAKkpAMb*#<}z*yv1dLb6~;__l zDC8hf%US6Ui6m6LH^d3Z1EA@ha$B9mL%#=w3LgLfy}d@cj}Q0qPv=pR80r2m_IKYu z-`xi*`0o4pGk<@i?S10Eq1fGAivMx7{oDN;(EasY2A+Sr;XfboPO1A159c#Kn3I>s zgFrMkH#avmiECMPrVQ?l&CW_zHC6j94^9^a@AwnjfimG&oQJE$SXfxZ#5RDn!cR5< zn#Ve=F8u|rWr~NQkmt^w!x*1r6fX(dT8+J8fMj!bbu}!pjn2)T0Uqn*=s0FnxwEqa zEc?{CbFpZ&D?oxrNM!~!Z2YD!%O*-a5#7br)!o$rmvOPHS6z+HshDC2a&mHGQWLEy zwLx1V4hLaQZlLYmVdRaCjVfwtx2nAJ zC*R%q6b7-ik&d06yfB*iy8wO$cmW7%5c1xnL(zA;QetypVoFHFHIY~N5 z93FS^*B8||9?Ij#RW&th59hNP)z#Mr1O)J#Rtj-(O~R~0L?K6{o;#eA60++Dd~hUi zxdqad3V)(~BkFTHh50cxWo5%+>y}Ed8O!K6EEYBc{OLS_8Xq4wDRXplb^Wuts-dAF z((SLo%Pt`iFxOwo$H(_l#0j6B4LkSj5IN$#d}!BOi~8T+lB!&Pe(dVfrO_1JW_Ja; zeEIU_!-o%(BkrX^Ai3a%-kh&m_}!Yau&|(+v^YIqF_FxX6f7tAu_^WnoTGo>yolNB z=f}e)CIjp1>znhtfaH#jj+X*v-@-;|I8nXQq5AgiTi#@Y5;a_1yyu2icR-?$w#qBx zYF{^R?|(qK?ldkmG!*FD&^==<*e$Ixd)t8G@o{mhqt9iMC4BgJcpTw`bI{=u=en@l zrtXh*Z_!yxyPL_$f`E_*cYQIZD(yQV%x@SVq&8ABez%H^8~6?U5A)FeMZLZ z*F&C%$x;E{(_JcxgJn)H&3@?uVDU(ib}O9K6Qas~zP^?=Hln^ZGIu{ehK#7+Y^d7L zW27c1Jw3hPRs~CI2QQt%IV8-?H9BA7bocT^YwZS*x9Ua3C|Mie9ZQI%z@1I62%Z>D zO|v3Pl^{-30khtOkZ|Tz`z|g6gWm1!z>P#VH#dEK{Y`OU_7PDouE&4Rz|9jV*mHd~ zK>-%4D*&iyGVOs}n8ZL^+id?g^b+2A+)pk_`fBZ@IKW9LxR$B*>iXjQ`-kwu5FkH1 zIMVCGLOh1@($KLu2K1oztKJ#Y-^Wj!sCNB%@b9omL5sU}>lS^*%ic@4O7A)RF5a{G zl-~IYzvWCmy^4U9NjH~R;6`P@2FzmTH#Kl(viNUy_G)*AtNjFGAle5%F z&<#8cA8c1pR^9Q&w2DF0IXkSGtEQ%gNQI(5qb&-|rlCQZco|Y#j65m75?BQ0?laY) zP@CV>&Oo4x7jg9*?Wp=Q!v4BY;cRrHqWn>5M zY<{V$Gb8xxC1;oriu|1XtlCm#F^;;uy+Fx^@=eM?cTfe4g)>0P@vHyH1#zZ1e+r|z z8FnJ#@nf!R7RK}E&)>g)zw!toD#FCr*mh|mNwbOcD&KZGb%7TJh;_Usv;x+U$W z%QE3lo~T+`S$VwK50EAnhhXotG&ko)$8V&@_m3~#bR4N6Wc+jS%aM_h`gw+@X=qS} zhRUgS(GGqzuV?4x#=~v<{tCGcj;SEjz(w-SYj+_UJ$(5)Iyt%K_J>g5wjdt1y8d-7 z=5ALYLyJTraGOzo^D_vbM~|v~7k|Bfe`8AI`#%9gOJBbSaPH8-gC9SAsu;_njpsK% zNl6*KJvKj|jKSRH`6p7n!(cFvA3r9}^s2r=B9Ry~7HtA9BZJqp(i3+6$&)8LoT~rz z*`_9B;{o8+K3-nL#l^m28)_T8y(fV5p(7`i=RMus-QC z^#B22(`033g@=dB=K?T+h}8K+ePd(e2=yfrlmTACH>;|ua&vRpvVbo9Jy97)AS^;+ z{`Be7TjkD45AiOwJ0e_MT+GZjmcnu9SFbL9qE>@(Ny2=Ra+uwC9-|`L_OvfgXhW7; zM1zBaXn1~C!xahl?uJR??>D?&n^Gd=kc z5fQLOX!&lTtMyj1IyyS)Y*@RyEPv6_(Jjf|xpRkxC@Cq)#@RP85VAw;CC%^5wz2ZdVNoGFlb*n>B(4TdMRx3=ckPrAvZ&Z_KdsQZgVq7x)$3zES; z8QE7-GpI-d-{%@!{r~SzXxX3MrzHR58lWn`9~dmm8T=t#@ULrXv1#}3--Yyv$TX_I zKL($?{Z*D*P;fc7poU&LaQ!C84lT}*BJ$U6F9H8~Dxhp+Y)o%v0_jP3x&D$26zOp5i)30zva1OlAk)5=k1Pwo7oONx z5G((iXdsMcR>%(y8e)``rze6X+ONn>nn~387DPncR-a8u>;%AF&hQyp zTF#q_&n`9=P@lrVysgmTg0~lyra&sH>UfF8b^&70ng?DJ6ga z{Bw3Gc}u%C$$q~rKU;oJtb1!=R8{6-eUr>zm=Y-i{8`l%57HDDe#w z_Kn`%53sB7^sNmIT7zPYZkf*H_zcB zpFAmjn%gAQ@tR#3QP4ylI}C(2LC}Vzg2c88edC_GfD_^{u^3-@Ld#ELNeMMkQBl=* zKrGx|ft}BM_=bxt(hZ2=)_j%ApC2D!2SpDHPG!6&-vn@Q z2?g5#--;n;2I2%49;n^koe0@g;sAD=!I|tUmu5J+umFcy0fe=iOTKfZy}CcA+Fswp zd+00*SX=RmfM%aYCq{n1{Q4bET!53}p?riPl>-XK-(IXm@su9PjspBn| z2V83B`ihklUkO+tiAK`{rK*JL zT3X_k%q25KrC{k-reN~X^1_~zZFGXx7bU#af(AhYd`d6eG&p!`DQ=oNXu4eHYJmVu zD@pRqx+vy8mgF-`cilBLA;D;GcgLnB(F-PQy0`>L4jjl{->nDqr2AKb4DvO3$zDzE zM6JXPG>DQ{-<`5<$an}^?$@~o)Y8f?XZFW*k6Diz0OW~#V@G3S1k*`o<$b{N1S*p8 z>PezZh;&vuAQQl?1EPN)3IURiqRvK>aj^sRaj}q~LaTot4FCGSRtX8}|MhFYmcOt0 zuaA+yaQ`Y~HxLJ4K~7Wd!y_yV2@LIS{tFQ!Mc}*I@&{9~0F!Btp`0K$<2~^$3CIty zMJr3oKp?=c^+a5TA)i^;<+QPxXvHgso1CMY933sT>*Vmu5rx|Dw8oImChV=ST$w1yZU|>6QDLmHiyAVc`$Ruy+4^q8{;^NLm{Xa9N%0gL;)$ z{t}3#0JxXAxsgTM_V&{i9uq~y#V%8sg@u0xQ!H0XN`(A|i)}RJL5jQ0@RV*C)+No$U)2|Y4U8BgEq$FhlhtT7NB26gErZG zRe21v5zTY%!i9I%Er}#b^*u5oLM&ugvX*s!irdBjhOb1(-|Yl$#xAJ->bhGK76HQg zpOqEeyPdoi5a(EmlR$a+@&0~ENeQUGAQ-JIjW=)iKomIZbng)+h5vtifv9w(+YPhAUEH>eS7of4TFf| z)mN43VTuA7s0YIX0|BtJL0Z9z><`g4itRk`sez%PphgTks0t!=NDW?-TJFo2Wq)BG za+{lvKsgDjlc>LT;q70?jvdo~bIZ=fg}-VK#>S#OYFg#ZD;dyj+*cou#CpAa?z_atSX#e^$w5 zWxANArY3;FuV24*b#*l~H2nGV2jCRQNk$0d|BIk)z~TlL$RIv}=1>2Iqcl=2EA`m% z^W=yN&p;)28LsZDtFs1uG1EU+t&{nH!KwhvUxzFlaJpkEYf!C)boj%E5A*Z$?n2g3 z{Bm-V0^9_CGrim@Q(jscd%tKt462jH^=fKrx`~z5-gAko#2Q$&ye1$L?f@pUv$K$J zH%*e(-Dlw>6_qInEOERhaWDy>C#l>@yn#0{(=a_UW-0A zGu9XbnLymfyTF)%jjz`368Yh&Gcq_wxg~(Ng38B!oAJ6U^R;W&L_|bD&Jz$2U}b%9 z#vm1YBZ##tP2tHHa}@JkdQf5Gc}=W&+#;E++MvqDZb(i+ft2%ccgJj(ShvteFlKHR z#6X%1Crr-$XXLpnFdg$VGYpq5nd$0&4nBybVU{cXcAW?qLGSwtmg5z0dmN6<$7juN z`8TgwHOx#NoR4m2WsvsbA^Gpdx4abP1kr3O1rYk+>0?Cq%@w=x)*uRotfQzfnq(L) zC`ZE}|2~)Aw1uQ-Tc^B|B;EEEb8>JfhFU8sD$dw7P-1Dce74u!SafHe>Hw7zc#lb8 z?#96F4<0%sv;N}&2;;rIy`sFlQTYmMPwqj{mLz1sDb0R+GF119+wyO908R)zS`=md z_(=%IaWRC9PveBPL&Xnt7V(e^ee~!c`>Kn&@>TGLkL!(cL$z{l$JBs2^ zL2C5XF)}hn<>Eg{tqodq9nQP+t=2te(}ZHVoGny$IrboAG0x7;s8h53rMce%gkK+k z;ejyCe_RZdzUl7V*?^;{t5kM&c2G%CR#(qAIH>gkLY$%D*CdH@1*ECoDZ4az0sF3O z$XufC!`9T4B4S@3&Vlp|2oM1hz~8@r-wZ#QBonerEwkPBBS$3}YTqZ1A7@oAjbsrJ z6x8va13|2aKH4i$3F7+2q6PtKYU-?DaoJ;aGa!m%AGE>_D*HfrBhz)P;WUuuklp2! zOdtFD)>an?)%1tV1LjJ{o8uXb-)@75(tLRy*eujjTVII@I`rfLqkJ3PsivV}_RjUS zS`@QYqQV$xpaySlAr$V(Tk{Qh5ELicRQ__AMVphMmIYC~$HqSQaV8Mh;k2l;Ca z%9cTov0s5S;t~@2Qe_`FIyvdJG&DTM3@ARmaL3u1kN+?Qg*`bfFgn2L=HlAgTKje2 zL}q^Dv45#?Q=m$MQu=b!ad3I0L=!p8OaQ&lsWVeOMLMX-jfbX@5*%{kd)VVWlcNck!GVV$QWrBZ(_5e#_CnHc3B#_c%L=SeMnpuv=&|J5OfNqRi=3YwB=8u?wDffLnucOe z)q7f|cVlQczz1Ol%(A$ss3X`;vl%y*1Y*%g5Dqf7Ttc>9VvX@{$9`-BziC^~gfNJ< zP|z!YOn!RsP?#!i-3tQ0%a-t}d6?<%)+k4e{F`gTt&eG3~&HHFQ5J9;W!7?QtGDYyTF|an${j|Bp5~`RP^?qeE=&Qi zkJIzmb$iL&eFJz5&1>Lt^dVyp<6@JO`PlQ$md-Z9z!1F!<|#5EHJ1vAwzJKeN#fnG z$FCT?;UWMrArguCPV!Nz0r=$`Bo!YbX_q<5bQnb{HuITQ+J038dgVO$?lnn`Rk8b8 zF?)A&ZK2j>MB4ABQx(Go$fiWtWr1*hb-TaLY$ulTR?<(HuhI2fQ%(}|P;5T;zRujc zu(Z^vEM)mKj^6!pYjd;1m&kM5w5`|%w?ao>(5x)u7145nP~Zr44B8~L>JWoAV0yN< zx3Q$Em=7oDU%Mr*_BTY9rVHC=f->XK;yOyo8(=Q+FKjwZ-2y3VKiU zUchl^yt;7iTt=Y0oLuPFIoME%CAvP|-qQXnT(V7tk;)r)Ahhybp`%?=>&{evdGX>! zOC6gL82<8g_p!&I$qj4H8H~g$$;(5cgzUazcLSvWqA^UOxLpTsa?-Z@F@Asv1YNCX z3EiB(W@fG=WCH)AFDFAcu*kj!Dh~|!g}4_UUz6v5DmrHf>MHolrRp$t^9uJ2@RR_U z8P~YDyB9sp##_H>?(KSftAC=_Oz@Tk8uL6EAd6%;>6=fmNv1q{R7)?-MVy9Z+=CJo zhLT6d`M9}h7rZ&DlOK8M;>BvuDb)O!3R+GFgh=fqc7anA-?@;!zP>tL&Ccu}KYkQ( z{0`N5K*=w)Xa3;I0tE&L z7&TZdOx99J@-}2p1gop+7IMdBWMqf~4|3vZApQcyu{=$O1zlB=T!gwaPeAT;~Gb9mZe)RXm#K8COPzNlW5OiJI0&0wk z&Ctzwh~uKupcf(G&R|WDgblLo74CvLFmhS^MyM{7=-|B5>+eO2Bu{TA@_w(22|P?R zshw1A3ZkZd9vOMe`+nGLM!Xry3Xy?@qx}cUG;_1FhS$Sxp5zxkCYtK^Ff44ouQ;5! zdrTHzT|HP=r?@k`5k-wES+rz!l8kuz^aQ0h)w+?@TJ`M@2NS0SEukEby8iT%lyNZ6 z6guBfBrTjN_(km<`e(DVj+~sFtCO|}cf;i5WDT_aM`rfJZ%RwOSoac@7&OaI6h(1< zfrWCmvFR-|FMIdy`|z+?+J&l{pLC6k5RFq`Xw9)a>=~b7j8;il*H+B6Q|^ZBO00vQ zFYu}^ti8Leyi*Ta&EU|G-KYu?GgZ3CR=WT!mSN)z)WifNC0`|_-AR-RD8o{Nr7oEb zR1z_FOJigDCtprM@t`$DCS~hF`j`4VRmXd%B~I`1Z2cnoT<#}$hUkAYM+21hYx zXhPnA@m(PvZ?Eg*{p2ue2R0vzx~JMZ$D%l8a!X5vjhe^^o71^SH0IMiU}EPVU;a)A zD6cVQ4V!1@E@7f>J{iw!^%yaI-br%mk8t-$-w7v4$gicAzY0#*Uzw*o%R_}E=`Z~4`ow&yxXbjMxV;z zEH^v*qp;YvGBc@$yamk4j98)>=kQjg2{ardlBLi+z)N(qfRpBW!dD~k^XIYrl}k7C8wurqW`ic@(J9ePdNKmRAxt}g0^6xp$V zZE5KqXh+$7Z}}s{q5+<@t{febgXY$(POYGMQVf31J4g#8Dxu63XD?Yikh7kixWwme zRY3BZ@!cq*?opH^?l#uuQzHtFRsLL^Hq2<}HRUOH!RqM{*EmTi7wUmj5wJ7u(z!eF zlHR5FNOxZqu=v#!B5E(lFFryaoqg;P?mK` zg5hR@_pRgWSGA&Nn{EMzU~%Bez!sm;3r~~Gq!)jKTNP^E19O{4QPa3dXTzbV`e$({ z9UbMN|syC!ct-qxMc8hD5K^XkTc z{6>P{M2Y~;XCb-cGQs$_EP?kVZ!vCb(s)TLNfqUHlW4~=J0j%2;_9({^0|z(r$@F+ zlq~WI=x1vEDT(QZrjoef~>brOs7pA8@vUF>>cG9l6TF;0bxUMw?l}x+ST>$N`OJe; z%~z4m*8WTKEy6s6S6>g?pf{8hq z5Cbyf5VsWX5GDpJlWZ6jDKOt)o z=J1MrNU8UlvRw+c?lEZ4{WTWjbLOo{&HZcNBy?s1f|~~hs{Hg7n3z(2{krSjcvTTx zMO5nxX1PaEuV25mX-yWMOGyz)J^?;TB&4#<6gh)Wj$8^XteW-DFoF6$=Kd09b0fLa z=GWf~t8AuS*&Na+B)X952^Cgz??1?Lwby0LdZX{2ONp?}1cr75&H4AgzfY~IWU2dS zz-7-=d{C+;TFjhKr(QYYKeM1+W#FLZ4eN^U6vKyqeZEN>y^s-fNyz$Lol!@SCnMBD zRP0Dj;gs>+)s4g9^xm%v`$Dnl>8x88e6kn#A*P4ws&Bo>P*vY8&x+!_=`mVIrGn;V zz}4(-vPLaG0XG${y6g3W1e!wZ(~N$bUXkiDLe=JDe6!6o>og65?PhkXC8X6>x9$28 zU{4|ILB*nnoxQ%Osak#_`X_yiUdjah5oGvE51m6-c<*)9%I9w^&>hmZMycrPeKb>c zdoM{Nt2tz!{-<@-%p=nI)3q&HND}B4uBeBjX~v)-ilc z_;HG3(_>nG;H}_Dsbss_wRSgj>PQZ#CsxgI34!P|U}IekVOJUGa9ABJzj%y;q^z)I z!@c5(-Mup+HUgvFt;*fktG^A^KC{8u&jziuf0$m*@mG7bzTM-xH<8T1KD1PQJye144L(lo)L){_WH!Jvb-hv%cV&-VXR5}3E_)vAmv+MyFR#2^dL4dA=qqz< zVqzj1efuDTi<{fqi;rqREC&WjvTuSk4&)ZPI9xEY$a+yIG$FA<8_egxuArrL1HH)) zE`$7^d;Y-C?tuvjA3sef8oPP(W+@Y!9yMyFCxEcjG&Zf5iH#ia_D&(yC*btN)ngH7 zbR`!0!+I;W%HM8iG9nV>2%*@5l%&8o^6Qir?dn;~g1jOH28TvphBM6*21m>)cjEY` zdKWHJw?69TocXmGE6*1ZG3|x34A%9+acEw$fg`u-hkl%cL>pVH)VFsto#Bui{c*iK zZ~H48IswKZaF7aRslRmJ-m-1{K!by%t(yg$JbEOfN~YTpL_olnftjB|GXuT(+KRs3 z7ya@1qz4pKs9JMR0!JEb0aT2h-}BXo^5mI&03gJj)>2qN5Po}HSsubM(n6syW4?sE zWsoRYm7Za*o0yy#?|#q))>5OLgIZnl-N3-Q)?-X>ql@h)Ob7mm`|K4x*jpbB@tj$` z_ef#SN?HU`vQ8=G9XC#;jt-0GR8!yEZ&^zSa2wL??nF#_&&~64YsAmbDAeP&J~zIY zj@g-8JKob%%xc8@5f##;k^iynJB$$xE$dT`+2MLHsR9K|a z(+jW1yAsW&lOf48kXA@8fKo14Ai>niZ&ZYPmy*xv_McpIdnAr`R;4HS<5H32Utu7#fb~4gL58GMF(FpG$5rn>V|fKG{*0x z$)4M-KPSHykqzxrogj*)O5;GkJ9*D5g#*f~3h2-ee%W@Ca9ZgJ<{>-$MF*+ps2YS0 zt1KhK-QQ}`=-J!jDIF`oq1le=y9L*?It!(iO$snzWykO^(9z{cTS6L%IqF3XBG52C z6q}XBNvhk%NU_2+u1=;uZ@Q#f7WzRCm<3Qwdr8(J;qg?2tyf~<3;HNw4G|F^GjFs!9=8=Uq$em87dQcWpq#OjQe$E zYlGCOvvZnI$82S{G5gI_*7E2je`*va4ZExfQdJ3#s~c}C;D!4P1vt=0BpttB1v@n8 zm=1&JV%SzLdOIr0A9em+gP5dHlTWJV-Y9U0ok$MQAShPz$s)HtdsWLEj9*m~RBqgT znk1fR?(JQ6X|I$MfqX`5H68-hztLa6JU4pH;`!Ec=S7@nslVmYX`oR_PyC@;Eu^my zv(bCWIG;kO+-6f2$+7|In~~Uw7(1pOl9kcCWlkj$!#WD0q4Ma+@BRl^#3SlZ?0s^C z(K#l+vFKLmt-LzDYge!SfqD$q@v0eAQ=+4z$#eEt0*c`1GW1fbFlf?0Es4s42?W~{ zVNj#LwY8wk#0?z(U78=S5ORCp5ogxW9e)}M&KY_9-d=_{FgsM0<(aK-pZ7|R#?0Gw zW}Y<@%dBYi-O0|Z-c`mcE_?nOsD6nBwfx={ zFlua;dw3^+U3Phix9eqkyOp(CL6KjST4ugfi7^mK5EaRD>`BZdYSI7~#o77pq@lk4 z@9F8yh2Lqa=t@s9g?N#mf?HB)p7DDa1OanFm+<>HqdjRvpkt%+mMM{Ir89Pij!54s zK+Jsq?&?Gu%1CXid&t&y=*=j*uZE)oRE*+<{)ZYXzp7oKL;>%B4R2v{Vsw0TRL9Ir z1Kq*KPWsMg!4^HD_vGzN`(O=dJ`6~1Lusp6G|@zKS-1g| z%?MjD+T@jKYKK@}9050jIcUh64Xh7zTTb?@J#jE{CMG86)8HOnlqnPx;miN|jDl1u zbe>kbim13cd-bCI60R$NDag|mi1CmKPtRn&QyrEY z=@pD5hJQ|-eBr|6KPfxc8UGMh$*|S!pyc3SY$#wv6hu|FsyQ4*!Aj!=2Nk0#@zZ04 zZB0#hQ2PM+{y?v#I+6eIqeqXxLrR{L2o>oUiX`%st_610SG`2~Q#eOQX&t?DiIRS= z^5<-zXRjvMTVT9+Vin1!B5{5Z_5g)jwe^?K~nf{dWe z|Ktv((3A6I#^4O6bV|VDJ%2`osdXliJO{^JS93Gt4W43SzK9%%9N(>Xf53_cjgVX5 z=7tU&?E#r|O4Qy$EnEF_Ceiz<0T7MOo&-H}M_-fT9FEN_aPi9#P?)jdp4of`!qTL` zZ&Ojb^H=2G2J_0(r^nv(VjW&yTd?W@=~H{J*DMOQ#rKLUwq4ovEiDqDeQj5L)|%^- z3F2^`{oXE6TF=BpU({Yz#!MVopv}v-S%Y)VR{WmXX2^y#=)K;hbZtG={L@}~rGaZ; zw#;3X;HV?nT?HbvDRRJ9W~3hVD;##P1vM%oBcrFMXV2Lztj+csHQyXUEp_VdG~OQ2 z=5k{z+XLMohHyJmS>)$0U+BJ2l0?c?W_AU=AeWnR=wEk`vfNtY-V2K_v zKw|^p+mU{cv+c*vpRer+Smum5Yd5GJmfzzj2Kr3VrN;)}$$*X-yy6;orqqcYX1V#f z)4zU!ONA5eRNwt?>+u z(|G-IDCd%e--92Y97;4yg+(QC^pwfd3 zLm>G0oWIYd8wa3iPCh-fIkiS2A`0#=p$F(MA zs|KUUI)QFFcZ&pY*n$>`-)Fl#BIBDrjeE*N`c2$|^YthzWF)9@1<*v*r+(1u7$xP;gG?vp(#%|43uUcn zSWlvmaqeDT>S}6256$E21WK=>>jX5DCGBi%lp+s$mcv~~3HeyrYxnUPVXoQ>qz>+0 zB6(<6h~wZpH;|-wcMo+MW}XjgGqi@9-;En&1}pdc5!~FQ=8R6gxHS8mXUplN=wDd) zLc+(nxLaH}dz&OU5^i;|Dt9yU^0xH#Rai05q`m#xU*c<#07n51%kzkcJ6T7CZfIyc zJ6ov!)(KTwQj^|*5{G(5Y;3p8-bO1#SST#QP;=_fy=2z=bf+`)@bPacGA=LTS8aKU zGlFRmIr;hdQ1|@Kc#z5)YHjDP=uZYMI{bOZ!~7Bo=`PHF{O=5 zY_6}LV3Gz^=T@Hz2$j@y0`mSDmih&jw?@<6^e#D~z%qbI=v^>YN8@F|^c5an57ivw zX)J4$mA&m^od7kHG!Ft<=HdPD2CIUSQm(x>s#N#6o+`A!k55l?EA=i318sq}2~SEC zrqXl!8O@81&Q7afXsFqGe~22&fwJ9O<+VHN@e28)OOE2;UWpOw+Tw=$f#ip|I6gK$ zF1#%LvQ8kkSH=EAoxnKfpQWY#cW$g(GB?aaA3Vsomtmh1oEtX`ML7WjBB2C2)pQwa z(?4@`$DWEZYt*acv1g38IU@##*20*BLs?i0NFKPmhpCgNQV22;Kwy@~Dw_s>eF#p83*+y7l=mafoeCAfJuq=`jQ~_xBJ#gRv{?F&n(~h9)LinVCi5hZ4gtmN(qt)>CCL zFNGSlJ1h?1&603XU?5xe6lMboa8T7T7$FTfP9cA5sVg09U9dsQa(eHC>Jl0`rhoj< z8kJGKQ>~FKIW;-iAeDCSx6jI?wy0>i;-ysBDrt>iizU^5AVGl=dC&KGBVr@+9)qww z7H?3$keyLpwtwMx0Fd8^4oVaiTfJ0SS()*hrcZ`r6BAYM-YK81YiYV42QD@6(T@lX zn3mmHVrvCAzHn>5D%$=mB?>%rPyqaOHzhjxk-Lu%_0glL-IA$aU_y;dOmcU1sfE_R z`$9bpS_fLnrfG01H&*K*+Wszlp`6e%K7UnA^g-1xJBrPqJ@xpCpZ~+278v`P`7UJROnYkauQ}!$XJWO zUOBhD-{RDP-}Dnxw`tu%D5Wle@aCSTBPE4D3eA!I&?}@$vO1DX*fS z&+r_c>ycr%JK4Z>~bJMny(wr6Tw7d(O6m_J6L`R{eCT(5BXSC7jDn+}ruG$Nc<5h* zI0^ll-{m|#q1gsD3W?M~b29a@W4|^T+vpqOoSmFnVr%qgpwkEX{eWpulp53EPAGs* zjzmVX;orS`2i0zHVU*EPfq#Q!X9U?}vB$)v1&%*>O3SllPL@bRRpV`GDZGOrUDr_x zC;^;MG_Htmxgl zcYzUnk0#51g^hv4^>a?onb&cAruK!8WMrFCRaTxod9n;2CK6+X?SO6rOVOnXQ*piu z_6Y2ccVL_VZ0GW-+u7cRRL1t>VKO&-Y4o8fFe=`BrbUhz1yd&`I{Gw>1L*DK41b@IjJ8sB^v z85!YPg&xQBcxYh+Jr9dz+hAp3xeEjzCXtlWLapO|mzja}D3mF|5V*R$y!Gn|zxCG_ zi{B&`lpUA;{6UkvT8-v&WRvVrz*atW%?z4@^yeLJ%ZGQ8BhKJ(=P9`W)M#!&h_lK7 zacCI42VqnUYnmTXy~Ei14s53JMB; z_|MNz#TYt*qUBnuNLE#F@3YUT%%&&ZCR4Y81%PKYBKQmE6Y1iin9@YeS;d`R#UhKg zj{@WcQz(#aR5!dr;9+jGF53ZHyL0R(T5=-bH9FO2&z@yVZ@8bTrj*IkX><9Itt|4& z5?~67D_Z+RAM}yc?5vtVYii$v3sV`C(5UfVsPUPYxOhJlT0xR2`ovLs0Sk3zaFmJZ z$A5B3H*0~$1F|zd(BcY56BP6>_4OVuD{-+&Nrby!j)7gkF7Gq$jh0`9dY0~&ZXGI3x}m|LY*&F58gVNXFx?z!Cr z9yk#|5m+qwz-|ril_04+>{?CbA{+Laq>&}wl$HGer8bBuesJKy*as%g_rB?RaGb!* z4TeEzh`J8gLV1Rxda;fHma4tIJ%2fo5p2=-e#gbc6vLY=OTL&Z!)#JjJ^>WY3I z^bvyaj!I7dBi^XE0hRUlam#ci#V=pE> zeRRUUCi||1#i-Gj=4RE60iI0#V=6lCAkT z{4_ct0dc?%`oO%7Si5 Sxf$G%OhrLM{*B!2(EkGs=&E!8 literal 0 HcmV?d00001 diff --git a/staging_docs/assets/images/concept-repository.png b/staging_docs/assets/images/concept-repository.png new file mode 100644 index 0000000000000000000000000000000000000000..111fc63998e793c9d23009d7b36659b5e38b15a5 GIT binary patch literal 9297 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 JDiy54{|D^xm*D^a literal 0 HcmV?d00001 diff --git a/staging_docs/assets/static/deferred_download_sequence.png b/staging_docs/assets/images/deferred_download_sequence.png similarity index 100% rename from staging_docs/assets/static/deferred_download_sequence.png rename to staging_docs/assets/images/deferred_download_sequence.png diff --git a/staging_docs/assets/static/lazy_component.png b/staging_docs/assets/images/lazy_component.png similarity index 100% rename from staging_docs/assets/static/lazy_component.png rename to staging_docs/assets/images/lazy_component.png diff --git a/staging_docs/assets/static/node-anatomy.png b/staging_docs/assets/images/node-anatomy.png similarity index 100% rename from staging_docs/assets/static/node-anatomy.png rename to staging_docs/assets/images/node-anatomy.png diff --git a/staging_docs/assets/static/node-topology.png b/staging_docs/assets/images/node-topology.png similarity index 100% rename from staging_docs/assets/static/node-topology.png rename to staging_docs/assets/images/node-topology.png diff --git a/staging_docs/assets/static/pulp-exp1.png b/staging_docs/assets/images/pulp-exp1.png similarity index 100% rename from staging_docs/assets/static/pulp-exp1.png rename to staging_docs/assets/images/pulp-exp1.png diff --git a/staging_docs/assets/static/rbac_architecture.png b/staging_docs/assets/images/rbac_architecture.png similarity index 100% rename from staging_docs/assets/static/rbac_architecture.png rename to staging_docs/assets/images/rbac_architecture.png diff --git a/staging_docs/dev/guides/triage-needed!/git.md b/staging_docs/dev/guides/git.md similarity index 100% rename from staging_docs/dev/guides/triage-needed!/git.md rename to staging_docs/dev/guides/git.md diff --git a/staging_docs/dev/guides/triage-needed!/plugin-walkthrough.md b/staging_docs/dev/guides/plugin-walkthrough.md similarity index 100% rename from staging_docs/dev/guides/triage-needed!/plugin-walkthrough.md rename to staging_docs/dev/guides/plugin-walkthrough.md diff --git a/staging_docs/dev/guides/triage-needed!/pull-request-walkthrough.md b/staging_docs/dev/guides/pull-request-walkthrough.md similarity index 100% rename from staging_docs/dev/guides/triage-needed!/pull-request-walkthrough.md rename to staging_docs/dev/guides/pull-request-walkthrough.md diff --git a/staging_docs/dev/guides/triage-needed!/release_process.md b/staging_docs/dev/guides/release_process.md similarity index 100% rename from staging_docs/dev/guides/triage-needed!/release_process.md rename to staging_docs/dev/guides/release_process.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/domains/domains_compatibility.md b/staging_docs/dev/learn/domains/domains_compatibility.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/domains/domains_compatibility.md rename to staging_docs/dev/learn/domains/domains_compatibility.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/content-protection.md b/staging_docs/dev/learn/other/content-protection.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/content-protection.md rename to staging_docs/dev/learn/other/content-protection.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/documentation.md b/staging_docs/dev/learn/other/documentation.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/documentation.md rename to staging_docs/dev/learn/other/documentation.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/error-handling.md b/staging_docs/dev/learn/other/error-handling.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/error-handling.md rename to staging_docs/dev/learn/other/error-handling.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/how-plugins-work.md b/staging_docs/dev/learn/other/how-plugins-work.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/how-plugins-work.md rename to staging_docs/dev/learn/other/how-plugins-work.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/how-to-doc-api.md b/staging_docs/dev/learn/other/how-to-doc-api.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/how-to-doc-api.md rename to staging_docs/dev/learn/other/how-to-doc-api.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/metadata-signing.md b/staging_docs/dev/learn/other/metadata-signing.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/metadata-signing.md rename to staging_docs/dev/learn/other/metadata-signing.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/object-relationships.md b/staging_docs/dev/learn/other/object-relationships.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/object-relationships.md rename to staging_docs/dev/learn/other/object-relationships.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/on-demand-support.md b/staging_docs/dev/learn/other/on-demand-support.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/on-demand-support.md rename to staging_docs/dev/learn/other/on-demand-support.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/planning-guide.md b/staging_docs/dev/learn/other/planning-guide.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/planning-guide.md rename to staging_docs/dev/learn/other/planning-guide.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/releasing.md b/staging_docs/dev/learn/other/releasing.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/releasing.md rename to staging_docs/dev/learn/other/releasing.md diff --git a/staging_docs/dev/learn/triage-needed!/topics/task-scheduling.md b/staging_docs/dev/learn/other/task-scheduling.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/topics/task-scheduling.md rename to staging_docs/dev/learn/other/task-scheduling.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/index.md b/staging_docs/dev/learn/plugin-concepts.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/index.md rename to staging_docs/dev/learn/plugin-concepts.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/rbac/access_policy.md b/staging_docs/dev/learn/rbac/access_policy.md similarity index 98% rename from staging_docs/dev/learn/triage-needed!/concepts/rbac/access_policy.md rename to staging_docs/dev/learn/rbac/access_policy.md index 06a01acda4..ed13c3449d 100644 --- a/staging_docs/dev/learn/triage-needed!/concepts/rbac/access_policy.md +++ b/staging_docs/dev/learn/rbac/access_policy.md @@ -68,7 +68,7 @@ These names correspond with the [default DRF viewset action names](https://www.d ## Authorization Conditions Each policy statement can contain [drf-access-policy conditions](https://rsinger86.github.io/drf-access-policy/statement_elements/#condition) which is useful for verifying a user has one or -more permissions. Pulp ships many built-in checks. See the `permission_checking_machinery` +more permissions. Pulp ships many built-in checks. See the [permission_checking_machinery](site:pulpcore/docs/dev/learn/rbac/permissions/) documentation for more information on available checks. When multiple conditions are present, **all** of them must return True for the request to be diff --git a/staging_docs/dev/learn/triage-needed!/concepts/rbac/adding_automatic_permissions.md b/staging_docs/dev/learn/rbac/adding_automatic_permissions.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/rbac/adding_automatic_permissions.md rename to staging_docs/dev/learn/rbac/adding_automatic_permissions.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/rbac/overview.md b/staging_docs/dev/learn/rbac/index.md similarity index 69% rename from staging_docs/dev/learn/triage-needed!/concepts/rbac/overview.md rename to staging_docs/dev/learn/rbac/index.md index f6ca9b5f3a..38fa06ea94 100644 --- a/staging_docs/dev/learn/triage-needed!/concepts/rbac/overview.md +++ b/staging_docs/dev/learn/rbac/index.md @@ -11,28 +11,23 @@ The goals of the authorization system are to: Pulp's authorization model has the following architecture: -```{image} /static/rbac_architecture.png -:align: center -``` +![RBAC Architecture](site:pulpcore/docs/assets/images/rbac_architecture.png) -```{eval-rst} +Task Permissions Check: +: A permission check that occurs inside of Task code. This tends to use + permission checking calls like `has_perm` or `has_perms` + [provided by Django](https://docs.djangoproject.com/en/4.2/ref/contrib/auth/#django.contrib.auth.models.User.has_perm). -:Task Permissions Check: A permission check that occurs inside of Task code. This tends to use - permission checking calls like `has_perm` or `has_perms` `provided by Django `_. +Permission Checking Machinery +: A set of methods which can check various conditions such as if a + requesting user has a given permission, or is a member of a group that has a given permission, + etc. See the [permission_checking_machinery](site:pulpcore/docs/dev/learn/rbac/permissions/) section for the complete list of available + methods. -:Permission Checking Machinery: A set of methods which can check various conditions such as if a - requesting user has a given permission, or is a member of a group that has a given permission, - etc. See the :ref:`permission_checking_machinery` section for the complete list of available - methods. +Users and Groups +: Users and Groups live in the Django database and are used by the Permission Checking Machinery. + See the [users_and_groups](site:pulpcore/docs/dev/learn/rbac/users_groups/) documentation for more information. -:Users and Groups: Users and Groups live in the Django database and are used by the Permission - Checking Machinery. See the :ref:`users_and_groups` documentation for more information. - - -Getting Started ---------------- -``` ## Getting Started diff --git a/staging_docs/dev/learn/triage-needed!/concepts/rbac/permissions.md b/staging_docs/dev/learn/rbac/permissions.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/rbac/permissions.md rename to staging_docs/dev/learn/rbac/permissions.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/rbac/queryset_scoping.md b/staging_docs/dev/learn/rbac/queryset_scoping.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/rbac/queryset_scoping.md rename to staging_docs/dev/learn/rbac/queryset_scoping.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/rbac/users_groups.md b/staging_docs/dev/learn/rbac/users_groups.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/rbac/users_groups.md rename to staging_docs/dev/learn/rbac/users_groups.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/subclassing/import-export.md b/staging_docs/dev/learn/subclassing/import-export.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/subclassing/import-export.md rename to staging_docs/dev/learn/subclassing/import-export.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/subclassing/models.md b/staging_docs/dev/learn/subclassing/models.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/subclassing/models.md rename to staging_docs/dev/learn/subclassing/models.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/subclassing/pull-through.md b/staging_docs/dev/learn/subclassing/pull-through.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/subclassing/pull-through.md rename to staging_docs/dev/learn/subclassing/pull-through.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/subclassing/replication.md b/staging_docs/dev/learn/subclassing/replication.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/subclassing/replication.md rename to staging_docs/dev/learn/subclassing/replication.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/subclassing/serializers.md b/staging_docs/dev/learn/subclassing/serializers.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/subclassing/serializers.md rename to staging_docs/dev/learn/subclassing/serializers.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/subclassing/viewsets.md b/staging_docs/dev/learn/subclassing/viewsets.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/subclassing/viewsets.md rename to staging_docs/dev/learn/subclassing/viewsets.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/sync_pipeline/sync_pipeline.md b/staging_docs/dev/learn/sync_pipeline/sync_pipeline.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/sync_pipeline/sync_pipeline.md rename to staging_docs/dev/learn/sync_pipeline/sync_pipeline.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/tasks/add-remove.md b/staging_docs/dev/learn/tasks/add-remove.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/tasks/add-remove.md rename to staging_docs/dev/learn/tasks/add-remove.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/tasks/diagnostics.md b/staging_docs/dev/learn/tasks/diagnostics.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/tasks/diagnostics.md rename to staging_docs/dev/learn/tasks/diagnostics.md diff --git a/staging_docs/dev/learn/triage-needed!/concepts/tasks/publish.md b/staging_docs/dev/learn/tasks/publish.md similarity index 100% rename from staging_docs/dev/learn/triage-needed!/concepts/tasks/publish.md rename to staging_docs/dev/learn/tasks/publish.md diff --git a/staging_docs/dev/tutorials/_SUMMARY.md b/staging_docs/dev/tutorials/_SUMMARY.md new file mode 100644 index 0000000000..2ccb1c78ae --- /dev/null +++ b/staging_docs/dev/tutorials/_SUMMARY.md @@ -0,0 +1,2 @@ +* [Contributing with docs](quickstart-docs.md) +* [Contributing with code](quickstart.md) diff --git a/staging_docs/dev/tutorials/00-quickstart-docs.md b/staging_docs/dev/tutorials/quickstart-docs.md similarity index 100% rename from staging_docs/dev/tutorials/00-quickstart-docs.md rename to staging_docs/dev/tutorials/quickstart-docs.md diff --git a/staging_docs/dev/tutorials/01-quickstart.md b/staging_docs/dev/tutorials/quickstart.md similarity index 100% rename from staging_docs/dev/tutorials/01-quickstart.md rename to staging_docs/dev/tutorials/quickstart.md diff --git a/staging_docs/sections/admin/index.md b/staging_docs/sections/admin/index.md deleted file mode 100644 index 8215e171d9..0000000000 --- a/staging_docs/sections/admin/index.md +++ /dev/null @@ -1,13 +0,0 @@ -# Overview - -> Section for **Administrators** who need to setup, configure and keep Pulp instances running. - -Here you'll find: - -- **Getting Started**: Common admin resources - - **Tutorial**: End to end tutorial covering a basic administration workflow - - **Learn**: Learn more advanced concepts - - **How-to**: Guides on how to achive common tasks -- **Plugins**: Plugins that manages software-content -- **Extras**: Additional Pulp tools and resources - diff --git a/staging_docs/sections/development/index.md b/staging_docs/sections/development/index.md deleted file mode 100644 index a4ebd4e67b..0000000000 --- a/staging_docs/sections/development/index.md +++ /dev/null @@ -1,12 +0,0 @@ -# Overview - -> Section for **Pulp Developers** who need to improve docs, debug code and add features. - -Here you'll find: - -- **Getting Started**: - - **Contributing**: Basic contributing workflows and good practices - - **Learn More**: Learn more about how Pulp works - - **How-to Guides**: Guides on how to achive common tasks -- **Plugins**: Plugin-specific resources -- **Extras**: Additional Pulp tools and resources diff --git a/staging_docs/sections/help/bugs-features.md b/staging_docs/sections/help/bugs-features.md deleted file mode 100644 index dc7dda3815..0000000000 --- a/staging_docs/sections/help/bugs-features.md +++ /dev/null @@ -1,17 +0,0 @@ -# Bugs, Feature and Backport Requests - -Bugs, features and backport requests for `pulpcore` are tracked with [GitHub Issues](https://github.com/pulp/pulpcore/issues). Please see the [plugin table](https://pulpproject.org/content-plugins/) for trackers for each plugin. `Use this link -` to file a bug or feature request. - -!!! warning -Security bugs should be email to with your Pulp version, vulnerability -description, and reproduction steps. - - - - -## Triage - -Once per week, the Pulp team triages all new bugs and feature requests. See the -[meetings page](https://pulpproject.org/get_involved/#meetings) on the website for more info on -when it occurs and how to participate. diff --git a/staging_docs/sections/help/index.md b/staging_docs/sections/help/index.md deleted file mode 100644 index efc8ed8b16..0000000000 --- a/staging_docs/sections/help/index.md +++ /dev/null @@ -1,4 +0,0 @@ -# Overview - -> This section contains useful information about getting help and getting involved. - diff --git a/staging_docs/sections/reference/01-repository-map.md b/staging_docs/sections/reference/01-repository-map.md deleted file mode 100644 index 090fffdbae..0000000000 --- a/staging_docs/sections/reference/01-repository-map.md +++ /dev/null @@ -1,3 +0,0 @@ -# Repository Map - -This is the repository map. diff --git a/staging_docs/sections/reference/02-glossary.md b/staging_docs/sections/reference/02-glossary.md deleted file mode 100644 index 1722b4bd02..0000000000 --- a/staging_docs/sections/reference/02-glossary.md +++ /dev/null @@ -1,87 +0,0 @@ -# Glossary - -{class}`~pulpcore.app.models.Artifact` - -: A file. They usually belong to a `content unit` but may be used - elsewhere (e.g. for PublishedArtifacts). - -{class}`~pulpcore.plugin.models.ContentGuard` - -: A pluggable content protection mechanism that can be added to a `Distribution`, and - is used exclusively by the `content app` to only hand out binary data to trusted - clients. "Trusted users" are defined by the type of ContentGuard used. - -{class}`~pulpcore.app.models.Content` -content unit - -> Content are the smallest units of data that can be added and removed from -> `repositories`. When singular, "content unit" should be used. Each -> content unit can have multiple `artifacts`. Each content unit has a -> `type` (like .rpm or .deb) which that is defined by a `plugin`. - -content app - -: An [aiohttp.server](https://aiohttp.readthedocs.io/en/stable/web.html) app provided by - `pulpcore` that serves `content ` through `Distributions - `. - -{class}`~pulpcore.plugin.models.Distribution` - -: User facing object that configures the `content app` to serve either a - `RepositoryVersion`, a `Repository`, or a `Publication`. - -{class}`~pulpcore.plugin.models.Exporter` - -: Exporters can push a `Repository Version `, a `Repository`, - or a `Publication` content to a location outside of Pulp. Some example - locations include a remote server or a file system location. - -on-demand content - -: `Content` that was synchronized into Pulp but not yet saved to the - filesystem. The Content's `Artifacts` are fetched at the time they are - requested. On-demand content is associated with a `Remote` that knows how to download - those `Artifacts`. - -plugin - -: A [Django](https://docs.djangoproject.com) app that exends `pulpcore` to add more - features to Pulp. Plugins are most commonly used to add support for one or more - `types` of `Content`. - -{class}`~pulpcore.app.models.Publication` - -: The metadata and `artifacts` of the `content units` in a - `RepositoryVersion`. Publications are served by the `content app` when they are - assigned to a `Distribution`. - -pulpcore - -: A python package offering users a {doc}`rest_api` and plugin writers a - `plugin_api`. It is `plugin`-based and manages `Content`. - -{class}`~pulpcore.plugin.models.Remote` - -: User facing settings that specify how Pulp should interact with an external `Content` - source. - -{class}`~pulpcore.app.models.Repository` - -: A versioned set of `content units`. - -{class}`~pulpcore.app.models.RepositoryVersion` - -: An immutable snapshot of the set of `content units` that are in a - `Repository`. - -sync - -: A `plugin` defined task that fetches `Content` from an external source using a - `Remote`. The task adds and/or removes the `content units` to a - `Repository`, creating a new `RepositoryVersion`. - -type - -: Each `content unit` has a type (ex. rpm package or container tag) which is - defined by a `Plugin`. - diff --git a/staging_docs/sections/reference/index.md b/staging_docs/sections/reference/index.md deleted file mode 100644 index 39090c9def..0000000000 --- a/staging_docs/sections/reference/index.md +++ /dev/null @@ -1,13 +0,0 @@ -# Overview - -> This section contains reference material for all active Pulp Plugins' repositories. - -Here you'll find: - -- [Repositories Map](#): summary information about repos. -- [Glossary](#): terminology used across Pulp Project. -- **Repositories Reference**: REST/code APIs, changelogs - - **Content-types**: plugins that add support for content types - - **Tooling**: tools that integrates with Pulp for various purposes - - **Resources**: repositories that provide integrated resources to pulp - diff --git a/staging_docs/sections/usage/index.md b/staging_docs/sections/usage/index.md deleted file mode 100644 index 3c8618c2ab..0000000000 --- a/staging_docs/sections/usage/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# Overview - -> Section for **Regular Users** who need create sync, publish and interact with repositories. - -Here you'll find: - -- **Getting Started**: Common usage resources - - **Tutorial**: End to end tutorial covering a basic administration workflow - - **Learn**: Learn more advanced concepts - - **How-to**: Guides on how to achive common tasks -- **Plugins**: Plugins that manages software-content -- **Extras**: Additional Pulp tools and resources - - diff --git a/staging_docs/user/learn/concepts.md b/staging_docs/user/learn/concepts.md index ad170e0178..093decf4ed 100644 --- a/staging_docs/user/learn/concepts.md +++ b/staging_docs/user/learn/concepts.md @@ -3,12 +3,12 @@ This introduction is designed for anyone who is familiar with software management even without prior knowledge of Pulp. -From a user’s perspective, Pulp is a tool to manage content. In this context, \_Pulp\_ refers to +From a user’s perspective, Pulp is a tool to manage content. In this context, *Pulp* refers to pulpcore and one or more content plugins. ## What is pulpcore? -Throughout Pulp documentation, when you see references to \_pulpcore\_, this term refers to the main +Throughout Pulp documentation, when you see references to *pulpcore*, this term refers to the main python program that provides a platform to which you add content plugins for the types of content that you want to manage. In a very general sense, Pulpcore refers to Pulp and its functionality without any plugins. Pulpcore provides a REST API and a Plugin API. @@ -21,9 +21,10 @@ install the RPM plugin. Files that belong to a content unit are called `Artifacts`. Each content unit can have zero or many artifacts. Artifacts can be shared by multiple content units. -```{image} ./_diagrams/concept-content.png -:align: center -``` +
+ ![Concept Content](site:pulpcore/docs/assets/images/concept-content.png) + +
## Content repositories and versioning @@ -33,13 +34,15 @@ in a repository. Each time the content of a repository is changed, a new Reposit created. Any operation such as sync that does not change the content set, does not produce a new repository version. -```{image} ./_diagrams/concept-repository.png -:align: center -``` +
+ ![Concept Content](site:pulpcore/docs/assets/images/concept-repository.png) + +
-```{image} ./_diagrams/concept-add-repo.png -:align: center -``` +
+ ![Concept Content](site:pulpcore/docs/assets/images/concept-add-repo.png) + +
## Pulling content into Pulp with Remotes @@ -48,9 +51,10 @@ Through your plugin of choice, you can define actions to interact with those ext For example, most or all plugins define sync to fetch content units from a remote and add them to a Pulp repository. -```{image} ./_diagrams/concept-remote.png -:align: center -``` +
+ ![Concept Content](site:pulpcore/docs/assets/images/concept-remote.png) + +
## Serving content with Pulp @@ -64,6 +68,7 @@ To serve content from Pulp, you need to create a publication and a distribution. unit in the content set. To host a publication, it must be assigned to a `Distribution`, which determines how and where a publication is served. -```{image} ./_diagrams/concept-publish.png -:align: center -``` +
+ ![Concept Content](site:pulpcore/docs/assets/images/concept-publish.png) + +
diff --git a/staging_docs/user/tutorials/01-overview.md b/staging_docs/user/tutorials/01-overview.md deleted file mode 100644 index 4e91136162..0000000000 --- a/staging_docs/user/tutorials/01-overview.md +++ /dev/null @@ -1,3 +0,0 @@ -# Roadmap - -This is an overview diff --git a/staging_docs/user/tutorials/02-setup.md b/staging_docs/user/tutorials/02-setup.md deleted file mode 100644 index e7a8e6420f..0000000000 --- a/staging_docs/user/tutorials/02-setup.md +++ /dev/null @@ -1,3 +0,0 @@ -# Setup - -This is setup. diff --git a/staging_docs/user/tutorials/03-installation.md b/staging_docs/user/tutorials/03-installation.md deleted file mode 100644 index 8a98188290..0000000000 --- a/staging_docs/user/tutorials/03-installation.md +++ /dev/null @@ -1,3 +0,0 @@ -# Installation - -This is installation. diff --git a/staging_docs/user/tutorials/04-configuration.md b/staging_docs/user/tutorials/04-configuration.md deleted file mode 100644 index 6dad688292..0000000000 --- a/staging_docs/user/tutorials/04-configuration.md +++ /dev/null @@ -1,3 +0,0 @@ -# Configuration - -This is config. diff --git a/staging_docs/user/tutorials/05-deployment.md b/staging_docs/user/tutorials/05-deployment.md deleted file mode 100644 index bdaf2150d8..0000000000 --- a/staging_docs/user/tutorials/05-deployment.md +++ /dev/null @@ -1,3 +0,0 @@ -# Deployment - -This is the deployment. diff --git a/staging_docs/user/tutorials/06-conclusion.md b/staging_docs/user/tutorials/06-conclusion.md deleted file mode 100644 index fc55805058..0000000000 --- a/staging_docs/user/tutorials/06-conclusion.md +++ /dev/null @@ -1,3 +0,0 @@ -# Conclusion - -This is the conclusion. diff --git a/staging_docs/user/tutorials/index.md b/staging_docs/user/tutorials/index.md new file mode 100644 index 0000000000..0c547fdda9 --- /dev/null +++ b/staging_docs/user/tutorials/index.md @@ -0,0 +1,42 @@ +# Start Here + +If you are a new user and are unsure where to begin, this page outlines the different options available, as well as the limitations and requirements for those options. + +## Want to evaluate Pulp? + +The quickest way to evaluate Pulp is by using Pulp in One Container. +This image contains all the services that you need to run Pulp and is perfect for an initial evaluation. +Mind that this container cannot scale to provide for high availability scenarios. + +For installation instructions, see +[Pulp in One Container](site:pulp-oci-images/docs/admin/tutorials/quickstart/). + +## Is there a Kubernetes/OpenShift deployment option? + +Pulp operator endeavours to provide a scalable and robust cluster for Pulp 3. +Pulp can be installed from [OperatorHub](https://operatorhub.io/operator/pulp-operator). +If you're interested in providing feedback or contributing to making this better, see the +[Pulp operator repo](https://github.com/pulp/pulp-operator) on GitHub. + +For more information about using Pulp operator, see +[Pulp on Openshift](site:pulp-operator/docs/admin/tutorials/quickstart-openshift/) + +## Is there a podman/docker compose deployment option? + +Based on community feedback from the survey and PulpCon 2021, we have reused the Pulp operator images to create a podman compose option for deploying Pulp. +If you're familiar with podman compose, you can customize the configuration to suit your deployment needs and to deploy at scale. + +For more information see our +[podman/docker compose intro section](site:pulp-oci-images/docs/admin/tutorials/quickstart/#podman-or-docker-compose). + +## Do you need something else? + +If you are blocked and don't find an option that you need, please post to our [Pulp Community Discourse](https://discourse.pulpproject.org) and let us know what problem you encountered or what scenario you're missing. Feel free to introduce yourself, what you're trying to achieve, where you ran into problems or didn't understand something. We're always happy to hear how people are using Pulp! + +You can also find us on [**pulp** on Matrix](https://matrix.to/#/!HWvLQmBGVPfJfTQBAu:matrix.org) for user support. + +!!! note + + We plan to write an Introduction Tutorial to teach fundamentals skills and concepts throught a basic Project. + Reach out if you have a good idea of what this didactical Project could look like. +