Äcdocutils.nodes document q)Åq}q(U nametypesq}q(X#���use case 23 - owner expunge contentqNX���uc23qàX���historyqàuUsubstitution_defsq }q Uparse_messagesq]qUcurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hU!use-case-23-owner-expunge-contentqhUuc23qhUhistoryquUchildrenq]q(cdocutils.nodes target q)Åq}q(U rawsourceqX ���.. _UC23:UparentqhUsourceqXj���/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/23_uc.txtqUtagnameqUtargetqU attributesq }q!(Uidsq"]Ubackrefsq#]Udupnamesq$]Uclassesq%]Unamesq&]Urefidq'huUlineq(KUdocumentq)hh]ubcdocutils.nodes section q*)Åq+}q,(hU�hhhhUexpect_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 23 - Owner Expunge Contentq9hh+hhhUtitleq:h }q;(h$]h%]h#]h"]h&]uh(Kh)hh]q<cdocutils.nodes Text q=X#���Use Case 23 - Owner Expunge Contentq>ÖÅq?}q@(hh9hh7ubaubcsphinx.addnodes index qA)ÅqB}qC(hU�hh+hhhUindexqDh }qE(h"]h#]h$]h%]h&]UentriesqF]qG((UsingleqHX���Use Case 23Uindex-0qIU�NtqJ(hHX���UC23hIU�NtqK(hHX���expungehIU�NtqL(hHX���remove contenthIU�NtqM(hHX ���take downhIU�NtqNeUinlineqOâuh(Kh)hh]ubh)ÅqP}qQ(hU�hh+hhhhh }qR(h"]h#]h$]h%]h&]h'hIuh(Kh)hh]ubcdocutils.nodes definition_list qS)ÅqT}qU(hU�hh+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(hU�h }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=X���View document revision qvÖÅqw}qx(hX���View document revision hhqubcdocutils.nodes reference qy)Åqz}q{(hX���history_Uresolvedq|KhhqhU referenceq}h }q~(UnameX���historyqUrefuriqÄXî���https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/23_uc.txtqÅh"]h#]h$]h%]h&]uh]qÇh=X���historyqÉÖÅqÑ}qÖ(hU�hhzubaubh=X���.ÖÅqÜ}qá(hX���.hhqubeubahU definitionqàubeubh[)Åqâ}qä(hX[���Goal User can find out where all copies of my data are in the system and can expunge them. hhThhhh^h }qã(h$]h%]h#]h"]h&]uh(Kh)hh]qå(ha)Åqç}qé(hX���Goalqèhhâhhhheh }qê(h$]h%]h#]h"]h&]uh(Kh]qëh=X���GoalqíÖÅqì}qî(hhèhhçubaubhk)Åqï}qñ(hU�h }qó(h$]h%]h#]h"]h&]uhhâh]qòhp)Åqô}qö(hXU���User can find out where all copies of my data are in the system and can expunge them.qõhhïhhhhsh }qú(h$]h%]h#]h"]h&]uh(K h]qùh=XU���User can find out where all copies of my data are in the system and can expunge them.qûÖÅqü}q†(hhõhhôubaubahhàubeubh[)Åq°}q¢(hX≈��Summary In some cases it may be desirable for a data owner to remove all their content from the system, however this use case conflicts with the general premise of DataONE to preserve information. A useful compromise *may* be to expunge content that has no known references to it. There may be situations where content removal may be necessary for system or community integrity - for example if content uploaded to the system is determined to contain dangerous content such as viruses, the data owner is discovered to have committed fraud, or the content may be protected and must be removed for legal reasons. In any case, it would seem that a data manager or curator should be involved in such decisions. hhThhhh^h }q£(h$]h%]h#]h"]h&]uh(Kh)hh]q§(ha)Åq•}q¶(hX���Summaryqßhh°hhhheh }q®(h$]h%]h#]h"]h&]uh(Kh]q©h=X���Summaryq™ÖÅq´}q¨(hhßhh•ubaubhk)Åq≠}qÆ(hU�h }qØ(h$]h%]h#]h"]h&]uhh°h]q∞(hp)Åq±}q≤(hX��In some cases it may be desirable for a data owner to remove all their content from the system, however this use case conflicts with the general premise of DataONE to preserve information. A useful compromise *may* be to expunge content that has no known references to it.hh≠hhhhsh }q≥(h$]h%]h#]h"]h&]uh(Kh]q¥(h=X—���In some cases it may be desirable for a data owner to remove all their content from the system, however this use case conflicts with the general premise of DataONE to preserve information. A useful compromise qµÖÅq∂}q∑(hX—���In some cases it may be desirable for a data owner to remove all their content from the system, however this use case conflicts with the general premise of DataONE to preserve information. A useful compromise hh±ubcdocutils.nodes emphasis q∏)Åqπ}q∫(hX���*may*h }qª(h$]h%]h#]h"]h&]uhh±h]qºh=X���mayqΩÖÅqæ}qø(hU�hhπubahUemphasisq¿ubh=X:��� be to expunge content that has no known references to it.q¡ÖÅq¬}q√(hX:��� be to expunge content that has no known references to it.hh±ubeubhp)Åqƒ}q≈(hXI��There may be situations where content removal may be necessary for system or community integrity - for example if content uploaded to the system is determined to contain dangerous content such as viruses, the data owner is discovered to have committed fraud, or the content may be protected and must be removed for legal reasons.q∆hh≠hhhhsh }q«(h$]h%]h#]h"]h&]uh(Kh]q»h=XI��There may be situations where content removal may be necessary for system or community integrity - for example if content uploaded to the system is determined to contain dangerous content such as viruses, the data owner is discovered to have committed fraud, or the content may be protected and must be removed for legal reasons.q…ÖÅq }qÀ(hh∆hhƒubaubhp)ÅqÃ}qÕ(hX_���In any case, it would seem that a data manager or curator should be involved in such decisions.qŒhh≠hhhhsh }qœ(h$]h%]h#]h"]h&]uh(Kh]q–h=X_���In any case, it would seem that a data manager or curator should be involved in such decisions.q—ÖÅq“}q”(hhŒhhÃubaubehhàubeubh[)Åq‘}q’(hXá���Actors - Data owner - Data curator - Member Nodes - Coordinating Nodes - Notification system (referrers should be notified of removal) hhThhhh^h }q÷(h$]h%]h#]h"]h&]uh(K$h)hh]q◊(ha)Åqÿ}qŸ(hX���Actorsq⁄hh‘hhhheh }q€(h$]h%]h#]h"]h&]uh(K$h]q‹h=X���Actorsq›ÖÅqfi}qfl(hh⁄hhÿubaubhk)Åq‡}q·(hU�h }q‚(h$]h%]h#]h"]h&]uhh‘h]q„cdocutils.nodes bullet_list q‰)ÅqÂ}qÊ(hU�h }qÁ(UbulletqËX���-h"]h#]h$]h%]h&]uhh‡h]qÈ(cdocutils.nodes list_item qÍ)ÅqÎ}qÏ(hX ���Data ownerqÌ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=X ���Data ownerqÙÖÅqı}qˆ(hhÌhhubaubahU list_itemq˜ubhÍ)Åq¯}q˘(hX���Data curatorq˙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]r���h=X���Data curatorr��ÖÅr��}r��(hh˙hh˝ubaubahh˜ubhÍ)År��}r��(hX���Member Nodesr��h }r��(h$]h%]h#]h"]h&]uhhÂh]r��hp)År ��}r ��(hj��hj��hhhhsh }r��(h$]h%]h#]h"]h&]uh(K"h]r��h=X���Member Nodesr ��ÖÅr��}r��(hj��hj ��ubaubahh˜ubhÍ)År��}r��(hX���Coordinating Nodesr��h }r��(h$]h%]h#]h"]h&]uhhÂh]r��hp)År��}r��(hj��hj��hhhhsh }r��(h$]h%]h#]h"]h&]uh(K#h]r��h=X���Coordinating Nodesr��ÖÅr��}r��(hj��hj��ubaubahh˜ubhÍ)År��}r��(hX>���Notification system (referrers should be notified of removal) h }r��(h$]h%]h#]h"]h&]uhhÂh]r��hp)År ��}r!��(hX=���Notification system (referrers should be notified of removal)r"��hj��hhhhsh }r#��(h$]h%]h#]h"]h&]uh(K$h]r$��h=X=���Notification system (referrers should be notified of removal)r%��ÖÅr&��}r'��(hj"��hj ��ubaubahh˜ubehUbullet_listr(��ubahhàubeubh[)År)��}r*��(hXz���Preconditions - Content exists in the system that must be removed - A decision has been made to remove all / some content hhThhhh^h }r+��(h$]h%]h#]h"]h&]uh(K(h)hh]r,��(ha)År-��}r.��(hX ���Preconditionsr/��hj)��hhhheh }r0��(h$]h%]h#]h"]h&]uh(K(h]r1��h=X ���Preconditionsr2��ÖÅr3��}r4��(hj/��hj-��ubaubhk)År5��}r6��(hU�h }r7��(h$]h%]h#]h"]h&]uhj)��h]r8��h‰)År9��}r:��(hU�h }r;��(hËX���-h"]h#]h$]h%]h&]uhj5��h]r<��(hÍ)År=��}r>��(hX1���Content exists in the system that must be removedr?��h }r@��(h$]h%]h#]h"]h&]uhj9��h]rA��hp)ÅrB��}rC��(hj?��hj=��hhhhsh }rD��(h$]h%]h#]h"]h&]uh(K'h]rE��h=X1���Content exists in the system that must be removedrF��ÖÅrG��}rH��(hj?��hjB��ubaubahh˜ubhÍ)ÅrI��}rJ��(hX6���A decision has been made to remove all / some content h }rK��(h$]h%]h#]h"]h&]uhj9��h]rL��hp)ÅrM��}rN��(hX5���A decision has been made to remove all / some contentrO��hjI��hhhhsh }rP��(h$]h%]h#]h"]h&]uh(K(h]rQ��h=X5���A decision has been made to remove all / some contentrR��ÖÅrS��}rT��(hjO��hjM��ubaubahh˜ubehj(��ubahhàubeubh[)ÅrU��}rV��(hX]���Triggers - All triggers for this should be through administrative / curatorial procedures. hhThhhh^h }rW��(h$]h%]h#]h"]h&]uh(K,h)hh]rX��(ha)ÅrY��}rZ��(hX���Triggersr[��hjU��hhhheh }r\��(h$]h%]h#]h"]h&]uh(K,h]r]��h=X���Triggersr^��ÖÅr_��}r`��(hj[��hjY��ubaubhk)Åra��}rb��(hU�h }rc��(h$]h%]h#]h"]h&]uhjU��h]rd��h‰)Åre��}rf��(hU�h }rg��(hËX���-h"]h#]h$]h%]h&]uhja��h]rh��hÍ)Åri��}rj��(hXP���All triggers for this should be through administrative / curatorial procedures. h }rk��(h$]h%]h#]h"]h&]uhje��h]rl��hp)Årm��}rn��(hXO���All triggers for this should be through administrative / curatorial procedures.ro��hji��hhhhsh }rp��(h$]h%]h#]h"]h&]uh(K+h]rq��h=XO���All triggers for this should be through administrative / curatorial procedures.rr��ÖÅrs��}rt��(hjo��hjm��ubaubahh˜ubahj(��ubahhàubeubh[)Åru��}rv��(hX~���Post Conditions - The targeted content is no longer present in the DataONE system - Subscribers are be notified of the change hhThhhh^h }rw��(h$]h%]h#]h"]h&]uh(K0h)hh]rx��(ha)Åry��}rz��(hX���Post Conditionsr{��hju��hhhheh }r|��(h$]h%]h#]h"]h&]uh(K0h]r}��h=X���Post Conditionsr~��ÖÅr��}rÄ��(hj{��hjy��ubaubhk)ÅrÅ��}rÇ��(hU�h }rÉ��(h$]h%]h#]h"]h&]uhju��h]rÑ��h‰)ÅrÖ��}rÜ��(hU�h }rá��(hËX���-h"]h#]h$]h%]h&]uhjÅ��h]rà��(hÍ)Årâ��}rä��(hX?���The targeted content is no longer present in the DataONE systemrã��h }rå��(h$]h%]h#]h"]h&]uhjÖ��h]rç��hp)Åré��}rè��(hjã��hjâ��hhhhsh }rê��(h$]h%]h#]h"]h&]uh(K/h]rë��h=X?���The targeted content is no longer present in the DataONE systemrí��ÖÅrì��}rî��(hjã��hjé��ubaubahh˜ubhÍ)Årï��}rñ��(hX*���Subscribers are be notified of the change h }ró��(h$]h%]h#]h"]h&]uhjÖ��h]rò��hp)Årô��}rö��(hX)���Subscribers are be notified of the changerõ��hjï��hhhhsh }rú��(h$]h%]h#]h"]h&]uh(K0h]rù��h=X)���Subscribers are be notified of the changerû��ÖÅrü��}r†��(hjõ��hjô��ubaubahh˜ubehj(��ubahhàubeubeubcdocutils.nodes comment r°��)År¢��}r£��(hX ��@startuml images/23_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: getAllCopies (token, ownerID) 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 participant "CRUD API" as c_crud << Coordinating Node >> app_client -> c_crud: deleteRecords (token, listOfPids) app_client <-- c_crud: ack or fail note right Can the Query API find out where all copies of my data are in the system or should this be handled by another API? end note @endumlhh+hhhUcommentr§��h }r•��(U xml:spacer¶��Upreserverß��h"]h#]h$]h%]h&]uh(KNh)hh]r®��h=X ��@startuml images/23_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: getAllCopies (token, ownerID) 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 participant "CRUD API" as c_crud << Coordinating Node >> app_client -> c_crud: deleteRecords (token, listOfPids) app_client <-- c_crud: ack or fail note right Can the Query API find out where all copies of my data are in the system or should this be handled by another API? end note @endumlr©��ÖÅr™��}r´��(hU�hj¢��ubaubcdocutils.nodes image r¨��)År≠��}rÆ��(hX���.. image:: images/23_seq.png hh+hhhUimagerØ��h }r∞��(UuriX!���design/UseCases/images/23_seq.pngr±��h"]h#]h$]h%]U candidatesr≤��}r≥��U*j±��sh&]uh(KPh)hh]ubhp)År¥��}rµ��(hX���*Figure 1.* Interactions for use case 23, User can find out where all copies of my data are in the system and\ncan expunge themhh+hhhhsh }r∂��(h$]h%]h#]h"]h&]uh(KQh)hh]r∑��(h∏)År∏��}rπ��(hX���*Figure 1.*h }r∫��(h$]h%]h#]h"]h&]uhj¥��h]rª��h=X ���Figure 1.rº��ÖÅrΩ��}ræ��(hU�hj∏��ubahh¿ubh=Xs��� Interactions for use case 23, User can find out where all copies of my data are in the system andncan expunge themrø��ÖÅr¿��}r¡��(hXt��� Interactions for use case 23, User can find out where all copies of my data are in the system and\ncan expunge themhj¥��ubeubhp)År¬��}r√��(hX ���**Notes**rƒ��hh+hhhhsh }r≈��(h$]h%]h#]h"]h&]uh(KUh)hh]r∆��cdocutils.nodes strong r«��)År»��}r…��(hjƒ��h }r ��(h$]h%]h#]h"]h&]uhj¬��h]rÀ��h=X���NotesrÃ��ÖÅrÕ��}rŒ��(hU�hj»��ubahUstrongrœ��ubaubh‰)År–��}r—��(hU�hh+hhhj(��h }r“��(hËX���-h"]h#]h$]h%]h&]uh(KWh)hh]r”��hÍ)År‘��}r’��(hXO���Dealing with inappropriate usage of (ie, copyrighted objects that are stored) hj–��hhhh˜h }r÷��(h$]h%]h#]h"]h&]uh(Nh)hh]r◊��hp)Årÿ��}rŸ��(hXM���Dealing with inappropriate usage of (ie, copyrighted objects that are stored)r⁄��hj‘��hhhhsh }r€��(h$]h%]h#]h"]h&]uh(KWh]r‹��h=XM���Dealing with inappropriate usage of (ie, copyrighted objects that are stored)r›��ÖÅrfi��}rfl��(hj⁄��hjÿ��ubaubaubaubh)År‡��}r·��(hX°���.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/23_uc.txtU referencedr‚��Khh+hhhhh }r„��(hÄhÅh"]r‰��hah#]h$]h%]h&]rÂ��hauh(K[h)hh]ubeubehU�UtransformerrÊ��NU footnote_refsrÁ��}rË��UrefnamesrÈ��}rÍ��h]rÎ��hzasUsymbol_footnotesrÏ��]rÌ��Uautofootnote_refsrÓ��]rÔ��Usymbol_footnote_refsr��]rÒ��U citationsrÚ��]rÛ��h)hUcurrent_linerÙ��NUtransform_messagesrı��]rˆ��(cdocutils.nodes system_message r˜��)År¯��}r˘��(hU�h }r˙��(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypeUINFOr˚��uh]r¸��hp)År˝��}r˛��(hU�h }rˇ��(h$]h%]h#]h"]h&]uhj¯��h]r���h=X*���Hyperlink target "uc23" is not referenced.r��ÖÅr��}r��(hU�hj˝��ubahhsubahUsystem_messager��ubj˜��)År��}r��(hU�h }r��(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypej˚��uh]r��hp)År ��}r ��(hU�h }r��(h$]h%]h#]h"]h&]uhj��h]r��h=X-���Hyperlink target "index-0" is not referenced.r ��ÖÅr��}r��(hU�hj ��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��NUrfc_base_urlr��Uhttps://tools.ietf.org/html/r��U tracebackr ��àUpep_referencesr!��NUstrip_commentsr"��NU toc_backlinksr#��Uentryr$��U language_coder%��Uenr&��U datestampr'��NUreport_levelr(��KU_destinationr)��NU halt_levelr*��KU strip_classesr+��Nh:NUerror_encoding_error_handlerr,��Ubackslashreplacer-��Udebugr.��NUembed_stylesheetr/��âUoutput_encoding_error_handlerr0��Ustrictr1��U sectnum_xformr2��KUdump_transformsr3��NU docinfo_xformr4��KUwarning_streamr5��NUpep_file_url_templater6��Upep-%04dr7��Uexit_status_levelr8��KUconfigr9��NUstrict_visitorr:��NUcloak_email_addressesr;��àUtrim_footnote_reference_spacer<��âUenvr=��NUdump_pseudo_xmlr>��NUexpose_internalsr?��NUsectsubtitle_xformr@��âUsource_linkrA��NUrfc_referencesrB��NUoutput_encodingrC��Uutf-8rD��U source_urlrE��NUinput_encodingrF��U utf-8-sigrG��U_disable_configrH��NU id_prefixrI��U�U tab_widthrJ��KUerror_encodingrK��UUTF-8rL��U_sourcerM��hUgettext_compactrN��àU generatorrO��NUdump_internalsrP��NUsmart_quotesrQ��âUpep_base_urlrR��U https://www.python.org/dev/peps/rS��Usyntax_highlightrT��UlongrU��Uinput_encoding_error_handlerrV��j1��Uauto_id_prefixrW��UidrX��Udoctitle_xformrY��âUstrip_elements_with_classesrZ��NU _config_filesr[��]r\��Ufile_insertion_enabledr]��àUraw_enabledr^��KU dump_settingsr_��NubUsymbol_footnote_startr`��K�Uidsra��}rb��(hh+hIhThh+hj‡��uUsubstitution_namesrc��}rd��hh)h }re��(h$]h"]h#]Usourcehh%]h&]uU footnotesrf��]rg��Urefidsrh��}ri��(hI]rj��hPah]rk��hauub.