€cdocutils.nodes document q)q}q(U nametypesq}q(X,use case 37 - get system metadata for objectqNXuc37qˆXhistoryqˆuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hU*use-case-37-get-system-metadata-for-objectqhUuc37qhUhistoryquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _UC37:UparentqhUsourceqXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/37_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 37 - Get System Metadata for Objectq9hh+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 37Uindex-0qIUNtqJ(hHXUC37hIUNtqK(hHXgetSystemMetadatahIUNtqL(hHXsystem metadatahIUNtqMeUinlineqN‰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/37_uc.txtq€h"]h#]h$]h%]h&]uh]qh=Xhistoryq‚…qƒ}q„(hUhhyubaubh=X.…q…}q†(hX.hhpubeubahU definitionq‡ubeubhZ)qˆ}q‰(hX_Goal Retrieve the :term:`system metadata` for an object identified by some :term:`identifier`. 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™(hXYRetrieve the :term:`system metadata` for an object identified by some :term:`identifier`.hh”hhhhrh }qš(h$]h%]h#]h"]h&]uh(K h]q›(h=X Retrieve the qœ…q}qž(hX Retrieve the hh˜ubcsphinx.addnodes pending_xref qŸ)q }q¡(hX:term:`system metadata`q¢hh˜hhhU pending_xrefq£h }q¤(UreftypeXtermUrefwarnq¥ˆU reftargetq¦Xsystem metadataU refdomainXstdq§h"]h#]U refexplicit‰h$]h%]h&]Urefdocq¨Xdesign/UseCases/37_ucq©uh(K h]qªcdocutils.nodes inline q«)q¬}q­(hh¢h }q®(h$]h%]q¯(Uxrefq°h§Xstd-termq±eh#]h"]h&]uhh h]q²h=Xsystem metadataq³…q´}qµ(hUhh¬ubahhNubaubh=X" for an object identified by some q¶…q·}q¸(hX" for an object identified by some hh˜ubhŸ)q¹}qº(hX:term:`identifier`q»hh˜hhhh£h }q¼(UreftypeXtermh¥ˆh¦X identifierU refdomainXstdq½h"]h#]U refexplicit‰h$]h%]h&]h¨h©uh(K h]q¾h«)q¿}qÀ(hh»h }qÁ(h$]h%]qÂ(h°h½Xstd-termqÃeh#]h"]h&]uhh¹h]qÄh=X identifierqÅ…qÆ}qÇ(hUhh¿ubahhNubaubh=X.…qÈ}qÉ(hX.hh˜ubeubahh‡ubeubhZ)qÊ}qË(hXÂSummary A client has an identifier for some object within the DataONE system and is attempting to retrieve system metadata describing the object. If the object exists on the node and the user has READ permission on the object, then the bytes of the system metadata object are returned, otherwise an error condition occurs. Note that Member Nodes do not store authoritative copies of system metadata, but they still need to implement this operation. 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:A client has an identifier for some object within the DataONE system and is attempting to retrieve system metadata describing the object. If the object exists on the node and the user has READ permission on the object, then the bytes of the system metadata object are returned, otherwise an error condition occurs.qÜhhÖhhhhrh }qÝ(h$]h%]h#]h"]h&]uh(Kh]qÞh=X:A client has an identifier for some object within the DataONE system and is attempting to retrieve system metadata describing the object. If the object exists on the node and the user has READ permission on the object, then the bytes of the system metadata object are returned, otherwise an error condition occurs.qß…qà}qá(hhÜhhÚubaubho)qâ}qã(hX}Note that Member Nodes do not store authoritative copies of system metadata, but they still need to implement this operation.qähhÖhhhhrh }qå(h$]h%]h#]h"]h&]uh(Kh]qæh=X}Note that Member Nodes do not store authoritative copies of system metadata, but they still need to implement this operation.qç…qè}qé(hhähhâubaubehh‡ubeubhZ)qê}që(hXDActors - Client requesting object - Coordinating Node - Member 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 r)r}r(hXClient requesting objectrh }r(h$]h%]h#]h"]h&]uhhûh]rho)r}r(hjhjhhhhrh }r(h$]h%]h#]h"]h&]uh(Kh]r h=XClient requesting objectr …r }r (hjhjubaubahU list_itemr ubj)r}r(hXCoordinating Noderh }r(h$]h%]h#]h"]h&]uhhûh]rho)r}r(hjhjhhhhrh }r(h$]h%]h#]h"]h&]uh(Kh]rh=XCoordinating Noder…r}r(hjhjubaubahj ubj)r}r(hX Member Node h }r(h$]h%]h#]h"]h&]uhhûh]rho)r}r(hX Member Noder hjhhhhrh }r!(h$]h%]h#]h"]h&]uh(Kh]r"h=X Member Noder#…r$}r%(hj hjubaubahj ubehU bullet_listr&ubahh‡ubeubhZ)r'}r((hXˆPreconditions - Client has authenticated to the desired level (e.g. client may not have authenticated, so access might be anonymous). hhShhhh]h }r)(h$]h%]h#]h"]h&]uh(Kh)hh]r*(h`)r+}r,(hX Preconditionsr-hj'hhhhdh }r.(h$]h%]h#]h"]h&]uh(Kh]r/h=X Preconditionsr0…r1}r2(hj-hj+ubaubhj)r3}r4(hUh }r5(h$]h%]h#]h"]h&]uhj'h]r6hú)r7}r8(hUh }r9(hþX-h"]h#]h$]h%]h&]uhj3h]r:j)r;}r<(hXvClient has authenticated to the desired level (e.g. client may not have authenticated, so access might be anonymous). h }r=(h$]h%]h#]h"]h&]uhj7h]r>ho)r?}r@(hXuClient has authenticated to the desired level (e.g. client may not have authenticated, so access might be anonymous).rAhj;hhhhrh }rB(h$]h%]h#]h"]h&]uh(Kh]rCh=XuClient has authenticated to the desired level (e.g. client may not have authenticated, so access might be anonymous).rD…rE}rF(hjAhj?ubaubahj ubahj&ubahh‡ubeubhZ)rG}rH(hXATriggers - System metadata is requested from the DataONE system. hhShhhh]h }rI(h$]h%]h#]h"]h&]uh(K"h)hh]rJ(h`)rK}rL(hXTriggersrMhjGhhhhdh }rN(h$]h%]h#]h"]h&]uh(K"h]rOh=XTriggersrP…rQ}rR(hjMhjKubaubhj)rS}rT(hUh }rU(h$]h%]h#]h"]h&]uhjGh]rVhú)rW}rX(hUh }rY(hþX-h"]h#]h$]h%]h&]uhjSh]rZj)r[}r\(hX6System metadata is requested from the DataONE system. h }r](h$]h%]h#]h"]h&]uhjWh]r^ho)r_}r`(hX5System metadata is requested from the DataONE system.rahj[hhhhrh }rb(h$]h%]h#]h"]h&]uh(K"h]rch=X5System metadata is requested from the DataONE system.rd…re}rf(hjahj_ubaubahj ubahj&ubahh‡ubeubhZ)rg}rh(hXxPost Conditions - The client has a copy of the system metadata document (or an error message in the case of failure) hhShhhh]h }ri(h$]h%]h#]h"]h&]uh(K'h)hh]rj(h`)rk}rl(hXPost Conditionsrmhjghhhhdh }rn(h$]h%]h#]h"]h&]uh(K'h]roh=XPost Conditionsrp…rq}rr(hjmhjkubaubhj)rs}rt(hUh }ru(h$]h%]h#]h"]h&]uhjgh]rvhú)rw}rx(hUh }ry(hþX-h"]h#]h$]h%]h&]uhjsh]rzj)r{}r|(hXdThe client has a copy of the system metadata document (or an error message in the case of failure) h }r}(h$]h%]h#]h"]h&]uhjwh]r~ho)r}r€(hXbThe client has a copy of the system metadata document (or an error message in the case of failure)rhj{hhhhrh }r‚(h$]h%]h#]h"]h&]uh(K%h]rƒh=XbThe client has a copy of the system metadata document (or an error message in the case of failure)r„…r…}r†(hjhjubaubahj ubahj&ubahh‡ubeubeubcdocutils.nodes comment r‡)rˆ}r‰(hX¼@startuml images/36_uc.png actor "User" as client usecase "12. Authentication" as authen note top of authen Authentication may be provided by an external service end note package "DataONE" actor "Coordinating Node" as CN actor "Member Node" as MN usecase "13. Authorization" as author usecase "01. Get System Metadata" as GET client -- GET CN -- GET MN -- GET GET ..> author: <> GET ..> authen: <> @endumlhh+hhhUcommentrŠh }r‹(U xml:spacerŒUpreserverh"]h#]h$]h%]h&]uh(K=h)hh]rŽh=X¼@startuml images/36_uc.png actor "User" as client usecase "12. Authentication" as authen note top of authen Authentication may be provided by an external service end note package "DataONE" actor "Coordinating Node" as CN actor "Member Node" as MN usecase "13. Authorization" as author usecase "01. Get System Metadata" as GET client -- GET CN -- GET MN -- GET GET ..> author: <> GET ..> authen: <> @endumlr…r}r‘(hUhjˆubaubcdocutils.nodes image r’)r“}r”(hX.. image:: images/36_uc.png hh+hhhUimager•h }r–(UuriX design/UseCases/images/36_uc.pngr—h"]h#]h$]h%]U candidatesr˜}r™U*j—sh&]uh(K?h)hh]ubho)rš}r›(hXV*Figure 1.* Use case 37 diagram showing actors and components involved in this action.rœhh+hhhhrh }r(h$]h%]h#]h"]h&]uh(K@h)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=XK Use case 37 diagram showing actors and components involved in this action.r¨…r©}rª(hXK Use case 37 diagram showing actors and components involved in this action.hjšubeubj‡)r«}r¬(hXÕ@startuml images/36_seq.png participant "Client" as app_client << Application >> participant "CRUD API" as n_crud << Node >> participant "Authorization API" as n_authorize << Node >> participant "Object Store" as n_ostore << Node >> app_client -> n_crud: getSystemMetadata(token, PID) activate app_client activate n_crud n_crud -> n_authorize: isAuthorized(token, PID, READ) n_crud <- n_authorize: True, False, Err.NotFound alt NotFound app_client <- n_crud: Err.NotFound else False app_client <- n_crud: Err.NotAuthorized else True n_crud --> n_crud: Log(READ) n_crud -> n_ostore: getSystemMetadata(PID) n_crud <- n_ostore: bytes app_client <- n_crud: bytes deactivate n_crud end deactivate app_client @endumlhh+hhhjŠh }r­(jŒjh"]h#]h$]h%]h&]uh(K[h)hh]r®h=XÕ@startuml images/36_seq.png participant "Client" as app_client << Application >> participant "CRUD API" as n_crud << Node >> participant "Authorization API" as n_authorize << Node >> participant "Object Store" as n_ostore << Node >> app_client -> n_crud: getSystemMetadata(token, PID) activate app_client activate n_crud n_crud -> n_authorize: isAuthorized(token, PID, READ) n_crud <- n_authorize: True, False, Err.NotFound alt NotFound app_client <- n_crud: Err.NotFound else False app_client <- n_crud: Err.NotAuthorized else True n_crud --> n_crud: Log(READ) n_crud -> n_ostore: getSystemMetadata(PID) n_crud <- n_ostore: bytes app_client <- n_crud: bytes deactivate n_crud end deactivate app_client @endumlr¯…r°}r±(hUhj«ubaubj’)r²}r³(hX.. image:: images/36_seq.png hh+hhhj•h }r´(UuriX!design/UseCases/images/36_seq.pngrµh"]h#]h$]h%]j˜}r¶U*jµsh&]uh(K]h)hh]ubho)r·}r¸(hX£*Figure 2.* Sequence diagram for Use Case 37 illustrating the sequence for retrieving the system metadata for an object identified by PID from a Coordinating Node.hh+hhhhrh }r¹(h$]h%]h#]h"]h&]uh(K^h)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˜ Sequence diagram for Use Case 37 illustrating the sequence for retrieving the system metadata for an object identified by PID from a Coordinating Node.rÂ…rÃ}rÄ(hX˜ Sequence diagram for Use Case 37 illustrating the sequence for retrieving the system metadata for an object identified by PID from a Coordinating Node.hj·ubeubh)rÅ}rÆ(hX¡.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/37_uc.txtU referencedrÇKhh+hhhhh }rÈ(hh€h"]rÉhah#]h$]h%]h&]rÊhauh(Kbh)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 "uc37" 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_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttps://tools.ietf.org/html/rU tracebackrˆUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationrNU halt_levelrKU strip_classesrNh:NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetr‰Uoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_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_encodingr0UUTF-8r1U_sourcer2hUgettext_compactr3ˆU generatorr4NUdump_internalsr5NU smart_quotesr6‰U pep_base_urlr7U https://www.python.org/dev/peps/r8Usyntax_highlightr9Ulongr:Uinput_encoding_error_handlerr;jUauto_id_prefixr<Uidr=Udoctitle_xformr>‰Ustrip_elements_with_classesr?NU _config_filesr@]rAUfile_insertion_enabledrBˆU raw_enabledrCKU dump_settingsrDNubUsymbol_footnote_startrEKUidsrF}rG(hIhShh+hh+hjÅuUsubstitution_namesrH}rIhh)h }rJ(h$]h"]h#]Usourcehh%]h&]uU footnotesrK]rLUrefidsrM}rN(hI]rOhOah]rPhauub.