€cdocutils.nodes document q)q}q(U nametypesq}q(X!use case 16 - log crud operationsqNXuc16qˆXhistoryqˆuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hUuse-case-16-log-crud-operationsqhUuc16qhUhistoryquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _UC16:UparentqhUsourceqXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/16_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 16 - Log CRUD Operationsq9hh+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 16Uindex-0qIUNtqJ(hHXUC16hIUNtqK(hHXLog CRUDhIUNtqL(hHXlogginghIUNtqM(hHX reportinghIUNtqNeUinlineqO‰uh(Kh)hh]ubh)qP}qQ(hUhh+hhhhh }qR(h"]h#]h$]h%]h&]h'hIuh(Kh)hh]ubcdocutils.nodes definition_list qS)qT}qU(hUhh+hhh-}hUdefinition_listqVh }qW(h$]h%]h#]h"]qXhIah&]uh(Nh)hh3}qYhIhPsh]qZcdocutils.nodes definition_list_item q[)q\}q](hX+Revisions View document revision history_. hhThhhUdefinition_list_itemq^h }q_(h$]h%]h#]h"]h&]uh(K h]q`(cdocutils.nodes term qa)qb}qc(hX Revisionsqdhh\hhhUtermqeh }qf(h$]h%]h#]h"]h&]uh(K h]qgh=X Revisionsqh…qi}qj(hhdhhbubaubcdocutils.nodes definition qk)ql}qm(hUh }qn(h$]h%]h#]h"]h&]uhh\h]qocdocutils.nodes paragraph qp)qq}qr(hX View document revision history_.hhlhhhU paragraphqsh }qt(h$]h%]h#]h"]h&]uh(K h]qu(h=XView document revision qv…qw}qx(hXView document revision hhqubcdocutils.nodes reference qy)qz}q{(hXhistory_Uresolvedq|KhhqhU referenceq}h }q~(UnameXhistoryqUrefuriq€X”https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/16_uc.txtqh"]h#]h$]h%]h&]uh]q‚h=Xhistoryqƒ…q„}q…(hUhhzubaubh=X.…q†}q‡(hX.hhqubeubahU definitionqˆubeubaubhp)q‰}qŠ(hXGoalq‹hh+hhhhsh }qŒ(h$]h%]h#]h"]h&]uh(K h)hh]qh=XGoalqŽ…q}q(hh‹hh‰ubaubcdocutils.nodes block_quote q‘)q’}q“(hUhh+hhhU block_quoteq”h }q•(h$]h%]h#]h"]h&]uh(Nh)hh]q–hp)q—}q˜(hXñAll create, read, update, and delete operations on metadata and data are logged at nodes (both Member and Coordinating) so that summary statistics may be derived for object access with grouping by node, object (identifier), and object owner.q™hh’hhhhsh }qš(h$]h%]h#]h"]h&]uh(K h]q›h=XñAll create, read, update, and delete operations on metadata and data are logged at nodes (both Member and Coordinating) so that summary statistics may be derived for object access with grouping by node, object (identifier), and object owner.qœ…q}qž(hh™hh—ubaubaubhp)qŸ}q (hXSummaryq¡hh+hhhhsh }q¢(h$]h%]h#]h"]h&]uh(Kh)hh]q£h=XSummaryq¤…q¥}q¦(hh¡hhŸubaubh‘)q§}q¨(hUhh+hhhh”h }q©(h$]h%]h#]h"]h&]uh(Nh)hh]qª(hp)q«}q¬(hXêLogging is important for monitoring performance and stability of the system as well as for ensuring appropriate attribution is given to contributors of content. This use case describes the action of logging a user request for content.q­hh§hhhhsh }q®(h$]h%]h#]h"]h&]uh(Kh]q¯h=XêLogging is important for monitoring performance and stability of the system as well as for ensuring appropriate attribution is given to contributors of content. This use case describes the action of logging a user request for content.q°…q±}q²(hh­hh«ubaubhp)q³}q´(hXSThis use case supports the reporting of log information as required by Use Case 17.qµhh§hhhhsh }q¶(h$]h%]h#]h"]h&]uh(Kh]q·h=XSThis use case supports the reporting of log information as required by Use Case 17.q¸…q¹}qº(hhµhh³ubaubhp)q»}q¼(hX<The information recorded by log operations should be sufficient to enable grouping by node (node pid), object (pid), and by the object owner (principal pid) over time ranges. The type of access (create, read, update, or delete) should be recorded. The pid of the principal making the request should also be recorded.q½hh§hhhhsh }q¾(h$]h%]h#]h"]h&]uh(Kh]q¿h=X<The information recorded by log operations should be sufficient to enable grouping by node (node pid), object (pid), and by the object owner (principal pid) over time ranges. The type of access (create, read, update, or delete) should be recorded. The pid of the principal making the request should also be recorded.qÀ…qÁ}qÂ(hh½hh»ubaubeubhp)qÃ}qÄ(hXActorsqÅhh+hhhhsh }qÆ(h$]h%]h#]h"]h&]uh(K$h)hh]qÇh=XActorsqÈ…qÉ}qÊ(hhÅhhÃubaubh‘)qË}qÌ(hUhh+hNhh”h }qÍ(h$]h%]h#]h"]h&]uh(Nh)hh]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×(hXUserqØh }qÙ(h$]h%]h#]h"]h&]uhhÐh]qÚhp)qÛ}qÜ(hhØhhÖhhhhsh }qÝ(h$]h%]h#]h"]h&]uh(K&h]qÞh=XUserqß…qà}qá(hhØhhÛubaubahU list_itemqâubhÕ)qã}qä(hXNode (Member or Coordinating) h }qå(h$]h%]h#]h"]h&]uhhÐh]qæhp)qç}qè(hXNode (Member or Coordinating)qéhhãhhhhsh }qê(h$]h%]h#]h"]h&]uh(K'h]qëh=XNode (Member or Coordinating)qì…qí}qî(hhéhhçubaubahhâubehU bullet_listqïubaubhp)qð}qñ(hX Preconditionsqòhh+hhhhsh }qó(h$]h%]h#]h"]h&]uh(K*h)hh]qôh=X Preconditionsqõ…qö}q÷(hhòhhðubaubh‘)qø}qù(hUhh+hNhh”h }qú(h$]h%]h#]h"]h&]uh(Nh)hh]qûhÏ)qü}qý(hUh }qþ(hÓX-h"]h#]h$]h%]h&]uhhøh]qÿhÕ)r}r(hXCUser has authenticated, and is authorized for requested operation h }r(h$]h%]h#]h"]h&]uhhüh]rhp)r}r(hXAUser has authenticated, and is authorized for requested operationrhjhhhhsh }r(h$]h%]h#]h"]h&]uh(K,h]rh=XAUser has authenticated, and is authorized for requested operationr …r }r (hjhjubaubahhâubahhïubaubhp)r }r (hXTriggersrhh+hhhhsh }r(h$]h%]h#]h"]h&]uh(K/h)hh]rh=XTriggersr…r}r(hjhj ubaubh‘)r}r(hUhh+hNhh”h }r(h$]h%]h#]h"]h&]uh(Nh)hh]rhÏ)r}r(hUh }r(hÓX-h"]h#]h$]h%]h&]uhjh]rhÕ)r}r(hXBAny of the object access and modification operations are called. h }r(h$]h%]h#]h"]h&]uhjh]rhp)r }r!(hX@Any of the object access and modification operations are called.r"hjhhhhsh }r#(h$]h%]h#]h"]h&]uh(K1h]r$h=X@Any of the object access and modification operations are called.r%…r&}r'(hj"hj ubaubahhâubahhïubaubhp)r(}r)(hXPost Conditionsr*hh+hhhhsh }r+(h$]h%]h#]h"]h&]uh(K4h)hh]r,h=XPost Conditionsr-…r.}r/(hj*hj(ubaubh‘)r0}r1(hUhh+hNhh”h }r2(h$]h%]h#]h"]h&]uh(Nh)hh]r3hÏ)r4}r5(hUh }r6(hÓX-h"]h#]h$]h%]h&]uhj0h]r7hÕ)r8}r9(hX4The operation is recorded in the log for the node. h }r:(h$]h%]h#]h"]h&]uhj4h]r;hp)r<}r=(hX2The operation is recorded in the log for the node.r>hj8hhhhsh }r?(h$]h%]h#]h"]h&]uh(K6h]r@h=X2The operation is recorded in the log for the node.rA…rB}rC(hj>hj<ubaubahhâubahhïubaubcdocutils.nodes comment rD)rE}rF(hX²@startuml images/16_seq.png participant "Client" as app_client << Application >> participant "Read API\nStorage API\nReplication API" as m_crud << Node >> participant "Log Service" as m_log << Node >> app_client -> m_crud: operation (token, parameters) note right See Use Case 1, Use Case 4 end note activate m_crud m_crud -> m_log: log (time, event, identifier, requestor) m_crud --> app_client: response deactivate m_crud @endumlhh+hhhUcommentrGh }rH(U xml:spacerIUpreserverJh"]h#]h$]h%]h&]uh(KHh)hh]rKh=X²@startuml images/16_seq.png participant "Client" as app_client << Application >> participant "Read API\nStorage API\nReplication API" as m_crud << Node >> participant "Log Service" as m_log << Node >> app_client -> m_crud: operation (token, parameters) note right See Use Case 1, Use Case 4 end note activate m_crud m_crud -> m_log: log (time, event, identifier, requestor) m_crud --> app_client: response deactivate m_crud @endumlrL…rM}rN(hUhjEubaubcdocutils.nodes image rO)rP}rQ(hX.. image:: images/16_seq.png hh+hhhUimagerRh }rS(UuriX!design/UseCases/images/16_seq.pngrTh"]h#]h$]h%]U candidatesrU}rVU*jTsh&]uh(KJh)hh]ubhp)rW}rX(hX)*Figure 1.* Interactions for use case 16.rYhh+hhhhsh }rZ(h$]h%]h#]h"]h&]uh(KKh)hh]r[(cdocutils.nodes emphasis r\)r]}r^(hX *Figure 1.*h }r_(h$]h%]h#]h"]h&]uhjWh]r`h=X Figure 1.ra…rb}rc(hUhj]ubahUemphasisrdubh=X Interactions for use case 16.re…rf}rg(hX Interactions for use case 16.hjWubeubh)rh}ri(hX¡.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/16_uc.txtU referencedrjKhh+hhhhh }rk(h€hh"]rlhah#]h$]h%]h&]rmhauh(KNh)hh]ubeubehUU transformerrnNU footnote_refsro}rpUrefnamesrq}rrh]rshzasUsymbol_footnotesrt]ruUautofootnote_refsrv]rwUsymbol_footnote_refsrx]ryU citationsrz]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„hp)r…}r†(hUh }r‡(h$]h%]h#]h"]h&]uhj€h]rˆh=X*Hyperlink target "uc16" is not referenced.r‰…rŠ}r‹(hUhj…ubahhsubahUsystem_messagerŒubj)r}rŽ(hUh }r(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypejƒuh]rhp)r‘}r’(hUh }r“(h$]h%]h#]h"]h&]uhjh]r”h=X-Hyperlink target "index-0" is not referenced.r•…r–}r—(hUhj‘ubahhsubahjŒubeUreporterr˜NUid_startr™KU autofootnotesrš]r›U citation_refsrœ}rUindirect_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_levelrÀKUconfigrÁNUstrict_visitorrÂNUcloak_email_addressesrÈUtrim_footnote_reference_spacerĉUenvrÅNUdump_pseudo_xmlrÆNUexpose_internalsrÇNUsectsubtitle_xformrȉU source_linkrÉNUrfc_referencesrÊNUoutput_encodingrËUutf-8rÌU source_urlrÍNUinput_encodingrÎU utf-8-sigrÏU_disable_configrÐNU id_prefixrÑUU tab_widthrÒKUerror_encodingrÓUUTF-8rÔU_sourcerÕhUgettext_compactrÖˆU generatorr×NUdump_internalsrØNU smart_quotesrÙ‰U pep_base_urlrÚU https://www.python.org/dev/peps/rÛUsyntax_highlightrÜUlongrÝUinput_encoding_error_handlerrÞj¹Uauto_id_prefixrßUidràUdoctitle_xformrá‰Ustrip_elements_with_classesrâNU _config_filesrã]Ufile_insertion_enabledräˆU raw_enabledråKU dump_settingsræNubUsymbol_footnote_startrçKUidsrè}ré(hIhThh+hh+hjhuUsubstitution_namesrê}rëhh)h }rì(h$]h"]h#]Usourcehh%]h&]uU footnotesrí]rîUrefidsrï}rð(hI]rñhPah]ròhauub.