€cdocutils.nodes document q)q}q(U nametypesq}q(X+use case 20 - owner retrieve aggregate logsqNXuc20qˆXhistoryqˆuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hU)use-case-20-owner-retrieve-aggregate-logsqhUuc20qhUhistoryquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _UC20:UparentqhUsourceqXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/20_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 20 - Owner Retrieve Aggregate Logsq9hh+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 20Uindex-0qIUNtqJ(hHXUC20hIUNtqK(hHX aggregatehIUNtqL(hHXloghIUNtqM(hHX owner logshIUNtqNeUinlineqO‰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]qZ(cdocutils.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/20_uc.txtqh"]h#]h$]h%]h&]uh]q‚h=Xhistoryqƒ…q„}q…(hUhhzubaubh=X.…q†}q‡(hX.hhqubeubahU definitionqˆubeubh[)q‰}qŠ(hXcGoal Data owners can request aggregated CRUD log for {time period/pid} for all of 'their' objects. hhThhhh^h }q‹(h$]h%]h#]h"]h&]uh(K h)hh]qŒ(ha)q}qŽ(hXGoalqhh‰hhhheh }q(h$]h%]h#]h"]h&]uh(K h]q‘h=XGoalq’…q“}q”(hhhhubaubhk)q•}q–(hUh }q—(h$]h%]h#]h"]h&]uhh‰h]q˜hp)q™}qš(hX]Data owners can request aggregated CRUD log for {time period/pid} for all of 'their' objects.q›hh•hhhhsh }qœ(h$]h%]h#]h"]h&]uh(K h]qh=X]Data owners can request aggregated CRUD log for {time period/pid} for all of 'their' objects.qž…qŸ}q (hh›hh™ubaubahhˆubeubh[)q¡}q¢(hXSSummary This operation provides a mechanism for data contributors to retrieve use information for content that they own. This is similar to :doc:`Use Case 19 <19_uc>` except that the requesting use is authenticated, and a query on objects owned by the user is used to generate a list of PIDs that indicate log information to be retrieved. hhThhhh^h }q£(h$]h%]h#]h"]h&]uh(Kh)hh]q¤(ha)q¥}q¦(hXSummaryq§hh¡hhhheh }q¨(h$]h%]h#]h"]h&]uh(Kh]q©h=XSummaryqª…q«}q¬(hh§hh¥ubaubhk)q­}q®(hUh }q¯(h$]h%]h#]h"]h&]uhh¡h]q°hp)q±}q²(hXJThis operation provides a mechanism for data contributors to retrieve use information for content that they own. This is similar to :doc:`Use Case 19 <19_uc>` except that the requesting use is authenticated, and a query on objects owned by the user is used to generate a list of PIDs that indicate log information to be retrieved.hh­hhhhsh }q³(h$]h%]h#]h"]h&]uh(Kh]q´(h=X„This operation provides a mechanism for data contributors to retrieve use information for content that they own. This is similar to qµ…q¶}q·(hX„This operation provides a mechanism for data contributors to retrieve use information for content that they own. This is similar to hh±ubcsphinx.addnodes pending_xref q¸)q¹}qº(hX:doc:`Use Case 19 <19_uc>`q»hh±hhhU pending_xrefq¼h }q½(UreftypeXdocq¾Urefwarnq¿ˆU reftargetqÀX19_ucU refdomainUh"]h#]U refexplicitˆh$]h%]h&]UrefdocqÁXdesign/UseCases/20_ucqÂuh(Kh]qÃcdocutils.nodes inline qÄ)qÅ}qÆ(hh»h }qÇ(h$]h%]qÈ(UxrefqÉh¾eh#]h"]h&]uhh¹h]qÊh=X Use Case 19qË…qÌ}qÍ(hUhhÅubahhOubaubh=X¬ except that the requesting use is authenticated, and a query on objects owned by the user is used to generate a list of PIDs that indicate log information to be retrieved.qÎ…qÏ}qÐ(hX¬ except that the requesting use is authenticated, and a query on objects owned by the user is used to generate a list of PIDs that indicate log information to be retrieved.hh±ubeubahhˆubeubh[)qÑ}qÒ(hX)Actors - Data owner - Coordinating Node hhThhhh^h }qÓ(h$]h%]h#]h"]h&]uh(Kh)hh]qÔ(ha)qÕ}qÖ(hXActorsq×hhÑhhhheh }qØ(h$]h%]h#]h"]h&]uh(Kh]qÙh=XActorsqÚ…qÛ}qÜ(hh×hhÕubaubhk)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é(hX Data owner h }qê(h$]h%]h#]h"]h&]uhhâh]qëhp)qì}qí(hX Data ownerqîhhèhhhhsh }qï(h$]h%]h#]h"]h&]uh(Kh]qðh=X Data ownerqñ…qò}qó(hhîhhìubaubahU list_itemqôubhç)qõ}qö(hXCoordinating Node h }q÷(h$]h%]h#]h"]h&]uhhâh]qøhp)qù}qú(hXCoordinating Nodeqûhhõhhhhsh }qü(h$]h%]h#]h"]h&]uh(Kh]qýh=XCoordinating Nodeqþ…qÿ}r(hhûhhùubaubahhôubehU bullet_listrubahhˆubeubh[)r}r(hXGPreconditions - User has authenticated - Log statistics are available hhThhhh^h }r(h$]h%]h#]h"]h&]uh(Kh)hh]r(ha)r}r(hX Preconditionsrhjhhhheh }r (h$]h%]h#]h"]h&]uh(Kh]r h=X Preconditionsr …r }r (hjhjubaubhk)r}r(hUh }r(h$]h%]h#]h"]h&]uhjh]rhá)r}r(hUh }r(håX-h"]h#]h$]h%]h&]uhjh]r(hç)r}r(hXUser has authenticated h }r(h$]h%]h#]h"]h&]uhjh]rhp)r}r(hXUser has authenticatedrhjhhhhsh }r(h$]h%]h#]h"]h&]uh(Kh]rh=XUser has authenticatedr…r }r!(hjhjubaubahhôubhç)r"}r#(hXLog statistics are available h }r$(h$]h%]h#]h"]h&]uhjh]r%hp)r&}r'(hXLog statistics are availabler(hj"hhhhsh }r)(h$]h%]h#]h"]h&]uh(Kh]r*h=XLog statistics are availabler+…r,}r-(hj(hj&ubaubahhôubehjubahhˆubeubh[)r.}r/(hX7Triggers - Authenticated user requests use information hhThhhh^h }r0(h$]h%]h#]h"]h&]uh(K!h)hh]r1(ha)r2}r3(hXTriggersr4hj.hhhheh }r5(h$]h%]h#]h"]h&]uh(K!h]r6h=XTriggersr7…r8}r9(hj4hj2ubaubhk)r:}r;(hUh }r<(h$]h%]h#]h"]h&]uhj.h]r=há)r>}r?(hUh }r@(håX-h"]h#]h$]h%]h&]uhj:h]rAhç)rB}rC(hX,Authenticated user requests use information h }rD(h$]h%]h#]h"]h&]uhj>h]rEhp)rF}rG(hX+Authenticated user requests use informationrHhjBhhhhsh }rI(h$]h%]h#]h"]h&]uh(K!h]rJh=X+Authenticated user requests use informationrK…rL}rM(hjHhjFubaubahhôubahjubahhˆubeubh[)rN}rO(hX6Post Conditions - User has a copy of use information hhThhhh^h }rP(h$]h%]h#]h"]h&]uh(K%h)hh]rQ(ha)rR}rS(hXPost ConditionsrThjNhhhheh }rU(h$]h%]h#]h"]h&]uh(K%h]rVh=XPost ConditionsrW…rX}rY(hjThjRubaubhk)rZ}r[(hUh }r\(h$]h%]h#]h"]h&]uhjNh]r]há)r^}r_(hUh }r`(håX-h"]h#]h$]h%]h&]uhjZh]rahç)rb}rc(hX$User has a copy of use information h }rd(h$]h%]h#]h"]h&]uhj^h]rehp)rf}rg(hX"User has a copy of use informationrhhjbhhhhsh }ri(h$]h%]h#]h"]h&]uh(K$h]rjh=X"User has a copy of use informationrk…rl}rm(hjhhjfubaubahhôubahjubahhˆubeubeubcdocutils.nodes comment rn)ro}rp(hXv@startuml images/20_seq.png actor "User (Data Owner)" as user participant "Client" as app_client << Application >> user -> app_client participant "Authentication API" as c_authenticate << Coordinating Node >> app_client -> c_authenticate: login (user, pw) app_client <-- c_authenticate: token or failure participant "Query API" as c_query << Coordinating Node >> app_client -> c_query: getLogRecords (pid, fromDate, toDate) participant "Authorization API" as c_authorize << Coordinating Node >> c_query -> c_authorize: isAuth (token, resultset) participant "Verify API" as c_ver << Coordinating Node >> c_authorize -> c_ver: isValidToken (token) c_authorize <-- c_ver: T or F c_query <-- c_authorize: T or F app_client <-- c_query: records or fail note right Can the Query API handle queries on log records or should this be handled by another API? (e.g. "Report API"?) end note @endumlhh+hhhUcommentrqh }rr(U xml:spacersUpreserverth"]h#]h$]h%]h&]uh(K?h)hh]ruh=Xv@startuml images/20_seq.png actor "User (Data Owner)" as user participant "Client" as app_client << Application >> user -> app_client participant "Authentication API" as c_authenticate << Coordinating Node >> app_client -> c_authenticate: login (user, pw) app_client <-- c_authenticate: token or failure participant "Query API" as c_query << Coordinating Node >> app_client -> c_query: getLogRecords (pid, fromDate, toDate) participant "Authorization API" as c_authorize << Coordinating Node >> c_query -> c_authorize: isAuth (token, resultset) participant "Verify API" as c_ver << Coordinating Node >> c_authorize -> c_ver: isValidToken (token) c_authorize <-- c_ver: T or F c_query <-- c_authorize: T or F app_client <-- c_query: records or fail note right Can the Query API handle queries on log records or should this be handled by another API? (e.g. "Report API"?) end note @endumlrv…rw}rx(hUhjoubaubcdocutils.nodes image ry)rz}r{(hX.. image:: images/20_seq.png hh+hhhUimager|h }r}(UuriX!design/UseCases/images/20_seq.pngr~h"]h#]h$]h%]U candidatesr}r€U*j~sh&]uh(KAh)hh]ubhp)r}r‚(hX)*Figure 1.* Interactions for use case 20.rƒhh+hhhhsh }r„(h$]h%]h#]h"]h&]uh(KBh)hh]r…(cdocutils.nodes emphasis r†)r‡}rˆ(hX *Figure 1.*h }r‰(h$]h%]h#]h"]h&]uhjh]rŠh=X Figure 1.r‹…rŒ}r(hUhj‡ubahUemphasisrŽubh=X Interactions for use case 20.r…r}r‘(hX Interactions for use case 20.hjubeubh)r’}r“(hX¡.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/20_uc.txtU referencedr”Khh+hhhhh }r•(h€hh"]r–hah#]h$]h%]h&]r—hauh(KDh)hh]ubeubehUU transformerr˜NU footnote_refsr™}ršUrefnamesr›}rœh]rhzasUsymbol_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®hp)r¯}r°(hUh }r±(h$]h%]h#]h"]h&]uhjªh]r²h=X*Hyperlink target "uc20" is not referenced.r³…r´}rµ(hUhj¯ubahhsubahUsystem_messager¶ubj©)r·}r¸(hUh }r¹(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypej­uh]rºhp)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»ubahhsubahj¶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_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 generatorrNUdump_internalsrNU smart_quotesr‰U pep_base_urlrU https://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjãUauto_id_prefixr Uidr Udoctitle_xformr ‰Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledrˆU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hh+hIhThh+hj’uUsubstitution_namesr}rhh)h }r(h$]h"]h#]Usourcehh%]h&]uU footnotesr]rUrefidsr}r(hI]rhPah]rhauub.