€cdocutils.nodes document q)q}q(U nametypesq}q(X#use case 38 - reserve an identifierqNXuc38qˆXhistoryqˆuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hU!use-case-38-reserve-an-identifierqhUuc38qhUhistoryquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _UC38:UparentqhUsourceqXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/38_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 38 - Reserve an Identifierq9hh+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 38Uindex-0qIUNtqJ(hHXUC38hIUNtqK(hHXreserve identifierhIUNtqLeUinlineqM‰uh(Kh)hh]ubh)qN}qO(hUhh+hhhhh }qP(h"]h#]h$]h%]h&]h'hIuh(Kh)hh]ubcdocutils.nodes definition_list qQ)qR}qS(hUhh+hhh-}hUdefinition_listqTh }qU(h$]h%]h#]h"]qVhIah&]uh(Nh)hh3}qWhIhNsh]qX(cdocutils.nodes definition_list_item qY)qZ}q[(hX+Revisions View document revision history_. hhRhhhUdefinition_list_itemq\h }q](h$]h%]h#]h"]h&]uh(K h]q^(cdocutils.nodes term q_)q`}qa(hX RevisionsqbhhZhhhUtermqch }qd(h$]h%]h#]h"]h&]uh(K h]qeh=X Revisionsqf…qg}qh(hhbhh`ubaubcdocutils.nodes definition qi)qj}qk(hUh }ql(h$]h%]h#]h"]h&]uhhZh]qmcdocutils.nodes paragraph qn)qo}qp(hX View document revision history_.hhjhhhU paragraphqqh }qr(h$]h%]h#]h"]h&]uh(K h]qs(h=XView document revision qt…qu}qv(hXView document revision hhoubcdocutils.nodes reference qw)qx}qy(hXhistory_UresolvedqzKhhohU referenceq{h }q|(UnameXhistoryq}Urefuriq~X”https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/38_uc.txtqh"]h#]h$]h%]h&]uh]q€h=Xhistoryq…q‚}qƒ(hUhhxubaubh=X.…q„}q…(hX.hhoubeubahU definitionq†ubeubhY)q‡}qˆ(hX\Goal Reserve an identifier to ensure it is available at some reasonable time in the future. hhRhhhh\h }q‰(h$]h%]h#]h"]h&]uh(K h)hh]qŠ(h_)q‹}qŒ(hXGoalqhh‡hhhhch }qŽ(h$]h%]h#]h"]h&]uh(K h]qh=XGoalq…q‘}q’(hhhh‹ubaubhi)q“}q”(hUh }q•(h$]h%]h#]h"]h&]uhh‡h]q–hn)q—}q˜(hXVReserve an identifier to ensure it is available at some reasonable time in the future.q™hh“hhhhqh }qš(h$]h%]h#]h"]h&]uh(K h]q›h=XVReserve an identifier to ensure it is available at some reasonable time in the future.qœ…q}qž(hh™hh—ubaubahh†ubeubhY)qŸ}q (hX0Summary As new content is added to the DataONE system, it is desirable to reserve an identifier in advance of creating the content as it is necessary for the client to generate relationships between content that may not exist in the DataONE system (e.g. a new data set with associated science metadata). hhRhhhh\h }q¡(h$]h%]h#]h"]h&]uh(Kh)hh]q¢(h_)q£}q¤(hXSummaryq¥hhŸhhhhch }q¦(h$]h%]h#]h"]h&]uh(Kh]q§h=XSummaryq¨…q©}qª(hh¥hh£ubaubhi)q«}q¬(hUh }q­(h$]h%]h#]h"]h&]uhhŸh]q®hn)q¯}q°(hX'As new content is added to the DataONE system, it is desirable to reserve an identifier in advance of creating the content as it is necessary for the client to generate relationships between content that may not exist in the DataONE system (e.g. a new data set with associated science metadata).q±hh«hhhhqh }q²(h$]h%]h#]h"]h&]uh(Kh]q³h=X'As new content is added to the DataONE system, it is desirable to reserve an identifier in advance of creating the content as it is necessary for the client to generate relationships between content that may not exist in the DataONE system (e.g. a new data set with associated science metadata).q´…qµ}q¶(hh±hh¯ubaubahh†ubeubhY)q·}q¸(hXActors ITK, Coordinating Node hhRhhhh\h }q¹(h$]h%]h#]h"]h&]uh(Kh)hh]qº(h_)q»}q¼(hXActorsq½hh·hhhhch }q¾(h$]h%]h#]h"]h&]uh(Kh]q¿h=XActorsqÀ…qÁ}qÂ(hh½hh»ubaubhi)qÃ}qÄ(hUh }qÅ(h$]h%]h#]h"]h&]uhh·h]qÆhn)qÇ}qÈ(hXITK, Coordinating NodeqÉhhÃhhhhqh }qÊ(h$]h%]h#]h"]h&]uh(Kh]qËh=XITK, Coordinating NodeqÌ…qÍ}qÎ(hhÉhhÇubaubahh†ubeubhY)qÏ}qÐ(hX&Preconditions - CN and MN operational hhRhhhh\h }qÑ(h$]h%]h#]h"]h&]uh(Kh)hh]qÒ(h_)qÓ}qÔ(hX PreconditionsqÕhhÏhhhhch }qÖ(h$]h%]h#]h"]h&]uh(Kh]q×h=X PreconditionsqØ…qÙ}qÚ(hhÕhhÓubaubhi)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ç(hXCN and MN operational h }qè(h$]h%]h#]h"]h&]uhhàh]qéhn)qê}që(hXCN and MN operationalqìhhæhhhhqh }qí(h$]h%]h#]h"]h&]uh(Kh]qîh=XCN and MN operationalqï…qð}qñ(hhìhhêubaubahU list_itemqòubahU bullet_listqóubahh†ubeubhY)qô}qõ(hXpTriggers - A client needs to reserve an identifier so that associations can be created in the system metadata hhRhhhh\h }qö(h$]h%]h#]h"]h&]uh(Kh)hh]q÷(h_)qø}qù(hXTriggersqúhhôhhhhch }qû(h$]h%]h#]h"]h&]uh(Kh]qüh=XTriggersqý…qþ}qÿ(hhúhhøubaubhi)r}r(hUh }r(h$]h%]h#]h"]h&]uhhôh]rhß)r}r(hUh }r(hãX-h"]h#]h$]h%]h&]uhjh]rhå)r}r (hXcA client needs to reserve an identifier so that associations can be created in the system metadata h }r (h$]h%]h#]h"]h&]uhjh]r hn)r }r (hXbA client needs to reserve an identifier so that associations can be created in the system metadatarhjhhhhqh }r(h$]h%]h#]h"]h&]uh(Kh]rh=XbA client needs to reserve an identifier so that associations can be created in the system metadatar…r}r(hjhj ubaubahhòubahhóubahh†ubeubhY)r}r(hXjPost Conditions - An identifier is reserved and guaranteed to be unique for some finite period of time. hhRhhhh\h }r(h$]h%]h#]h"]h&]uh(K!h)hh]r(h_)r}r(hXPost Conditionsrhjhhhhch }r(h$]h%]h#]h"]h&]uh(K!h]rh=XPost Conditionsr…r}r(hjhjubaubhi)r }r!(hUh }r"(h$]h%]h#]h"]h&]uhjh]r#hß)r$}r%(hUh }r&(hãX-h"]h#]h$]h%]h&]uhj h]r'hå)r(}r)(hXVAn identifier is reserved and guaranteed to be unique for some finite period of time. h }r*(h$]h%]h#]h"]h&]uhj$h]r+hn)r,}r-(hXUAn identifier is reserved and guaranteed to be unique for some finite period of time.r.hj(hhhhqh }r/(h$]h%]h#]h"]h&]uh(K h]r0h=XUAn identifier is reserved and guaranteed to be unique for some finite period of time.r1…r2}r3(hj.hj,ubaubahhòubahhóubahh†ubeubeubcdocutils.nodes comment r4)r5}r6(hX>@startuml images/38_uc.png usecase "12. Authentication" as authen package "DataONE" actor "Coordinating Node" as CN actor "Client" as ITK usecase "13. Authorization" as author usecase "38. Reserve Identifier" as RES CN -- RES ITK -- RES RES ..> author: <> RES ..> authen: <> @endumlhh+hhhUcommentr7h }r8(U xml:spacer9Upreserver:h"]h#]h$]h%]h&]uh(K0h)hh]r;h=X>@startuml images/38_uc.png usecase "12. Authentication" as authen package "DataONE" actor "Coordinating Node" as CN actor "Client" as ITK usecase "13. Authorization" as author usecase "38. Reserve Identifier" as RES CN -- RES ITK -- RES RES ..> author: <> RES ..> authen: <> @endumlr<…r=}r>(hUhj5ubaubcdocutils.nodes image r?)r@}rA(hX.. image:: images/38_uc.png hh+hhhUimagerBh }rC(UuriX design/UseCases/images/38_uc.pngrDh"]h#]h$]h%]U candidatesrE}rFU*jDsh&]uh(K2h)hh]ubhn)rG}rH(hXô*Figure 1.* Use case 38. Note that id a Member Node needs to reserve an identifier then it would use the functioanlity of the Investigator Toolkit Library - that is, the reserveIdentifier operation is not required for Member Node functionality.hh+hhhhqh }rI(h$]h%]h#]h"]h&]uh(K3h)hh]rJ(cdocutils.nodes emphasis rK)rL}rM(hX *Figure 1.*h }rN(h$]h%]h#]h"]h&]uhjGh]rOh=X Figure 1.rP…rQ}rR(hUhjLubahUemphasisrSubh=Xé Use case 38. Note that id a Member Node needs to reserve an identifier then it would use the functioanlity of the Investigator Toolkit Library - that is, the reserveIdentifier operation is not required for Member Node functionality.rT…rU}rV(hXé Use case 38. Note that id a Member Node needs to reserve an identifier then it would use the functioanlity of the Investigator Toolkit Library - that is, the reserveIdentifier operation is not required for Member Node functionality.hjGubeubj4)rW}rX(hX)@startuml images/38_seq.png participant "Client" as itk <> participant "CRUD API" as c_crud << Coordinating Node >> itk -> c_crud: reserveIdentifier(token, pid, scope, format) c_crud -> c_crud: createDummyEntry note right A dummy entry is created in the object store as a place holder. This entry should not be retrievable through search or other discovery mechanisms. end note alt Not Authorized c_crud -> itk: NotAuthorized else Identifier Exists c_crud -> itk: NotUnique else ok c_crud -> itk: identifier end @endumlhh+hhhj7h }rY(j9j:h"]h#]h$]h%]h&]uh(KLh)hh]rZh=X)@startuml images/38_seq.png participant "Client" as itk <> participant "CRUD API" as c_crud << Coordinating Node >> itk -> c_crud: reserveIdentifier(token, pid, scope, format) c_crud -> c_crud: createDummyEntry note right A dummy entry is created in the object store as a place holder. This entry should not be retrievable through search or other discovery mechanisms. end note alt Not Authorized c_crud -> itk: NotAuthorized else Identifier Exists c_crud -> itk: NotUnique else ok c_crud -> itk: identifier end @endumlr[…r\}r](hUhjWubaubj?)r^}r_(hX.. image:: images/38_seq.png hh+hhhjBh }r`(UuriX!design/UseCases/images/38_seq.pngrah"]h#]h$]h%]jE}rbU*jash&]uh(KNh)hh]ubhn)rc}rd(hXV*Figure 2.* Sequence diagram for use case 38. The Coordinating Node needs to keep track of identifiers that have been reserved, and this information needs to be replicated between Coordinating Nodes. The reserved identifier should not be discoverable and should not be involved with any Member Node synchronization or Member Node replication.hh+hhhhqh }re(h$]h%]h#]h"]h&]uh(KOh)hh]rf(jK)rg}rh(hX *Figure 2.*h }ri(h$]h%]h#]h"]h&]uhjch]rjh=X Figure 2.rk…rl}rm(hUhjgubahjSubh=XK Sequence diagram for use case 38. The Coordinating Node needs to keep track of identifiers that have been reserved, and this information needs to be replicated between Coordinating Nodes. The reserved identifier should not be discoverable and should not be involved with any Member Node synchronization or Member Node replication.rn…ro}rp(hXK Sequence diagram for use case 38. The Coordinating Node needs to keep track of identifiers that have been reserved, and this information needs to be replicated between Coordinating Nodes. The reserved identifier should not be discoverable and should not be involved with any Member Node synchronization or Member Node replication.hjcubeubh)rq}rr(hX¡.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/38_uc.txtU referencedrsKhh+hhhhh }rt(h~hh"]ruhah#]h$]h%]h&]rvhauh(KUh)hh]ubeubehUU transformerrwNU footnote_refsrx}ryUrefnamesrz}r{h}]r|hxasUsymbol_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]rhn)rŽ}r(hUh }r(h$]h%]h#]h"]h&]uhj‰h]r‘h=X*Hyperlink target "uc38" is not referenced.r’…r“}r”(hUhjŽubahhqubahUsystem_messager•ubjˆ)r–}r—(hUh }r˜(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypejŒuh]r™hn)rš}r›(hUh }rœ(h$]h%]h#]h"]h&]uhj–h]rh=X-Hyperlink target "index-0" is not referenced.rž…rŸ}r (hUhjšubahhqubahj•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 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ò(hh+hh+hIhRhjquUsubstitution_namesró}rôhh)h }rõ(h$]h"]h#]Usourcehh%]h&]uU footnotesrö]r÷Urefidsrø}rù(h]rúhahI]rûhNauub.