€cdocutils.nodes document q)q}q(U nametypesq}q(X)use case 17 - crud logs aggregated at cnsqNXuc17qˆXhistoryqˆuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hU'use-case-17-crud-logs-aggregated-at-cnsqhUuc17qhUhistoryquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _UC17:UparentqhUsourceqXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/17_uc.txtqUtagnameqUtargetqU attributesq }q!(Uidsq"]Ubackrefsq#]Udupnamesq$]Uclassesq%]Unamesq&]Urefidq'huUlineq(KUdocumentq)hh]ubcdocutils.nodes section q*)q+}q,(hUhhhhUexpect_referenced_by_nameq-}q.hhshUsectionq/h }q0(h$]h%]h#]h"]q1(hheh&]q2(hheuh(Kh)hUexpect_referenced_by_idq3}q4hhsh]q5(cdocutils.nodes title q6)q7}q8(hX)Use Case 17 - CRUD Logs Aggregated at CNsq9hh+hhhUtitleq:h }q;(h$]h%]h#]h"]h&]uh(Kh)hh]q…q?}q@(hh9hh7ubaubcsphinx.addnodes index qA)qB}qC(hUhh+hhhUindexqDh }qE(h"]h#]h$]h%]h&]UentriesqF]qG((UsingleqHX Use Case 17Uindex-0qIUNtqJ(hHXUC17hIUNtqK(hHXlog aggregationhIUNtqL(hHX log summaryhIUNtqMeUinlineqN‰uh(Kh)hh]ubh)qO}qP(hUhh+hhhhh }qQ(h"]h#]h$]h%]h&]h'hIuh(Kh)hh]ubcdocutils.nodes definition_list qR)qS}qT(hUhh+hhh-}hUdefinition_listqUh }qV(h$]h%]h#]h"]qWhIah&]uh(Nh)hh3}qXhIhOsh]qY(cdocutils.nodes definition_list_item qZ)q[}q\(hX+Revisions View document revision history_. hhShhhUdefinition_list_itemq]h }q^(h$]h%]h#]h"]h&]uh(K h]q_(cdocutils.nodes term q`)qa}qb(hX Revisionsqchh[hhhUtermqdh }qe(h$]h%]h#]h"]h&]uh(K h]qfh=X Revisionsqg…qh}qi(hhchhaubaubcdocutils.nodes definition qj)qk}ql(hUh }qm(h$]h%]h#]h"]h&]uhh[h]qncdocutils.nodes paragraph qo)qp}qq(hX View document revision history_.hhkhhhU paragraphqrh }qs(h$]h%]h#]h"]h&]uh(K h]qt(h=XView document revision qu…qv}qw(hXView document revision hhpubcdocutils.nodes reference qx)qy}qz(hXhistory_Uresolvedq{KhhphU referenceq|h }q}(UnameXhistoryq~UrefuriqX”https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/17_uc.txtq€h"]h#]h$]h%]h&]uh]qh=Xhistoryq‚…qƒ}q„(hUhhyubaubh=X.…q…}q†(hX.hhpubeubahU definitionq‡ubeubhZ)qˆ}q‰(hX9Goal All CRUD logs are aggregated at coordinating nodes. hhShhhh]h }qŠ(h$]h%]h#]h"]h&]uh(K h)hh]q‹(h`)qŒ}q(hXGoalqŽhhˆhhhhdh }q(h$]h%]h#]h"]h&]uh(K h]qh=XGoalq‘…q’}q“(hhŽhhŒubaubhj)q”}q•(hUh }q–(h$]h%]h#]h"]h&]uhhˆh]q—ho)q˜}q™(hX3All CRUD logs are aggregated at coordinating nodes.qšhh”hhhhrh }q›(h$]h%]h#]h"]h&]uh(K h]qœh=X3All CRUD logs are aggregated at coordinating nodes.q…qž}qŸ(hhšhh˜ubaubahh‡ubeubhZ)q }q¡(hXwSummary Aggregation of CRUD operation logs is used to compute use statistics and other summary types of information. The original log information should be viewable by administrators for some period of time. The particular information required to be logged still needs to be specified so that MNs know what specific information needs to be collected as part of Use Case 16. hhShhhh]h }q¢(h$]h%]h#]h"]h&]uh(Kh)hh]q£(h`)q¤}q¥(hXSummaryq¦hh hhhhdh }q§(h$]h%]h#]h"]h&]uh(Kh]q¨h=XSummaryq©…qª}q«(hh¦hh¤ubaubhj)q¬}q­(hUh }q®(h$]h%]h#]h"]h&]uhh h]q¯(ho)q°}q±(hXÇAggregation of CRUD operation logs is used to compute use statistics and other summary types of information. The original log information should be viewable by administrators for some period of time.q²hh¬hhhhrh }q³(h$]h%]h#]h"]h&]uh(Kh]q´h=XÇAggregation of CRUD operation logs is used to compute use statistics and other summary types of information. The original log information should be viewable by administrators for some period of time.qµ…q¶}q·(hh²hh°ubaubho)q¸}q¹(hX¥The particular information required to be logged still needs to be specified so that MNs know what specific information needs to be collected as part of Use Case 16.qºhh¬hhhhrh }q»(h$]h%]h#]h"]h&]uh(Kh]q¼h=X¥The particular information required to be logged still needs to be specified so that MNs know what specific information needs to be collected as part of Use Case 16.q½…q¾}q¿(hhºhh¸ubaubehh‡ubeubhZ)qÀ}qÁ(hX-Actors - Member Node(s) - Coordinating Node hhShhhh]h }qÂ(h$]h%]h#]h"]h&]uh(Kh)hh]qÃ(h`)qÄ}qÅ(hXActorsqÆhhÀhhhhdh }qÇ(h$]h%]h#]h"]h&]uh(Kh]qÈh=XActorsqÉ…qÊ}qË(hhÆhhÄubaubhj)qÌ}qÍ(hUh }qÎ(h$]h%]h#]h"]h&]uhhÀh]qÏcdocutils.nodes bullet_list qÐ)qÑ}qÒ(hUh }qÓ(UbulletqÔX-h"]h#]h$]h%]h&]uhhÌh]qÕ(cdocutils.nodes list_item qÖ)q×}qØ(hXMember Node(s) h }qÙ(h$]h%]h#]h"]h&]uhhÑh]qÚho)qÛ}qÜ(hXMember Node(s)qÝhh×hhhhrh }qÞ(h$]h%]h#]h"]h&]uh(Kh]qßh=XMember Node(s)qà…qá}qâ(hhÝhhÛubaubahU list_itemqãubhÖ)qä}qå(hXCoordinating Node h }qæ(h$]h%]h#]h"]h&]uhhÑh]qçho)qè}qé(hXCoordinating Nodeqêhhähhhhrh }që(h$]h%]h#]h"]h&]uh(Kh]qìh=XCoordinating Nodeqí…qî}qï(hhêhhèubaubahhãubehU bullet_listqðubahh‡ubeubhZ)qñ}qò(hX$Preconditions - CNs are operational hhShhhh]h }qó(h$]h%]h#]h"]h&]uh(Kh)hh]qô(h`)qõ}qö(hX Preconditionsq÷hhñhhhhdh }qø(h$]h%]h#]h"]h&]uh(Kh]qùh=X Preconditionsqú…qû}qü(hh÷hhõubaubhj)qý}qþ(hUh }qÿ(h$]h%]h#]h"]h&]uhhñh]rhÐ)r}r(hUh }r(hÔX-h"]h#]h$]h%]h&]uhhýh]rhÖ)r}r(hXCNs are operational h }r(h$]h%]h#]h"]h&]uhjh]rho)r }r (hXCNs are operationalr hjhhhhrh }r (h$]h%]h#]h"]h&]uh(Kh]r h=XCNs are operationalr…r}r(hj hj ubaubahhãubahhðubahh‡ubeubhZ)r}r(hX<Triggers - Timed event, logs are aggregated every 24 hours. hhShhhh]h }r(h$]h%]h#]h"]h&]uh(K h)hh]r(h`)r}r(hXTriggersrhjhhhhdh }r(h$]h%]h#]h"]h&]uh(K h]rh=XTriggersr…r}r(hjhjubaubhj)r}r(hUh }r(h$]h%]h#]h"]h&]uhjh]r hÐ)r!}r"(hUh }r#(hÔX-h"]h#]h$]h%]h&]uhjh]r$hÖ)r%}r&(hX1Timed event, logs are aggregated every 24 hours. h }r'(h$]h%]h#]h"]h&]uhj!h]r(ho)r)}r*(hX0Timed event, logs are aggregated every 24 hours.r+hj%hhhhrh }r,(h$]h%]h#]h"]h&]uh(K h]r-h=X0Timed event, logs are aggregated every 24 hours.r.…r/}r0(hj+hj)ubaubahhãubahhðubahh‡ubeubhZ)r1}r2(hXŒPost Conditions - Aggregate logs are stored on Coordinating Node - Logs are synchronized between CNs - Log processing is triggered on CNs hhShhhh]h }r3(h$]h%]h#]h"]h&]uh(K'h)hh]r4(h`)r5}r6(hXPost Conditionsr7hj1hhhhdh }r8(h$]h%]h#]h"]h&]uh(K'h]r9h=XPost Conditionsr:…r;}r<(hj7hj5ubaubhj)r=}r>(hUh }r?(h$]h%]h#]h"]h&]uhj1h]r@hÐ)rA}rB(hUh }rC(hÔX-h"]h#]h$]h%]h&]uhj=h]rD(hÖ)rE}rF(hX/Aggregate logs are stored on Coordinating Node h }rG(h$]h%]h#]h"]h&]uhjAh]rHho)rI}rJ(hX.Aggregate logs are stored on Coordinating NoderKhjEhhhhrh }rL(h$]h%]h#]h"]h&]uh(K#h]rMh=X.Aggregate logs are stored on Coordinating NoderN…rO}rP(hjKhjIubaubahhãubhÖ)rQ}rR(hX"Logs are synchronized between CNs h }rS(h$]h%]h#]h"]h&]uhjAh]rTho)rU}rV(hX!Logs are synchronized between CNsrWhjQhhhhrh }rX(h$]h%]h#]h"]h&]uh(K%h]rYh=X!Logs are synchronized between CNsrZ…r[}r\(hjWhjUubaubahhãubhÖ)r]}r^(hX#Log processing is triggered on CNs h }r_(h$]h%]h#]h"]h&]uhjAh]r`ho)ra}rb(hX"Log processing is triggered on CNsrchj]hhhhrh }rd(h$]h%]h#]h"]h&]uh(K'h]reh=X"Log processing is triggered on CNsrf…rg}rh(hjchjaubaubahhãubehhðubahh‡ubeubeubcdocutils.nodes comment ri)rj}rk(hX@startuml images/17a_seq.png participant "CRUD API" as m_crud << Member Node >> participant "Synchronization API" as c_sync << Coordinating Node >> loop for each MN c_sync -> m_crud: getLogRecords (token, fromDate, toDate) c_sync <-- m_crud: records or fail end loop @endumlhh+hhhUcommentrlh }rm(U xml:spacernUpreserveroh"]h#]h$]h%]h&]uh(K2h)hh]rph=X@startuml images/17a_seq.png participant "CRUD API" as m_crud << Member Node >> participant "Synchronization API" as c_sync << Coordinating Node >> loop for each MN c_sync -> m_crud: getLogRecords (token, fromDate, toDate) c_sync <-- m_crud: records or fail end loop @endumlrq…rr}rs(hUhjjubaubcdocutils.nodes image rt)ru}rv(hX.. image:: images/17a_seq.png hh+hhhUimagerwh }rx(UuriX"design/UseCases/images/17a_seq.pngryh"]h#]h$]h%]U candidatesrz}r{U*jysh&]uh(K4h)hh]ubho)r|}r}(hX1*Figure 1.* Interactions for use case 17, part 1.r~hh+hhhhrh }r(h$]h%]h#]h"]h&]uh(K5h)hh]r€(cdocutils.nodes emphasis r)r‚}rƒ(hX *Figure 1.*h }r„(h$]h%]h#]h"]h&]uhj|h]r…h=X Figure 1.r†…r‡}rˆ(hUhj‚ubahUemphasisr‰ubh=X& Interactions for use case 17, part 1.rŠ…r‹}rŒ(hX& Interactions for use case 17, part 1.hj|ubeubji)r}rŽ(hXù@startuml images/17b_seq.png participant "Admin" as app_admin << Application >> participant "Query Health API" as c_query << Coordinating Node >> app_admin -> c_query: getLogRecords (token, fromDate, toDate) c_query --> app_admin: logRecords @endumlhh+hhhjlh }r(jnjoh"]h#]h$]h%]h&]uh(K>h)hh]rh=Xù@startuml images/17b_seq.png participant "Admin" as app_admin << Application >> participant "Query Health API" as c_query << Coordinating Node >> app_admin -> c_query: getLogRecords (token, fromDate, toDate) c_query --> app_admin: logRecords @endumlr‘…r’}r“(hUhjubaubjt)r”}r•(hX.. image:: images/17b_seq.png hh+hhhjwh }r–(UuriX"design/UseCases/images/17b_seq.pngr—h"]h#]h$]h%]jz}r˜U*j—sh&]uh(K@h)hh]ubho)r™}rš(hX1*Figure 2.* Interactions for use case 17, part 2.r›hh+hhhhrh }rœ(h$]h%]h#]h"]h&]uh(KAh)hh]r(j)rž}rŸ(hX *Figure 2.*h }r (h$]h%]h#]h"]h&]uhj™h]r¡h=X Figure 2.r¢…r£}r¤(hUhjžubahj‰ubh=X& Interactions for use case 17, part 2.r¥…r¦}r§(hX& Interactions for use case 17, part 2.hj™ubeubh)r¨}r©(hX¡.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/17_uc.txtU referencedrªKhh+hhhhh }r«(hh€h"]r¬hah#]h$]h%]h&]r­hauh(KCh)hh]ubeubehUU transformerr®NU footnote_refsr¯}r°Urefnamesr±}r²h~]r³hyasUsymbol_footnotesr´]rµUautofootnote_refsr¶]r·Usymbol_footnote_refsr¸]r¹U citationsrº]r»h)hU current_liner¼NUtransform_messagesr½]r¾(cdocutils.nodes system_message r¿)rÀ}rÁ(hUh }rÂ(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypeUINFOrÃuh]rÄho)rÅ}rÆ(hUh }rÇ(h$]h%]h#]h"]h&]uhjÀh]rÈh=X*Hyperlink target "uc17" is not referenced.rÉ…rÊ}rË(hUhjÅubahhrubahUsystem_messagerÌubj¿)rÍ}rÎ(hUh }rÏ(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypejÃuh]rÐho)rÑ}rÒ(hUh }rÓ(h$]h%]h#]h"]h&]uhjÍh]rÔh=X-Hyperlink target "index-0" is not referenced.rÕ…rÖ}r×(hUhjÑubahhrubahjÌubeUreporterrØNUid_startrÙKU autofootnotesrÚ]rÛU citation_refsrÜ}rÝUindirect_targetsrÞ]rßUsettingsrà(cdocutils.frontend Values ráorâ}rã(Ufootnote_backlinksräKUrecord_dependenciesråNU rfc_base_urlræUhttps://tools.ietf.org/html/rçU tracebackrèˆUpep_referencesréNUstrip_commentsrêNU toc_backlinksrëUentryrìU language_coderíUenrîU datestamprïNU report_levelrðKU _destinationrñNU halt_levelròKU strip_classesróNh:NUerror_encoding_error_handlerrôUbackslashreplacerõUdebugröNUembed_stylesheetr÷‰Uoutput_encoding_error_handlerrøUstrictrùU sectnum_xformrúKUdump_transformsrûNU docinfo_xformrüKUwarning_streamrýNUpep_file_url_templaterþUpep-%04drÿUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrˆUtrim_footnote_reference_spacer‰UenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformr‰U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerhUgettext_compactrˆU generatorrNUdump_internalsrNU smart_quotesr‰U pep_base_urlrU https://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjùUauto_id_prefixrUidr Udoctitle_xformr!‰Ustrip_elements_with_classesr"NU _config_filesr#]Ufile_insertion_enabledr$ˆU raw_enabledr%KU dump_settingsr&NubUsymbol_footnote_startr'KUidsr(}r)(hIhShh+hh+hj¨uUsubstitution_namesr*}r+hh)h }r,(h$]h"]h#]Usourcehh%]h&]uU footnotesr-]r.Urefidsr/}r0(hI]r1hOah]r2hauub.